summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>1992-06-26 00:46:53 +0000
committerRoland McGrath <roland@redhat.com>1992-06-26 00:46:53 +0000
commit9ef264a343eb0738b8442a042c5d1f2de55e2918 (patch)
tree0cd49ed5d5da1e559f89ec2e6c0c522203b472fe
parentfec369451216ff2051ef8551ad380ef23eec419e (diff)
downloadgunmake-9ef264a343eb0738b8442a042c5d1f2de55e2918.tar.gz
Formerly remake.c.~30~
-rw-r--r--remake.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/remake.c b/remake.c
index 9c9017e..390532c 100644
--- a/remake.c
+++ b/remake.c
@@ -211,7 +211,24 @@ update_file (file, depth)
if (status != 0 && !keep_going_flag)
return status;
- commands_finished |= not_started && f->command_state == cs_finished;
+ switch (f->command_state)
+ {
+ case cs_finished:
+ commands_finished |= not_started;
+ break;
+
+ case cs_running:
+ case cs_deps_running:
+ /* Don't run the other :: rules for this
+ file until this rule is finished. */
+ return 0;
+
+ default:
+ error ("internal error: `%s' command_state == %d in update_file_1",
+ f->name, (int) f->command_state);
+ abort ();
+ break;
+ }
}
/* For a top level target, if we have found nothing whatever to do for it,