Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/usr.bin/make



In article <krbu04$2j1$1%ger.gmane.org@localhost>,
Christos Zoulas <christos%astron.com@localhost> wrote:
>>Module Name:  src
>>Committed By: sjg
>>Date:         Sat Jul  6 18:19:17 UTC 2013
>>
>>Modified Files:
>>      src/usr.bin/make: main.c var.c
>>
>>Log Message:
>>If using gmake's MAKELEVEL; use it the same way
>
>Now you put it back the way it was before which is wrong. Gmake does not
>behave this way. Before your change the following Makefile printed:

This is still broken. Renaming the variable is not a fix either.
Consider the case where we switched from bmake to gmake as the
pkgsrc wrapper. The packages that depend on $MAKELEVEL being 0 or
unset would still break. So the proper fix for the 2 packages that
broke is to make pkgsrc unset MAKELEVEL before invoking gmake.

So to fix those:
- revert the changes so that MAKELEVEL again works the same way as in gmake.
- add glue to invoke gmake with MAKELEVEL unset.

christos

>
>--- Makefile ---
>all:
>       echo makelevel=${MAKELEVEL} make=${MAKE} makeflags=${MAKEFLAGS}
>       echo .makelevel=${.MAKELEVEL}
>       ${MAKE} l1
>
>l1:
>       echo makelevel=${MAKELEVEL} make=${MAKE} makeflags=${MAKEFLAGS}
>       echo .makelevel=${.MAKELEVEL}
>--- Output gmake ---
>    echo makelevel=0 make=gmake makeflags=
>    makelevel=0 make=gmake makeflags=
>    echo .makelevel=
>    .makelevel=
>    gmake l1
>    gmake[1]: Entering directory `/u/christos'
>    echo makelevel=1 make=gmake makeflags=w
>    makelevel=1 make=gmake makeflags=w
>    echo .makelevel=
>    .makelevel=
>    gmake[1]: Leaving directory `/u/christos'
>--- Output make before your fixes ---
>    echo makelevel=0 make=make makeflags= 
>    makelevel=0 make=make makeflags=
>    echo .makelevel=0
>    .makelevel=0
>    make l1
>    echo makelevel=1 make=make makeflags= 
>    makelevel=1 make=make makeflags=
>    echo .makelevel=1
>    .makelevel=1
>--- Output make after your fixes --
>    echo makelevel=1 make=/usr/src/usr.bin/make/obj.amd64/make makeflags= 
>    makelevel=1 make=/usr/src/usr.bin/make/obj.amd64/make makeflags=
>    echo .makelevel=
>    .makelevel=
>    /usr/src/usr.bin/make/obj.amd64/make l1
>    echo makelevel=2 make=/usr/src/usr.bin/make/obj.amd64/make makeflags= 
>    makelevel=2 make=/usr/src/usr.bin/make/obj.amd64/make makeflags=
>    echo .makelevel=
>    .makelevel=
>
>As I mentioned before, it makes no sense to keep the variable internally at
>X and pass it to the program at X + 1, and as demonstrated, this is not
>what gmake does.
>
>christos
>
>





Home | Main Index | Thread Index | Old Index