Skip site navigation (1)Skip section navigation (2)
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>