# -*-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"); # SV 45728: Test that undefining a variable is reflected properly &run_make_test(' 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 # @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 # kmk: This test isn't -j1 safe, haven't bother looking into why yet. &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) ', '-j1 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: