《Makefile 进阶之路三》 这里有你对Makefile所有的畅想

  前两篇介绍了Makefile的基本语法和一些小技巧,如果你仅仅是为了了解Makefile的知识,那么就可以到此为止了。以下将介绍Makefile的细节综述,带领真正需要深刻了解Makefile的同志一步步修炼成仙。为了摆脱误人子弟的嫌疑,我贴出Makefiel手册,自行选择阅读。手册 提取码yaff 

 好的,下面是从入门到放弃教程。

下面的部分内容可能前面已经讲过,但是还是希望新手再次阅读,因为手册描述十分的清晰经典,另外,听说,Makefile编写出神入化,能够呼风唤雨,白日飞升 :)

-------------------------以下为正文

3.1 Makefile内容

  完整的Makefile总共包括五部分内容:显式规则、隐含规则、变量定义、指示符和注释。

  1. 显式规则:它描述了在何种情况下如何更新一个或者多个被称为目标的文件(Makefile 的目标文件)。书写 Makefile 时需要明确地给出目标文件、目标的依赖文件列表以及更新目标文件所需要的命令(有些规则没有命令,这样的规则只是纯粹的描述了文件之间的依赖关系)。

  2. 隐含规则:它是make根据一类目标文件(典型的是根据文件名的后缀)而自动推导出来的规则。make根据目标文件的名,自动产生目标的依赖文件并使用默认的命令来对目标进行更新(建立一个规则)。

  3. 变量定义:使用一个字符或字符串代表一段文本串,当定义了一个变量以后,Makefile后续在需要使用此文本串的地方,通过引用这个变量来实现对文本串的使用。

  4. Makefile 指示符:指示符指明在 make 程序读取 makefile 文件过程中所要执行的一个动作。

    1.读取一个文件,读取给定文件名的文件,将其内容作为makefile文件的一部分。

    2.决定(通常是根据一个变量的得值)处理或者忽略Makefile中的某一特定部分。

    3.定义一个多行变量

  5. 注释:Makefile 中“#”字符后的内容被作为是注释内容(和 shell 脚本一样)处理。

3.2 Makefile指示符(include)

  就像写C程序一样,我们不可能把所有的代码都写入一个文件,这样不仅结构复杂,而且容易出错。写Makefile也是这样,如果一个Makefile文件太大,或者有一部分Makefile文件功能独立,我们可以单独将它写进一个Makefile文件,然后在需要使用它的地方使用“include”将它引用过来。include”指示符告诉 make 暂停读取当前的 Makefile,而转去读取“include”指定的一个或者多个文件,完成以后再继续当前 Makefile 的读取。书写格式如下:

  include FILENAMES...

  FILENAMES是shell所支持的文件名(可以使用通配符), 指示符“include”所在的行可以一个或者多个空格(make程序在处理时将忽略这些空格)开始,切忌不能以[Tab]字符开始(如果一行以[Tab]字符开始make程序将此行作为一个命令行来处理)。

例:存在三个".mk"文件,a.mk b.mk c.mk

 

 

猜你喜欢

转载自www.cnblogs.com/PPWEI/p/10548479.html
0条评论
添加一条新回复