mirror of
https://github.com/mirror/make.git
synced 2025-01-11 12:50:43 +08:00
b9c4fc441b
Accept a "-" directory value to the -I option to clear the set of directories to be searched up to that point, including the default directories. * NEWS: Announce the change. * doc/make.texi (Summary of Options): Add documentation. * src/read.c (construct_include_path): Check for '-' and if found, clear the list of directories to be searched. * tests/scripts/options/dash-I: Add tests for -I-. * tests/scripts/variables/INCLUDE_DIRS: Add tests for -I-.
93 lines
1.8 KiB
Perl
93 lines
1.8 KiB
Perl
# -*-perl-*-
|
|
$description = "Test the .INCLUDE_DIRS special variable.";
|
|
|
|
$details = "";
|
|
|
|
use Cwd;
|
|
|
|
$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('
|
|
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))
|
|
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("
|
|
ifneq (\$(.INCLUDE_DIRS),)
|
|
\$(warning Mismatched \$(.INCLUDE_DIRS) != )
|
|
endif
|
|
all:;\@:
|
|
",
|
|
'-I-', '');
|
|
|
|
# Prefix -I dirs to the front
|
|
mkdir('somedir', 0777);
|
|
|
|
run_make_test("
|
|
ifneq (\$(.INCLUDE_DIRS),somedir $dirs)
|
|
\$(warning Mismatched \$(.INCLUDE_DIRS) != somedir $dirs)
|
|
endif
|
|
all:;\@:
|
|
",
|
|
'-I somedir', '');
|
|
|
|
# Verify .INCLUDE_DIRS contains files after -I-
|
|
|
|
run_make_test("
|
|
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;
|