makefile工作方式

Posted shilipojianshen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了makefile工作方式相关的知识,希望对你有一定的参考价值。

GNU的make工作时的执行步骤如下:(想来其它的make也是类似)

  1. 读入所有的Makefile。
  2. 读入被include的其它Makefile。
  3. 初始化文件中的变量。
  4. 推导隐晦规则,并分析所有规则。
  5. 为所有的目标文件创建依赖关系链。
  6. 根据依赖关系,决定哪些目标要重新生成。
  7. 执行生成命令。

1-5步为第一个阶段,6-7为第二个阶段。第一个阶段中,如果定义的变量被使用了,那么,make会把其展开在使用的位置。但make并不会完全马上展开,make使用的是拖延战术,如果变量出现在依赖关系的规则中,那么仅当这条依赖被决定要使用了,变量才会在其内部展开。

当然,这个工作方式你不一定要清楚,但是知道这个方式你也会对make更为熟悉。有了这个基础,后续部分也就容易看懂了。

以上是关于makefile工作方式的主要内容,如果未能解决你的问题,请参考以下文章

013.Makefile

是否有一种可移植的方式在 Makefile 中制作可移植的可选依赖项?

如何为Ocaml项目生成正确的makefile

makefile学习与Cmake进阶

补基础之shell 和makefile

Makefile的基本规则