Date: Mon, 09 Aug 2004 14:12:27 +0900 From: Jun Kuriyama <kuriyama@imgsrc.co.jp> To: Hartmut Brandt <harti@FreeBSD.org> Cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/usr.bin/make Makefile main.c nonints.h var.c Message-ID: <7mllgolwsk.wl@black.imgsrc.co.jp> In-Reply-To: <200408031856.i73IuV8c082723@repoman.freebsd.org> References: <200408031856.i73IuV8c082723@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
At Tue, 3 Aug 2004 18:56:31 +0000 (UTC), Hartmut Brandt wrote: > Log: > Put variable assignments from the command line into the MAKEFLAGS > variable as required by POSIX. This causes such variables to be > pushed into all sub-makes called by the make (except when the MAKEFLAGS > variable is explicitely changed in the sub-make's environment). > This makes them also mostly un-overrideable in sub-makes except on the > sub-make's command line. Therefor specifying 'make CC=icc' will cause > icc to be used as C compiler in all sub-makes no matter what the Makefiles > itself try to do to the CC variable. > > This patch also corrects the handling of the MFLAGS variable. MFLAGS > contains all the command line flags but not the command line variable > assignments. The evaluation of the .MFLAGS or .MAKEFLAGS target now > changes both MFLAGS and MAKEFLAGS (they used to change MAKEFLAGS only). > Makefiles can use MFLAGS for their own purposes given that they do not > except MFLAGS to be undefined at the beginning and that they don't evaluate > .MFLAGS or .MAKEFLAGS. MFLAGS should be removed for POSIX compliance, > but it is unfortunately heavily used by the X makefiles. I'm using MAKEOBJDIRPREFIX as a make argument to build the world. Please help about new make. Firstly, my host environment has the latest make(1), and it is used to start buildworld as: # cd /work/HEAD/src # make MAKEOBJDIRPREFIX=/work/HEAD/obj buildworld In this situation, ${BMAKE} in src/Makefile.inc1 includes this assignment: > MAKEFLAGS="-m /work/HEAD/src/tools/build/mk -m /work/HEAD/src/share/mk MAKEOBJDIRPREFIX=/work/HEAD/obj" But before your modification, this was: > MAKEFLAGS="-m /work/HEAD/src/tools/build/mk -m /work/HEAD/src/share/mk " Then now, stage 1.1 of buildworld is failing because installation of libegacy.a was changed from: > sh /work/HEAD/src/tools/install.sh -C -o root -g wheel -m 444 libegacy.a /work/HEAD/obj/work/HEAD/src/i386/legacy/usr/lib to: > sh /work/HEAD/src/tools/install.sh -C -o root -g wheel -m 444 libegacy.a /work/HEAD/obj/legacy/usr/lib which is destination directory was changed by passing $MAKEOBJDIRPREFIX to submake. I don't know how Makefile.inc1 should be fixed, and how this affects to the upgrading path for old environment users. -- Jun Kuriyama <kuriyama@imgsrc.co.jp> // IMG SRC, Inc. <kuriyama@FreeBSD.org> // FreeBSD Project
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7mllgolwsk.wl>