以递归方式读取子目录中的Android.mk文件

art*_*lar 7 android makefile android-ndk

我想问一下Android.mk文件中应该写什么来调用当前目录的子目录中的mk文件.

示例:
/packages/Android.mk
/package/groupA/Android.mk
/packages/groupA/AppA/Android.mk
/packages/groupA/AppB/Android.mk

我知道通过使用include $(call all-subdir-makefiles),将读取直接子目录中的Android.mk文件(例如:/package/groupA/Android.mk).但是,将不会读取/packages/groupA/AppA/Android.mk和/packages/groupA/AppB/Android.mk.

我想知道是否有其他宏可以对所有子目录进行Android.mk的递归读取.

谢谢,
artsylar

And*_*aev 8

最方便的解决方案是将include $(call all-subdir-makefiles)命令也放在/package/groupA/Android.mk文件中.

但是,如果只需要第三级mk文件,则可以使用以下命令:

include $(wildcard $(call my-dir)/*/*/Android.mk)
Run Code Online (Sandbox Code Playgroud)

这是一个完全递归的解决方案,但它依赖于findshell的命令:

include $(filter-out $(call my-dir)/Android.mk,$(shell find $(call my-dir)/ -type f -name Android.mk))
Run Code Online (Sandbox Code Playgroud)