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

时间:2011-07-04 07:52:15

标签: 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

1 个答案:

答案 0 :(得分:9)

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

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

include $(wildcard $(call my-dir)/*/*/Android.mk)

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

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