有没有办法让GNU make的并行调用(即make -jN)在遇到错误时立即停止所有编译?
目前我看到“等待未完成的工作”消息&然后在现有的生产过程中完成了许多输出线。
答案 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)
这很残酷,但它确实起到了作用。