依赖项的Makefile顺序

时间:2016-12-06 23:35:15

标签: makefile gnu-make

我刚刚交了一个包含以下内容的Makefile:

rpm: clean $(JARFILE)
    # commands here...

正如您可能已经猜到的那样,clean目标会删除jar(如果存在)。这个Makefile是否正确?是否可以保证clean目标将在JARFILE目标之前运行?我不是问风格,而是正确性。是否有可能构建JARFILE但是被clean目标吹走了?

我使用gnu make这是我最感兴趣的东西;我不确定这是否可以移植到其他类型的品牌。

1 个答案:

答案 0 :(得分:1)

如果您在没有启用任何并行性的情况下运行make(没有-j),那么您的makefile将正常工作。 Make确保先决条件按照它们在makefile中列出的顺序构建,如果它们是串行运行的。

但是,如果启用-j,则两个目标可能会并行运行,然后您可能遇到麻烦。