如何使用MAKEFILES
变量环境?我在bash MAKEFILES=/home/toker/mymake
中写道,但如果我正在运行/home/toker/bundocode/gettingstart/testMF/Makefile
,那么/home/toker/mymake
就不会执行。当我在bash中输入$MAKEFILES
时,会显示bash: /home/toker/mymake: Permission denied
。
答案 0 :(得分:0)
MAKEFILES
变量包含一个或多个makefile,而不是make程序。从上面的消息看,mymake
是您正在尝试运行的make程序。 shell决定运行哪些程序(通过查看$PATH
环境变量中列出的目录)并且shell不会特别关注MAKEFILES
变量。只有一次make运行它会查看MAKEFILES
变量以查看它可能要解析的其他makefile。
/usr/toker/mymake
文件中有什么内容? 运行... / Makefile 是什么意思?一个通常运行 make,而不是makefile。然后在makefile中进行读取。有一些方法可以将makefile更改为可执行文件,但我认为这不是你在这里寻找的。 p>
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和命令以及你得到的结果)并解释你对它不了解的内容,那么我们可以更准确地看到发生了什么而不是你试图用文字描述它。)