commit 95b1d6c4ae74328c31bc2a3bdc80db53886bedea
parent fddf43508290bc39144364d09e641f3bba7ef095
Author: Roberto E. Vargas Caballero <k0ga@shike2.net>
Date: Tue, 12 May 2026 09:40:59 +0200
make: Use recursion to find circular dependencies
Diffstat:
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/cmd/scc-make/rules.c b/src/cmd/scc-make/rules.c
@@ -87,13 +87,20 @@ cleanup(Target *tp)
}
static int
-depends(char *target, char *dep)
+depends(char *dep, char *target)
{
+
int i;
- Target **p, *tp = lookup(target);
+ char *dname;
+ Target **p, *tp;
+
+ if (strcmp(target, dep) == 0)
+ return 1;
+ tp = lookup(dep);
for (p = tp->deps; p && *p; ++p) {
- if (strcmp((*p)->name, target) == 0)
+ dname = (*p)->name;
+ if (depends(dname, target))
return 1;
}