mirror of
https://github.com/mirror/make.git
synced 2026-08-19 16:33:28 +08:00
[SV 61218] Ensure MAKEFLAGS is expanded even with -e
If -e was given we weren't expanding MAKEFLAGS before passing it through the environment to jobs: we don't expand variables we receive from the environment and when -e is given we set the origin of MAKEFLAGS to "environment override". Check for MAKEFLAGS specifically, which seems like a hack but I don't have a better idea offhand. * src/main.c (main): Drive-by: use o_default for MAKEOVERRIDES. * src/variable.c (target_environment): Always expand MAKEFLAGS regardless of the origin type. * tests/scripts/options/dash-e: Create a test.
This commit is contained in:
@@ -1,8 +1,6 @@
|
||||
# -*-perl-*-
|
||||
|
||||
$description = "The following test creates a makefile to ...";
|
||||
|
||||
$details = "";
|
||||
$description = "Test the -e (environment overrides) option";
|
||||
|
||||
$ENV{GOOGLE} = 'boggle';
|
||||
|
||||
@@ -12,4 +10,15 @@ all:; @echo "$(GOOGLE)"
|
||||
!,
|
||||
'-e', "boggle\n");
|
||||
|
||||
# Ensure variables set on the command line have the origin correct
|
||||
# See SV 61218
|
||||
|
||||
run_make_test(q!
|
||||
$(info FOO [$(origin FOO)]: $(value FOO))
|
||||
all: ;
|
||||
recurse: ; @$(MAKE) -f #MAKEFILE#
|
||||
!,
|
||||
'-e --no-print-directory FOO=1 recurse',
|
||||
"FOO [command line]: 1\nFOO [command line]: 1\n#MAKE#[1]: 'all' is up to date.");
|
||||
|
||||
1;
|
||||
|
||||
Reference in New Issue
Block a user