Makefile中的特殊情况模式规则

时间:2013-04-25 17:07:10

标签: makefile rule

我对具有给定扩展名的文件有一个通用规则,但我想为带有前缀的文件添加特殊情况。我试过这个:

special-%.dat: special-%.raw
    echo "Running rule 1"

%.dat:
    echo "Running rule 2"

但是当我运行make special-1.dat时,它会忽略第一个规则并运行第二个规则。切换规则的顺序没有区别。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

文件special-1.raw是否存在?如果该文件不存在(并且您没有可以创建它的规则),make将永远不会选择此规则,因为先决条件不可用。这本身并不是一个错误:只有当make能够找到没有可以构建这个目标的规则时,它才会失败。

运行make -d将准确地向您展示make如何递归地考虑每个目标及其先决条件。