| # -*-perl-*- |
| |
| # Updated 6.16.93 variable "MAKE" is default was environment override |
| # For make 3.63 and above |
| |
| $description = "The following test creates a makefile to verify |
| test the foreach function."; |
| |
| $details = "This is a test of the foreach function in gnu make. |
| This function starts with a space separated list of |
| names and a variable. Each name in the list is subsituted |
| into the variable and the given text evaluated. The general |
| form of the command is $(foreach var,$list,$text). Several |
| types of foreach loops are tested\n"; |
| |
| |
| open(MAKEFILE,"> $makefile"); |
| |
| # The Contents of the MAKEFILE ... |
| |
| # On WIN32 systems, the user's path is found in %Path% ($Path) |
| # |
| $pathvar = (($port_type eq 'Windows') ? "Path" : "PATH"); |
| |
| print MAKEFILE <<EOF; |
| foo = bletch null \@ garf |
| null := |
| space = ' ' |
| auto_var = udef space CC null $pathvar MAKE foo CFLAGS WHITE \@ < |
| av = \$(foreach var, \$(auto_var), \$(origin \$(var)) ) |
| override WHITE := BLACK |
| for_var = \$(addsuffix .c,foo \$(null) \$(foo) \$(space) \$(av) ) |
| fe = \$(foreach var2, \$(for_var),\$(subst .c,.o, \$(var2) ) ) |
| all: auto for2 |
| auto : |
| \t\@echo \$(av) |
| for2: |
| \t\@echo \$(fe) |
| 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 file default file environment default file command line override automatic automatic |
| foo.o bletch.o null.o @.o garf.o .o .o undefined.o file.o default.o file.o environment.o default.o file.o command.o line.o override.o automatic.o automatic.o\n"; |
| |
| &compare_output($answer,&get_logfile(1)); |
| |
| 1; |