ref: 2e2155d93d017318a135540c5975fc1780a35f4e
parent: 78b4f3f1d6762f9f0f712211df4451cf3e16ef0e
author: David Arroyo <david@arroyo.cc>
date: Sun Jan 25 01:57:25 EST 2026
mk: defer unpretended targets until all are unpretended Mk will incorrectly run a multi-target recipe once for each target that doesn't exist if it's needed by a target which is out of date through a separate dependency. Fix it by deferring work until we mark each prerequisite that needs to be built.
--- a/sys/src/cmd/mk/mk.c
+++ b/sys/src/cmd/mk/mk.c
@@ -157,7 +157,6 @@
a->n->name, node->name, ra->n? ra->n->name : "rule with no prerequisites");
unpretend(a->n);
- did = work(a->n, node, a) || did;
ready = 0;
}
if(ready == 0) /* try later unless nothing has happened for -k's sake */
--
⑨