#                                                                    -*-perl-*-
$description = "Test the call function.\n";

$details = "Try various uses of call and ensure they all give the correct
results.\n";

open(MAKEFILE, "> $makefile");

# The Contents of the MAKEFILE ...

print MAKEFILE <<'EOMAKE';
# Simple, just reverse two things
#
reverse = $2 $1

# A complex `map' function, using recursive `call'.
#
map = $(foreach a,$2,$(call $1,$a))

# Test using a builtin; this is silly as it's simpler to do without call
#
my-notdir = $(call notdir,$(1))

# Test using non-expanded builtins
#
my-foreach = $(foreach $(1),$(2),$(3))
my-if      = $(if $(1),$(2),$(3))

all: ; @echo '$(call reverse,bar,foo)'; \
        echo '$(call map,origin,MAKE reverse map)'; \
        echo '$(call my-notdir,a/b   c/d      e/f)'; \
        echo '$(call my-foreach)'; \
        echo '$(call my-foreach,a,,,)'; \
        echo '$(call my-foreach,a,x y z,$(a)$(a))'; \
        echo '$(call my-if,a,b,c)'; \
        echo '$(call my-if,,$(warning don't print this),ok)'

EOMAKE

# END of Contents of MAKEFILE

close(MAKEFILE);

&run_make_with_options($makefile, "", &get_logfile);
$answer = "foo bar\ndefault file file\nb d f\n\n\nxx yy zz\nb\nok\n";
&compare_output($answer, &get_logfile(1));

1;
