构建代码
使用 m
构建所有内容。m
可以使用 -jN
参数处理并行任务。如果您没有提供 -j
参数,构建系统会自动选择您认为最适合您系统的并行任务计数。
如上所述,您可以通过在 m
命令行中列出相应名称来构建特定模块,而不是构建完整的设备映像。此外,m
还针对各种特殊目的提供了一些伪目标。以下是一些示例:
droid
-m droid
是正常 build。此目标在此处,因为默认目标需要名称。all
-m all
会构建m droid
构建的所有内容,加上不包含droid
标记的所有内容。构建服务器会运行此命令,以确保包含在树中且包含Android.mk
文件的所有元素都会构建。m
- 从树的顶部运行构建系统。这很有用,因为您可以在子目录中运行make
。如果您设置了TOP
环境变量,它便会使用此变量。如果您未设置此变量,它便会从当前目录中查找相应的树,以尝试找到树的顶层。您可以通过运行不包含参数的m
来构建整个源代码树,也可以通过指定相应名称来构建特定目标。mma
- 构建当前目录中的所有模块及其依赖项。mmma
- 构建提供的目录中的所有模块及其依赖项。croot
-cd
到树顶部。clean
-m clean
会删除此配置的所有输出和中间文件。此内容与rm -rf out/
相同。
运行 m help
即可查看 m
提供的其他伪目标。
注1:
我自己用mma编译了firefly packages里面的Music,结果报错了:
build/make/core/base_rules.mk:325: error: hardware/rockchip/librkvpu/common: MODULE.TARGET.SHARED_LIBRARIES.libvpu already defined by vendor/rockchip/common/vpu/lib/libvpu. 10:33:58 ckati failed with: exit status 1