xref: /netbsd-src/external/gpl2/gmake/dist/tests/scripts/functions/origin (revision 69606e3f5c9388e52aed8c120ad63c049ca45d8f)
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