我有一个想要编译的 Android JNI 项目ndk-build
。该项目包含多个第三方子项目。
+- 杰尼 +- 安卓.mk +- 我的项目.mk +- 其他项目.mk +- 我的项目 +- a.cpp +- b.cpp +- 其他项目(第三方) +- c.cpp +- d.cpp
现在的想法是在 中包含/导入所有子项目的 makefile 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
不会触发相应项目的重建。有没有办法做到这一点?
我虽然可以将makefile列为依赖项,Android.mk
但我想不出办法。(在下面列出它们LOCAL_SRC_FILES
是行不通的。)
我还读到了$(call import-module,foo/bar)
which 似乎完全符合我的要求。但是,在这种情况下,我必须将 makefile 放在与项目目录相邻的目录中(例如jni/makefiles/other-proj/Android.mk
),但我不知道如何指定LOCAL_SRC_FILES
. 他们似乎不喜欢用绝对路径或..
路径内部来指定。(我不能将 makefile 直接放在子项目目录中,因为它们是第三方项目。)