Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Jul 2004 00:40:21 GMT
From:      Giorgos Keramidas <keramida@ceid.upatras.gr>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: bin/68534: make(1) - ${.MAKEFLAGS} does not contain cmd line args
Message-ID:  <200407010040.i610eLpd020288@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/68534; it has been noted by GNATS.

From: Giorgos Keramidas <keramida@ceid.upatras.gr>
To: "John E. Hein" <jhein@timing.com>
Cc: bug-followup@freebsd.org
Subject: Re: bin/68534: make(1) - ${.MAKEFLAGS} does not contain cmd line args
Date: Thu, 1 Jul 2004 03:37:25 +0300

 On 2004-06-30 17:36, "John E. Hein" <jhein@timing.com> wrote:
 > MAKEFLAGS env variable & .MAKEFLAGS make variable does not contain command
 > line args as specified in make(1).
 
 This is not a bug.
 
 The keyword is "may".  If you set .MAKEFLAGS in your Makefile or MAKEFLAGS in
 the environment than make(1) *will* *pass* these to child processes (as the
 value of MAKEFLAGS in the environment).
 
 Not setting MAKEFLAGS is not an error, but does not imply that something
 related to make's invocation will get passed in the environment.
 
 Here's an an example:
 
 : giorgos@gothmog:/tmp/maketest$ cat Makefile
 : SUBDIR= alpha
 :
 : .MAKEFLAGS=     WITHOUT_X11=YES
 :
 : all:
 :         @echo "MFLAGS     : ${MFLAGS}"
 :         @echo "MAKEFLAGS  : ${MAKEFLAGS}"
 :         @echo ".MAKEFLAGS : ${.MAKEFLAGS}"
 :
 : .include <bsd.subdir.mk>
 : giorgos@gothmog:/tmp/maketest$ cat alpha/Makefile
 : all:
 :         @echo "MFLAGS     : ${MFLAGS}"
 :         @echo "MAKEFLAGS  : ${MAKEFLAGS}"
 :         @echo ".MAKEFLAGS : ${.MAKEFLAGS}"
 :
 : giorgos@gothmog:/tmp/maketest$ make WITHOUT_X11=NO
 : MFLAGS     :  WITHOUT_X11=YES
 : MAKEFLAGS  : WITHOUT_X11=YES
 : .MAKEFLAGS : WITHOUT_X11=YES
 : ===> alpha
 : MFLAGS     :
 : MAKEFLAGS  : WITHOUT_X11=YES
 : .MAKEFLAGS :
 : giorgos@gothmog:/tmp/maketest$
 
 Note how WITHOUT_X11=NO in the command line does not have any effect because
 ./Makefile sets .MAKEFLAGS to something different.  But the correct value *is*
 propagated as expected to alpha/Makefile.
 
 If there is a bug here it's in what is described in the manpage as:
 
      MFLAGS     A synonym for .MAKEFLAGS provided for backward compatibility.
 
 which isn't quite true AFAICT, since MFLAGS includes the value of .MAKEFLAGS
 when the latter is set but not vice versa.
 
 - Giorgos
 



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