* maintMakefile: Remove the template headers as prerequisites.
* tests/scripts/features/jobserver: Only test fifo if enabled.
* tests/scripts/variables/INCLUDE_DIRS: On MacOS none of the default
directories exist so .INCLUDE_DIRS is empty by default.
* tests/scripts/features/se_explicit: Fail via exit. cp will show
different error messages on different systems.
* tests/scripts/features/se_implicit: Ditto.
* tests/scripts/features/se_statpat: Ditto.
sed -e 's@^\([^ ]*\)\.o:@$$(OUTDIR)\1.$$(OBJEXT):@' \
-e 's@\([^ ]*\.[ch]\)@$$(SRCDIR)/\1@g' \
-e 's@$$(SRCDIR)/src/config.h@$$(OUTDIR)src/config.h@g' \
- -e 's@$$(SRCDIR)/lib/stdlib.h@@g' \
- -e 's@$$(SRCDIR)/lib/sys/types.h@@g' \
- -e 's@$$(SRCDIR)/lib/unistd.h@@g' \
+ -e 's@$$(SRCDIR)/lib/alloca.h@@g' \
+ -e 's@$$(SRCDIR)/lib/stdbool.h@@g' \
$(word 2,$^) >>$@
chmod a-w $@
# test twice.
# First time look for /$ERR_no_such_file/ to ensure mkfifo failed.
# Second time look for /Nothing to be done/ to ensure make succeeded.
-$ENV{TMPDIR} = "nosuchdir";
-run_make_test("all:\n", '-j2', "/$ERR_no_such_file/");
-
-$ENV{TMPDIR} = "nosuchdir";
-run_make_test(undef, '-j2', "/Nothing to be done/");
+if (exists $FEATURES{'jobserver-fifo'}) {
+ $ENV{TMPDIR} = "nosuchdir";
+ run_make_test("all:\n", '-j2', "/$ERR_no_such_file/");
+ $ENV{TMPDIR} = "nosuchdir";
+ run_make_test(undef, '-j2', "/Nothing to be done/");
+}
1;
# No side effects from second expansion of unrelated rules.
run_make_test(q!
.SECONDEXPANSION:
-hello.tsk:; cp hello.1 $@
+hello.tsk:; exit 1
unrelated: $$(shell touch hello.1);
!, '',
-"cp hello.1 hello.tsk
-cp: cannot stat 'hello.1': $ERR_no_such_file
+"exit 1
#MAKE#: *** [#MAKEFILE#:3: hello.tsk] Error 1\n", 512);
# sv 62706.
run_make_test(q!
.SECONDEXPANSION:
all: hello.tsk
-%.tsk: %.o; cp hello.1 $@
+%.tsk: %.o; exit 1
hello.o:;
%.q: $$(shell touch hello.1);
!, '',
-"cp hello.1 hello.tsk
-cp: cannot stat 'hello.1': $ERR_no_such_file
+"exit 1
#MAKE#: *** [#MAKEFILE#:4: hello.tsk] Error 1\n", 512);
# sv 62706.
run_make_test(q!
.SECONDEXPANSION:
all: hello.tsk
-hello.tsk: %.tsk: %.o; cp hello.1 $@
+hello.tsk: %.tsk: %.o; exit 1
hello.o:;
bye.tsk: %.tsk: $$(shell touch hello.1);
!, '',
-"cp hello.1 hello.tsk
-cp: cannot stat 'hello.1': $ERR_no_such_file
+"exit 1
#MAKE#: *** [#MAKEFILE#:4: hello.tsk] Error 1\n", 512);
# sv 62706.
$dir = cwd;
$dir =~ s,.*/([^/]+)$,../$1,;
-# Test #1: The content of .INCLUDE_DIRS depends on the platform for which
-# make was built. What we know for sure is that it shouldn't be
-# empty.
-#
-run_make_test('
+if (-d '/usr/include') {
+ # Test #1: The content of .INCLUDE_DIRS depends on the platform for which
+ # make was built. What we know for sure is that it shouldn't be
+ # empty.
+ #
+ run_make_test('
ifeq ($(.INCLUDE_DIRS),)
$(warning .INCLUDE_DIRS is empty)
endif
.PHONY: all
all:;@:
',
- '', '');
-
+ '', '');
+}
# Test #2: Make sure -I paths end up in .INCLUDE_DIRS.
#
# Verify that -I- disables content from .INCLUDE_DIRS
-run_make_test("
-ifneq (\$(.INCLUDE_DIRS),)
-\$(warning Mismatched \$(.INCLUDE_DIRS) != )
+run_make_test(q/
+ifneq ($(.INCLUDE_DIRS),)
+$(warning Mismatched $(.INCLUDE_DIRS) != )
endif
-all:;\@:
-",
+all:;@:
+/,
'-I-', '');
# Prefix -I dirs to the front
mkdir('somedir', 0777);
+my $xdirs = $dirs ? " $dirs" : '';
run_make_test("
-ifneq (\$(.INCLUDE_DIRS),somedir $dirs)
-\$(warning Mismatched \$(.INCLUDE_DIRS) != somedir $dirs)
+ifneq (\$(.INCLUDE_DIRS),somedir$xdirs)
+\$(warning Mismatched '\$(.INCLUDE_DIRS)' != 'somedir$xdirs')
endif
all:;\@:
",
# Verify .INCLUDE_DIRS contains files after -I-
-run_make_test("
-ifneq (\$(.INCLUDE_DIRS),somedir)
-\$(warning Mismatched \$(.INCLUDE_DIRS) != somedir)
+run_make_test(q/
+ifneq ($(.INCLUDE_DIRS),somedir)
+$(warning Mismatched $(.INCLUDE_DIRS) != somedir)
endif
-all:;\@:
-",
+all:;@:
+/,
'-I - -I somedir', '');
rmdir('somedir');