This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Found bug in make


McCollister, Mike wrote:
> 
> Hi,
> 
> I just downloaded beta 18 and found what I consider a major bug in make.
> Here is a sample Makefile:
> 
> ---start Makefile---
> .SILENT:
> SHELL =         /bin/sh
> 
> FRED =          fred
> MARY =          mary
> LIST =          file1 file2 file3 file4
> LIST_C =        ${LIST:=.c}
> 
> level1:
>         echo ; \
>         echo $@ ; \
>         MIKE=mike ; export MIKE ; \
>         echo FRED = $(FRED) ; \
>         echo MARY = $(MARY) ; \
>         echo MIKE = $$MIKE ; \
>         echo LIST = $(LIST) ; \
>         echo LIST_C = $(LIST_C) ; \
>         echo OPTION = $(OPTION) ; \
>         $(MAKE) level2
> 
> level2:
>         echo ; \
>         echo $@ ; \
>         echo FRED = $(FRED) ; \
>         echo MARY = $(MARY) ; \
>         echo MIKE = $(MIKE) ; \
>         echo LIST = $(LIST) ; \
>         echo LIST_C = $(LIST_C) ; \
>         echo OPTION = $(OPTION)
> ---end Makefile---
> 
> Now here is the bad output:
> 
> level1
> FRED = fred
> MARY = mary
> MIKE = mike
> LIST = file1 file2 file3 file4
> LIST_C = file1.c file2.c file3.c file4.c
> OPTION = option
> 
> level2
> FRED = fred
> MARY = mary
> MIKE = mike
> LIST = file1 file2 file3 file4
> LIST_C = file1.c file2.c file3.c file4.c
> OPTION =
> 
> Now here is what the output should be:
> 
> level1
> FRED = fred
> MARY = mary
> MIKE = mike
> LIST = file1 file2 file3 file4
> LIST_C = file1.c file2.c file3.c file4.c
> OPTION = option
> 
> level2
> FRED = fred
> MARY = mary
> MIKE = mike
> LIST = file1 file2 file3 file4
> LIST_C = file1.c file2.c file3.c file4.c
> OPTION = option  <- THIS IS DIFFERENT
> 
> Note that OPTION is not being "exported" to the next instance of make.
> 
> Does anyone know if build 19 fixes this?

No, but I've seen this env problem before and you should be able
to work around it by changing:
        $(MAKE) level2
to:
        $(MAKE) -e level2
if I remember correctly.

-- 
  ,-/-  __      _  _         $Bill Luebkert
 (_/   /  )    // //       DBE Collectibles
  / ) /--<  o // //      http://www.wgn.net/~dbe/
-/-' /___/_<_</_</_    Email: dbe@wgn.net
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]