# -*-perl-*- $description = "Test the --warn-undefined-variables option."; $details = "Verify that warnings are printed for referencing undefined variables."; # Verify that make's special variables don't warn even if they're not set run_make_test(q! vars := $(.VARIABLES) $(MAKECMDGOALS) $(MAKE_RESTARTS) $(CURDIR) vars += $(GNUMAKEFLAGS) $(MAKEFLAGS) $(MFLAGS) $(MAKE_COMMAND) $(MAKE) vars += $(MAKEFILE_LIST) $(MAKEOVERRIDES) $(-*-command-variables-*-) vars += $(.RECIPEPREFIX) $(.LOADED) $(.FEATURES) vars += $(SHELL) $(.SHELLFLAGS) $(MAKE_TERMOUT) $(MAKE_TERMERR) vars += $(.DEFAULT) $(.DEFAULT_GOAL) $(-*-eval-flags-*-) $(SUFFIXES) vars += $(VPATH) $(GPATH) all:; !, '--warn-undefined-variables', "#MAKE#: 'all' is up to date."); # Without --warn-undefined-variables, nothing should happen run_make_test(' EMPTY = EREF = $(EMPTY) UREF = $(UNDEFINED) SEREF := $(EREF) SUREF := $(UREF) all: ; @echo ref $(EREF) $(UREF)', '', 'ref'); # With --warn-undefined-variables, it should warn me run_make_test(undef, '--warn-undefined-variables', "#MAKEFILE#:7: warning: undefined variable 'UNDEFINED' #MAKEFILE#:9: warning: undefined variable 'UNDEFINED' ref"); # sv 63609. # Test for buffer overrun in warn_undefined. run_make_test(q! all:; X := $(averyveryverylongvariablename) !, '--warn-undefined-variables', "#MAKEFILE#:3: warning: undefined variable 'averyveryverylongvariablename' #MAKE#: 'all' is up to date.\n" ); 1;