| # -*-perl-*- |
| |
| $description = "Test various flavors of make variable setting."; |
| |
| $details = ""; |
| |
| # TEST 0: Recursive |
| |
| run_make_test(' |
| ugh = Goodbye |
| foo = $(bar) |
| bar = ${ugh} |
| ugh = Hello |
| all: ; @echo $(foo) |
| ', |
| '', "Hello\n"); |
| |
| # TEST 1: Simple |
| |
| run_make_test(' |
| bar = Goodbye |
| foo := $(bar) |
| bar = ${ugh} |
| ugh = Hello |
| all: ; @echo $(foo) |
| ', |
| '', "Goodbye\n"); |
| |
| # TEST 2: Append to recursive |
| |
| run_make_test(' |
| foo = Hello |
| ugh = Goodbye |
| foo += $(bar) |
| bar = ${ugh} |
| ugh = Hello |
| all: ; @echo $(foo) |
| ', |
| '', "Hello Hello\n"); |
| |
| # TEST 3: Append to simple |
| |
| run_make_test(' |
| foo := Hello |
| ugh = Goodbye |
| bar = ${ugh} |
| foo += $(bar) |
| ugh = Hello |
| all: ; @echo $(foo) |
| ', |
| '', "Hello Goodbye\n"); |
| |
| # TEST 4: Conditional pre-set |
| |
| run_make_test(' |
| foo = Hello |
| ugh = Goodbye |
| bar = ${ugh} |
| foo ?= $(bar) |
| ugh = Hello |
| all: ; @echo $(foo) |
| ', |
| '', "Hello\n"); |
| |
| # TEST 5: Conditional unset |
| |
| run_make_test(' |
| ugh = Goodbye |
| bar = ${ugh} |
| foo ?= $(bar) |
| ugh = Hello |
| all: ; @echo $(foo) |
| ', |
| '', "Hello\n"); |
| |
| # TEST 6: Simple using POSIX syntax |
| run_make_test(' |
| bar = Goodbye |
| foo ::= $(bar) |
| bar = ${ugh} |
| ugh = Hello |
| all: ; @echo $(foo) |
| ', |
| '', "Goodbye\n"); |
| |
| # TEST 7: POSIX syntax no spaces |
| run_make_test(' |
| bar = Goodbye |
| foo::=$(bar) |
| bar = ${ugh} |
| ugh = Hello |
| all: ; @echo $(foo) |
| ', |
| '', "Goodbye\n"); |
| |
| # TEST 8: Append to empty |
| run_make_test(q! |
| recur = |
| recur += foo |
| simple := |
| simple += bar |
| recur_empty = foo |
| recur_empty += |
| simple_empty := bar |
| simple_empty += |
| empty_recur = |
| empty_recur += |
| empty_simple := |
| empty_simple += |
| |
| all: ; @: $(info recur=/$(recur)/ simple=/$(simple)/ recure=/$(recur_empty)/ simplee=/$(simple_empty)/ erecur=/$(empty_recur)/ esimple=/$(empty_simple)/) |
| !, |
| '', "recur=/foo/ simple=/bar/ recure=/foo/ simplee=/bar/ erecur=// esimple=//\n"); |
| |
| # TEST 9: Line continuation |
| run_make_test(q! |
| recur = $\ |
| one$\ |
| two$\ |
| three |
| simple := $\ |
| four$\ |
| five$\ |
| six |
| |
| all: d$\ |
| e$\ |
| p; @: |
| |
| .PHONY: dep |
| dep: ; @: $(info recur=/$(recur)/ simple=/$(simple)/) |
| !, |
| '', "recur=/onetwothree/ simple=/fourfivesix/\n"); |
| |
| # TEST 9: Line continuation |
| run_make_test(q! |
| .POSIX: |
| recur = $\ |
| one$\ |
| two$\ |
| three |
| simple := $\ |
| four$\ |
| five$\ |
| six |
| |
| all: d$\ |
| e$\ |
| p; @: |
| |
| .PHONY: dep |
| dep: ; @: $(info recur=/$(recur)/ simple=/$(simple)/) |
| !, |
| '', "recur=/onetwothree/ simple=/fourfivesix/\n"); |
| |
| 1; |