From 88e2ecc705a71c35c2f3808fb73cb3a23f113d8d Mon Sep 17 00:00:00 2001 From: rillig Date: Fri, 16 Mar 2007 10:05:20 +0000 Subject: After the quick fix from some minutes ago, here is the better solution. Just don't evaluate variables at load-time, but at run-time. --- mk/misc/show.mk | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'mk/misc') diff --git a/mk/misc/show.mk b/mk/misc/show.mk index 9afe9be44de..39c845cd77e 100644 --- a/mk/misc/show.mk +++ b/mk/misc/show.mk @@ -1,4 +1,4 @@ -# $NetBSD: show.mk,v 1.3 2007/03/16 09:53:37 rillig Exp $ +# $NetBSD: show.mk,v 1.4 2007/03/16 10:05:20 rillig Exp $ # # This file contains some targets that print information gathered from # variables. They do not modify any variables. @@ -79,7 +79,6 @@ _LETTER._USER_VARS= U _LETTER._PKG_VARS= P _LETTER._SYS_VARS= S -.if make(show-all) show-all: .PHONY .for g in ${_VARGROUPS:O:u} @@ -90,11 +89,19 @@ show-all-${g}: .PHONY . for c in _USER_VARS _PKG_VARS _SYS_VARS . for v in ${${c}.${g}} . if defined(${v}) -. if empty(${v}:M*) - @echo " ${_LETTER.${c}} ${v} (defined, but empty)" -. else - @echo " ${_LETTER.${c}} ${v} = "${${v}:Q} -. endif +# Be careful not to evaluate variables too early. Some may use the :sh +# modifier, which can end up taking much time and issuing unexpected +# warnings and error messages. +# +# When finally showing the variables, it is unavoidable that those +# variables requiring ${WRKDIR} to exist will show a warning. +# + @value=${${v}:M*:Q}; \ + if [ "$$value" ]; then \ + echo " ${_LETTER.${c}} ${v} = $$value"; \ + else \ + echo " ${_LETTER.${c}} ${v} (defined, but empty)"; \ + fi . else @echo " ${_LETTER.${c}} ${v} (undefined)" . endif @@ -102,4 +109,3 @@ show-all-${g}: .PHONY . endfor @echo "" .endfor -.endif -- cgit v1.2.3