mirror of
https://github.com/mirror/make.git
synced 2025-01-08 19:30:26 +08:00
15a7e3830f
* 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.
95 lines
1.9 KiB
Perl
95 lines
1.9 KiB
Perl
# -*-perl-*-
|
|
$description = "Test the .INCLUDE_DIRS special variable.";
|
|
|
|
$details = "";
|
|
|
|
use Cwd;
|
|
|
|
$dir = cwd;
|
|
$dir =~ s,.*/([^/]+)$,../$1,;
|
|
|
|
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.
|
|
#
|
|
run_make_test('
|
|
ifeq ($(dir),)
|
|
$(warning dir is empty)
|
|
endif
|
|
|
|
ifeq ($(filter $(dir),$(.INCLUDE_DIRS)),)
|
|
$(warning .INCLUDE_DIRS does not contain $(dir): $(.INCLUDE_DIRS))
|
|
endif
|
|
|
|
.PHONY: all
|
|
all:;@:
|
|
',
|
|
"-I$dir dir=$dir", '');
|
|
|
|
# Find the default .INCLUDE_DIRS
|
|
create_file('defaultdirs.mk', "\$(info \$(.INCLUDE_DIRS))\nall:;\@:\n");
|
|
my $cmd = subst_make_string("#MAKEPATH# -f defaultdirs.mk");
|
|
my @dirs = `$cmd`;
|
|
my $dirs = $dirs[0];
|
|
chomp $dirs;
|
|
unlink('defaultdirs.mk');
|
|
|
|
run_make_test("
|
|
ifneq (\$(.INCLUDE_DIRS),$dirs)
|
|
\$(warning Mismatched \$(.INCLUDE_DIRS) != $dirs)
|
|
endif
|
|
all:;\@:
|
|
",
|
|
'', '');
|
|
|
|
# Verify that -I- disables content from .INCLUDE_DIRS
|
|
|
|
run_make_test(q/
|
|
ifneq ($(.INCLUDE_DIRS),)
|
|
$(warning Mismatched $(.INCLUDE_DIRS) != )
|
|
endif
|
|
all:;@:
|
|
/,
|
|
'-I-', '');
|
|
|
|
# Prefix -I dirs to the front
|
|
mkdir('somedir', 0777);
|
|
|
|
my $xdirs = $dirs ? " $dirs" : '';
|
|
run_make_test("
|
|
ifneq (\$(.INCLUDE_DIRS),somedir$xdirs)
|
|
\$(warning Mismatched '\$(.INCLUDE_DIRS)' != 'somedir$xdirs')
|
|
endif
|
|
all:;\@:
|
|
",
|
|
'-I somedir', '');
|
|
|
|
# Verify .INCLUDE_DIRS contains files after -I-
|
|
|
|
run_make_test(q/
|
|
ifneq ($(.INCLUDE_DIRS),somedir)
|
|
$(warning Mismatched $(.INCLUDE_DIRS) != somedir)
|
|
endif
|
|
all:;@:
|
|
/,
|
|
'-I - -I somedir', '');
|
|
|
|
rmdir('somedir');
|
|
|
|
# This tells the test driver that the perl test script executed properly.
|
|
1;
|