#                                                                    -*-perl-*-

$description = "Test the --eval option.";

$details = "Verify that --eval options take effect,
and are passed to sub-makes.";

# Verify that --eval is evaluated first
run_make_test(q!
$(info infile)
BAR = bar
all: ; @echo all
recurse: ; @$(MAKE) -f #MAKEFILE# && echo recurse!,
              ['--eval=$(info eval)', 'FOO=$(BAR)'], "eval\ninfile\nall");

# Make sure that --eval is handled correctly during recursion
run_make_test(undef, ['--no-print-directory', '--eval=$(info eval)', 'recurse'],
              "eval\ninfile\neval\ninfile\nall\nrecurse");

# Make sure that --eval is not passed in MAKEFLAGS
run_make_test(q!
all: ; @echo "MAKEFLAGS=$$MAKEFLAGS"
!,
              ['--eval=$(info eval)'],
              "eval\n".'MAKEFLAGS= --eval=$$(info\ eval)');

# Make sure that --eval is handled correctly during restarting
run_make_test(q!
all: ; @echo $@
-include gen.mk
gen.mk: ; @echo > $@
!,
              ['--eval=$(info eval)'], "eval\neval\nall");

unlink('gen.mk');

# Check -E
run_make_test(q!
BAR = bar
all: ; @echo all
recurse: ; @$(MAKE) -f #MAKEFILE# && echo recurse!,
              ['-E', '$(info eval)', 'FOO=$(BAR)'], "eval\nall");

1;
