【发布时间】:2016-01-14 00:41:07
【问题描述】:
我有一个规则something,它适用于变量VAR。我还有另一条规则something-all,需要运行something,并将VAR 设置为vars 中的每个值。
vars = hello world
something:
echo $(VAR)
something-all:
$(foreach VAR,$(vars),something)
这不太行,我明白了
noob@work:~/Desktop$ make something-all
something something
make: something: No such file or directory
make: *** [something-all] Error 1
它可能应该打印hello\nworld。
我曾经通过从% 检索VAR 来使用通配符规则来执行此操作,但我觉得这样做的方法是错误的。看起来像这样:
vars = hello world
all: $(foreach VAR,$(vars),something-$(VAR))
something-%:
echo $*
【问题讨论】:
-
您能否详细说明“通配符规则”的方法?您可能正在描述我想到的解决方案,但您可能不会。
-
谢谢@Beta 我已经添加了这个。
-
@Beta 立即查看,谢谢
-
所以你不想使用模式规则。你所说的“规范”是什么意思?
-
@Beta:我会接受 GNU Make 的花哨/高级用户会使用的任何规范,例如 automake,和/但仍然是人类可读的。