summaryrefslogtreecommitdiff
path: root/remake.c
diff options
context:
space:
mode:
Diffstat (limited to 'remake.c')
-rw-r--r--remake.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/remake.c b/remake.c
index d7716c0..b222e3e 100644
--- a/remake.c
+++ b/remake.c
@@ -250,7 +250,7 @@ update_file_1 (file, depth)
int noexist, must_make, deps_changed;
int dep_status = 0;
register struct dep *d, *lastd;
- char running = 0;
+ int running = 0;
DEBUGPR ("Considering target file `%s'.\n");
@@ -676,6 +676,13 @@ check_dep (file, depth, this_mtime, must_make_ptr)
if (dep_status != 0 && !keep_going_flag)
break;
+ if (d->file->command_state == cs_running
+ || d->file->command_state == cs_deps_running)
+ /* Record that some of FILE's dependencies are still being made.
+ This tells the upper levels to wait on processing it until
+ the commands are finished. */
+ file->command_state = cs_deps_running;
+
lastd = d;
d = d->next;
}