| # -*-perl-*- |
| |
| $description = "Test special GNU make variables."; |
| |
| $details = ""; |
| |
| &run_make_test(' |
| |
| 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"); |
| |
| |
| |
| # $makefile2 = &get_tmpfile; |
| # open(MAKEFILE, "> $makefile2"); |
| |
| # print MAKEFILE <<'EOF'; |
| |
| # X1 := $(sort $(.TARGETS)) |
| |
| # all: foo |
| # @echo X1 = $(X1) |
| # @echo X2 = $(X2) |
| # @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(' |
| define foo |
| : foo-one\ |
| foo-two |
| : foo-three |
| : foo-four |
| endef |
| |
| orig: ; : orig-one |
| : orig-two \ |
| orig-three \ |
| orig-four \ |
| orig-five \\\\ |
| : orig-six |
| $(foo) |
| |
| .RECIPEPREFIX = > |
| test: ; : test-one |
| >: test-two \ |
| test-three \ |
| >test-four \ |
| > test-five \\\\ |
| >: test-six |
| >$(foo) |
| |
| .RECIPEPREFIX = |
| reset: ; : reset-one |
| : reset-two \ |
| reset-three \ |
| reset-four \ |
| reset-five \\\\ |
| : reset-six |
| $(foo) |
| ', |
| 'orig test reset', |
| ': orig-one |
| : orig-two \ |
| orig-three \ |
| orig-four \ |
| orig-five \\\\ |
| : orig-six |
| : foo-one foo-two |
| : foo-three |
| : foo-four |
| : test-one |
| : test-two \ |
| test-three \ |
| test-four \ |
| test-five \\\\ |
| : test-six |
| : foo-one foo-two |
| : foo-three |
| : foo-four |
| : reset-one |
| : reset-two \ |
| reset-three \ |
| reset-four \ |
| reset-five \\\\ |
| : reset-six |
| : foo-one foo-two |
| : foo-three |
| : foo-four'); |
| |
| # Test that the "did you mean TAB" message is printed properly |
| |
| run_make_test(q! |
| $x. |
| !, |
| '', '#MAKEFILE#:2: *** missing separator. Stop.', 512); |
| |
| run_make_test(q! |
| foo: |
| bar |
| !, |
| '', '#MAKEFILE#:3: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.', 512); |
| |
| run_make_test(q! |
| .RECIPEPREFIX = : |
| foo: |
| bar |
| !, |
| '', '#MAKEFILE#:4: *** missing separator. Stop.', 512); |
| |
| 1; |
| |
| ### Local Variables: |
| ### eval: (setq whitespace-action (delq 'auto-cleanup whitespace-action)) |
| ### End: |