摘自《跟我一起写Makefile》
GUN的make工作时的执行步骤如下:
1)读入所有的Makefile。
2)读入被include的其他Makeifle。
3)初始化文件中的变量。
4)推导隐晦规则,并分析所有规则。
5)为所有的目标文件创建依赖关系链。
6)根据依赖关系,决定哪些目标要重新生成。
7)执行生成命令。
1-5步为第一个阶段,6-7为第二阶段。第一个阶段中,如果定义的变量被使用了,那么,make会把展开在使用的位置。但make并不会马上展开,make会使用拖延战术,如果变量出现在依赖关系的规则中,那么仅当这条依赖被决定要使用了,变量才会展开。