Makefile 设置其他生成文件的包含路径
发件人: 如果指定的名称不是以斜杠开头,并且文件不是 在当前目录中可以找到其他几个目录 搜索。首先,使用“-I”或指定的任何目录 搜索“--include dir”选项(请参见选项摘要)。然后 将按以下顺序搜索以下目录(如果存在): 前缀/包含(通常为/usr/local/include 1)/usr/gnu/include, /usr/local/include,/usr/include 那么,有没有一种方法可以设置makefile的include路径,其他makefile都是从该路径中包含的Makefile 设置其他生成文件的包含路径,makefile,Makefile,发件人: 如果指定的名称不是以斜杠开头,并且文件不是 在当前目录中可以找到其他几个目录 搜索。首先,使用“-I”或指定的任何目录 搜索“--include dir”选项(请参见选项摘要)。然后 将按以下顺序搜索以下目录(如果存在): 前缀/包含(通常为/usr/local/include 1)/usr/gnu/include, /usr/local/include,/usr/include 那么,有没有一种方法可以设置makefile的include路径,其他makefile都是从该路径中包含的
我不希望每次调用make时都必须传递
--include dir
。理论上,您应该能够将这些标志添加到makefile本身的MAKEFLAGS
变量中
发件人:
如果希望在每次运行make
时设置某些选项,例如“-k
”(请参阅选项摘要),则MAKEFLAGS
变量也很有用。只需在环境中为MAKEFLAGS
添加一个值。您还可以在makefile中设置MAKEFLAGS
,以指定也应对该makefile生效的其他标志。(请注意,不能以这种方式使用MFLAGS
。该变量仅为兼容性而设置;make不会以任何方式解释为其设置的值。)
但是一个快速的测试似乎表明这实际上不起作用
我认为VPATH
/VPATH
可能在这里有用,但一些快速测试似乎表明它不有用
这就意味着,据我所知,如果您不想在命令行上手动指定它们,那么每次运行时您都需要使用shell脚本/函数/等来处理添加它们的操作
尽管最后一个快速测试似乎表明,尽管文件设置
MAKEFLAGS
不起作用,环境变量route仍然起作用。因此,您可以在环境中设置MAKEFLAGS
,并且make应该正确地使用它。好的,我将使用MAKEFLAGS玩一会儿,看看是否可以使用它。vpath用于头包含,而不是makefiles包含。感谢vpath
是“先决条件”。由于make试图构建makefiles,因此认为make可能会使用它是一个不太可能的想法。您可以让它与%.mk:%.mk;cp$^$@
规则也在makefile中,但我没有尝试。在makefile中设置MAKEFLAGS
将不起作用,因为对MAKEFLAGS
值的更改只有在读入所有makefiles后才会解析,而不是每次设置MAKEFLAGS
变量时。当make解析所有makefile时,添加新的include目录显然没有帮助。@madscitist我想可能是这样的。我还认为make可能会在“查看它们是否可以构建”阶段再次尝试修改路径,但显然这不会发生,我不确定是否应该。vpath工作(或为此指定的指令)可能是处理此问题的好方法(尽管如果%.mk:%.mk
复制目标在大多数情况下都可以工作)。是的,实现此增强功能的最常见想法是使用vpath
搜索包含的文件。我觉得萨凡纳岛上有个漏洞。