From: Roland McGrath Date: Thu, 29 Sep 1994 04:14:20 +0000 (+0000) Subject: (reap_children): Call delete_child_targets for non-signal error if X-Git-Tag: 3.71.5~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9807a2869f1b74d4b9561f25729f3cf7ff16f4a0;p=thirdparty%2Fmake.git (reap_children): Call delete_child_targets for non-signal error if .DELETE_ON_ERROR is a target. --- diff --git a/job.c b/job.c index c9d28964..43379357 100644 --- a/job.c +++ b/job.c @@ -379,9 +379,15 @@ reap_children (block, err) { /* The commands failed. Write an error message, delete non-precious targets, and abort. */ + static int delete_on_error = -1; child_error (c->file->name, exit_code, exit_sig, coredump, 0); c->file->update_status = 1; - if (exit_sig != 0) + if (delete_on_error == -1) + { + struct file *f = lookup_file (".DELETE_ON_ERROR"); + delete_on_error = f != 0 && f->is_target; + } + if (exit_sig != 0 || delete_on_error) delete_child_targets (c); } else