如何从命令行检查GNU Make是否构建有Guile支持?
在Makefile中,可以通过分析.FEATURES变量(参见文档)来确定它是否具有Guile支持。
在Makefile中,可以通过分析.FEATURES变量(参见文档)来确定它是否具有Guile支持。
一种可能的方法是使用标准输入中的准makefile。
因此,可以通过以下方式打印.FEATURES
变量:
echo '$(info $(.FEATURES))' | make -f -
guile
字符串(如果支持),否则不会有任何输出:echo '$(info $(filter guile,$(.FEATURES)))' | make -f - 2>/dev/null
使用 grep
的变体:
echo '$(info $(.FEATURES))' | make -f - 2>/dev/null | grep -wo guile
正如 @bobbogo 所提到的,我们可以完全避免使用管道,而是使用 --eval
选项:
make --eval '$(info $(filter guile,$(.FEATURES)))' 2>/dev/null
正如@ruvim所指出的,手册中说
您可以通过检查
.FEATURES
变量中是否包含单词guile来确定GNU Guile支持是否可用。
$(if $(filter guile,${.FEATURES}) \
,$(info Guile suppoerted, yay!) \
,$(error Guile not supported - update your make))
$(...)
变体也是正确的语法(参见文档)。 - ruvim--eval
并保存一个管道? - bobbogo--eval
变量作为最佳解决方案。 - ruvim