| # -*-perl-*- | |
| $description = "Test the .DEFAULT_GOAL special variable."; | |
| $details = ""; | |
| # Test #1: basic logic. | |
| # | |
| run_make_test(' | |
| # Basics. | |
| # | |
| foo: ; @: | |
| ifneq ($(.DEFAULT_GOAL),foo) | |
| $(error ) | |
| endif | |
| # Reset to empty. | |
| # | |
| .DEFAULT_GOAL := | |
| bar: ; @: | |
| ifneq ($(.DEFAULT_GOAL),bar) | |
| $(error ) | |
| endif | |
| # Change to a different goal. | |
| # | |
| .DEFAULT_GOAL := baz | |
| baz: ; @echo $@ | |
| ', | |
| '', | |
| 'baz'); | |
| # Test #2: unknown goal. | |
| # | |
| run_make_test(' | |
| .DEFAULT_GOAL = foo | |
| ', | |
| '', | |
| "#MAKE#: *** No rule to make target 'foo'. Stop.", | |
| 512); | |
| # Test #3: more than one goal. | |
| # | |
| run_make_test(' | |
| .DEFAULT_GOAL := foo bar | |
| ', | |
| '', | |
| '#MAKE#: *** .DEFAULT_GOAL contains more than one target. Stop.', | |
| 512); | |
| # Test #4: Savannah bug #12226. | |
| # | |
| run_make_test(' | |
| define rule | |
| foo: ; @echo $$@ | |
| endef | |
| define make-rule | |
| $(eval $(rule)) | |
| endef | |
| $(call make-rule) | |
| ', | |
| '', | |
| 'foo'); | |
| # TEST #5: .DEFAULT_GOAL containing just whitespace (Savannah bug #25697) | |
| run_make_test(' | |
| N = | |
| .DEFAULT_GOAL = $N $N # Just whitespace | |
| foo: ; @echo "boo" | |
| ', | |
| '', "#MAKE#: *** No targets. Stop.\n", 512); | |
| # This tells the test driver that the perl test script executed properly. | |
| 1; |