cvs commit: src/share/mk bsd.obj.mk

Brian F. Feldman green at FreeBSD.org
Thu Jan 8 09:07:33 PST 2004


Ruslan Ermilov <ru at FreeBSD.org> wrote:
> On Thu, Jan 08, 2004 at 11:36:19AM -0500, Brian F. Feldman wrote:
> > Ruslan Ermilov <ru at FreeBSD.org> wrote:
> > > : $ make MAKE='/usr/bin/make -DFOO' print-make
> > > : /usr/bin/make -DFOO
> > > : $ make MAKE='/usr/bin/make -DFOO' -V MAKE
> > > : make
> > > 
> > > If you really need to access command-line arguments, there
> > > is the .MAKEFLAGS variable available for that purpose.
> > > 
> > > But why do you need to ``make MAKE='/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:
> > 
> > Think about this: what options to ${MAKE} are there that have nothing to do 
> > with setting defines?  There's actually quite a few; the one in particular 
> > that I care about is "-f"; if I want to use bsd.subdir.mk to simply apply 
> > one BSD Makefile to several directions (which I _do_), I need to use -f, 
> > i.e.:
> > 
> > MAKE+=  -f ${.CURDIR}/drivers/Makefile.subdriver
> > 
> > The only think that broke this was the cleandir target.
> > 
> 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.

Since .MAKEFLAGS is doesn't expand variables, I have to do it this (pretty 
ugly) way:

.MAKEFLAGS:=    ${.MAKEFLAGS} -f ${.CURDIR}/drivers/Makefile.subdriver

But it does at least work (does it definitely always get added to ${MAKE}?). 
I don't see the bsd.obj.mk change as being anything but slightly more 
correct, so I wouldn't see a good reason to remove it either way.  I'm glad 
we've clarified the issue.

-- 
Brian Fundakowski Feldman                           \'[ FreeBSD ]''''''''''\
  <> green at FreeBSD.org                               \  The Power to Serve! \
 Opinions expressed are my own.                       \,,,,,,,,,,,,,,,,,,,,,,\




More information about the cvs-all mailing list