Makefile 生成目标模式中的多个%

Makefile 生成目标模式中的多个%,makefile,pattern-matching,Makefile,Pattern Matching,是否可以将GNUmake中的模式与多个%表达式匹配?比方说,我有两个目标,由两个单词组成,用下划线分隔,我需要在前提条件中访问这两个单词,例如目标hello\u world应该要求hello和world。其中一个来自有限的集合,另一个应该匹配任何东西。我想出了 GREETING=hello hi howdy $(addsuffix _%,$(GREETING)): % ??? 因此,我可以提取单个%,但我找不到访问所用问候语的方法。我有完整的匹配项,@。(当然,您可以对其进行某种破解,用空格替

是否可以将GNU
make
中的模式与多个
%
表达式匹配?比方说,我有两个目标,由两个单词组成,用下划线分隔,我需要在前提条件中访问这两个单词,例如目标
hello\u world
应该要求
hello
world
。其中一个来自有限的集合,另一个应该匹配任何东西。我想出了

GREETING=hello hi howdy
$(addsuffix _%,$(GREETING)): % ???
因此,我可以提取单个
%
,但我找不到访问所用问候语的方法。我有完整的匹配项,
@
。(当然,您可以对其进行某种破解,用空格替换下划线并使用
findstring
,但我正在寻找更通用的方法。)


理想情况下,会有一种方法来解析多个
%
——比如未知数,比如在正则表达式中可以有多个捕获组。

很抱歉,但据我所知,GNU
make
不能以这种方式使用。因为@fuzzxl表明GNU make无法在这里执行您想要的操作。根据你的目标看起来像什么以及列表来自哪里,有各种各样的方法来获得你想要的东西,但它们不是真正意义上的“通用”。有趣。这是一个不合理的要求吗?在我的特定用例中,我有几个
gnuplot
脚本,我想使用
make
将它们提取到不同数据集的图中。例如,
maketest\u4.eps
应该调用
gnuplot-E“j=4”test.gp
。我可以使用每个gnuplot文件的一条规则来实现这一点。我希望对多个文件有一个规则,而不仅仅是
test.gp
。还有更好的方法吗?@Jonas你解决过这个问题吗?我现在也在尝试同样的事情!很抱歉,据我所知,GNU
make
不能以这种方式使用。因为@fuzzxl表明GNU make不能在这里做你想做的事情。根据你的目标看起来像什么以及列表来自哪里,有各种各样的方法来获得你想要的东西,但它们不是真正意义上的“通用”。有趣。这是一个不合理的要求吗?在我的特定用例中,我有几个
gnuplot
脚本,我想使用
make
将它们提取到不同数据集的图中。例如,
maketest\u4.eps
应该调用
gnuplot-E“j=4”test.gp
。我可以使用每个gnuplot文件的一条规则来实现这一点。我希望对多个文件有一个规则,而不仅仅是
test.gp
。还有更好的方法吗?@Jonas你解决过这个问题吗?我现在也在尝试同样的事情!恐怕我最终还是围绕这个问题工作了。