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