make/tests/scripts/variables/special
Paul Smith 43d81ff866 New special variable: .RECIPEPREFIX
Allows the user to reset the prefix character for introducing recipe lines
from the default (tab) to any other single character, and back again.
Also, reworked the manual to consistently use the word "recipe" to describe
the set of commands we use to update a target, instead of the various
phrases used in the past: "commands", "command lines", "command scripts",
etc.
2007-11-04 21:54:00 +00:00

117 lines
1.7 KiB
Perl

# -*-perl-*-
$description = "Test special GNU make variables.";
$details = "";
&run_make_test('
X1 := $(sort $(filter FOO BAR,$(.VARIABLES)))
FOO := foo
X2 := $(sort $(filter FOO BAR,$(.VARIABLES)))
BAR := bar
all:
@echo X1 = $(X1)
@echo X2 = $(X2)
@echo LAST = $(sort $(filter FOO BAR,$(.VARIABLES)))
',
'', "X1 =\nX2 = FOO\nLAST = BAR FOO\n");
# $makefile2 = &get_tmpfile;
# open(MAKEFILE, "> $makefile2");
# print MAKEFILE <<'EOF';
# X1 := $(sort $(.TARGETS))
# all: foo
# @echo X1 = $(X1)
# @echo X2 = $(X2)
# @echo LAST = $(sort $(.TARGETS))
# X2 := $(sort $(.TARGETS))
# foo:
# EOF
# close(MAKEFILE);
# # TEST #2
# # -------
# &run_make_with_options($makefile2, "", &get_logfile);
# $answer = "X1 =\nX2 = all\nLAST = all foo\n";
# &compare_output($answer, &get_logfile(1));
# Test the .RECIPEPREFIX variable
&run_make_test('
define foo
: foo-one \
foo-two
: foo-three
: foo-four
endef
orig: ; : orig-one
: orig-two \
orig-three \
orig-four \
orig-five \\\\
: orig-six
$(foo)
.RECIPEPREFIX = >
test: ; : test-one
>: test-two \
test-three \
>test-four \
> test-five \\\\
>: test-six
>$(foo)
.RECIPEPREFIX =
reset: ; : reset-one
: reset-two \
reset-three \
reset-four \
reset-five \\\\
: reset-six
$(foo)
',
'orig test reset',
': orig-one
: orig-two \
orig-three \
orig-four \
orig-five \\\\
: orig-six
: foo-one foo-two
: foo-three
: foo-four
: test-one
: test-two \
test-three \
test-four \
test-five \\\\
: test-six
: foo-one foo-two
: foo-three
: foo-four
: reset-one
: reset-two \
reset-three \
reset-four \
reset-five \\\\
: reset-six
: foo-one foo-two
: foo-three
: foo-four');
1;