GNU make(つまりmake -jN)を並列呼び出しすると、エラーが発生したときにただちにすべてのコンパイルを停止する方法はありますか?すぐにコンパイルを並列に行う
現在、「未完了ジョブ待ち」メッセージ&は、既存のプロセスを完了している間に多くの行を出力します。
GNU make(つまりmake -jN)を並列呼び出しすると、エラーが発生したときにただちにすべてのコンパイルを停止する方法はありますか?すぐにコンパイルを並列に行う
現在、「未完了ジョブ待ち」メッセージ&は、既存のプロセスを完了している間に多くの行を出力します。
これを行う方法はありません(GNU makeで)。唯一可能な方法は、すべてのレシピに定型文を追加することです。失敗した場合は、失敗をキャッチしてkillallなどを使用してmakeのすべてのインスタンスを終了します。トリッキーで危険なことは確かです。
もちろん、CTRL-Cを押すといつでもmakeを終了できます。
これは古いスレッドですが、答えは確定していません。これはいつもうまくいってくれました:
#!/usr/bin/make -f
MAKEPID:= $(shell echo $$PPID)
$(mytargets):
@script_that_runs_in_parallel.sh [email protected] || kill -TERM $(MAKEPID)
これはかなり残酷ですが、それは仕事です。