mirror of
https://github.com/mirror/make.git
synced 2025-02-09 19:31:08 +08:00
Use level o_env_override for MAKEFLAGS so it's reset even with -e.
Fixes Savannah bug #2216.
This commit is contained in:
parent
381baeef7a
commit
2627d83221
@ -1,5 +1,9 @@
|
|||||||
2013-05-13 Paul Smith <psmith@gnu.org>
|
2013-05-13 Paul Smith <psmith@gnu.org>
|
||||||
|
|
||||||
|
* main.c (define_makeflags): Assign o_env_override level to
|
||||||
|
MAKEFLAGS to ensure it's set even in the presence of -e.
|
||||||
|
Fixes Savannah bug #2216.
|
||||||
|
|
||||||
* makeint.h (TRACE_NONE, TRACE_RULE, TRACE_DIRECTORY): Define
|
* makeint.h (TRACE_NONE, TRACE_RULE, TRACE_DIRECTORY): Define
|
||||||
constants for the trace mode.
|
constants for the trace mode.
|
||||||
* main.c: Add new --trace mode parsing.
|
* main.c: Add new --trace mode parsing.
|
||||||
|
14
main.c
14
main.c
@ -3150,14 +3150,14 @@ define_makeflags (int all, int makefile)
|
|||||||
if (flagstring[0] == '-' && flagstring[1] != '-')
|
if (flagstring[0] == '-' && flagstring[1] != '-')
|
||||||
++flagstring;
|
++flagstring;
|
||||||
|
|
||||||
|
/* This used to use o_env, but that lost when a makefile defined MAKEFLAGS.
|
||||||
|
Makefiles set MAKEFLAGS to add switches, but we still want to redefine
|
||||||
|
its value with the full set of switches. Then we used o_file, but that
|
||||||
|
lost when users added -e, causing a previous MAKEFLAGS env. var. to take
|
||||||
|
precedence over the new one. Of course, an override or command
|
||||||
|
definition will still take precedence. */
|
||||||
v = define_variable_cname ("MAKEFLAGS", flagstring,
|
v = define_variable_cname ("MAKEFLAGS", flagstring,
|
||||||
/* This used to use o_env, but that lost when a
|
env_overrides ? o_env_override : o_file, 1);
|
||||||
makefile defined MAKEFLAGS. Makefiles set
|
|
||||||
MAKEFLAGS to add switches, but we still want
|
|
||||||
to redefine its value with the full set of
|
|
||||||
switches. Of course, an override or command
|
|
||||||
definition will still take precedence. */
|
|
||||||
o_file, 1);
|
|
||||||
|
|
||||||
if (! all)
|
if (! all)
|
||||||
/* The first time we are called, set MAKEFLAGS to always be exported.
|
/* The first time we are called, set MAKEFLAGS to always be exported.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# -*-perl-*-
|
# -*-perl-*-
|
||||||
|
|
||||||
$description = "Test proper behavior of MAKEFLAGS";
|
$description = "Test proper behavior of MAKEFLAGS";
|
||||||
|
|
||||||
@ -14,30 +14,26 @@ all: ; @echo $(MAKEFLAGS)
|
|||||||
run_make_test(q!
|
run_make_test(q!
|
||||||
all: ; @echo $(MAKEFLAGS)
|
all: ; @echo $(MAKEFLAGS)
|
||||||
!,
|
!,
|
||||||
'--no-print-directory -e -r -R', '--no-print-directory -Rre');
|
'--no-print-directory -e -r -R --trace=none --trace=dir', '--no-print-directory --trace=none --trace=dir -Rre');
|
||||||
|
|
||||||
|
|
||||||
if ($all_tests) {
|
# Recursive invocations of make should accumulate MAKEFLAGS values.
|
||||||
# Recursive invocations of make should accumulate MAKEFLAGS values.
|
# Savannah bug #2216
|
||||||
# Savannah bug #2216
|
run_make_test(q!
|
||||||
run_make_test(q!
|
|
||||||
MSG = Fails
|
MSG = Fails
|
||||||
all:
|
all:
|
||||||
@echo '$@: MAKEFLAGS=$(MAKEFLAGS)'
|
@echo '$@: MAKEFLAGS=$(MAKEFLAGS)'
|
||||||
@MSG=Works $(MAKE) -e -f #MAKEFILE# jump
|
@MSG=Works $(MAKE) -e -f #MAKEFILE# jump
|
||||||
jump:
|
jump:
|
||||||
@echo '$@: MAKEFLAGS=$(MAKEFLAGS)'
|
@echo '$@ $(MSG): MAKEFLAGS=$(MAKEFLAGS)'
|
||||||
@$(MAKE) -f #MAKEFILE# print
|
@$(MAKE) -f #MAKEFILE# print
|
||||||
print:
|
print:
|
||||||
@echo '$@: MAKEFLAGS=$(MAKEFLAGS)'
|
@echo '$@ $(MSG): MAKEFLAGS=$(MAKEFLAGS)'
|
||||||
@echo $(MSG)
|
|
||||||
.PHONY: all jump print
|
.PHONY: all jump print
|
||||||
!,
|
!,
|
||||||
'--no-print-directory',
|
'--no-print-directory',
|
||||||
'all: MAKEFLAGS= --no-print-directory
|
'all: MAKEFLAGS=--no-print-directory
|
||||||
jump: MAKEFLAGS= --no-print-directory -e
|
jump Works: MAKEFLAGS=--no-print-directory -e
|
||||||
print: MAKEFLAGS= --no-print-directory -e
|
print Works: MAKEFLAGS=--no-print-directory -e');
|
||||||
Works');
|
|
||||||
}
|
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
Loading…
Reference in New Issue
Block a user