build 的 Makefile 處理各 project 的 Android.mk 的方法是:
build/core/main.mk:
subdir_makefiles := \
$(shell build/tools/findleaves.py --prune=out --prune=.repo --prune=.git $(subdirs) Android.mk)
#include $(subdir_makefiles)
看看 build/tools/findleaves.py ,就是把所有目錄的 Android.mk 找出來。所以之後的 include .. 就把所有的 makefile include 進來..
也就是說..整個 android project makefile 被合併成一個大的 Makefile。
所以...
invoke make 時很慢.. 因為要 run findleaves.py, 還要把所有 Android.mk read 進來。
.... findleaves.py 應該不是主因..
但是
也就是說,所有的 project dep 都在 Makefile 中,所以可以自行 build 任一個 project target.
例如:
$make rild
就會 build hardware/ril/rild另外,因為各 Project 的 Android.mk 是 Makefile 的一部分,所以可以直接寫 dep rule,不用管 Android build system 的 變數與 script。
沒有留言:
張貼留言