make'包括'在哪里?找文件?

时间:2014-12-17 19:11:39

标签: makefile environment-variables

这似乎(可能是)很明显,但我找不到它。

make include在哪里查找要包含的文件?像这样:

# /mydir/makefile
include basemakefile

文件basemakefile位于其他我不想硬编码的地方。更新$PATH对我不起作用。

编辑:我真正想要的是一个环境变量来控制它。没有PATH,但Etan表示您可以使用MAKEFLAGS=-I/my/path/。是否应该像这样滥用MAKEFLAGS是值得怀疑的。

2 个答案:

答案 0 :(得分:1)

从您链接到的手册部分开始:

  

如果指定的名称不是以斜杠开头,并且在当前目录中找不到该文件,则会搜索其他几个目录。首先,搜索您使用'-I'或'--include-dir'选项指定的任何目录(请参阅选项摘要)。然后按以下顺序搜索以下目录(如果存在):前缀 / include(通常为/ usr / local / include)/ usr / gnu / include,/ usr / local / include,/ USR /包括

答案 1 :(得分:1)

对于问题的编辑版本,Etan的评论是正确的答案。在您的环境中执行此操作

export MAKEFLAGS=-I/my/path

这不是滥用,它是GNU Make Manual中涵盖的变量MAKEFLAGS的正常使用。