- Enhance .POSIX to set -e when invoking shells, as demanded by a

backward-incompatible change in the 2008 POSIX specification.
- Add the .SHELLFLAGS variable so people can choose their own shell flags.
- Add tests for this.
- Add documentation for this.
This commit is contained in:
Paul Smith
2010-07-06 06:37:42 +00:00
parent c78b7265bd
commit c7b469f0f3
9 changed files with 137 additions and 31 deletions

View File

@@ -0,0 +1,26 @@
# -*-perl-*-
$description = "Test the behaviour of the .PHONY target.";
$details = "";
# Ensure turning on .POSIX enables the -e flag for the shell
run_make_test(q!
.POSIX:
all: ; @false; true
!,
'', "#MAKE#: *** [all] Error 1\n", 512);
# User settings must override .POSIX
run_make_test(q!
.SHELLFLAGS = -xc
.POSIX:
all: ; @false; true
!,
'', "+ false\n+ true\n");
# This tells the test driver that the perl test script executed properly.
1;

View File

@@ -56,4 +56,18 @@ two: export SHELL := /./$mshell\n".'
one two:;@echo "$@: $(SHELL) $$SHELL"
', '', "two: /./$mshell /./$mshell\none: /././$mshell $mshell\n");
# Test .SHELLFLAGS
run_make_test(q!
.SHELLFLAGS = -xc
all: ; @true
!,
'', "+ true\n");
run_make_test(q!
.SHELLFLAGS = -xec
all: ; @true; false; true
!,
'', "+ true\n+ false\n#MAKE#: *** [all] Error 1\n", 512);
1;