使 $* 检查字符串

Make $* check for string

我正在尝试检查 $* 是否与 hello 匹配。但是以下不起作用

 build: build-hello

 build-%:
 ifeq ($*, hello)
   echo Hello
 else
   echo World
 endif

ifeq 中的条件在 makefile 读取时处理——当 $* 仍为空白时。有几个解决方法:首先,您可以执行 build-hello: 规则,这将覆盖 build-hellobuild-% 规则。另一方面,如果您想最小化规则,则可以这样使用 $(if) 函数:

build-%:
   @echo $(if $(filter $*,hello),Hello,World)

或者,您也可以使用 shell 逻辑来完成此操作。