123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- # -*-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))
- # Test recursive invocations of call with different arguments
- #
- one = $(1) $(2) $(3)
- two = $(call one,$(1),foo,$(2))
- 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-if,a,b,c)'; \
- echo '$(call two,bar,baz)'
- EOMAKE
- # These won't work until/unless PR/1527 is resolved.
- # echo '$(call my-foreach,a,x y z,$(a)$(a))'; \
- # echo '$(call my-if,,$(warning don't print this),ok)'
- #
- # $answer = "xx yy zz\nok\n";
- # 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\nb\nbar foo baz\n";
- &compare_output($answer, &get_logfile(1));
- 1;
|