Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/make make(1): extract handling of unknown suffix fro...



details:   https://anonhg.NetBSD.org/src/rev/4662435bfba2
branches:  trunk
changeset: 1015353:4662435bfba2
user:      rillig <rillig%NetBSD.org@localhost>
date:      Wed Oct 21 06:30:30 2020 +0000

description:
make(1): extract handling of unknown suffix from SuffFindNormalDeps

diffstat:

 usr.bin/make/suff.c |  81 ++++++++++++++++++++++++++++------------------------
 1 files changed, 44 insertions(+), 37 deletions(-)

diffs (109 lines):

diff -r 3df86e9e2c6f -r 4662435bfba2 usr.bin/make/suff.c
--- a/usr.bin/make/suff.c       Wed Oct 21 06:26:46 2020 +0000
+++ b/usr.bin/make/suff.c       Wed Oct 21 06:30:30 2020 +0000
@@ -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 @@
     }
 }
 
+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 @@
 
        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



Home | Main Index | Thread Index | Old Index