2015-01-15 34 views
0

我的Makefile文件包含以下规则:如何在Makefile中使用算术进行模式规则?

result-n1 : inputs 
     foo $^ 

result-n2 : result-n1 
     hashandmash $^ > [email protected] 

result-n3 : result-n2 
     hashandmash $^ > [email protected] 

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

result-n20 : result-n19 
     hashandmash $^ > [email protected] 

我很想有只有一个模式规则。这将更加清晰,并将避免20的硬编码限制。

但你会如何做到这一点? How do you say result-nx取决于result-nx-1?我只看到不雅的解决方案(比如命名我的文件在基础1,例如,result-nIIIIIIII)。

PS & FWIW,我用GNU Make 3.81

回答

0

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

result-n1: inputs 
     foo $^ 

result-%: 
     hashandmash $^ > [email protected] 

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

谢谢!这已经比我的示例Makefile更清晰简单了。 – phs 2015-01-15 17:38:55