No empty .Rs/.Re
[netbsd-mini2440.git] / gnu / dist / gmake / tests / scripts / functions / eval
blob0d5e3b8339671a88cb046b955b83f208b8eddc29
1 #                                                                    -*-perl-*-
3 $description = "Test the eval function.";
5 $details = "This is a test of the eval function in GNU make.
6 This function will evaluate inline makefile syntax and incorporate the
7 results into its internal database.\n";
9 open(MAKEFILE,"> $makefile");
11 print MAKEFILE <<'EOF';
12 define Y
13   all:: ; @echo $AA
14   A = B
15 endef
17 X = $(eval $(value Y))
19 $(eval $(shell echo A = A))
20 $(eval $(Y))
21 $(eval A = C)
22 $(eval $(X))
23 EOF
25 close(MAKEFILE);
27 &run_make_with_options($makefile, "", &get_logfile);
29 # Create the answer to what should be produced by this Makefile
30 $answer = "AA\nBA\n";
32 &compare_output($answer,&get_logfile(1));
34 # Test to make sure defining variables when we have extra scope pushed works
35 # as expected.
37 $makefile2 = &get_tmpfile;
39 open(MAKEFILE,"> $makefile2");
41 print MAKEFILE <<'EOF';
42 VARS = A B
44 VARSET = $(1) = $(2)
46 $(foreach v,$(VARS),$(eval $(call VARSET,$v,$v)))
48 all: ; @echo A = $(A) B = $(B)
49 EOF
51 close(MAKEFILE);
53 &run_make_with_options($makefile2, "", &get_logfile);
55 # Create the answer to what should be produced by this Makefile
56 $answer = "A = A B = B\n";
58 &compare_output($answer,&get_logfile(1));