#                                                                    -*-perl-*-

$description = "Test the origin function.";

$details = "This is a test of the origin function in gnu make.
This function will report on where a variable was
defined per the following list:

'undefined'            never defined
'default'              default definition
'environment'          environment var without -e
'environment override' environment var with    -e
'file'                 defined in makefile
'command line'         defined on the command line
'override'             defined by override in makefile
'automatic'            Automatic variable\n";

# Set an environment variable
$ENV{MAKETEST} = 1;

run_make_test('
foo := bletch garf
auto_var = undefined CC MAKETEST MAKE foo CFLAGS WHITE @
av = $(foreach var, $(auto_var), $(origin $(var)) )
override WHITE := BLACK
.RECIPEPREFIX = >
all: auto
> @echo $(origin undefined)
> @echo $(origin CC)
> @echo $(origin MAKETEST)
> @echo $(origin MAKE)
> @echo $(origin foo)
> @echo $(origin CFLAGS)
> @echo $(origin WHITE)
> @echo $(origin @)
auto :
> @echo $(av)',
    '-e WHITE=WHITE CFLAGS=',
    'undefined default environment default file command line override automatic
undefined
default
environment
default
file
command line
override
automatic');

1;
