我对具有给定扩展名的文件有一个通用规则,但我想为带有前缀的文件添加特殊情况。我试过这个:
special-%.dat: special-%.raw
echo "Running rule 1"
%.dat:
echo "Running rule 2"
但是当我运行make special-1.dat
时,它会忽略第一个规则并运行第二个规则。切换规则的顺序没有区别。我该如何解决这个问题?
答案 0 :(得分:2)
文件special-1.raw
是否存在?如果该文件不存在(并且您没有可以创建它的规则),make将永远不会选择此规则,因为先决条件不可用。这本身并不是一个错误:只有当make能够找到没有可以构建这个目标的规则时,它才会失败。
运行make -d
将准确地向您展示make如何递归地考虑每个目标及其先决条件。