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]
_______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make