Formerly remake.c.~30~
authorRoland McGrath <roland@redhat.com>
Fri, 26 Jun 1992 00:46:53 +0000 (00:46 +0000)
committerRoland McGrath <roland@redhat.com>
Fri, 26 Jun 1992 00:46:53 +0000 (00:46 +0000)
remake.c

index 9c9017e..390532c 100644 (file)
--- 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,