summaryrefslogtreecommitdiff
path: root/file.c
diff options
context:
space:
mode:
Diffstat (limited to 'file.c')
-rw-r--r--file.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/file.c b/file.c
index fab1d96..9cb5e52 100644
--- a/file.c
+++ b/file.c
@@ -474,6 +474,27 @@ split_prereqs (char *p)
return new;
}
+/* Notice special dependencies. */
+static void
+notice_special_deps(struct dep **d_ptr)
+{
+ struct dep *d;
+
+restart_loop:
+ for (; *d_ptr; d_ptr = &(*d_ptr)->next)
+ {
+ d = *d_ptr;
+ if (!strcmp(d->name, ".WAIT"))
+ {
+ if (d->next)
+ d->next->wait = 1;
+ *d_ptr = d->next;
+ free_dep(d);
+ goto restart_loop;
+ }
+ }
+}
+
/* Given a list of prerequisites, enter them into the file database.
If STEM is set then first expand patterns using STEM. */
struct dep *
@@ -537,6 +558,9 @@ enter_prereqs (struct dep *deps, const char *stem)
}
}
+ if (sun_flag)
+ notice_special_deps(&deps);
+
/* Enter them as files, unless they need a 2nd expansion. */
for (d1 = deps; d1 != 0; d1 = d1->next)
{