正在运行
echo -e "all:\n\techo '\$(value MAKEFILE_LIST)'" > /tmp/foo\$bar.mk
make -f /tmp/foo\$bar.mk将打印
echo ' /tmp/fooar.mk'
/tmp/fooar.mk从这里我们可以看到,MAKEFILE_LIST包含扩展的文件名。
如何获得Makefile的正确名称(包括美元符号)?
我的版本: GNU Make 4.2.1。
我的动机:实际上,美元符号是通往Makefile之路的一部分。我不能重命名该路径,因为它来自将运行make的人必须使用的Samba共享。
更新
作为http://savannah.gnu.org/bugs/?50823提交到上游。
更新
发布于 2017-04-18 08:01:18
这是一次黑客攻击,但无论如何:您可以定义make变量b=$$b
$ cat '/tmp/foo$bar.mk'
all:
echo '$(value MAKEFILE_LIST)'
$ gmake -f /tmp/foo\$bar.mk b='$$b'
echo ' /tmp/foo$bar.mk'
/tmp/foo$bar.mk这并不能阻止扩张,但实际上却是不可行的.
https://stackoverflow.com/questions/43466130
复制相似问题