應用範例是
這樣:
因為用了某
大陸廠的 3g module,然後 usb-uart com port 的 access 說明又不清楚。
只好請他們提供 android 3g script,結果.. 他們就改了 hardware/ril 下的幾個檔。
因為是大陸廠商,所以修改後的 code 當然是不會給 (也還好,因為是 apache license)。
所以拿到的只是幾個 so.
這下就麻煩,要整合進 Android Makefile 里。
用 BUILD_PREBUILT - 結果這個不會建立 dependent ta
rget。
所以make system 會出現 no rule to make ***.so
在 build/core/ 里又找不到適合的 build rule。
所以只好自己寫在 Android.mk 里...
先從 build error 來看:
make: *** No rule to make target `out/target/product/stingy/obj/lib/libstingy.so',
needed by `out/target/product/stingy/obj/EXECUTABLES/rild_intermediates/LINKED/stingyd'
. Stop.
所以知道需要建立的 rule target 是
out/target/product/stingy/obj/lib/libstingy.so :
acp -e hardware/ril/stingy/libstingy.so out/targ
et/product/stingy/obj/lib/libstingy.so
要注意,使
用 Android.mk 中的 LOCAL_MODULE, TARGET_OUT 這些變數,在 #include (XXX) 後,會改變。
所以就直接寫出來..
繼續 make..
error 變成:
make: *** No rule to make target `out/target/product/stingy/system/lib/libstingy.so',
needed by `out/target/product/stingy/system/bin/stingyd'. Stop.
所以要再加一個 target:
out/target/product/stingy/obj/lib/libstingy.so :
out/target/product/stingy/system/lib/libstingy.so : acp
acp -e $(MODULE_SRC) $(TARGET_OUT_INTERMEDIATES)/lib/libstingy.so
沒有留言:
張貼留言