你如何在Makefile中使用算术进行模式规则?

时间:2015-01-15 15:13:14

标签: makefile

我的Makefile包含以下规则:

result-n1 : inputs
        foo $^

result-n2 : result-n1
        hashandmash $^ > $@

result-n3 : result-n2
        hashandmash $^ > $@

# ... [~ 50 more lines omitted for clarity]

result-n20 : result-n19
        hashandmash $^ > $@

我希望只有一个模式规则。这样会更清楚,并且会避免20处的硬编码限制。

但是你会怎么做?您怎么说result-n x 取决于result-n x-1 ?我只看到不优雅的解决方案(比如在基础1中命名我的文件,例如result-nIIIIIIII)。

PS& FWIW,我使用GNU Make 3.81

1 个答案:

答案 0 :(得分:0)

你不能直接这样做。您可以为没有先决条件的result-%创建模式规则,然后您可以单独声明先决条件:

result-n1: inputs
        foo $^

result-%:
        hashandmash $^ > $@

result-n2: result-n1
result-n3: result-n2
  ...
result-n20: result-n19