| # -*-perl-*- | |
| $description = "Test special GNU Make variables."; | |
| $details = ""; | |
| run_make_test(q! | |
| X1 := $(sort $(filter FOO BAR,$(.VARIABLES))) | |
| FOO := foo | |
| X2 := $(sort $(filter FOO BAR,$(.VARIABLES))) | |
| BAR := bar | |
| all: ; @echo X1 = $(X1); echo X2 = $(X2); echo LAST = $(sort $(filter FOO BAR,$(.VARIABLES))) | |
| !, | |
| '', "X1 =\nX2 = FOO\nLAST = BAR FOO\n"); | |
| # SV 45728: Test that undefining a variable is reflected properly | |
| run_make_test(q! | |
| FOO := foo | |
| BAR := bar | |
| $(info one: $(sort $(filter FOO BAR BAZ,$(.VARIABLES)))) | |
| undefine BAR | |
| BAZ := baz | |
| $(info two: $(sort $(filter FOO BAR BAZ,$(.VARIABLES)))) | |
| all:;@: | |
| !, | |
| '', "one: BAR FOO\ntwo: BAZ FOO\n"); | |
| # $makefile2 = &get_tmpfile; | |
| # open(MAKEFILE, "> $makefile2"); | |
| # print MAKEFILE <<'EOF'; | |
| # X1 := $(sort $(.TARGETS)) | |
| # all: foo | |
| ##TAB#@echo X1 = $(X1) | |
| ##TAB#@echo X2 = $(X2) | |
| ##TAB#@echo LAST = $(sort $(.TARGETS)) | |
| # X2 := $(sort $(.TARGETS)) | |
| # foo: | |
| # EOF | |
| # close(MAKEFILE); | |
| # # TEST #2 | |
| # # ------- | |
| # &run_make_with_options($makefile2, "", &get_logfile); | |
| # $answer = "X1 =\nX2 = all\nLAST = all foo\n"; | |
| # &compare_output($answer, &get_logfile(1)); | |
| # Test the .RECIPEPREFIX variable | |
| run_make_test(q! | |
| define foo | |
| : foo-one\ | |
| foo-two | |
| : foo-three | |
| #TAB#: foo-four | |
| endef | |
| orig: ; : orig-one | |
| #TAB#: orig-two \ | |
| orig-three \ | |
| #TAB#orig-four \ | |
| #TAB##TAB#orig-five \\\\ | |
| #TAB#: orig-six | |
| #TAB#$(foo) | |
| .RECIPEPREFIX = > | |
| test: ; : test-one | |
| >: test-two \ | |
| test-three \ | |
| >test-four \ | |
| >#TAB#test-five \\\\ | |
| >: test-six | |
| >$(foo) | |
| .RECIPEPREFIX = | |
| reset: ; : reset-one | |
| #TAB#: reset-two \ | |
| reset-three \ | |
| #TAB#reset-four \ | |
| #TAB##TAB#reset-five \\\\ | |
| #TAB#: reset-six | |
| #TAB#$(foo) | |
| !, | |
| 'orig test reset', | |
| ': orig-one | |
| : orig-two \ | |
| orig-three \ | |
| orig-four \ | |
| #TAB#orig-five \\\\ | |
| : orig-six | |
| : foo-one foo-two | |
| : foo-three | |
| : foo-four | |
| : test-one | |
| : test-two \ | |
| test-three \ | |
| test-four \ | |
| #TAB#test-five \\\\ | |
| : test-six | |
| : foo-one foo-two | |
| : foo-three | |
| : foo-four | |
| : reset-one | |
| : reset-two \ | |
| reset-three \ | |
| reset-four \ | |
| #TAB#reset-five \\\\ | |
| : reset-six | |
| : foo-one foo-two | |
| : foo-three | |
| : foo-four'); | |
| 1; |