标签:
在一个完整的 Makefile 中,包含了 5 个东西:显式规则、隐含规则、变量定义、指示符和注释。
需要注意的地方:
Makefile 中第一个规则之后的所有以[Tab]字符开始的的行, make 程序都会将其交给系统 shell 程序去解释执行。因此,以[Tab]字符开始的注释行也会被交给 shell 来处理,此命令行是否需要被执行( shell 执行或者忽略)是由系统 shell 程序来判决的。
默认的情况下, make 会在工作目录(执行 make 的目录)下按照文件名顺序寻找makefile 文件读取并执行,查找的文件名顺序为:“ GNUmakefile”、“ makefile”、“ Makefile”。
通常应该使用“ makefile”或者“ Makefile”作为一个 makefile 的文件名(我们推荐使用“ Makefile”,首字母大写而比较显著,一般在一个目录中和当前目录的一些重要 文 件 ( README,Chagelist 等 ) 靠 近 , 在 寻 找 时 会 比 较 容 易 的 发 现 它 ) 。 而“ GNUmakefile” 是我们不推荐使用的文件名, 因为以此命名的文件只有“ GNU make”才可以识别,而其他版本的 make 程序只会在工作目录下“ makefile”和“ Makefile”这两个文件。
当 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 文件。
include”指示符告诉 make 暂停读取当前的 Makefile,而转去读取“ include”指定的一个或者多个文件,完成以后再继续当前 Makefile 的读取。 Makefile 中指示符“ include”书写在独立的一行,其形式如下:
include FILENAMES...
FILENAMES 是 shell 所支持的文件名(可以使用通配符)。
不能以[tab]开头。
标签:
原文地址:http://www.cnblogs.com/ynxf/p/5954287.html