# -*-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;