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

Brian F. Feldman green at FreeBSD.org
Thu Jan 8 08:07:54 PST 2004


Ruslan Ermilov <ru at FreeBSD.org> wrote:
> On Wed, Jan 07, 2004 at 03:41:03PM -0500, Brian F. Feldman wrote:
> > Ruslan Ermilov <ru at FreeBSD.org> wrote:
> > > On Thu, Jan 01, 2004 at 09:05:48PM -0800, Brian Feldman wrote:
> > > > green       2004/01/01 21:05:48 PST
> > > > 
> > > >   FreeBSD src repository
> > > > 
> > > >   Modified files:
> > > >     share/mk             bsd.obj.mk 
> > > >   Log:
> > > >   Fix a very corner case when you want to make cleandir SUBDIRs which
> > > >   are built using a ${MAKE} that's not just "make".
> > > >   
> > > >   Test by:        make universe (followed by cleandirs)
> > > >   
> > > >   Revision  Changes    Path
> > > >   1.49      +2 -2      src/share/mk/bsd.obj.mk
> > > > 
> > > The old version used ${MAKE}, why this was a problem at all?
> > 
> > The ${MAKE} that it uses would be overridden by the default ${MAKE} value 
> > each time; this doesn't occur when dependencies are executed, though.
> > 
> Please explain in more detail.  With the below makefile,
> 
> : all:
> : 	@cd ${.CURDIR}; ${MAKE} print-make
> : 
> : print-make:
> : 	@echo ${MAKE}
> 
> running /usr/bin/make will rightfully print "/usr/bin/make".
> make(1)'s main() always sets MAKE to argv[0] as its first task.

Here is the difference in behavior:

{"/home/green/tmp/x"}$ make print-make all
make
make
{"/home/green/tmp/x"}$ make MAKE='/usr/bin/make -DNONDEF' print-make all
/usr/bin/make -DNONDEF
/usr/bin/make


-- 
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