1*69606e3fSchristos# -*-perl-*- 2*69606e3fSchristos 3*69606e3fSchristos$description = "Test the origin function."; 4*69606e3fSchristos 5*69606e3fSchristos$details = "This is a test of the origin function in gnu make. 6*69606e3fSchristosThis function will report on where a variable was 7*69606e3fSchristosdefined per the following list: 8*69606e3fSchristos 9*69606e3fSchristos'undefined' never defined 10*69606e3fSchristos'default' default definition 11*69606e3fSchristos'environment' environment var without -e 12*69606e3fSchristos'environment override' environment var with -e 13*69606e3fSchristos'file' defined in makefile 14*69606e3fSchristos'command line' defined on the command line 15*69606e3fSchristos'override' defined by override in makefile 16*69606e3fSchristos'automatic' Automatic variable\n"; 17*69606e3fSchristos 18*69606e3fSchristos# Set an environment variable 19*69606e3fSchristos$extraENV{MAKETEST} = 1; 20*69606e3fSchristos 21*69606e3fSchristosrun_make_test(' 22*69606e3fSchristosfoo := bletch garf 23*69606e3fSchristosauto_var = undefined CC MAKETEST MAKE foo CFLAGS WHITE @ 24*69606e3fSchristosav = $(foreach var, $(auto_var), $(origin $(var)) ) 25*69606e3fSchristosoverride WHITE := BLACK 26*69606e3fSchristosall: auto 27*69606e3fSchristos @echo $(origin undefined) 28*69606e3fSchristos @echo $(origin CC) 29*69606e3fSchristos @echo $(origin MAKETEST) 30*69606e3fSchristos @echo $(origin MAKE) 31*69606e3fSchristos @echo $(origin foo) 32*69606e3fSchristos @echo $(origin CFLAGS) 33*69606e3fSchristos @echo $(origin WHITE) 34*69606e3fSchristos @echo $(origin @) 35*69606e3fSchristosauto : 36*69606e3fSchristos @echo $(av)', 37*69606e3fSchristos '-e WHITE=WHITE CFLAGS=', 38*69606e3fSchristos 'undefined default environment default file command line override automatic 39*69606e3fSchristosundefined 40*69606e3fSchristosdefault 41*69606e3fSchristosenvironment 42*69606e3fSchristosdefault 43*69606e3fSchristosfile 44*69606e3fSchristoscommand line 45*69606e3fSchristosoverride 46*69606e3fSchristosautomatic'); 47*69606e3fSchristos 48*69606e3fSchristos# Reset an environment variable 49*69606e3fSchristosdelete $extraENV{MAKETEST}; 50*69606e3fSchristos 51*69606e3fSchristos1; 52