2012-01-24 130 views
4

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

目前我看到一个“等待未完成的工作”消息&然后许多行输出,而现有的make程序完成。

回答

3

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

当然,你可以随时点击CTRL-C来停止制作。

1

我看到这是一个古老的线程,但答案是不确定的。这一直对我很好:

#!/usr/bin/make -f 

MAKEPID:= $(shell echo $$PPID) 

$(mytargets): 
    @script_that_runs_in_parallel.sh [email protected] || kill -TERM $(MAKEPID) 

这是非常残酷的,但它的工作。