参考资料:徐海兵.GNU make中文手册
-
默认的情况下,make 会在工作目录(执行 make 的目录)下按照文件名顺序寻找
makefile 文件读取并执行,查找的文件名顺序为:GNUmakefile
、makefile
、
Makefile
。 -
通常应该使用
makefile
或者Makefile
作为一个 makefile 的文件名(我们推
荐使用Makefile
,首字母大写而比较显著,一般在一个目录中和当前目录的一些重要 文 件 ( README,Chagelist 等 ) 靠 近 , 在 寻 找 时 会 比 较 容 易 的 发 现 它 )。 而GNUmakefile
是我们不推荐使用的文件名,因为以此命名的文件只有GNU make
才可以识别,而其他版本的 make 程序只会在工作目录下makefile
和Makefile
这两个文件。 -
如果make程序在工作目录下无法找到以上三个文件中的任何一个,它将不读取任
何其他文件作为解析对象。但是根据make隐含规则的特性,我们可以通过命令行指定一个目标,如果当前目录下存在符合此目标的依赖文件,那么这个命令行所指定的目标将会被创建或者更新,参见注释。(详细可参考 第十章 make的隐含规则)当 makefile 文件的命名不是这三个任何一个时,需要通过 make 的-f
或者--file
选项来指定 make 读取的 makefile 文件。给 make 指定 makefile 文件的格式为:-fNAME
或者—file=NAME
,它指定文件NAME
作为执行 make 时读取的 makefile文件。 -
也可以通过多个
-f
或者--file
选项来指定多个需要读取的 makefile 文件,
多个 makefile 文件将会被按照指定的顺序进行链接并被 make 解析执行。当通过-f
或者--file
指定 make 读取 makefile 的文件时,make 就不再自动查找这三个标准命名的 makefile 文件。