makefile rule
  | 
  | 
target: 生成目标,可执行文件或者中间object文件prerequisites: 生成target所需的文件,作为recipe的输入recipe: make需要执行的具体命令
Note: 每隔recipe前面需要有个tab。
换行使用\进行。
  | 
  | 
只有recipe,不依赖文件的target,称为phony targets, 如clean:
  | 
  | 
make执行流程
make读取当前目录下的makefile,从第一个rule开始执行,如果这个rule依赖其它文件,则make需要先执行依赖文件的rule。
使用变量
使用变量可以简化makefile的书写。
  | 
  | 
可以使用变量把object文件包含:
  | 
  | 
make自动推导规则
make具有隐藏推导规则的功能,可以省略依赖的.c文件和recipe规则。
  | 
  | 
清理目录的规则
  | 
  | 
这样规避了如果有clean文件生成的规则。
clean不能放在最前面,会被当成default rule执行。
make寻找makefile文件顺序
GNUmakefile, makefile and Makefile
建议使用Makefile,如果想用其它名字的文件,可以make -f指定文件名。