bug-make
[Top][All Lists]
Advanced

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

Possible bug in make 3.82 private variable definition


From: Brown, Ruben
Subject: Possible bug in make 3.82 private variable definition
Date: Fri, 7 Sep 2012 17:19:25 -0400

Dear GNU make maintainers,

 

I’ve found a use case in which a chain of prerequisite targets appears to ignore the private modifier on a pattern specific variable definition. This occurs in gnu make 3.82. Please find a simple example of this use case below. This seems like a bug, can someone please confirm that this is not the desired behavior before I send in a bug report?

 

Thanks,

-Ruben Brown

 

Makefile:

 

IMMEDIATE :=

DEFFERED  =

 

STR = IMMEDIATE[$(IMMEDIATE)] DEFFERED[$(DEFFERED)]

 

debug: all

debug: IMMEDIATE += -debug

debug: DEFFERED  += -debug

debug:

                @echo debug: $(STR)

 

all: build

al%: private IMMEDIATE += -implicit

al%: private DEFFERED  += -implicit

al%:

                @echo $@: $(STR)

 

build:

                @echo build: $(STR)

 

Output:

 

$make-3.82 debug

build: IMMEDIATE[-debug -implicit] DEFFERED[-debug -implicit]

all: IMMEDIATE[-debug -implicit] DEFFERED[-debug -implicit]

debug: IMMEDIATE[-debug] DEFFERED[-debug]

 

$make-3.82 all

build: IMMEDIATE[] DEFFERED[]

all: IMMEDIATE[-implicit] DEFFERED[-implicit]

 

Expected Behavior:

 

As I understand it the -implicit string should never occur outside the evaluation of the all target. E.G. The output of the debug target evaluation above should be, with the non-private –debug modification taking effect, and the private –implicit modification not taking effect outside the all target.

 

$make-3.82 debug

build: IMMEDIATE[-debug] DEFFERED[-debug]

all: IMMEDIATE[-debug -implicit] DEFFERED[-debug -implicit]

debug: IMMEDIATE[-debug] DEFFERED[-debug]

 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]