Date: Wed, 11 Aug 2004 13:28:03 +0300 From: Ruslan Ermilov <ru@FreeBSD.org> To: Peter Jeremy <PeterJeremy@optushome.com.au> Cc: current@FreeBSD.org Subject: Re: World broken in stage 1.1 Message-ID: <20040811102803.GD84908@ip.net.ua> In-Reply-To: <20040811094238.GB423@cirb503493.alcatel.com.au> References: <20040810231044.GA70020@xor.obsecurity.org> <20040811061202.GA80234@ip.net.ua> <20040811065912.GA95263@xor.obsecurity.org> <20040811080350.GK80234@ip.net.ua> <20040811094238.GB423@cirb503493.alcatel.com.au>
next in thread | previous in thread | raw e-mail | index | archive | help
--qGV0fN9tzfkG3CxV Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi Peter, On Wed, Aug 11, 2004 at 07:42:38PM +1000, Peter Jeremy wrote: > On Wed, 2004-Aug-11 11:03:50 +0300, Ruslan Ermilov wrote: > >Trying to set MAKEOBJDIRPREFIX in /etc/make.conf and attempting to build= world > >RELENG_4 on a 4.x machine similarly fails right away. >=20 > I have a script that run on RELENG_4 and does > make MAKEOBJDIRPREFIX=3D/usr/obj/k7 CPUTYPE=3Dk7 buildworld >buildworld.k= 7 2>&1 & > make MAKEOBJDIRPREFIX=3D/usr/obj/i486 CPUTYPE=3Di486 buildworld >buildwor= ld.i486 2>&1 & > make MAKEOBJDIRPREFIX=3D/usr/obj/i586 CPUTYPE=3Di586/mmx buildworld >buil= dworld.i586 2>&1 & >=20 > This worked perfectly when I tried it on 1st August - at least the > system compiled, installed and has been running since last weekend. I > have another -STABLE system that has MAKEOBJDIRPREFIX in > /etc/make.conf and runs build{world,kernel} happily every night. I > admit I haven't tried using MAKEOBJDIRPREFIX on -CURRENT lately. >=20 > Overall, I find it annoying that it is no longer possible to embed all > the buildworld customisations in /etc/make.conf. >=20 Did you read all my replies in this thread before posting this one? MAKEOBJDIRPREFIX has always been an environment variable, it has never been a command-line or global variable of make(1). What you describe should still work but in 4.x only (pass MAKEOBJDIRPREFIX as a command line variable), but only because Makefile.inc1 will properly reset it in environment. This is not by design, it just *happens to work* because Makefile.inc1 needs to reset MAKEOBJDIRPREFIX to different values depending on the current stage of buildworld. Last year, I changed make(1) in 5.x so it's possible to set MAKEOBJDIR[PREFIX] as a command line variable, and have it really work correctly (correctly =3D=3D make will switch to this directory and set .OBJDIR to point to it). This is still discouraged, and is not supported by a 4.x make(1). Since make(1) was recently change to propagate command line variables as command line variables to sub-makes, passing MAKEOBJDIRPREFIX as a command-line variable to buildworld will no longer work: command-line variables take precedence over environment variables, so what Makefile.inc1 will set in environment will be ignored by buildworld substages. So, the only One True Way to use MAKEOBJDIRPREFIX is as documented in the make(1) manpage, i.e., set it as environment variable. I will commit the enforcement into src/Makefile shortly. Cheers, --=20 Ruslan Ermilov ru@FreeBSD.org FreeBSD committer --qGV0fN9tzfkG3CxV Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQFBGfSzqRfpzJluFF4RAopcAJ434V12aqvEDkFylvSjQlz7x0z3TwCghS9z v/chqiW/s5WecVNFGIZqzhU= =PKOD -----END PGP SIGNATURE----- --qGV0fN9tzfkG3CxV--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040811102803.GD84908>