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

9
我想问一下,在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个回答

10
最方便的解决方法是将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))

谢谢你的回答。实际上,我已经让它工作了,而不必在mk文件中编写include $(call all-subdir-makefiles)。看起来是读取所有mk文件的脚本出了问题。我会尝试你的答案。我知道它对其他人也会有帮助。 - artsylar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接