でコンパイルしたい Android JNI プロジェクトがありますndk-build
。プロジェクトには、複数のサードパーティのサブ プロジェクトが含まれています。
+- jni +- Android.mk +- my-proj.mk +- その他の proj.mk +- 私のプロジェクト +- a.cpp +- b.cpp +- 他のプロジェクト (サードパーティ) +- c.cpp +- d.cpp
Android.mk
現在のアイデアは、次のように、すべてのサブ プロジェクトのメイクファイルをインクルード/インポートすることです。
LOCAL_PATH := $(call my-dir)
include $(LOCAL_PATH)/my-proj.mk
include $(LOCAL_PATH)/other-proj.mk
other-proj
スタティックライブラリとしてビルドされます。my-proj.mk
に依存し、共有ライブラリother-proj
として構築されます。
このプロジェクトのビルドは機能します。ただし、またはのいずれmy-proj.mk
かを変更してもother-proj.mk
、それぞれのプロジェクトの再構築はトリガーされません。これを行う方法はありますか?
依存関係としてメイクファイルをリストすることはAndroid.mk
できましたが、方法がわかりませんでした。(それらを下にリストしてLOCAL_SRC_FILES
も機能しません。)
$(call import-module,foo/bar)
私はまた、私が望むことを正確に行うように見えるものについても読みました。ただし、この場合、makefile をプロジェクト ディレクトリに隣接jni/makefiles/other-proj/Android.mk
するディレクトリ (例: ) に配置する必要がありましたが、LOCAL_SRC_FILES
. 絶対パスやパス内に a を指定することを好まないようです..
。(メイクファイルはサードパーティ プロジェクトであるため、サブ プロジェクト ディレクトリに直接配置することはできません。)