mirror of
https://git.savannah.gnu.org/git/make.git
synced 2024-12-29 08:09:02 +00:00
53 lines
1.7 KiB
Perl
53 lines
1.7 KiB
Perl
# -*-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;
|