这个章节主要讲的是 Makefile 中包含其他的文件。包含其他文件使用的关键字是 "include",和 C 语言包含头文件的方式相同。
当 make 读取到 "include" 关键字的时候,会暂停读取当前的 Makefile,而是去读 "include" 包含的文件,读取结束后再继读取当前的 Makefile 文件。"include" 使用的具体方式如下:
filenames 是 shell 支持的文件名(可以使用通配符表示的文件)。
注意:"include" 关键字所在的行首可以包含一个或者是多个的空格(读取的时候空格会被自动的忽略),但是不能使用 Tab 开始,否则会把 "include" 当作式命令来处理。包含的多个文件之间要使用空格分隔开。使用 "include" 包含进来的 Makefile 文件中,如果存在函数或者是变量的引用,它们会在包含的 Makefile 中展开。
include 通常使用在以下的场合:
注意:如果使用 "include" 包含文件的时候,指定的文件不是文件的绝对路径或者是为当前文件下没有这个文件,make 会根据文件名会在以下几个路径中去找,首先我们在执行 make 命令的时候可以加入选项 "-I" 或 "--include-dir" 后面添加上指定的路径,如果文件存在就会被使用,如果文件不存在将会在其他的几个路径中搜索:"usr/gnu/include"、"usr/local/include" 和 "usr/include"。
如果在上面的路径没有找到 "include" 指定的文件,make 将会提示一个文件没有找到的警示提示,但是不会退出,而是继续执行 Makefile 的后续的内容。当完成读取整个 Makefile 后,make 将试图使用规则来创建通过 "include" 指定但不存在的文件。当不能创建的时候,文件将会保存退出。
使用时,通常用 "-include" 来代替 "include" 来忽略文件不存在或者是无法创建的错误提示,使用格式如下:
使用方法和 "include" 的使用方法相同。
这两种方式之间的区别: