Date: Tue, 19 Feb 2002 12:50:02 -0800 (PST) From: "Simon 'corecode' Schubert" <corecode@corecode.ath.cx> To: freebsd-bugs@FreeBSD.org Subject: Re: bin/35119: make(1) variable modifier bug (:L, :U etc) Message-ID: <200202192050.g1JKo2I94427@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/35119; it has been noted by GNATS.
From: "Simon 'corecode' Schubert" <corecode@corecode.ath.cx>
To: stijn@win.tue.nl
Cc: FreeBSD-gnats-submit@FreeBSD.ORG
Subject: Re: bin/35119: make(1) variable modifier bug (:L, :U etc)
Date: Tue, 19 Feb 2002 21:42:30 +0100
--OFN=.KLuoT/o68,X
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
On Tue, 19 Feb 2002 16:47:38 +0100 (CET) stijn@win.tue.nl wrote:
> make(1) has a buglet wrt expanding variables with modifiers. If an
> expansion of an undefined variable, with a modifier, is used in an .if
> statement like so:
>
> .if defined(FOO) && ${FOO:L} == "bar"
>
> make bombs out with a 'Malformed conditional', even if FOO is not
> defined.
i believe this is already known. make processes all statements on an .if line, no matter if this is needed or not (unlike most other languages):
..if defined(FOO) && ${FOO} == "bar"
will result in the following (without having FOO defined):
res1 := test FOO for existance = false
res2 := test FOO == "bar" = false
res := res1 && res2 == false
if you use a modifier, make will (of course [knowing the fact above]) complain about the variable not being assigned.
Fix:
..if defined(FOO)
..if ${FOO:L} == "bar"
..endif
..endif
so it's got nothing to do with defined() and the modifiers, more with the way make processes conditionals.
cheerz
corecode
--
/"\ http://corecode.ath.cx/
\ /
\ ASCII Ribbon Campaign
/ \ Against HTML Mail and News
--OFN=.KLuoT/o68,X
Content-Type: application/pgp-signature
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (FreeBSD)
iD8DBQE8cri9r5S+dk6z85oRAmEXAJ9+NdS8HmbX1oN1nUGI7aqS8DIS3QCcCUZz
Hv0zwITEM3CMRoZHw+2D8oc=
=mrj0
-----END PGP SIGNATURE-----
--OFN=.KLuoT/o68,X--
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200202192050.g1JKo2I94427>
