如何检查 GNU Make 是否支持 Guile
How to check whether GNU Make supports Guile
如何从命令行检查 GNU Make 是否支持 Guile?
在 Makefile 中可以通过分析 .FEATURES
变量来确定(参见 documentation)。
一种可能的方法是在标准输入中使用准 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' 或什么都不打印。
正如@ruvim 指出的那样,手册说
You can determine whether GNU Guile support is available by checking the .FEATURES
variable for the word guile.
$(if $(filter guile,${.FEATURES}) \
,$(info Guile suppoerted, yay!) \
,$(error Guile not supported - update your make))
如何从命令行检查 GNU Make 是否支持 Guile?
在 Makefile 中可以通过分析 .FEATURES
变量来确定(参见 documentation)。
一种可能的方法是在标准输入中使用准 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' 或什么都不打印。
正如@ruvim 指出的那样,手册说
You can determine whether GNU Guile support is available by checking the
.FEATURES
variable for the word guile.
$(if $(filter guile,${.FEATURES}) \
,$(info Guile suppoerted, yay!) \
,$(error Guile not supported - update your make))