Makefile 对 target/dependency 共享命令但与隐式规则冲突
Makefile pair of target/dependency that share command but conflicts with implicit rules
我有很多对 file-target/dependency 有不同的扩展,我不能做一个隐式规则,因为模式太笼统并且会与其他隐式规则冲突......有没有分享的方式规则正文的简短说明?
(例如,目标文件在一个有序变量中,而 dep 在另一个以相同方式排序的变量中)
例如:
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 $< $@
名字其实可以随便取的
你可以把它缩短一点:
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,难以理解或维护。
我有很多对 file-target/dependency 有不同的扩展,我不能做一个隐式规则,因为模式太笼统并且会与其他隐式规则冲突......有没有分享的方式规则正文的简短说明?
(例如,目标文件在一个有序变量中,而 dep 在另一个以相同方式排序的变量中)
例如:
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 $< $@
名字其实可以随便取的
你可以把它缩短一点:
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,难以理解或维护。