我在我的 GNU makefile(以及其他)中有几个形式的规则
a b c d: x
program $^
ieprogram
只需一次调用即可创建文件 a、b、c 和 d。当我使用 运行它时gmake -j 4
,make 会产生四个program
并行运行,因为这些文件都不存在,并且没有一个文件依赖于另一个文件。
我可以通过提供“假依赖链”来解决这个问题(因为没有更好的术语):
a: x
program $^
b: a
c: b
d: c
有没有更优雅的方法来教 gmakeprogram
只运行一次,即使是在并行构建中?
编辑:任何解决方案都应该遵守对的依赖x
并且如果a - d
是最新的关于x
.