Makefile 生成目标模式中的多个%
是否可以将GNUMakefile 生成目标模式中的多个%,makefile,pattern-matching,Makefile,Pattern Matching,是否可以将GNUmake中的模式与多个%表达式匹配?比方说,我有两个目标,由两个单词组成,用下划线分隔,我需要在前提条件中访问这两个单词,例如目标hello\u world应该要求hello和world。其中一个来自有限的集合,另一个应该匹配任何东西。我想出了 GREETING=hello hi howdy $(addsuffix _%,$(GREETING)): % ??? 因此,我可以提取单个%,但我找不到访问所用问候语的方法。我有完整的匹配项,@。(当然,您可以对其进行某种破解,用空格替
make
中的模式与多个%
表达式匹配?比方说,我有两个目标,由两个单词组成,用下划线分隔,我需要在前提条件中访问这两个单词,例如目标hello\u world
应该要求hello
和world
。其中一个来自有限的集合,另一个应该匹配任何东西。我想出了
GREETING=hello hi howdy
$(addsuffix _%,$(GREETING)): % ???
因此,我可以提取单个%
,但我找不到访问所用问候语的方法。我有完整的匹配项,@
。(当然,您可以对其进行某种破解,用空格替换下划线并使用findstring
,但我正在寻找更通用的方法。)
理想情况下,会有一种方法来解析多个
%
——比如未知数,比如在正则表达式中可以有多个捕获组。很抱歉,但据我所知,GNUmake
不能以这种方式使用。因为@fuzzxl表明GNU make无法在这里执行您想要的操作。根据你的目标看起来像什么以及列表来自哪里,有各种各样的方法来获得你想要的东西,但它们不是真正意义上的“通用”。有趣。这是一个不合理的要求吗?在我的特定用例中,我有几个gnuplot
脚本,我想使用make
将它们提取到不同数据集的图中。例如,maketest\u4.eps
应该调用gnuplot-E“j=4”test.gp
。我可以使用每个gnuplot文件的一条规则来实现这一点。我希望对多个文件有一个规则,而不仅仅是test.gp
。还有更好的方法吗?@Jonas你解决过这个问题吗?我现在也在尝试同样的事情!很抱歉,据我所知,GNUmake
不能以这种方式使用。因为@fuzzxl表明GNU make不能在这里做你想做的事情。根据你的目标看起来像什么以及列表来自哪里,有各种各样的方法来获得你想要的东西,但它们不是真正意义上的“通用”。有趣。这是一个不合理的要求吗?在我的特定用例中,我有几个gnuplot
脚本,我想使用make
将它们提取到不同数据集的图中。例如,maketest\u4.eps
应该调用gnuplot-E“j=4”test.gp
。我可以使用每个gnuplot文件的一条规则来实现这一点。我希望对多个文件有一个规则,而不仅仅是test.gp
。还有更好的方法吗?@Jonas你解决过这个问题吗?我现在也在尝试同样的事情!恐怕我最终还是围绕这个问题工作了。