| # -*-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; |