MAKEFILES变量环境

时间:2014-01-06 04:15:15

标签: makefile environment-variables

如何使用MAKEFILES变量环境?我在bash MAKEFILES=/home/toker/mymake中写道,但如果我正在运行/home/toker/bundocode/gettingstart/testMF/Makefile,那么/home/toker/mymake就不会执行。当我在bash中输入$MAKEFILES时,会显示bash: /home/toker/mymake: Permission denied

1 个答案:

答案 0 :(得分:0)

MAKEFILES变量包含一个或多个makefile,而不是make程序。从上面的消息看,mymake是您正在尝试运行的make程序。 shell决定运行哪些程序(通过查看$PATH环境变量中列出的目录)并且shell不会特别关注MAKEFILES变量。只有一次make运行它会查看MAKEFILES变量以查看它可能要解析的其他makefile。

/usr/toker/mymake文件中有什么内容? 运行... / Makefile 是什么意思?一个通常运行 make,而不是makefile。然后在makefile中进行读取。有一些方法可以将makefile更改为可执行文件,但我认为这不是你在这里寻找的。

ETA:

如果文件/usr/toker/mymake实际上是一个makefile(BTW,惯例通常使用.mk扩展来表示makefile,虽然没有真正的官方扩展名),那么你可以这样做:

$ cat /usr/toker/mymake
$(info loaded /usr/toker/mymake)
foo: ; @echo building $@

$ export MAKEFILES=/usr/toker/mymake

$ cat Makefile
bar: foo ; @echo building $@

$ make
loaded /usr/toker/mymake
building foo
building bar

如果你可以展示你所做的确切示例(显示你输入的makefile和命令以及你得到的结果)并解释你对它不了解的内容,那么我们可以更准确地看到发生了什么而不是你试图用文字描述它。)