1,Makefile编译方式
TARGET: PREREQUISITES
COMMANDS
1,TARGET是需要生成的目标文件,PREREQUISTIES代表了目标所依赖的所有文件。
2,简单的Makefile样例:
SimpleMakefile: main.o utility.o
gcc -o main.o utility.o
main.o:main.c
gcc -c main.c
utility.o:utility.c
gcc -c utility.c
简写:
OBJECT = main.o utility.o
SimpleMakefile:$(OBJECT)
gcc -o SimpleMakefile $(OBJECT)
3,android的Makefile依赖树:
终极MakeFile文档的一行:
include build/core/main.mk
make指令应该就是调用的这个mk文件,在没有显式指定编译目标的情况下,第一个符合要求的目标会被Make作为默认的依赖树节点。
4,伪目标:编译系统的“”终极目标意愿“”,但不是具体的TARGET
5,Make程序对makefile的内容逐条解析:
变量赋值,环境检测等初始化操作
按照规则生成所有依赖树
根据用户选择的依赖树,从叶到根逐步生成目标文件
6,main.mk解析
对编译环境的检查:比如java版本
必要的前期处理
引用其他Makefile文件
设置全局变量
各种函数的实现