我刚刚交了一个包含以下内容的Makefile:
rpm: clean $(JARFILE)
# commands here...
正如您可能已经猜到的那样,clean
目标会删除jar(如果存在)。这个Makefile是否正确?是否可以保证clean
目标将在JARFILE
目标之前运行?我不是问风格,而是正确性。是否有可能构建JARFILE
但是被clean
目标吹走了?
我使用gnu make这是我最感兴趣的东西;我不确定这是否可以移植到其他类型的品牌。
答案 0 :(得分:1)
如果您在没有启用任何并行性的情况下运行make(没有-j
),那么您的makefile将正常工作。 Make确保先决条件按照它们在makefile中列出的顺序构建,如果它们是串行运行的。
但是,如果启用-j
,则两个目标可能会并行运行,然后您可能遇到麻烦。