make是以从上到下的顺序读入Makefile中的内容的。然而,处理Makefile中的语句却并非完全从上到下。
大体上,make处理一个Makefile分为两个阶段。第一个阶段包含:
1.make读入Makefile,以及Makefile中所包含的其他Makefile;
2.make分析并获得变量名、变量值、隐式规则和显示规则;
3.构建所有目标的关系树,以及它们的先决条件。
在第二个阶段,make基于第一个阶段所建立的内部结构分析哪些目标需要重新构建,以及需要执行哪些规则的命令来构建这些目标。
理解make处理Makefile的两个阶段对熟练地编写Makefile非常重要。