1.makefile 的组成及作用
makefile由一组rule(规则)组成,规则的语法如下:
obj1 obj2 objN: prerequisite1 prerequisite2 prerequisite3 prerequisiteN
(tab) commands
一个规则由三部分组成
- obj 即目标部分。
- 必要条件部分(或者说依赖,即生成目标文件的依赖文件)。
- commands 从必要条件生成obj 需要执行的 命令。
这一组规则会生成一个叫dependency graph 的东西,可以翻译成依存图、依赖链。make 的最终任务就是根据makefie 文件中的规则,来生成这个dependency graph。dependency graph 决定make 是否要更新特定的目标,如果需要则需要执行相应的commands。
2.rule 的分类
- explicit rule
- implicit rule
- suffix rule
- static pattern rule
- pattern rule
可以将make 的rule 分为 explicit rule 和 implicit rule两类。 即具体规则和隐含规则。所谓具体规则,就是讲讲rule 明明白白的写出来,不需要任何的扩展之类的操作。而所谓的隐含规则,则是指ÿ