From 113cf9e649447590b70c59f103fd48a860e6c809 Mon Sep 17 00:00:00 2001 From: Ruslan Ermilov Date: Thu, 28 Nov 2002 13:08:09 +0000 Subject: [PATCH] Moved make(1) regression tests from src/Makefile to where they belong (src/tools/regression/usr.bin/make), and use the latter to test if make(1) is adequate for building the world. Approved by: re --- Makefile | 32 ++++---------------------- tools/build/make_check/Makefile | 26 ++++++++++++++++++++- tools/regression/usr.bin/make/Makefile | 26 ++++++++++++++++++++- 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