给出node_modules
定义为@atlaskit
的{{1}},如何打印其最终(扩展)值?
运行Makefile
会打印libdir
,而我想查看libdir = ${exec_prefix}/lib
(假设make -pns | grep -e "^libdir" | uniq
是libdir = ${exec_prefix}/lib
)。
是否可以不将/usr/local/lib
附加另一条规则?
答案 0 :(得分:1)
问题在于您所说的“最终值”。对于递归变量,它是文字字符串$(exec_prefix}/lib
。并且仅在变量用${libdir}
引用时进行扩展。
但是简单变量会立即展开。因此libdir:=${libdir}
和make -np
将产生所需的结果。但是其他方式是不可能的。
顺便说一句。您可以像这样编写通用的“打印”规则(在GMSL中可见):
print-%:
@echo value of "$*" is "$($*)"
然后只需执行make print-libdir
答案 1 :(得分:1)
那又怎么样:
printf 'include Makefile\nfoo:\n\t@echo "$(libdir)"\n' | make -f - foo
请注意,最终值的概念很难用make定义。这可能取决于特定的目标...