Немедленно прекратите компиляцию с помощью параллельного make - PullRequest
5 голосов
/ 24 января 2012

Есть ли способ сделать параллельные вызовы GNU make (т.е. make -jN) немедленно прекратить ВСЕ компиляцию всякий раз, когда она обнаруживает ошибку?

В настоящее время я вижу сообщение "Ожидание незавершенных заданий", а затем выводится много строк, пока существующие процессы сборки завершаются.

Ответы [ 2 ]

3 голосов
/ 24 января 2012

Нет способа сделать это (в GNU make).Единственный возможный способ - добавить стандартный шаблон ко всем вашим рецептам так, чтобы в случае их неудачи вы уловили ошибку и использовали killall или что-то подобное для уничтожения всех экземпляров make.Конечно, хитро и опасно.

Конечно, вы всегда можете нажать CTRL-C, чтобы остановить make.

2 голосов
/ 24 июня 2014

Я вижу, что это старая ветка, но ответ не окончательный.Это всегда хорошо работало для меня:

#!/usr/bin/make -f

MAKEPID:= $(shell echo $$PPID)

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

Это довольно брутально, но это делает работу.

...