# This has various targets to assist in developing # and testing the mock ril. The default "all" target # invokes protoc to generate the appropriate protobuf # code. The other targest are used for testing. # Assume this Makefile is run in place then top # point to the top of the android source tree top=../../../ # Directories of source files src_java=src/java src_cpp=src/cpp src_py=src/py src_js=src/js src_proto=src/proto src_generated=src/generated # Directories of generated source files gen_src_cpp=$(src_generated)/cpp gen_src_java=$(src_generated)/java gen_src_py=$(src_generated)/python gen_src_desc=$(src_generated)/desc # Generated files generated=$(gen_src_cpp)/msgheader.pb.cpp $(gen_src_cpp)/msgheader.pb.h $(gen_src_desc)/msgheader.desc \ $(gen_src_py)/msgheader_pb2.py $(gen_src_java)/com/android/internal/communication/MsgHeader.java \ $(gen_src_cpp)/ril.pb.cpp $(gen_src_cpp)/ril.pb.h $(gen_src_desc)/ril.desc \ $(gen_src_py)/ril_pb2.py $(gen_src_java)/com/android/internal/telephony/ril_proto/RilCmds.java \ $(gen_src_cpp)/ctrl.pb.cpp $(gen_src_cpp)/ctrl.pb.h $(gen_src_desc)/ctrl.desc \ $(gen_src_py)/ctrl_pb2.py $(gen_src_java)/com/android/internal/telephony/ril_proto/RilCtrlCmds.java # A Makefile to run protoc and simplify testing. .PHONY : all all : $(generated) # TODO: Document/cleanup these testing targets as we learn whats needed. # Make the unit tests .PHONY : ut ut : source $(top)build/envsetup.sh ; mmm $(top)frameworks/base/telephony/tests/telephonytests adb install -r $(top)out/target/product/passion/data/app/FrameworksTelephonyTests.apk t : $(gen_src_cpp)/msgheader.pb.cpp $(gen_src_desc)/msgheader.desc $(gen_src_py)/msgheader_pb2.py $(gen_src_java)/com/android/internal/communication/MsgHeader.java # Run protoc to create the c++ files for msgheader $(gen_src_cpp)/msgheader.pb.cpp $(gen_src_cpp)/msgheader.pb.h : $(src_proto)/msgheader.proto mkdir -p $(gen_src_cpp) protoc --cpp_out=$(gen_src_cpp) --proto_path=$(src_proto) $< mv $(gen_src_cpp)/msgheader.pb.cc $(gen_src_cpp)/msgheader.pb.cpp # Run protoc to create the python files for msgheader $(gen_src_desc)/msgheader.desc : $(src_proto)/msgheader.proto mkdir -p $(gen_src_desc) protoc --descriptor_set_out=$@ --proto_path=$(src_proto) --include_imports $< # Run protoc to create the pyhton files for msgheader $(gen_src_py)/msgheader_pb2.py : $(src_proto)/msgheader.proto mkdir -p $(gen_src_py) protoc --python_out=$(gen_src_py) --proto_path=$(src_proto) $< # Run protoc to create the java files for ril $(gen_src_java)/com/android/internal/communication/MsgHeader.java : $(src_proto)/msgheader.proto mkdir -p $(gen_src_java) protoc --javamicro_out=$(gen_src_java) --proto_path=$(src_proto) $< # Run protoc to create the c++ files for ril $(gen_src_cpp)/ril.pb.cpp $(gen_src_cpp)/ril.pb.h : $(src_proto)/ril.proto mkdir -p $(gen_src_cpp) protoc --cpp_out=$(gen_src_cpp) --proto_path=$(src_proto) $< mv $(gen_src_cpp)/ril.pb.cc $(gen_src_cpp)/ril.pb.cpp # Run protoc to create the ril descriptor file for ril $(gen_src_desc)/ril.desc : $(src_proto)/ril.proto mkdir -p $(gen_src_desc) protoc --descriptor_set_out=$@ --proto_path=$(src_proto) --include_imports $< # Run protoc to create the pyhton files for ril $(gen_src_py)/ril_pb2.py : $(src_proto)/ril.proto mkdir -p $(gen_src_py) protoc --python_out=$(gen_src_py) --proto_path=$(src_proto) $< # Run protoc to create the java files for ril $(gen_src_java)/com/android/internal/telephony/ril_proto/RilCmds.java : $(src_proto)/ril.proto mkdir -p $(gen_src_java) protoc --javamicro_out=$(gen_src_java) --proto_path=$(src_proto) $< # Run protoc to create the c++ files for control $(gen_src_cpp)/ctrl.pb.cpp $(gen_src_cpp)/ctrl.pb.h : $(src_proto)/ctrl.proto mkdir -p $(gen_src_cpp) protoc --cpp_out=$(gen_src_cpp) --proto_path=$(src_proto) $< mv $(gen_src_cpp)/ctrl.pb.cc $(gen_src_cpp)/ctrl.pb.cpp # Run protoc to create the pyhton files for control $(gen_src_py)/ctrl_pb2.py : $(src_proto)/ctrl.proto mkdir -p $(gen_src_py) protoc --python_out=$(gen_src_py) --proto_path=$(src_proto) $< # Run protoc to create the ctrl descriptor file for control $(gen_src_desc)/ctrl.desc : $(src_proto)/ctrl.proto mkdir -p $(gen_src_desc) protoc --descriptor_set_out=$@ --proto_path=$(src_proto) --include_imports $< # Run protoc to create the java files for ril $(gen_src_java)/com/android/internal/telephony/ril_proto/RilCtrlCmds.java : $(src_proto)/ctrl.proto mkdir -p $(gen_src_java) protoc --javamicro_out=$(gen_src_java) --proto_path=$(src_proto) $< # After starting phone do this first to get lastest ril.desc/proto and setup rild .PHONY : first first : root_remount copy_all forward # copy js and descriptors, restart rild and run mockril_tests .PHONY : tmr tmr : copy_js_desc restart_rild mockril_tests # Copy all files, restart rild and run mockril_tests .PHONY : test test : copy_all restart_rild install_mockril_tests mockril_tests # Restart rild .PHONY : restart_rild restart_rild : adb shell ps | awk '/rild/ { print $$2 }' | xargs adb shell kill # Update only the js/copy and restart rild .PHONY : tjs tjs : copy_js_desc restart_rild # Run test control server python script .PHONY : tcs tcs : ./tcs.py 127.0.0.1 11111 # Run the mock ril tests (use adb shell pm list instrumentation to see the Runner) .PHONY : mockril_tests mockril_tests : adb shell am instrument -e class 'com.android.internal.telephony.mockril.MockRilTest' -w com.android.frameworks.telephonytests/.TelephonyMockRilTestRunner # forward the control server tcp port (54312) to a port on the PC side (11111) .PHONY : forward forward : adb forward tcp:11111 tcp:54312 # change to root and remount device .PHONY : root_remount root_remount : adb root ; sleep 3 ; adb remount ; adb shell setprop rild.libpath /data/lib/libmock_ril.so # Copy all files .PHONY : copy_all copy_all : copy_js_desc copy_mockril # Copy js and the protobuf descriptor files .PHONY : copy_js_desc copy_js_desc : adb push $(src_js)/mock_ril.js /sdcard/data/ adb push $(src_js)/mock_ril_tests.js /sdcard/data/ adb push $(src_js)/simulated_radio.js /sdcard/data/ adb push $(src_js)/simulated_radio_tests.js /sdcard/data/ adb push $(src_js)/simulated_icc.js /sdcard/data/ adb push $(src_js)/simulated_icc_tests.js /sdcard/data/ adb push $(src_js)/ctrl_server.js /sdcard/data/ adb push $(src_js)/ctrl_server_tests.js /sdcard/data/ adb push $(src_js)/ril_vars.js /sdcard/data/ adb push $(gen_src_desc)/ril.desc /sdcard/data/ adb push $(gen_src_desc)/ctrl.desc /sdcard/data/ adb forward tcp:11111 tcp:54312 # Copy the mock ril library .PHONY : copy_mockril copy_mockril : adb push $(top)out/target/product/passion/system/lib/libmock_ril.so /data/lib/ .PHONY : install_mockril_tests install_mockril_tests : adb install -r $(top)out/target/product/passion/data/app/FrameworksTelephonyTests.apk # Remove generated files .PHONY : clean clean : rm -f $(generated)