GNU make manual 翻译(四十四)
继续翻译
If the specified name does not start with a slash, and the file is not found in the current directory, several other directories are searched. First, any directories you have specified with the `-I' or `--include-dir' option are searched (*note Summary of Options: Options Summary.). Then the following directories (if they exist) are searched, in this order: `PREFIX/include' (normally `/usr/local/include' (1)) `/usr/gnu/include', `/usr/local/include', `/usr/include'. If an included makefile cannot be found in any of these directories, a warning message is generated, but it is not an immediately fatal error; processing of the makefile containing the `include' continues. Once it has finished reading makefiles, `make' will try to remake any that are out of date or don't exist. *Note How Makefiles Are Remade: Remaking Makefiles. Only after it has tried to find a way to remake a makefile and failed, will `make' diagnose the missing makefile as a fatal error.
如果指定的名字并不是以 / 开始,而且此文件也并不在当前目录里,那么有几个其他的目录会被搜索。
首先是 你通过 -I 或者 --include-dir 指定的目录。
然后是如下一些目录: PREFIX/include(通常是: /usr/local/include), /usr/gnu/include, /usr/local/include/, /usr/include
如果一个要包含的 makefile 根本没有出现在上述任何一个目录里面,会得到一个警告信息。但这并不是一个严重错误,发出include 动作的makefile得以被继续处理。当完成对makefile的读取后,make 将会使这重新生成任何旧的或者不存在的 makefile。
*Note How Makefiles Are Remade: Remaking Makefiles.
只有当 make 试图重新生成一个 makefile 失败是,才会认定发生了一个严重错误。
后文待续