我有很多对不同扩展名的文件目标/依赖项,我不能做一个隐式规则,因为模式太笼统而且会与其他隐式规则发生冲突......有没有办法分享规则身体很短暂?
(例如,目标文件在有序变量中,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 $< $@
名字实际上可以是随机的
答案 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,难以理解或维护。