aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile32
-rw-r--r--tools/build/make_check/Makefile26
-rw-r--r--tools/regression/usr.bin/make/Makefile26
3 files changed, 54 insertions, 30 deletions
diff --git a/Makefile b/Makefile
index 0f4dbbf03a61..222e4ed76c6d 100644
--- a/Makefile
+++ b/Makefile
@@ -156,39 +156,15 @@ kernel: buildkernel installkernel
#
# Perform a few tests to determine if the installed tools are adequate
-# for building the world. These are for older systems (prior to 2.2.5).
-#
-# From 2.2.5 onwards, the installed tools will pass these upgrade tests,
-# so the normal make world is capable of doing what is required to update
-# the system to current.
+# for building the world.
#
upgrade_checks:
- @cd ${.CURDIR}; \
- if ! make -m ${.CURDIR}/share/mk -Dnotdef test >/dev/null 2>&1; then \
- make make; \
- fi
- @cd ${.CURDIR}; \
- if make -V .CURDIR:C/.// 2>&1 >/dev/null | \
- grep -q "Unknown modifier 'C'"; then \
- make make; \
- fi
-
-#
-# A simple test target used as part of the test to see if make supports
-# the -m argument. Also test that make will only evaluate a conditional
-# as far as is necessary to determine its value.
-#
-test:
-.if defined(notdef)
-.undef notdef
-.if defined(notdef) && ${notdef:U}
-.endif
-.endif
+ @(cd ${.CURDIR}/tools/regression/usr.bin/make && make 2>/dev/null) || \
+ (cd ${.CURDIR} && make make)
#
# Upgrade the installed make to the current version using the installed
-# headers, libraries and build tools. This is required on installed versions
-# prior to 2.2.5 in which the installed make doesn't support the -m argument.
+# headers, libraries and tools.
#
make:
@echo
diff --git a/tools/build/make_check/Makefile b/tools/build/make_check/Makefile
index 57b0d8fc75d0..f4dec2efeda3 100644
--- a/tools/build/make_check/Makefile
+++ b/tools/build/make_check/Makefile
@@ -1,7 +1,7 @@
# $FreeBSD$
# Test for broken LHS expansion.
-# This *must* case make(1) to detect a recursive variable, and fail as such.
+# This *must* cause make(1) to detect a recursive variable, and fail as such.
.if make(lhs_expn)
FOO= ${BAR}
BAR${NIL}= ${FOO}
@@ -32,6 +32,12 @@ all:
@echo "Running test lhs_expn"
@! ${MAKE} lhs_expn && true || ${MAKE} failure
@echo "PASS: Test lhs_expn detected no regression."
+ @echo "Running test notdef"
+ @${MAKE} notdef || ${MAKE} failure
+ @echo "PASS: Test notdef detected no regression."
+ @echo "Running test modifiers"
+ @${MAKE} modifiers || ${MAKE} failure
+ @echo "PASS: Test modifiers detected no regression."
.if make(double)
# Doubly-defined targets. make(1) will warn, but use the "right" one. If it
@@ -57,6 +63,24 @@ sysvmatch:
lhs_expn:
@true
+.if make(notdef)
+# make(1) claims to only evaluate a conditional as far as is necessary
+# to determine its value; that was not always the case.
+.undef notdef
+notdef:
+.if defined(notdef) && ${notdef:U}
+.endif
+.endif
+
+.if make(modifiers)
+# See if make(1) supports the C modifier.
+modifiers:
+ @if ${MAKE} -V .CURDIR:C/.// 2>&1 >/dev/null | \
+ grep -q "Unknown modifier 'C'"; then \
+ false; \
+ fi
+.endif
+
failure:
@echo "FAIL: Test failed: regression detected. See above."
@false
diff --git a/tools/regression/usr.bin/make/Makefile b/tools/regression/usr.bin/make/Makefile
index 57b0d8fc75d0..f4dec2efeda3 100644
--- a/tools/regression/usr.bin/make/Makefile
+++ b/tools/regression/usr.bin/make/Makefile
@@ -1,7 +1,7 @@
# $FreeBSD$
# Test for broken LHS expansion.
-# This *must* case make(1) to detect a recursive variable, and fail as such.
+# This *must* cause make(1) to detect a recursive variable, and fail as such.
.if make(lhs_expn)
FOO= ${BAR}
BAR${NIL}= ${FOO}
@@ -32,6 +32,12 @@ all:
@echo "Running test lhs_expn"
@! ${MAKE} lhs_expn && true || ${MAKE} failure
@echo "PASS: Test lhs_expn detected no regression."
+ @echo "Running test notdef"
+ @${MAKE} notdef || ${MAKE} failure
+ @echo "PASS: Test notdef detected no regression."
+ @echo "Running test modifiers"
+ @${MAKE} modifiers || ${MAKE} failure
+ @echo "PASS: Test modifiers detected no regression."
.if make(double)
# Doubly-defined targets. make(1) will warn, but use the "right" one. If it
@@ -57,6 +63,24 @@ sysvmatch:
lhs_expn:
@true
+.if make(notdef)
+# make(1) claims to only evaluate a conditional as far as is necessary
+# to determine its value; that was not always the case.
+.undef notdef
+notdef:
+.if defined(notdef) && ${notdef:U}
+.endif
+.endif
+
+.if make(modifiers)
+# See if make(1) supports the C modifier.
+modifiers:
+ @if ${MAKE} -V .CURDIR:C/.// 2>&1 >/dev/null | \
+ grep -q "Unknown modifier 'C'"; then \
+ false; \
+ fi
+.endif
+
failure:
@echo "FAIL: Test failed: regression detected. See above."
@false