123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- # -*-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";
- # On WIN32 systems, HOME is meaningless. SystemRoot should be defined
- # though. With DJGPP, HOME is not guaranteed to be defined. Use DJDIR
- # instead.
- #
- $homevar = (($port_type eq 'Windows') ? "SystemRoot"
- : (($port_type eq 'DOS') ? "DJDIR"
- : "HOME"));
- open(MAKEFILE,"> $makefile");
- print MAKEFILE <<EOF;
- foo := bletch garf
- auto_var = udef CC $homevar MAKE foo CFLAGS WHITE \@
- av = \$(foreach var, \$(auto_var), \$(origin \$(var)) )
- override WHITE := BLACK
- all: auto
- \t\@echo \$(origin undefined)
- \t\@echo \$(origin CC)
- \t\@echo \$(origin $homevar)
- \t\@echo \$(origin MAKE)
- \t\@echo \$(origin foo)
- \t\@echo \$(origin CFLAGS)
- \t\@echo \$(origin WHITE)
- \t\@echo \$(origin \@)
- auto :
- \t\@echo \$(av)
- EOF
- close(MAKEFILE);
- &run_make_with_options($makefile,
- "-e WHITE=WHITE CFLAGS=",
- &get_logfile);
- # Create the answer to what should be produced by this Makefile
- $answer = "undefined default environment default file command line override automatic
- undefined
- default
- environment
- default
- file
- command line
- override
- automatic\n";
- &compare_output($answer,&get_logfile(1));
- 1;
|