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 path search from SuffFindNorma...
details: https://anonhg.NetBSD.org/src/rev/d813e0cfdf78
branches: trunk
changeset: 977321:d813e0cfdf78
user: rillig <rillig%NetBSD.org@localhost>
date: Wed Oct 21 06:40:28 2020 +0000
description:
make(1): extract path search from SuffFindNormalDeps
diffstat:
usr.bin/make/suff.c | 125 +++++++++++++++++++++++++++------------------------
1 files changed, 65 insertions(+), 60 deletions(-)
diffs (153 lines):
diff -r e0bfeb699fee -r d813e0cfdf78 usr.bin/make/suff.c
--- a/usr.bin/make/suff.c Wed Oct 21 06:36:10 2020 +0000
+++ b/usr.bin/make/suff.c Wed Oct 21 06:40:28 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: suff.c,v 1.204 2020/10/21 06:36:10 rillig Exp $ */
+/* $NetBSD: suff.c,v 1.205 2020/10/21 06:40:28 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.204 2020/10/21 06:36:10 rillig Exp $");
+MAKE_RCSID("$NetBSD: suff.c,v 1.205 2020/10/21 06:40:28 rillig Exp $");
#define SUFF_DEBUG0(text) DEBUG0(SUFF, text)
#define SUFF_DEBUG1(fmt, arg1) DEBUG1(SUFF, fmt, arg1)
@@ -1667,6 +1667,68 @@
Lst_Append(targs, targ);
}
+/*
+ * Deal with finding the thing on the default search path. We
+ * always do that, not only if the node is only a source (not
+ * on the lhs of a dependency operator or [XXX] it has neither
+ * children or commands) as the old pmake did.
+ */
+static void
+SuffFindNormalDepsPath(GNode *gn, Src *targ)
+{
+ if ((gn->type & (OP_PHONY|OP_NOPATH)) == 0) {
+ free(gn->path);
+ gn->path = Dir_FindFile(gn->name,
+ (targ == NULL ? dirSearchPath :
+ targ->suff->searchPath));
+ if (gn->path != NULL) {
+ char *ptr;
+ Var_Set(TARGET, gn->path, gn);
+
+ if (targ != NULL) {
+ /*
+ * Suffix known for the thing -- trim the suffix off
+ * the path to form the proper .PREFIX variable.
+ */
+ size_t savep = strlen(gn->path) - targ->suff->nameLen;
+ char savec;
+
+ if (gn->suffix)
+ gn->suffix->refCount--;
+ gn->suffix = targ->suff;
+ gn->suffix->refCount++;
+
+ savec = gn->path[savep];
+ gn->path[savep] = '\0';
+
+ if ((ptr = strrchr(gn->path, '/')) != NULL)
+ ptr++;
+ else
+ ptr = gn->path;
+
+ Var_Set(PREFIX, ptr, gn);
+
+ gn->path[savep] = savec;
+ } else {
+ /*
+ * The .PREFIX gets the full path if the target has
+ * no known suffix.
+ */
+ if (gn->suffix)
+ gn->suffix->refCount--;
+ gn->suffix = NULL;
+
+ if ((ptr = strrchr(gn->path, '/')) != NULL)
+ ptr++;
+ else
+ ptr = gn->path;
+
+ Var_Set(PREFIX, ptr, gn);
+ }
+ }
+ }
+}
+
/* Locate implicit dependencies for regular targets.
*
* Input:
@@ -1777,64 +1839,7 @@
SUFF_DEBUG1("\tNo valid suffix on %s\n", gn->name);
sfnd_abort:
- /*
- * Deal with finding the thing on the default search path. We
- * always do that, not only if the node is only a source (not
- * on the lhs of a dependency operator or [XXX] it has neither
- * children or commands) as the old pmake did.
- */
- if ((gn->type & (OP_PHONY|OP_NOPATH)) == 0) {
- free(gn->path);
- gn->path = Dir_FindFile(gn->name,
- (targ == NULL ? dirSearchPath :
- targ->suff->searchPath));
- if (gn->path != NULL) {
- char *ptr;
- Var_Set(TARGET, gn->path, gn);
-
- if (targ != NULL) {
- /*
- * Suffix known for the thing -- trim the suffix off
- * the path to form the proper .PREFIX variable.
- */
- size_t savep = strlen(gn->path) - targ->suff->nameLen;
- char savec;
-
- if (gn->suffix)
- gn->suffix->refCount--;
- gn->suffix = targ->suff;
- gn->suffix->refCount++;
-
- savec = gn->path[savep];
- gn->path[savep] = '\0';
-
- if ((ptr = strrchr(gn->path, '/')) != NULL)
- ptr++;
- else
- ptr = gn->path;
-
- Var_Set(PREFIX, ptr, gn);
-
- gn->path[savep] = savec;
- } else {
- /*
- * The .PREFIX gets the full path if the target has
- * no known suffix.
- */
- if (gn->suffix)
- gn->suffix->refCount--;
- gn->suffix = NULL;
-
- if ((ptr = strrchr(gn->path, '/')) != NULL)
- ptr++;
- else
- ptr = gn->path;
-
- Var_Set(PREFIX, ptr, gn);
- }
- }
- }
-
+ SuffFindNormalDepsPath(gn, targ);
goto sfnd_return;
}
Home |
Main Index |
Thread Index |
Old Index