| # -*-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; |