规则中的makefile反引号不设置变量

时间:2014-10-01 22:27:41

标签: makefile

我有一个包含以下规则的makefile,

所有

echo `${PWD_COMMAND}`; \
r=`${PWD_COMMAND}`; export r; \
sdir=`cd $(srcdir); ${PWD_COMMAND}`; export sdir; \
echo "r $(r)"; \
echo "sdir $(sdir)"; \
libsrcdir="$$sdir/mpfr"; \
echo $(libsrcdir)

echo $ {PWD_COMMAND}工作正常,我找回了正确的目录, 但是没有设置r变量和sdir变量。 我得到了输出

"r "
"sdir "
"/mpfr"

任何人都可以解释为什么这不起作用吗?

谢谢,比尔

1 个答案:

答案 0 :(得分:0)

我假设${PWD_COMMAND}是一个make变量?和$(srcdir)一样?

但是$(r)$(sdir)呢?那些是变量还是shell变量?

在那条线上扩展它们的是什么?

set -x放在该长行的开头,看看你在输出中得到了什么。

提示:你不会得到你期望看到的东西。

双重提示:比较$(sdir)echo "sdir $(sdir)"(不工作)和$$sdir/mpfr(虽然目前无法看到,但是工作)。