Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 8 Jan 2004 19:57:46 +0200
From:      Ruslan Ermilov <ru@FreeBSD.org>
To:        "Brian F. Feldman" <green@FreeBSD.org>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/share/mk bsd.obj.mk
Message-ID:  <20040108175746.GB33759@FreeBSD.org.ua>
In-Reply-To: <200401081707.i08H7Wbh011594@green.bikeshed.org>
References:  <20040108165519.GA33759@FreeBSD.org.ua> <200401081707.i08H7Wbh011594@green.bikeshed.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--yEPQxsgoJgBvi8ip
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Jan 08, 2004 at 12:07:32PM -0500, Brian F. Feldman wrote:
> Ruslan Ermilov <ru@FreeBSD.org> wrote:
> > On Thu, Jan 08, 2004 at 11:36:19AM -0500, Brian F. Feldman wrote:
> > > Ruslan Ermilov <ru@FreeBSD.org> wrote:
> > > > : $ make MAKE=3D'/usr/bin/make -DFOO' print-make
> > > > : /usr/bin/make -DFOO
> > > > : $ make MAKE=3D'/usr/bin/make -DFOO' -V MAKE
> > > > : make
> > > >=20
> > > > If you really need to access command-line arguments, there
> > > > is the .MAKEFLAGS variable available for that purpose.
> > > >=20
> > > > But why do you need to ``make MAKE=3D'/usr/bin/make -DFOO' bar''
> > > > in the first place instead of simple ``make -DFOO bar''?  If
> > > > "bar" is recursive (i.e., runs ${MAKE} subprocesses), then
> > > > -DFOO will be properly propagated:
> > >=20
> > > Think about this: what options to ${MAKE} are there that have nothing=
 to do=20
> > > with setting defines?  There's actually quite a few; the one in parti=
cular=20
> > > that I care about is "-f"; if I want to use bsd.subdir.mk to simply a=
pply=20
> > > one BSD Makefile to several directions (which I _do_), I need to use =
-f,=20
> > > i.e.:
> > >=20
> > > MAKE+=3D  -f ${.CURDIR}/drivers/Makefile.subdriver
> > >=20
> > > The only think that broke this was the cleandir target.
> > >=20
> > Then you should be using the .MAKEFLAS variables here, see
> > sys/modules/Makefile for one working example, and let me
> > know if it works for you.
>=20
> Since .MAKEFLAGS is doesn't expand variables, I have to do it this (prett=
y=20
> ugly) way:
>=20
> .MAKEFLAGS:=3D    ${.MAKEFLAGS} -f ${.CURDIR}/drivers/Makefile.subdriver
>=20
: # cat Makefile
: all:
: 	@cd ${.CURDIR}; ${MAKE} print-foo
:=20
: .MAKEFLAGS+=3D	FOO=3D${.CURDIR}
:=20
: print-foo:
: 	@echo ${FOO}
: # make
: /tmp

> But it does at least work (does it definitely always get added to ${MAKE}=
?).=20
>=20
It's actually in the make(1) manpage:

: .MAKEFLAGS
: 	The environment variable MAKEFLAGS may contain anything that
: 	may be specified on make's command line.  Its contents are
: 	stored in make's .MAKEFLAGS variable.  Anything specified on
: 	make's command line is appended to the .MAKEFLAGS variable
: 	which is then entered into the environment as MAKEFLAGS for
: 	all programs which make executes.

> I don't see the bsd.obj.mk change as being anything but slightly more=20
> correct, so I wouldn't see a good reason to remove it either way.  I'm gl=
ad=20
> we've clarified the issue.
>=20
I never said I want the commit to be backed out, did I?  ;)
I even see it as a slight improvement, but for a reason that
is different from what is in the commit log -- it saves one
make(1) invocation.  I think that a null commit would be in
order though.


Cheers,
--=20
Ruslan Ermilov
FreeBSD committer
ru@FreeBSD.org

--yEPQxsgoJgBvi8ip
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (FreeBSD)

iD8DBQE//ZoaUkv4P6juNwoRAqSQAJ9NMo3COJvIaHMC5FX8qW53W0tklgCfWgwF
YBBmHyz3aBy+l3BJ/A+ecYI=
=M5YK
-----END PGP SIGNATURE-----

--yEPQxsgoJgBvi8ip--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040108175746.GB33759>