4.查找重建所有已读取的 makefile 文件的规则(如果存在一个目标是当前读取的 某一个makefile 文件,则执行此规则重建此 makefile 文件,完成以后从第一步开始重新执行)
5.初始化变量值并展开那些需要立即展开的变量和函数并根据预设条件确定执行分支
6.根据“终极目标”以及其他目标的依赖关系建立依赖关系链表
7.执行除“终极目标”以外的所有的目标的规则(规则中如果依赖文件中任一个 文件的时间戳比目标文件新,则使用规则所定义的命令重建目标文件)
8.执行“终极目标”所在的规则
说明:
执行一个规则的过程是这样的:
对于一个存在的规则(明确规则和隐含规则)首先,make程序将比较目标文件和所有的依赖文件的时间戳。如果目标的时间戳比所有依赖文件的时间戳更新(依赖文件在上一次执行make之后没有被修改),那么什么也不做。否则(依赖文件中的某一个或者全部在上一次执行make后已经被修改过),规则所定义的重建目标的命令将会被执行。这就是make工作的基础,也是其执行规制所定 义命令的依据。