共享命令但与隐式规则冲突的目标/依赖项的Makefile对

时间:2015-03-25 15:06:53

标签: makefile

我有很多对不同扩展名的文件目标/依赖项,我不能做一个隐式规则,因为模式太笼统而且会与其他隐式规则发生冲突......有没有办法分享规则身体很短暂?

(例如,目标文件在有序变量中,deps在另一个变量中以相同的方式排序)

例如:

foo.a : foo.b
    cmd1 $< $@

bar.a : bar.b
    cmd2 $< $@

foo1.a : foo.b
    cmd2 $< $@

bar1.a : foo.b
    cmd1 $< $@

foo2.a : something.b
    cmd2 $< $@

bar2.a : something2.b
    cmd1 $< $@

名字实际上可以是随机的

1 个答案:

答案 0 :(得分:2)

你可以缩短一点:

foo.a bar1.a foo1.a : foo.b

bar2.a : something2.b

foo.a bar1.a bar2.a :
    cmd1 $< $@

bar.a : bar.b

foo2.a : something.b

bar.a foo1.a foo2.a :
    cmd2 $< $@

你也可以根据你的建议,在没有来自一对变量的命令的情况下构建所有这些规则,但我不建议:结果将是一个神秘的makefile,难以理解或维护。