|
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] |
[Prev in Thread] | Current Thread | [Next in Thread] |