2011-07-04 88 views
7

我只想問一下在Android.mk文件中應該寫什麼來調用當前目錄的子目錄中的mk文件。

實施例:
/packages/Android.mk
/package/groupA/Android.mk
/packages/groupA/AppA/Android.mk
/packages/groupA/AppB/Android.mk
以遞歸方式讀取子目錄中的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

回答

9

最便捷的解決方案是把include $(call all-subdir-makefiles)命令也在裏面/package/groupA/Android.mk文件。

但是,如果你只想要第三級MK文件,那麼你可以使用下面的命令:

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

這裏是一個完全遞歸的解決方案,但它從外殼依靠find命令:

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

感謝您的回答。實際上,我沒有在mk文件中編寫'include $(call all-subdir-makefiles)'而得到了它的工作。看起來在讀取所有mk文件的腳本中存在問題。我會在某個時候嘗試你的回答。我知道這對別人很有幫助。 – artsylar

相關問題