使用parallel make立即停止编译

时间:2012-01-24 02:45:14

标签: makefile gnu-make

有没有办法让GNU make的并行调用(即make -jN)在遇到错误时立即停止所有编译?

目前我看到“等待未完成的工作”消息&然后在现有的生产过程中完成了许多输出线。

2 个答案:

答案 0 :(得分:3)

没有办法做到这一点(在GNU make中)。唯一可能的方法是在你的所有食谱中添加一个样板节,这样如果它们失败了,你就会捕获失败并使用killall或类似东西来杀死所有的make实例。当然很棘手和危险。

当然你总是可以自己点击CTRL-C来停止制作。

答案 1 :(得分:2)

我认为这是一个老线程,但答案并不明确。这对我来说一直很好:

#!/usr/bin/make -f

MAKEPID:= $(shell echo $$PPID)

$(mytargets):
    @script_that_runs_in_parallel.sh $@ || kill -TERM $(MAKEPID)

这很残酷,但它确实起到了作用。