$makefile and s/#MAKEFILE#/$makefile/g;
s/#MAKEPATH#/$mkpath/g;
s/#MAKE#/$make_name/g;
+ s/#TAB#/\t/g;
+ s/#SPACE#/ /g;
s/#PERL#/$perl_name/g;
s/#PWD#/$wd/g;
s/#HELPER#/$perl_name $helptool/g;
+# -*-perl-*-
+
$description = "The following test creates a makefile to test comments\n"
."and comment continuation to the next line using a \n"
."backslash within makefiles.";
# The Contents of the MAKEFILE ...
print MAKEFILE <<\EOF;
-# Test comment vs semicolon parsing and line continuation
-target: # this ; is just a comment \
- @echo This is within a comment.
- @echo There should be no errors for this makefile.
EOF
# END of Contents of MAKEFILE
close(MAKEFILE);
-&run_make_with_options($makefile,"",&get_logfile);
-
-# Create the answer to what should be produced by this Makefile
-$answer = "There should be no errors for this makefile.\n";
-
-# COMPARE RESULTS
-
-&compare_output($answer,&get_logfile(1));
+run_make_test(q!
+# Test comment vs semicolon parsing and line continuation
+target: # this ; is just a comment \
+#TAB#@echo This is within a comment.#SPACE#
+#TAB#@echo There should be no errors for this makefile.
+!,
+ '', "There should be no errors for this makefile.\n");
1;
$details = "Attempt various different flavors of GNU Make conditionals.";
-run_make_test('
+run_make_test(q!
arg1 = first
arg2 = second
arg3 = third
all:
ifeq ($(arg1),$(arg2))
- @echo arg1 equals arg2
+#TAB#@echo arg1 equals arg2
else
- @echo arg1 NOT equal arg2
+#TAB#@echo arg1 NOT equal arg2
endif
-ifeq \'$(arg2)\' "$(arg5)"
- @echo arg2 equals arg5
+ifeq '$(arg2)' "$(arg5)"
+#TAB#@echo arg2 equals arg5
else
- @echo arg2 NOT equal arg5
+#TAB#@echo arg2 NOT equal arg5
endif
-ifneq \'$(arg3)\' \'$(arg4)\'
- @echo arg3 NOT equal arg4
+ifneq '$(arg3)' '$(arg4)'
+#TAB#@echo arg3 NOT equal arg4
else
- @echo arg3 equal arg4
+#TAB#@echo arg3 equal arg4
endif
ifndef undefined
- @echo variable is undefined
+#TAB#@echo variable is undefined
else
- @echo variable undefined is defined
+#TAB#@echo variable undefined is defined
endif
ifdef arg4
- @echo arg4 is defined
+#TAB#@echo arg4 is defined
else
- @echo arg4 is NOT defined
-endif',
+#TAB#@echo arg4 is NOT defined
+endif!,
'',
'arg1 NOT equal arg2
arg2 equals arg5
# Test expansion of variables inside ifdef.
-run_make_test('
+run_make_test(q!
foo = 1
FOO = foo
DEF3 = yes
endif
-all:; @echo DEF=$(DEF) DEF2=$(DEF2) DEF3=$(DEF3)',
+all:; @echo DEF=$(DEF) DEF2=$(DEF2) DEF3=$(DEF3)!,
'',
'DEF=yes DEF2=yes DEF3=yes');
# Test all the different "else if..." constructs
-run_make_test('
+run_make_test(q!
arg1 = first
arg2 = second
arg3 = third
ifeq ($(arg1),$(arg2))
result += arg1 equals arg2
-else ifeq \'$(arg2)\' "$(arg5)"
+else ifeq '$(arg2)' "$(arg5)"
result += arg2 equals arg5
-else ifneq \'$(arg3)\' \'$(arg3)\'
+else ifneq '$(arg3)' '$(arg3)'
result += arg3 NOT equal arg4
else ifndef arg5
result += variable is undefined
endif
-all: ; @echo $(result)',
+all: ; @echo $(result)!,
'',
'success');
# Test some random "else if..." construct nesting
-run_make_test('
+run_make_test(q!
arg1 = first
arg2 = second
arg3 = third
ifeq ($(arg1),$(arg2))
$(info failed 1)
-else ifeq \'$(arg2)\' "$(arg2)"
+else ifeq '$(arg2)' "$(arg2)"
ifdef undefined
$(info failed 2)
else
$(info success)
endif
-else ifneq \'$(arg3)\' \'$(arg3)\'
+else ifneq '$(arg3)' '$(arg3)'
$(info failed 3)
else ifdef arg5
$(info failed 4)
endif
.PHONY: all
-all: ; @:',
+all: ; @:!,
'',
'success');
# SV 47960 : ensure variable assignments in non-taken legs don't cause problems
-run_make_test('
+run_make_test(q!
ifneq ($(FOO),yes)
target:
else
BAR = bar
target:
endif
- @echo one
-',
+#TAB#@echo one
+!,
'', "one\n");
# SV 64085: Ensure recipe prefixed conditionals are never considered
blah=1
ifdef blah
else
- else
+#TAB#else
endif
all:;
!,
blah=1
ifdef blah
else
- endif
+#TAB#endif
endif
all:;
!,
blah=1
ifdef blah
else
- ifdef blah
+#TAB#ifdef blah
endif
all:;
!,
all:;
foo:
ifdef blah
- ifdef blah
+#TAB#ifdef blah
endif
!,
'', "#MAKE#: 'all' is up to date.");
all:;
foo:
ifdef blah
- endif
+#TAB#endif
endif
!,
'', "#MAKE#: 'all' is up to date.");
all:;
foo:
ifdef blah
- else
+#TAB#else
else
endif
!,
# This tells the test driver that the perl test script executed properly.
1;
-
-### Local Variables:
-### eval: (setq whitespace-action (delq 'auto-cleanup whitespace-action))
-### End:
Create makefiles with various combinations of normal and order-only
prerequisites and ensure they behave properly. Test the \$| variable.";
-# TEST #0 -- Basics
+# Basics
run_make_test('
%r: | baz ; @echo $< $^ $|
baz:;@:',
'', "foo foo baz\n");
-# TEST #1 -- First try: the order-only prereqs need to be built.
+# First try: the order-only prereqs need to be built.
run_make_test(q!
foo: bar | baz
- @echo '$$^ = $^'
- @echo '$$| = $|'
- touch $@
+#TAB#@echo '$$^ = $^'
+#TAB#@echo '$$| = $|'
+#TAB#touch $@
.PHONY: baz
bar baz:
- touch $@!,
+#TAB#touch $@!,
'', "touch bar\ntouch baz\n\$^ = bar\n\$| = baz\ntouch foo\n");
-# TEST #2 -- now we do it again: baz is PHONY but foo should _NOT_ be updated
+# now we do it again: baz is PHONY but foo should _NOT_ be updated
run_make_test(undef, '', "touch baz\n");
unlink(qw(foo bar baz));
-# TEST #3 -- Make sure the order-only prereq was promoted to normal.
+# Make sure the order-only prereq was promoted to normal.
run_make_test(q!
foo: bar | baz
- @echo '$$^ = $^'
- @echo '$$| = $|'
- touch $@
+#TAB#@echo '$$^ = $^'
+#TAB#@echo '$$| = $|'
+#TAB#touch $@
foo: baz
.PHONY: baz
bar baz:
- touch $@!,
+#TAB#touch $@!,
'', "touch bar\ntouch baz\n\$^ = bar baz\n\$| = \ntouch foo\n");
-# TEST #4 -- now we do it again
+# now we do it again
run_make_test(undef, '', "touch baz\n\$^ = bar baz\n\$| = \ntouch foo\n");
# Test empty normal prereqs
-# TEST #5 -- make sure the parser was correct.
+# make sure the parser was correct.
run_make_test(q!
foo:| baz
- @echo '$$^ = $^'
- @echo '$$| = $|'
- touch $@
+#TAB#@echo '$$^ = $^'
+#TAB#@echo '$$| = $|'
+#TAB#touch $@
.PHONY: baz
baz:
- touch $@!,
+#TAB#touch $@!,
'', "touch baz\n\$^ = \n\$| = baz\ntouch foo\n");
-# TEST #6 -- now we do it again: this time foo won't be built
+# now we do it again: this time foo won't be built
run_make_test(undef, '', "touch baz\n");
# Test order-only in pattern rules
-# TEST #7 -- make sure the parser was correct.
+# make sure the parser was correct.
run_make_test(q!
%.w : %.x | baz
- @echo '$$^ = $^'
- @echo '$$| = $|'
- touch $@
+#TAB#@echo '$$^ = $^'
+#TAB#@echo '$$| = $|'
+#TAB#touch $@
all: foo.w
.PHONY: baz
foo.x baz:
- touch $@!,
+#TAB#touch $@!,
'',
"touch foo.x\ntouch baz\n\$^ = foo.x\n\$| = baz\ntouch foo.w\n");
-# TEST #8 -- now we do it again: this time foo.w won't be built
+# now we do it again: this time foo.w won't be built
run_make_test(undef, '', "touch baz\n");
unlink(qw(foo.w foo.x baz));
-# TEST #9 -- make sure that $< is set correctly in the face of order-only
+# make sure that $< is set correctly in the face of order-only
# prerequisites in pattern rules.
run_make_test('
settings, override and non-override, and using various variable expansion
rules, semicolon interference, etc.";
-open(MAKEFILE,"> $makefile");
+# basics
-print MAKEFILE <<'EOF';
-all: one.x two.x three.x
+run_make_test(q!all: one.x two.x three.x
FOO = foo
BAR = bar
BAZ = baz
%b: AAA += bbb
.PHONY: ab
ab: ; @echo $(AAA); echo $(BBB)
-EOF
+!,
+ "", "one.x: one two baz\ntwo.x: foo four baz\nthree.x: foo four three\n");
-close(MAKEFILE);
+# try the override feature
+run_make_test(undef, "BAZ=five",
+ "one.x: one two five\ntwo.x: foo four five\nthree.x: foo four three\n");
-# TEST #1 -- basics
+# make sure patterns are inherited properly
-&run_make_with_options($makefile, "", &get_logfile);
-$answer = "one.x: one two baz\ntwo.x: foo four baz\nthree.x: foo four three\n";
-&compare_output($answer,&get_logfile(1));
+run_make_test(undef, "four.x",
+ "baz: foo two baz\nfour.x: foo two baz\n");
+# test multiple patterns matching the same target
-# TEST #2 -- try the override feature
+run_make_test(undef, "ab", "aaa bbb\nccc ddd\n");
-&run_make_with_options($makefile, "BAZ=five", &get_logfile);
-$answer = "one.x: one two five\ntwo.x: foo four five\nthree.x: foo four three\n";
-&compare_output($answer,&get_logfile(1));
+# test pattern-specific exported variables
-
-# TEST #3 -- make sure patterns are inherited properly
-
-&run_make_with_options($makefile, "four.x", &get_logfile);
-$answer = "baz: foo two baz\nfour.x: foo two baz\n";
-&compare_output($answer,&get_logfile(1));
-
-
-# TEST #4 -- test multiple patterns matching the same target
-
-&run_make_with_options($makefile, "ab", &get_logfile);
-$answer = "aaa bbb\nccc ddd\n";
-&compare_output($answer,&get_logfile(1));
-
-# TEST #5 -- test pattern-specific exported variables
-#
run_make_test('
/%: export foo := foo
/bar:
- @echo $(foo) $$foo
+#TAB#@echo $(foo) $$foo
', '', 'foo foo');
+# test expansion of pattern-specific simple variables
-# TEST #6 -- test expansion of pattern-specific simple variables
-#
run_make_test('
.PHONY: all
'normal: global: original $t pattern: inherit: ;
pattern: global: original $t pattern: inherit: ;');
+# test expansion of pattern-specific recursive variables
-# TEST #7 -- test expansion of pattern-specific recursive variables
-#
run_make_test(undef, # reuse previous makefile
'rec=1',
'normal: global: new $t pattern: good $t inherit: good $t;
pattern: global: new $t pattern: good $t inherit: good $t;');
-# TEST #8: override in pattern-specific variables
+# override in pattern-specific variables
run_make_test('
a%: override FOO += f1
run_make_test(undef, 'FOO=C', "C f1\n");
-# TEST #9: Test shortest stem selection in pattern-specific variables.
+# Test shortest stem selection in pattern-specific variables.
run_make_test('
%-mt.x: x := two
all.foo.bar: %.bar: %.two
all.foo.bar:
-> @echo $*
-> @echo $^
+>#TAB#@echo $*
+>#TAB#@echo $^
.DEFAULT:;@:
',
all.foo.bar: %.bar: %.two $$*-two
all.foo.bar:
-> @echo $*
-> @echo $^
+>#TAB#@echo $*
+>#TAB#@echo $^
.DEFAULT:;@:
',
t = true
all:
- @echo 1 $(and ,$t)
- @echo 2 $(and $t)
- @echo 3 $(and $t,)
- @echo 4 $(and z,true,$f,false)
- @echo 5 $(and $t,$f,$(info bad short-circuit))
- @echo 6 $(and $(call NEQ,a,b),true)
- @echo 7 $(and $(call NEQ,a,a),true)
- @echo 8 $(and z,true,fal,se) hi
- @echo 9 $(and ,true,fal,se)there
- @echo 10 $(and $(e) ,$t)',
+#TAB#@echo 1 $(and ,$t)
+#TAB#@echo 2 $(and $t)
+#TAB#@echo 3 $(and $t,)
+#TAB#@echo 4 $(and z,true,$f,false)
+#TAB#@echo 5 $(and $t,$f,$(info bad short-circuit))
+#TAB#@echo 6 $(and $(call NEQ,a,b),true)
+#TAB#@echo 7 $(and $(call NEQ,a,a),true)
+#TAB#@echo 8 $(and z,true,fal,se) hi
+#TAB#@echo 9 $(and ,true,fal,se)there
+#TAB#@echo 10 $(and $(e) ,$t)',
'',
"1\n2 true\n3\n4\n5\n6 true\n7\n8 se hi\n9 there\n10\n");
t = true
all:
- @echo 1 $(or , )
- @echo 2 $(or $t)
- @echo 3 $(or ,$t)
- @echo 4 $(or z,true,$f,false)
- @echo 5 $(or $t,$(info bad short-circuit))
- @echo 6 $(or $(info short-circuit),$t)
- @echo 7 $(or $(call NEQ,a,b),true)
- @echo 8 $(or $(call NEQ,a,a),true)
- @echo 9 $(or z,true,fal,se) hi
- @echo 10 $(or ,true,fal,se)there
- @echo 11 $(or $(e) ,$f)',
+#TAB#@echo 1 $(or , )
+#TAB#@echo 2 $(or $t)
+#TAB#@echo 3 $(or ,$t)
+#TAB#@echo 4 $(or z,true,$f,false)
+#TAB#@echo 5 $(or $t,$(info bad short-circuit))
+#TAB#@echo 6 $(or $(info short-circuit),$t)
+#TAB#@echo 7 $(or $(call NEQ,a,b),true)
+#TAB#@echo 8 $(or $(call NEQ,a,a),true)
+#TAB#@echo 9 $(or z,true,fal,se) hi
+#TAB#@echo 10 $(or ,true,fal,se)there
+#TAB#@echo 11 $(or $(e) ,$f)',
'',
"short-circuit\n1\n2 true\n3 true\n4 z\n5 true\n6 true\n7 b\n8 true\n9 z hi\n10 truethere\n11\n");
DEP_baz = quux blarp
rest = $(wordlist 2,$(words ${1}),${1})
tclose = $(if $1,$(firstword $1)\
- $(call tclose,$(sort ${DEP_$(firstword $1)} $(call rest,$1))))
+#TAB##TAB#$(call tclose,$(sort ${DEP_$(firstword $1)} $(call rest,$1))))
all: ; @echo '$(call reverse,bar,foo)'; \
echo '$(call map,origin,MAKE reverse map)'; \
echo '$(call my-foreach,a,,,)'; \
echo '$(call my-if,a,b,c)'; \
echo '$(call two,bar,baz)'; \
- echo '$(call tclose,foo)';
+#TAB#echo '$(call tclose,foo)';
!,
"", "foo bar\ndefault file file\nb d f\n\n\nb\nbar foo baz\nfoo bar baz blarp quux \n");
level3 = $(call level2,$1,$2,$3,$4,$5)
all:
- @echo $(call all,1,2,3,4,5,6,7,8,9,10,11)
- @echo $(call level1,1,2,3,4,5,6,7,8)
- @echo $(call level2,1,2,3,4,5,6,7,8)
- @echo $(call level3,1,2,3,4,5,6,7,8)
+#TAB#@echo $(call all,1,2,3,4,5,6,7,8,9,10,11)
+#TAB#@echo $(call level1,1,2,3,4,5,6,7,8)
+#TAB#@echo $(call level2,1,2,3,4,5,6,7,8)
+#TAB#@echo $(call level3,1,2,3,4,5,6,7,8)
!,
"", "1 2 3 4 5 6 7 8 9\n1 2 3 4 5\n1 2 3\n1 2 3\n");
delete $ENV{X123};
-run_make_test('
+run_make_test(q!
tst = $(eval export X123)
$(call tst)
all: ; @echo "$${X123-not set}"
-',
+!,
'', "\n");
1;
-
-### Local Variables:
-### eval: (setq whitespace-action (delq 'auto-cleanup whitespace-action))
-### End:
$details = "";
-open(MAKEFILE,"> $makefile");
+# Test #1
-print MAKEFILE 'err = $(error Error found!)
+run_make_test(q!err = $(error Error found)
ifdef ERROR1
$(error error is $(ERROR1))
ifdef ERROR4
all: some; @echo error is $(ERROR4)
- @echo $(error error is $(ERROR4))
+#TAB#@echo $(error error is $(ERROR4))
endif
some: ; @echo Some stuff
testvar: ; @: $(err)
-';
-
-close(MAKEFILE);
-
-# Test #1
-
-&run_make_with_options($makefile, "ERROR1=yes", &get_logfile, 512);
-$answer = "$makefile:4: *** error is yes. Stop.\n";
-&compare_output($answer,&get_logfile(1));
+!,
+ "ERROR1=yes", "#MAKEFILE#:4: *** error is yes. Stop.\n", 512);
# Test #2
-&run_make_with_options($makefile, "ERROR2=no", &get_logfile, 512);
-$answer = "$makefile:8: *** error is no. Stop.\n";
-&compare_output($answer,&get_logfile(1));
+run_make_test(undef, "ERROR2=no", "#MAKEFILE#:8: *** error is no. Stop.\n", 512);
# Test #3
-&run_make_with_options($makefile, "ERROR3=maybe", &get_logfile, 512);
-$answer = "Some stuff\n$makefile:12: *** error is maybe. Stop.\n";
-&compare_output($answer,&get_logfile(1));
+run_make_test(undef, "ERROR3=maybe",
+ "Some stuff\n#MAKEFILE#:12: *** error is maybe. Stop.\n", 512);
# Test #4
-&run_make_with_options($makefile, "ERROR4=definitely", &get_logfile, 512);
-$answer = "Some stuff\n$makefile:17: *** error is definitely. Stop.\n";
-&compare_output($answer,&get_logfile(1));
+run_make_test(undef, "ERROR4=definitely",
+ "Some stuff\n#MAKEFILE#:17: *** error is definitely. Stop.\n", 512);
# Test #5
-&run_make_with_options($makefile, "testvar", &get_logfile, 512);
-$answer = "$makefile:22: *** Error found!. Stop.\n";
-&compare_output($answer,&get_logfile(1));
+run_make_test(undef, "testvar",
+ "#MAKEFILE#:22: *** Error found. Stop.\n", 512);
# This tells the test driver that the perl test script executed properly.
1;
-
-### Local Variables:
-### eval: (setq whitespace-action (delq 'auto-cleanup whitespace-action))
-### End:
run_make_test('
define FOO
all: ; @echo '."'".'he\llo'."'".'
- @echo world
+#TAB#@echo world
endef
$(eval $(FOO))
', '', 'he\llo
run_make_test('
foo := moon_light days
foo1:= jazz
-bar := captured
-bar2 = boy end, has rise A midnight
+bar := captured#SPACE#
+bar2 = boy end, has rise A midnight#SPACE#
bar3:= $(foo)
s1 := _by
s2 := _and_a
t1 := $(addsuffix $(s1), $(bar) )
t2 := $(addsuffix $(s2), $(foo1) )
-t3 := $(t2) $(t2) $(t2) $(t2) $(t2) $(t2) $(t2) $(t2) $(t2) $(t2)
-t4 := $(t3) $(t3) $(t3) $(t3) $(t3) $(t3) $(t3) $(t3) $(t3) $(t3)
-t5 := $(t4) $(t4) $(t4) $(t4) $(t4) $(t4) $(t4) $(t4) $(t4) $(t4)
-t6 := $(t5) $(t5) $(t5) $(t5) $(t5) $(t5) $(t5) $(t5) $(t5) $(t5)
-t7 := $(t6) $(t6) $(t6)
+t3 := $(t2) $(t2) $(t2) $(t2) $(t2) $(t2) $(t2) $(t2) $(t2) $(t2)#SPACE#
+t4 := $(t3) $(t3) $(t3) $(t3) $(t3) $(t3) $(t3) $(t3) $(t3) $(t3)#SPACE#
+t5 := $(t4) $(t4) $(t4) $(t4) $(t4) $(t4) $(t4) $(t4) $(t4) $(t4)#SPACE#
+t6 := $(t5) $(t5) $(t5) $(t5) $(t5) $(t5) $(t5) $(t5) $(t5) $(t5)#SPACE#
+t7 := $(t6) $(t6) $(t6)#SPACE#
p1 := $(addprefix $(foo1), $(s2) )
-blank:=
+blank:=#SPACE#
all:
- @echo $(sort $(bar2) $(foo) $(addsuffix $(s1), $(bar) ) $(t2) $(bar2) $(bar3))
- @echo $(sort $(blank) $(foo) $(bar2) $(t1) $(p1) )
- @echo $(sort $(foo) $(bar2) $(t1) $(t4) $(t5) $(t7) $(t6) )
+#TAB#@echo $(sort $(bar2) $(foo) $(addsuffix $(s1), $(bar) ) $(t2) $(bar2) $(bar3))
+#TAB#@echo $(sort $(blank) $(foo) $(bar2) $(t1) $(p1) )
+#TAB#@echo $(sort $(foo) $(bar2) $(t1) $(t4) $(t5) $(t7) $(t6) )
',
'', 'A boy captured_by days end, has jazz_and_a midnight moon_light rise
A boy captured_by days end, has jazz_and_a midnight moon_light rise
'', "6\n");
1;
-
-### Local Variables:
-### eval: (setq whitespace-action (delq 'auto-cleanup whitespace-action))
-### End:
These are then run through the strip command to remove it. This is then
verified by echoing the result.\n";
-open(MAKEFILE,"> $makefile");
-
-# The Contents of the MAKEFILE ...
-
-print MAKEFILE <<'EOMAKE';
-TEST1 := "Is this TERMINAL fun? What makes you believe is this terminal fun? JAPAN is a WONDERFUL planet -- I wonder if we will ever reach their level of COMPARATIVE SHOPPING..."
+# Zippy the Pinhead quotes...
+run_make_test(q!TEST1 := "Is this TERMINAL fun? What makes you believe is this terminal fun? JAPAN is a WONDERFUL planet -- I wonder if we will ever reach their level of COMPARATIVE SHOPPING..."
E :=
-TEST2 := $E try this and this $E
+TEST2 := $E try this and#TAB##TAB#this #TAB#$E
define TEST3
-and these test out
+and these#TAB# test out
some
.PHONY: all
all:
- @echo '$(strip $(TEST1) )'
- @echo '$(strip $(TEST2) )'
- @echo '$(strip $(TEST3) )'
-
-space: ; @echo '$(strip ) $(strip )'
-
-EOMAKE
-
-# END of Contents of MAKEFILE
-
-close(MAKEFILE);
-
-&run_make_with_options($makefile,"",&get_logfile);
-$answer = "\"Is this TERMINAL fun? What makes you believe is this terminal fun? JAPAN is a WONDERFUL planet -- I wonder if we will ever reach their level of COMPARATIVE SHOPPING...\"
+#TAB#@echo '$(strip $(TEST1) )'
+#TAB#@echo '$(strip $(TEST2) )'
+#TAB#@echo '$(strip $(TEST3) )'
+!,
+ "", "\"Is this TERMINAL fun? What makes you believe is this terminal fun? JAPAN is a WONDERFUL planet -- I wonder if we will ever reach their level of COMPARATIVE SHOPPING...\"
try this and this
and these test out some blank lines
-";
-&compare_output($answer,&get_logfile(1));
-
+");
-&run_make_with_options($makefile,"space",&get_logfile);
-$answer = " \n";
-&compare_output($answer,&get_logfile(1));
+run_make_test(q!
+space: ; @echo '$(strip ) $(strip #TAB# )'
+!,
+ "", " \n");
1;
$details = "";
-open(MAKEFILE,"> $makefile");
-
-print MAKEFILE <<'EOF';
-ifdef WARNING1
+run_make_test(q!ifdef WARNING1
$(warning warning is $(WARNING1))
endif
ifdef WARNING4
all: some; @echo hi
- @echo there $(warning warning is $(WARNING4))
+#TAB#@echo there $(warning warning is $(WARNING4))
endif
some: ; @echo Some stuff
+!,
+ "WARNING1=yes", "#MAKEFILE#:2: warning is yes\nSome stuff\n");
-EOF
-
-close(MAKEFILE);
-
-# Test #1
-
-&run_make_with_options($makefile, "WARNING1=yes", &get_logfile, 0);
-$answer = "$makefile:2: warning is yes\nSome stuff\n";
-&compare_output($answer,&get_logfile(1));
-
-# Test #2
-
-&run_make_with_options($makefile, "WARNING2=no", &get_logfile, 0);
-$answer = "$makefile:6: warning is no\nSome stuff\n";
-&compare_output($answer,&get_logfile(1));
-
-# Test #3
-
-&run_make_with_options($makefile, "WARNING3=maybe", &get_logfile, 0);
-$answer = "Some stuff\n$makefile:10: warning is maybe\nhi\n";
-&compare_output($answer,&get_logfile(1));
+run_make_test(undef, "WARNING2=no",
+ "#MAKEFILE#:6: warning is no\nSome stuff\n");
-# Test #4
+run_make_test(undef, "WARNING3=maybe",
+ "Some stuff\n#MAKEFILE#:10: warning is maybe\nhi\n");
-&run_make_with_options($makefile, "WARNING4=definitely", &get_logfile, 0);
-$answer = "Some stuff\n$makefile:15: warning is definitely\nhi\nthere\n";
-&compare_output($answer,&get_logfile(1));
+run_make_test(undef, "WARNING4=definitely",
+ "Some stuff\n#MAKEFILE#:15: warning is definitely\nhi\nthere\n");
# Test linenumber offset
run_make_test(q!
all: one two
- $(warning in $@ line 3)
- @true
- $(warning in $@ line 5)
+#TAB#$(warning in $@ line 3)
+#TAB#@true
+#TAB#$(warning in $@ line 5)
one two:
- $(warning in $@ line 8)
- @true
- $(warning in $@ line 10)
+#TAB#$(warning in $@ line 8)
+#TAB#@true
+#TAB#$(warning in $@ line 10)
!,
'', "#MAKEFILE#:8: in one line 8
#MAKEFILE#:10: in one line 10
# This tells the test driver that the perl test script executed properly.
1;
-
-### Local Variables:
-### eval: (setq whitespace-action (delq 'auto-cleanup whitespace-action))
-### End:
which have either broken at some point in the past or seem likely to
break.";
-run_make_test("
+run_make_test(q!
# We want to allow both empty commands _and_ commands that resolve to empty.
EMPTY =
a1:;
a2:
-\t
-a3:;\$(EMPTY)
+#TAB#
+a3:;$(EMPTY)
a4:
-\t\$(EMPTY)
+#TAB#$(EMPTY)
-\# Non-empty lines that expand to nothing should also be ignored.
-STR = \# Some spaces
-TAB = \t \# A TAB and some spaces
+# Non-empty lines that expand to nothing should also be ignored.
+STR = # Some spaces
+TAB = #TAB# # A TAB and some spaces
-\$(STR)
+$(STR)
-\$(STR) \$(TAB)",
+$(STR) $(TAB)!,
'', "#MAKE#: Nothing to be done for 'all'.");
# TEST 2
# Check semicolons in variable references
-run_make_test('
+run_make_test(q!
$(if true,$(info true; true))
all: ; @:
-',
+!,
'', 'true; true');
# TEST 4
# Checks Savannah bug # 1332.
# Test the fastpath / no quotes
-run_make_test('
+run_make_test(q!
all:
- @echo foo\
+#TAB#@echo foo\
bar
- @echo foo\
- bar
- @echo foo\
+#TAB#@echo foo\
+#TAB#bar
+#TAB#@echo foo\
bar
- @echo foo\
- bar
- @echo foo \
+#TAB#@echo foo\
+#TAB# bar
+#TAB#@echo foo \
bar
- @echo foo \
- bar
- @echo foo \
+#TAB#@echo foo \
+#TAB#bar
+#TAB#@echo foo \
bar
- @echo foo \
- bar
-',
+#TAB#@echo foo \
+#TAB# bar
+!,
'', 'foobar
foobar
foo bar
if ($port_type ne 'W32') {
run_make_test(q!
all:
- @echo 'foo\
+#TAB#@echo 'foo\
bar'
- @echo 'foo\
- bar'
- @echo 'foo\
+#TAB#@echo 'foo\
+#TAB#bar'
+#TAB#@echo 'foo\
bar'
- @echo 'foo\
- bar'
- @echo 'foo \
+#TAB#@echo 'foo\
+#TAB# bar'
+#TAB#@echo 'foo \
bar'
- @echo 'foo \
- bar'
- @echo 'foo \
+#TAB#@echo 'foo \
+#TAB#bar'
+#TAB#@echo 'foo \
bar'
- @echo 'foo \
- bar'
+#TAB#@echo 'foo \
+#TAB# bar'
!,
'', 'foo\
bar
}
# Test the fastpath / double quotes
-run_make_test('
+run_make_test(q!
all:
- @echo "foo\
+#TAB#@echo "foo\
bar"
- @echo "foo\
- bar"
- @echo "foo\
+#TAB#@echo "foo\
+#TAB#bar"
+#TAB#@echo "foo\
bar"
- @echo "foo\
- bar"
- @echo "foo \
+#TAB#@echo "foo\
+#TAB# bar"
+#TAB#@echo "foo \
bar"
- @echo "foo \
- bar"
- @echo "foo \
+#TAB#@echo "foo \
+#TAB#bar"
+#TAB#@echo "foo \
bar"
- @echo "foo \
- bar"
-',
+#TAB#@echo "foo \
+#TAB# bar"
+!,
'', 'foobar
foobar
foo bar
foo bar');
# Test the slow path / no quotes
-run_make_test('
+run_make_test(q!
all:
- @echo hi; echo foo\
+#TAB#@echo hi; echo foo\
bar
- @echo hi; echo foo\
- bar
- @echo hi; echo foo\
+#TAB#@echo hi; echo foo\
+#TAB#bar
+#TAB#@echo hi; echo foo\
bar
- @echo hi; echo foo\
- bar
- @echo hi; echo foo \
+#TAB#@echo hi; echo foo\
+#TAB# bar
+#TAB#@echo hi; echo foo \
bar
- @echo hi; echo foo \
- bar
- @echo hi; echo foo \
+#TAB#@echo hi; echo foo \
+#TAB#bar
+#TAB#@echo hi; echo foo \
bar
- @echo hi; echo foo \
- bar
-',
+#TAB#@echo hi; echo foo \
+#TAB# bar
+!,
'', 'hi
foobar
hi
# Test the slow path / no quotes. This time we put the slow path
# determination _after_ the backslash-newline handling.
-run_make_test('
+run_make_test(q!
all:
- @echo foo\
+#TAB#@echo foo\
bar; echo hi
- @echo foo\
- bar; echo hi
- @echo foo\
+#TAB#@echo foo\
+#TAB#bar; echo hi
+#TAB#@echo foo\
bar; echo hi
- @echo foo\
- bar; echo hi
- @echo foo \
+#TAB#@echo foo\
+#TAB# bar; echo hi
+#TAB#@echo foo \
bar; echo hi
- @echo foo \
- bar; echo hi
- @echo foo \
+#TAB#@echo foo \
+#TAB#bar; echo hi
+#TAB#@echo foo \
bar; echo hi
- @echo foo \
- bar; echo hi
-',
+#TAB#@echo foo \
+#TAB# bar; echo hi
+!,
'', 'foobar
hi
foobar
# Test the slow path / single quotes
run_make_test(q!
all:
- @echo hi; echo 'foo\
+#TAB#@echo hi; echo 'foo\
bar'
- @echo hi; echo 'foo\
- bar'
- @echo hi; echo 'foo\
+#TAB#@echo hi; echo 'foo\
+#TAB#bar'
+#TAB#@echo hi; echo 'foo\
bar'
- @echo hi; echo 'foo\
- bar'
- @echo hi; echo 'foo \
+#TAB#@echo hi; echo 'foo\
+#TAB# bar'
+#TAB#@echo hi; echo 'foo \
bar'
- @echo hi; echo 'foo \
- bar'
- @echo hi; echo 'foo \
+#TAB#@echo hi; echo 'foo \
+#TAB#bar'
+#TAB#@echo hi; echo 'foo \
bar'
- @echo hi; echo 'foo \
- bar'
+#TAB#@echo hi; echo 'foo \
+#TAB# bar'
!,
'', 'hi
foo\
bar');
# Test the slow path / double quotes
-run_make_test('
+run_make_test(q!
all:
- @echo hi; echo "foo\
+#TAB#@echo hi; echo "foo\
bar"
- @echo hi; echo "foo\
- bar"
- @echo hi; echo "foo\
+#TAB#@echo hi; echo "foo\
+#TAB#bar"
+#TAB#@echo hi; echo "foo\
bar"
- @echo hi; echo "foo\
- bar"
- @echo hi; echo "foo \
+#TAB#@echo hi; echo "foo\
+#TAB# bar"
+#TAB#@echo hi; echo "foo \
bar"
- @echo hi; echo "foo \
- bar"
- @echo hi; echo "foo \
+#TAB#@echo hi; echo "foo \
+#TAB#bar"
+#TAB#@echo hi; echo "foo \
bar"
- @echo hi; echo "foo \
- bar"
-',
+#TAB#@echo hi; echo "foo \
+#TAB# bar"
+!,
'', 'hi
foobar
hi
}
1;
-
-### Local Variables:
-### eval: (setq whitespace-action (delq 'auto-cleanup whitespace-action))
-### End:
&touch('bar.x');
-run_make_test('
+run_make_test(q!
.SUFFIXES:
.PHONY: all
all: foo
foo: bar.x
- @echo cp $< $@
- @echo "" > $@
-',
+#TAB#@echo cp $< $@
+#TAB#@echo "" > $@
+!,
'', 'cp bar.x foo');
run_make_test(undef, '', "#MAKE#: Nothing to be done for 'all'.");
# Test -B with the re-exec feature: we don't want to re-exec forever
# Savannah bug # 7566
-run_make_test('
+run_make_test(q!
all: ; @:
$(info MAKE_RESTARTS=$(MAKE_RESTARTS))
include foo.x
foo.x: ; @touch $@
-',
+!,
'-B', 'MAKE_RESTARTS=
MAKE_RESTARTS=1');
&touch('blah.x');
-run_make_test('
+run_make_test(q!
all: blah.x ; @echo $@
$(info MAKE_RESTARTS=$(MAKE_RESTARTS))
include foo.x
foo.x: ; @touch $@
blah.x: ; @echo $@
-',
+!,
'-B', 'MAKE_RESTARTS=
MAKE_RESTARTS=1
blah.x
unlink(qw(x.a x.b));
1;
-
-### Local Variables:
-### eval: (setq whitespace-action (delq 'auto-cleanup whitespace-action))
-### End:
# Basic build
-run_make_test('
+run_make_test(q!
a.x: b.x
a.x b.x: ; echo >> $@
-',
+!,
'', "echo >> b.x\necho >> a.x");
# Run it again: nothing should happen
# First set it up with a normal build
-run_make_test('
+run_make_test(q!
all: baz.x ; @:
include foo.x
foo.x: bar.x
- @echo "\$$(info restarts=\$$(MAKE_RESTARTS))" > $@
- @echo "touch $@"
+#TAB#@echo "\$$(info restarts=\$$(MAKE_RESTARTS))" > $@
+#TAB#@echo "touch $@"
bar.x: ; echo >> $@
baz.x: bar.x ; @echo "touch $@"
-',
+!,
'', 'echo >> bar.x
touch foo.x
restarts=1
utouch(-20, 'x-dir/x');
touch('y');
-run_make_test('
+run_make_test(q!
y: x ; @echo cp $< $@
-',
+!,
'-W x-dir/x VPATH=x-dir',
'cp x-dir/x y');
# Make sure ./ stripping doesn't interfere with the match.
-run_make_test('
+run_make_test(q!
y: x ; @echo cp $< $@
-',
+!,
'-W ./x-dir/x VPATH=x-dir',
'cp x-dir/x y');
rmdir('x-dir');
1;
-
-### Local Variables:
-### eval: (setq whitespace-action (delq 'auto-cleanup whitespace-action))
-### End:
run_make_test(q!
.ONESHELL:
all:
- a=$$$$
- [ 0"$$a" -eq "$$$$" ] || echo fail
+#TAB#a=$$$$
+#TAB#[ 0"$$a" -eq "$$$$" ] || echo fail
!,
'', 'a=$$
[ 0"$a" -eq "$$" ] || echo fail
.ONESHELL:
.SHELLFLAGS = -e -c
all:
- a=$$$$
- [ 0"$$a" -eq "$$$$" ] || echo fail
+#TAB#a=$$$$
+#TAB#[ 0"$$a" -eq "$$$$" ] || echo fail
!,
'', 'a=$$
[ 0"$a" -eq "$$" ] || echo fail
run_make_test(q!
.ONESHELL:
all:
- a=$$$$
- @-+ [ 0"$$a" -eq "$$$$" ] || echo fail
+#TAB#a=$$$$
+#TAB#@-+ [ 0"$$a" -eq "$$$$" ] || echo fail
!,
'', 'a=$$
[ 0"$a" -eq "$$" ] || echo fail
run_make_test(q!
.ONESHELL:
all:
- @a=$$$$
- [ 0"$$a" -eq "$$$$" ] || echo fail
+#TAB# @a=$$$$
+#TAB# [ 0"$$a" -eq "$$$$" ] || echo fail
!,
'', '');
run_make_test(q!
.ONESHELL:
all:
- @a=$$$$
- -@ +[ 0"$$a" -eq "$$$$" ] || echo fail
+#TAB# @a=$$$$
+#TAB# -@ +[ 0"$$a" -eq "$$$$" ] || echo fail
!,
'', '');
SHELL = #PERL#
.SHELLFLAGS = -e
all:
-> @$$a=5
-> +7;
-> @y=qw(a b c);
+>#TAB# @$$a=5
+>#TAB# +7;
+>#TAB#@y=qw(a b c);
>print "a = $$a, y = (@y)\n";
!,
'', "a = 12, y = (a b c)\n");
# This tells the test driver that the perl test script executed properly.
1;
-
-### Local Variables:
-### eval: (setq whitespace-action (delq 'auto-cleanup whitespace-action))
-### End:
-# -*-perl-*-
+# -*-perl-*-
$description = "Test proper behavior of the MAKE variable";
TMP := $(MAKE)
MAKE := $(subst X=$(X),,$(MAKE))
all:
- @echo $(TMP)
- $(MAKE) -f #MAKEFILE# foo
+#TAB#@echo $(TMP)
+#TAB#$(MAKE) -f #MAKEFILE# foo
foo:
- @echo $(MAKE)
+#TAB#@echo $(MAKE)
!,
'',
"#MAKEPATH#\n#MAKEPATH# -f #MAKEFILE# foo\n"
We construct a makefile with various targets, all of which print out
\$(MAKECMDGOALS), then call it different ways.";
-open(MAKEFILE,"> $makefile");
-print MAKEFILE "\
+run_make_test(q!
.DEFAULT all:
- \@echo \$(MAKECMDGOALS)
-";
-close(MAKEFILE);
+#TAB#@echo $(MAKECMDGOALS)
+!,
+ '', "\n");
-# TEST #1
-
-&run_make_with_options($makefile,
- "",
- &get_logfile,
- 0);
-$answer = "\n";
-&compare_output($answer,&get_logfile(1));
-
-# TEST #2
-
-&run_make_with_options($makefile,
- "all",
- &get_logfile,
- 0);
-$answer = "all\n";
-&compare_output($answer,&get_logfile(1));
-
-
-# TEST #3
-
-&run_make_with_options($makefile,
- "foo bar baz yaz",
- &get_logfile,
- 0);
-$answer = "foo bar baz yaz\nfoo bar baz yaz\nfoo bar baz yaz\nfoo bar baz yaz\n";
-&compare_output($answer,&get_logfile(1));
+run_make_test(undef, "all", "all\n");
+run_make_test(undef, "foo bar baz yaz",
+ "foo bar baz yaz\nfoo bar baz yaz\nfoo bar baz yaz\nfoo bar baz yaz\n");
# This tells the test driver that the perl test script executed properly.
1;
-
-
-
-
-
-
$dir = cwd;
$dir =~ s,.*/([^/]+)$,../$1,;
-open(MAKEFILE, "> $makefile");
-print MAKEFILE "dir = $dir\n";
-print MAKEFILE <<'EOF';
+# simple test
+# Touch these into the past
+&utouch(-10, qw(foo.x baz.z));
+
+run_make_test(q!
.SUFFIXES:
.SUFFIXES: .x .y .z
$(dir)/foo.x : baz.z $(dir)/bar.y baz.z
- @echo '$$@ = $@, $$(@D) = $(@D), $$(@F) = $(@F)'
- @echo '$$* = $*, $$(*D) = $(*D), $$(*F) = $(*F)'
- @echo '$$< = $<, $$(<D) = $(<D), $$(<F) = $(<F)'
- @echo '$$^ = $^, $$(^D) = $(^D), $$(^F) = $(^F)'
- @echo '$$+ = $+, $$(+D) = $(+D), $$(+F) = $(+F)'
- @echo '$$? = $?, $$(?D) = $(?D), $$(?F) = $(?F)'
- touch $@
+#TAB#@echo '$$@ = $@, $$(@D) = $(@D), $$(@F) = $(@F)'
+#TAB#@echo '$$* = $*, $$(*D) = $(*D), $$(*F) = $(*F)'
+#TAB#@echo '$$< = $<, $$(<D) = $(<D), $$(<F) = $(<F)'
+#TAB#@echo '$$^ = $^, $$(^D) = $(^D), $$(^F) = $(^F)'
+#TAB#@echo '$$+ = $+, $$(+D) = $(+D), $$(+F) = $(+F)'
+#TAB#@echo '$$? = $?, $$(?D) = $(?D), $$(?F) = $(?F)'
+#TAB#touch $@
$(dir)/bar.y baz.z : ; touch $@
-EOF
-close(MAKEFILE);
-
-# TEST #0 -- simple test
-# -------
-
-# Touch these into the past
-&utouch(-10, qw(foo.x baz.z));
-
-&run_make_with_options($makefile, "", &get_logfile);
-$answer = "touch $dir/bar.y
+!,
+ "dir=$dir", "touch $dir/bar.y
\$\@ = $dir/foo.x, \$(\@D) = $dir, \$(\@F) = foo.x
\$* = $dir/foo, \$(*D) = $dir, \$(*F) = foo
\$< = baz.z, \$(<D) = ., \$(<F) = baz.z
\$^ = baz.z $dir/bar.y, \$(^D) = . $dir, \$(^F) = baz.z bar.y
\$+ = baz.z $dir/bar.y baz.z, \$(+D) = . $dir ., \$(+F) = baz.z bar.y baz.z
\$? = $dir/bar.y, \$(?D) = $dir, \$(?F) = bar.y
-touch $dir/foo.x\n";
-&compare_output($answer, &get_logfile(1));
+touch $dir/foo.x\n");
unlink(qw(foo.x bar.y baz.z));
-# TEST #1 -- test the SysV emulation of $$@ etc.
-# -------
-
-$makefile2 = &get_tmpfile;
+# test the SysV emulation of $$@ etc.
-open(MAKEFILE, "> $makefile2");
-print MAKEFILE "dir = $dir\n";
-print MAKEFILE <<'EOF';
+run_make_test(q!
.SECONDEXPANSION:
.SUFFIXES:
.DEFAULT: ; @echo '$@'
$(dir)/x.z $(dir)/y.z: $(dir)/%.z : $@.% $$@.% $$$@.% $$$$@.% $$(@D).% $$(@F).%
$(dir)/biz: $$(@).x $${@}.x $${@D}.x $${@F}.x
-EOF
-
-close(MAKEFILE);
-
-&run_make_with_options($makefile2, "$dir/foo $dir/bar", &get_logfile);
-$answer = ".x\n$dir/foo.x\nx\n\$@.x\n$dir.x\nfoo.x\n$dir/bar.x\nbar.x\n";
-&compare_output($answer, &get_logfile(1));
+!,
+ "dir=$dir $dir/foo $dir/bar",
+ ".x\n$dir/foo.x\nx\n\$@.x\n$dir.x\nfoo.x\n$dir/bar.x\nbar.x\n");
-&run_make_with_options($makefile2, "$dir/x.z $dir/y.z", &get_logfile);
-$answer = ".x\n$dir/x.z.x\nx\n\$@.x\n$dir.x\nx.z.x\n.y\n$dir/y.z.y\ny\n\$@.y\n$dir.y\ny.z.y\n";
-&compare_output($answer, &get_logfile(1));
+run_make_test(undef, "dir=$dir $dir/x.z $dir/y.z",
+ ".x\n$dir/x.z.x\nx\n\$@.x\n$dir.x\nx.z.x\n.y\n$dir/y.z.y\ny\n\$@.y\n$dir.y\ny.z.y\n");
-&run_make_with_options($makefile2, "$dir/biz", &get_logfile);
-$answer = "$dir/biz.x\n$dir.x\nbiz.x\n";
-&compare_output($answer, &get_logfile(1));
+run_make_test(undef, "dir=$dir $dir/biz", "$dir/biz.x\n$dir.x\nbiz.x\n");
# TEST #2 -- test for Savannah bug #12320.
#
.SUFFIXES: .b .src
mbr.b: mbr.src
- @echo $*
+#TAB#@echo $*
mbr.src: ; @:',
'',
p:=mbr.src
mbr.b: $$p
- @echo $*
+#TAB#@echo $*
mbr.src: ; @:',
'',
run_make_test('
mbr.b: mbr.src
- @echo star=$*
+#TAB#@echo star=$*
mbr.src: ; @:',
'',
FOO = there
all: ; $(multi)
- $(simple)
- $(posix)
- $(append)
- $(cond)
+#TAB#$(simple)
+#TAB#$(posix)
+#TAB#$(append)
+#TAB#$(cond)
',
'', "echo hi\nhi\nthere\nfoo\nfoo\na\nb\nfirst\n");
FOO = there
all: ; $(multi)
- $(simple)
- $(posix)
- $(posixbsd)
- $(append)
- $(cond)
+#TAB#$(simple)
+#TAB#$(posix)
+#TAB#$(posixbsd)
+#TAB#$(append)
+#TAB#$(cond)
!,
'', "echo hi\nhi\nthere\nfoo\nfoo\nfoo\$bar\na\nb\nfirst\n");
$details = "";
-&run_make_test('
+run_make_test(q!
X1 := $(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");
# SV 45728: Test that undefining a variable is reflected properly
-&run_make_test('
+run_make_test(q!
FOO := foo
BAR := bar
$(info one: $(sort $(filter FOO BAR BAZ,$(.VARIABLES))))
BAZ := baz
$(info two: $(sort $(filter FOO BAR BAZ,$(.VARIABLES))))
all:;@:
-',
+!,
'', "one: BAR FOO\ntwo: BAZ FOO\n");
# $makefile2 = &get_tmpfile;
# X1 := $(sort $(.TARGETS))
# all: foo
-# @echo X1 = $(X1)
-# @echo X2 = $(X2)
-# @echo LAST = $(sort $(.TARGETS))
+##TAB#@echo X1 = $(X1)
+##TAB#@echo X2 = $(X2)
+##TAB#@echo LAST = $(sort $(.TARGETS))
# X2 := $(sort $(.TARGETS))
# &compare_output($answer, &get_logfile(1));
# Test the .RECIPEPREFIX variable
-&run_make_test('
+run_make_test(q!
define foo
: foo-one\
foo-two
: foo-three
- : foo-four
+#TAB#: foo-four
endef
orig: ; : orig-one
- : orig-two \
+#TAB#: orig-two \
orig-three \
- orig-four \
- orig-five \\\\
- : orig-six
- $(foo)
+#TAB#orig-four \
+#TAB##TAB#orig-five \\\\
+#TAB#: orig-six
+#TAB#$(foo)
.RECIPEPREFIX = >
test: ; : test-one
>: test-two \
test-three \
>test-four \
-> test-five \\\\
+>#TAB#test-five \\\\
>: test-six
>$(foo)
.RECIPEPREFIX =
reset: ; : reset-one
- : reset-two \
+#TAB#: reset-two \
reset-three \
- reset-four \
- reset-five \\\\
- : reset-six
- $(foo)
-',
+#TAB#reset-four \
+#TAB##TAB#reset-five \\\\
+#TAB#: reset-six
+#TAB#$(foo)
+!,
'orig test reset',
': orig-one
: orig-two \
orig-three \
orig-four \
- orig-five \\\\
+#TAB#orig-five \\\\
: orig-six
: foo-one foo-two
: foo-three
: test-two \
test-three \
test-four \
- test-five \\\\
+#TAB#test-five \\\\
: test-six
: foo-one foo-two
: foo-three
: reset-two \
reset-three \
reset-four \
- reset-five \\\\
+#TAB#reset-five \\\\
: reset-six
: foo-one foo-two
: foo-three
: foo-four');
1;
-
-### Local Variables:
-### eval: (setq whitespace-action (delq 'auto-cleanup whitespace-action))
-### End: