| # -*-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 override default file command line override automatic | |
| undefined | |
| default | |
| environment override | |
| default | |
| file | |
| command line | |
| override | |
| automatic'); | |
| 1; |