[笔记分享] [Build] Android编译系统例子分析

例子的Android.mk如下:
[笔记分享] [Build] Android编译系统例子分析

当我们使用 make hello_qisda 命令时,文件重要跟踪部分如下:
[笔记分享] [Build] Android编译系统例子分析

executable.mk文件中,
[笔记分享] [Build] Android编译系统例子分析
定义class和suffix变量后包含dynamic_binary.mk,在这个文件中获取下图所示需要的变量值。
[笔记分享] [Build] Android编译系统例子分析
这里就是一个模块编译所需要的规则了。我们在看dynamic_binary.mk。

[笔记分享] [Build] Android编译系统例子分析
得到了连接里所有的目标变量值
在binary.mk中:
[笔记分享] [Build] Android编译系统例子分析

从android.mk获取了各种源文件。
[笔记分享] [Build] Android编译系统例子分析
从android.mk中得到需要依赖的库文件。

到此,我们的依赖文件也都有了。最后看执行命令获取。在definition.mk中:
[笔记分享] [Build] Android编译系统例子分析

这样我们的目标文件、依赖文件、执行命令都有了。目标可以成功创建了。
对于其他的静态、动态库等目标程序的编译,也是大同小异,可自行分析。