From 9807a2869f1b74d4b9561f25729f3cf7ff16f4a0 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 29 Sep 1994 04:14:20 +0000 Subject: (reap_children): Call delete_child_targets for non-signal error if .DELETE_ON_ERROR is a target. --- job.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/job.c b/job.c index c9d2896..4337935 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 -- cgit v1.2.3