Module Name: src
Committed By: rillig
Date: Wed Oct 21 06:30:30 UTC 2020
Modified Files:
src/usr.bin/make: suff.c
Log Message:
make(1): extract handling of unknown suffix from SuffFindNormalDeps
To generate a diff of this commit:
cvs rdiff -u -r1.201 -r1.202 src/usr.bin/make/suff.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/make/suff.c
diff -u src/usr.bin/make/suff.c:1.201 src/usr.bin/make/suff.c:1.202
--- src/usr.bin/make/suff.c:1.201 Wed Oct 21 06:26:46 2020
+++ src/usr.bin/make/suff.c Wed Oct 21 06:30:30 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: suff.c,v 1.201 2020/10/21 06:26:46 rillig Exp $ */
+/* $NetBSD: suff.c,v 1.202 2020/10/21 06:30:30 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -129,7 +129,7 @@
#include "dir.h"
/* "@(#)suff.c 8.4 (Berkeley) 3/21/94" */
-MAKE_RCSID("$NetBSD: suff.c,v 1.201 2020/10/21 06:26:46 rillig Exp $");
+MAKE_RCSID("$NetBSD: suff.c,v 1.202 2020/10/21 06:30:30 rillig Exp $");
#define SUFF_DEBUG0(text) DEBUG0(SUFF, text)
#define SUFF_DEBUG1(fmt, arg1) DEBUG1(SUFF, fmt, arg1)
@@ -1639,6 +1639,46 @@ SuffFindNormalDepsKnown(const struct Suf
}
}
+static void
+SuffFindNormalDepsUnknown(GNode *gn, const char *sopref,
+ SrcList *srcs, SrcList *targs)
+{
+ Src *targ;
+
+ if (Lst_IsEmpty(targs) && suffNull != NULL) {
+ SUFF_DEBUG1("\tNo known suffix on %s. Using .NULL suffix\n",
+ gn->name);
+
+ targ = bmake_malloc(sizeof *targ);
+ targ->file = bmake_strdup(gn->name);
+ targ->suff = suffNull;
+ targ->suff->refCount++;
+ targ->node = gn;
+ targ->parent = NULL;
+ targ->children = 0;
+ targ->pref = bmake_strdup(sopref);
+#ifdef DEBUG_SRC
+ targ->cp = Lst_New();
+#endif
+
+ /*
+ * Only use the default suffix rules if we don't have commands
+ * defined for this gnode; traditional make programs used to
+ * not define suffix rules if the gnode had children but we
+ * don't do this anymore.
+ */
+ if (Lst_IsEmpty(gn->commands))
+ SuffAddLevel(srcs, targ);
+ else {
+ SUFF_DEBUG0("not ");
+ }
+
+ SUFF_DEBUG0("adding suffix rules\n");
+
+ Lst_Append(targs, targ);
+ }
+}
+
/* Locate implicit dependencies for regular targets.
*
* Input:
@@ -1699,41 +1739,8 @@ SuffFindNormalDeps(GNode *gn, SrcList *s
SuffFindNormalDepsKnown(&sd, gn, eoname, sopref, srcs, targs);
- /*
- * Handle target of unknown suffix...
- */
- if (Lst_IsEmpty(targs) && suffNull != NULL) {
- SUFF_DEBUG1("\tNo known suffix on %s. Using .NULL suffix\n",
- gn->name);
-
- targ = bmake_malloc(sizeof(Src));
- targ->file = bmake_strdup(gn->name);
- targ->suff = suffNull;
- targ->suff->refCount++;
- targ->node = gn;
- targ->parent = NULL;
- targ->children = 0;
- targ->pref = bmake_strdup(sopref);
-#ifdef DEBUG_SRC
- targ->cp = Lst_New();
-#endif
-
- /*
- * Only use the default suffix rules if we don't have commands
- * defined for this gnode; traditional make programs used to
- * not define suffix rules if the gnode had children but we
- * don't do this anymore.
- */
- if (Lst_IsEmpty(gn->commands))
- SuffAddLevel(srcs, targ);
- else {
- SUFF_DEBUG0("not ");
- }
-
- SUFF_DEBUG0("adding suffix rules\n");
-
- Lst_Append(targs, targ);
- }
+ /* Handle target of unknown suffix... */
+ SuffFindNormalDepsUnknown(gn, sopref, srcs, targs);
/*
* Using the list of possible sources built up from the target