diff options
Diffstat (limited to 'tests/scripts/functions/foreach')
-rw-r--r-- | tests/scripts/functions/foreach | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/scripts/functions/foreach b/tests/scripts/functions/foreach new file mode 100644 index 0000000..0c63c47 --- /dev/null +++ b/tests/scripts/functions/foreach @@ -0,0 +1,53 @@ +# -*-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 = (($osname =~ /Windows/i) ? "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; |