Module Name:    src
Committed By:   sjg
Date:           Tue Apr 30 16:13:34 UTC 2024

Modified Files:
        src/usr.bin/make: main.c
        src/usr.bin/make/unit-tests: deptgt-phony.exp opt-m-include-dir.mk

Log Message:
make: ensure '.include <makefile>' respects MAKESYSPATH

Since Dir_FindFile is used by '.include' and its variants,
and will first search .CURDIR unless the give path starts with
".DOTLAST".

Update unit-tests/opt-m-include-dir to test this.


To generate a diff of this commit:
cvs rdiff -u -r1.613 -r1.614 src/usr.bin/make/main.c
cvs rdiff -u -r1.2 -r1.3 src/usr.bin/make/unit-tests/deptgt-phony.exp
cvs rdiff -u -r1.4 -r1.5 src/usr.bin/make/unit-tests/opt-m-include-dir.mk

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/main.c
diff -u src/usr.bin/make/main.c:1.613 src/usr.bin/make/main.c:1.614
--- src/usr.bin/make/main.c:1.613	Sat Apr 27 17:33:46 2024
+++ src/usr.bin/make/main.c	Tue Apr 30 16:13:33 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: main.c,v 1.613 2024/04/27 17:33:46 rillig Exp $	*/
+/*	$NetBSD: main.c,v 1.614 2024/04/30 16:13:33 sjg Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -111,7 +111,7 @@
 #include "trace.h"
 
 /*	"@(#)main.c	8.3 (Berkeley) 3/19/94"	*/
-MAKE_RCSID("$NetBSD: main.c,v 1.613 2024/04/27 17:33:46 rillig Exp $");
+MAKE_RCSID("$NetBSD: main.c,v 1.614 2024/04/30 16:13:33 sjg Exp $");
 #if defined(MAKE_NATIVE)
 __COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993 "
 	    "The Regents of the University of California.  "
@@ -1156,6 +1156,8 @@ InitDefSysIncPath(char *syspath)
 	else
 		syspath = bmake_strdup(syspath);
 
+	/* do NOT search .CURDIR first for .include <makefile> */
+	SearchPath_Add(defSysIncPath, ".DOTLAST");
 	for (start = syspath; *start != '\0'; start = p) {
 		for (p = start; *p != '\0' && *p != ':'; p++)
 			continue;

Index: src/usr.bin/make/unit-tests/deptgt-phony.exp
diff -u src/usr.bin/make/unit-tests/deptgt-phony.exp:1.2 src/usr.bin/make/unit-tests/deptgt-phony.exp:1.3
--- src/usr.bin/make/unit-tests/deptgt-phony.exp:1.2	Fri Feb 11 23:44:18 2022
+++ src/usr.bin/make/unit-tests/deptgt-phony.exp	Tue Apr 30 16:13:34 2024
@@ -2,7 +2,7 @@ Expanding "depsrc-phony-pr-15164-*-wildc
 Expanding "deptgt-phony-pr-15164-*-wildcard"... 
 Searching for .depend ...
    failed.
-Searching for .depend ...
+Searching for .depend ...[dot last]...
    /usr/share/mk ...
    failed.
 Wildcard expanding "all"...

Index: src/usr.bin/make/unit-tests/opt-m-include-dir.mk
diff -u src/usr.bin/make/unit-tests/opt-m-include-dir.mk:1.4 src/usr.bin/make/unit-tests/opt-m-include-dir.mk:1.5
--- src/usr.bin/make/unit-tests/opt-m-include-dir.mk:1.4	Tue Sep  1 20:14:34 2020
+++ src/usr.bin/make/unit-tests/opt-m-include-dir.mk	Tue Apr 30 16:13:34 2024
@@ -1,4 +1,4 @@
-# $NetBSD: opt-m-include-dir.mk,v 1.4 2020/09/01 20:14:34 rillig Exp $
+# $NetBSD: opt-m-include-dir.mk,v 1.5 2024/04/30 16:13:34 sjg Exp $
 #
 # Tests for the -m command line option, which adds a directory to the
 # search path for the .include <...> directive.
@@ -22,11 +22,14 @@
 TEST_DIR:=	${.PARSEFILE:R}.tmp/sub/sub/sub/workdir
 CANARY_FILE:=	${.PARSEFILE:R}.tmp/sub/opt-m-canary.mk
 ACTUAL_FILE:=	${.PARSEFILE:R}.tmp/sub/opt-m-step3.mk
+WANTED_FILE:=	${.PARSEFILE:R}.tmp/sub/opt-m-check.mk
 
 _!=	mkdir -p ${TEST_DIR}
 _!=	> ${CANARY_FILE}
 _!=	cp ${MAKEFILE} ${TEST_DIR}/step2.mk
 _!=	cp ${MAKEFILE} ${ACTUAL_FILE}
+_!=	echo CHECK=ok > ${WANTED_FILE}
+_!=	echo CHECK=${WANTED_FILE:T} found in .CURDIR > ${TEST_DIR}/${WANTED_FILE:T}
 
 step1:
 	@${.MAKE} -C ${TEST_DIR} -f step2.mk step2
@@ -52,9 +55,10 @@ step1:
 .elif ${.PARSEFILE:T} == "opt-m-step3.mk"
 
 # This file is included by step2.mk.
+.include <opt-m-check.mk>
 
 step2:
-	@echo ok
+	@echo ${CHECK}
 
 .else
 .  error

Reply via email to