# -*-perl-*- $description = "Test pattern-specific variable settings."; $details = "\ Create a makefile containing various flavors of pattern-specific variable settings, override and non-override, and using various variable expansion rules, semicolon interference, etc."; open(MAKEFILE,"> $makefile"); print MAKEFILE <<'EOF'; all: one.x two.x three.x FOO = foo BAR = bar BAZ = baz thr% : override BAZ = three t%.x: BAR = four %.x: BAR = two %.x: override BAZ = three one.x: override FOO = one one.x two.x three.x: ; @echo $(FOO) $(BAR) $(BAZ) four.x: baz ; @echo $(FOO) $(BAR) $(BAZ) baz: ; @echo $(FOO) $(BAR) $(BAZ) EOF close(MAKEFILE); # TEST #1 -- basics &run_make_with_options($makefile, "", &get_logfile); $answer = "one two three\nfoo four baz\nfoo bar three\n"; &compare_output($answer,&get_logfile(1)); # TEST #2 -- try the override feature &run_make_with_options($makefile, "BAZ=five", &get_logfile); $answer = "one two three\nfoo four five\nfoo bar three\n"; &compare_output($answer,&get_logfile(1)); # TEST #3 -- make sure patterns are inherited properly &run_make_with_options($makefile, "four.x", &get_logfile); $answer = "foo two three\nfoo two three\n"; &compare_output($answer,&get_logfile(1)); 1;