[Android] build/core/main.mk
AndroidのMakeの本体は、build/core/main.mkに記述されている。これ自身は、makeというよりも、スクリプト集といった感じで、読むのは結構苦労する。
ポイントは、サブディレクトリーにある、Android.mkをfindしてきincludeしているという点。
subdir_makefiles += \ $(shell build/tools/findleaves.sh \ --prune="./vendor" --prune="./out" $(subdirs) Android.mk) ifneq ($(ONE_SHOT_MAKEFILE),) ... else include $(subdir_makefiles) endif
これによって、サブディレクトリーにAndroid.mkを配置して、トップのディレクトリーで、配置したAndroid.mkの中のLOCAL_MODULEの名前を指定すると、makeができるようになる。
ONE_SHOT_MAKEFILEは、build/envsetup.shから呼ばれた時に、特定のAndroid.mkだけを呼び出す仕組み。