| # -*-perl-*- | |
| $description = "Test variable undefine."; | |
| $details = ""; | |
| # TEST 0: basic undefine functionality | |
| run_make_test(' | |
| a = a | |
| b := b | |
| define c | |
| c | |
| endef | |
| $(info $(flavor a) $(flavor b) $(flavor c)) | |
| n := b | |
| undefine a | |
| undefine $n | |
| undefine c | |
| $(info $(flavor a) $(flavor b) $(flavor c)) | |
| all: ;@: | |
| ', | |
| '', "recursive simple recursive\nundefined undefined undefined"); | |
| # TEST 1: override | |
| run_make_test(' | |
| undefine a | |
| override undefine b | |
| $(info $(flavor a) $(flavor b)) | |
| all: ;@: | |
| ', | |
| 'a=a b=b', "recursive undefined"); | |
| 1; | |
| # TEST 2: undefine in eval (make sure we undefine from the global var set) | |
| run_make_test(' | |
| define undef | |
| $(eval undefine $$1) | |
| endef | |
| a := a | |
| $(call undef,a) | |
| $(info $(flavor a)) | |
| all: ;@: | |
| ', | |
| '', "undefined"); | |
| # TEST 3: Missing variable name | |
| run_make_test(' | |
| a = | |
| undefine $a | |
| all: ;@echo ouch | |
| ', | |
| '', "#MAKEFILE#:3: *** empty variable name. Stop.\n", 512); | |
| 1; |