如何检查GNU Make是否支持Guile

3
如何从命令行检查GNU Make是否构建有Guile支持?
在Makefile中,可以通过分析.FEATURES变量(参见文档)来确定它是否具有Guile支持。
2个回答

4

一种可能的方法是使用标准输入中的准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

这个命令将会输出'guile'或者什么也不输出。

3

正如@ruvim所指出的,手册中说

您可以通过检查.FEATURES变量中是否包含单词guile来确定GNU Guile支持是否可用。

$(if $(filter guile,${.FEATURES}) \
  ,$(info Guile suppoerted, yay!) \
  ,$(error Guile not supported - update your make))

我只需要一个最短的命令行单行程序。 关于语法 - $(...) 变体也是正确的语法(参见文档)。 - ruvim
1
@ruvim 啊,抱歉,我把你的 shell 行当成了“make”配方!天哪,我得多出去走走了。最短的测试可能是使用 --eval 并保存一个管道? - bobbogo
是的,谢谢您!我已经添加了--eval变量作为最佳解决方案。 - ruvim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接