| # -*-perl-*- | |
| $description = "Test the override directive on variable assignments."; | |
| $details = ""; | |
| # TEST 0: Basic override | |
| run_make_test(' | |
| X = start | |
| override recur = $(X) | |
| override simple := $(X) | |
| X = end | |
| all: ; @echo "$(recur) $(simple)" | |
| ', | |
| 'recur=I simple=J', "end start\n"); | |
| # TEST 1: Override with append | |
| run_make_test(' | |
| X += X1 | |
| override X += X2 | |
| override Y += Y1 | |
| Y += Y2 | |
| all: ; @echo "$(X) $(Y)" | |
| ', | |
| '', "X1 X2 Y1\n"); | |
| # TEST 2: Override with append to the command line | |
| run_make_test(undef, 'X=C Y=C', "C X2 C Y1\n"); | |
| # Test override of define/endef | |
| run_make_test(' | |
| override define foo | |
| @echo First comes the definition. | |
| @echo Then comes the override. | |
| endef | |
| all: ; $(foo) | |
| ', | |
| 'foo=Hello', "First comes the definition.\nThen comes the override.\n"); | |
| 1; |