构建代码
使用 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