如何在Makefile中使用算术处理模式规则?
我的Makefile包含以下规则:如何在Makefile中使用算术处理模式规则?,makefile,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
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?我只看到不雅观的解决方案(比如用base 1命名我的文件,例如,result niiiii
)
PS&FWIW,我使用GNU Make 3.81,你不能直接这样做。您可以为没有先决条件的
result-%
创建模式规则,然后可以单独声明先决条件:
result-n1: inputs
foo $^
result-%:
hashandmash $^ > $@
result-n2: result-n1
result-n3: result-n2
...
result-n20: result-n19
谢谢!这已经比我的示例Makefile更清晰、更简单了。