AOSP单个模块编译命令mm

mm命令在envsetup.sh中定义
以编译adb为例,例如在adb目录下执行mm, 我的代码根目录为/media/wy/0BF4162F0BF4162F/44
相当于实际调用:
ONE_SHOT_MAKEFILE=$M make -C $T -f build/core/main.mk $MODULES $ARGS
ONE_SHOT_MAKEFILE=system/core/adb/Android.mk作为变量传递到main.mk
$T = /media/wy/0BF4162F0BF4162F/44, -C参数作用是指定跳转到该目录下执行
$ MODULES=all_modules
-f指定执行的makefile文件

ONE_SHOT_MAKEFILE在main.mk中被include

ifneq ($(ONE_SHOT_MAKEFILE),)
# We've probably been invoked by the "mm" shell function
# with a subdirectory's makefile.
include $(ONE_SHOT_MAKEFILE)

结论,在 system/core/adb目录下运行mm相当于在root目录下运行:
ONE_SHOT_MAKEFILE=system/core/adb/Android.mk make -f build/core/main.mk all_modules

你可能感兴趣的:(AOSP单个模块编译命令mm)