前面的几篇文章我们分析编译环境初始化的过程,环境变量已经加载,并配置了编译目标,接下来执行一个 make 命令我们就能够进行编译。
一、make编译过程
执行完 lunch 命令后,就可以使用 make 命令来执行编译 Build。Android 12.0 上是通过 soong 执行编译构建,这里执行 make 命令时,main.mk 文件把一些环境变量和目标都配置好后,会执行 envsetup.sh 中的 make() 进行编译。
如果找到 “build/soong/soong_ui.bash”,就使用 soong_ui.bash 来进行编译,否则使用原始的 make 命令进行编译。
1、envsetup.sh
源码位置:/build/envsetup.sh
make
function make()
{
_wrap_build $(get_make_command "$@") "$@"
}
执行完 make 命令后,会调用 envsetup.sh 的 make() 函数进行处理。这里又调用了 get_make_command() 函数。