mirror of
https://github.com/mirror/make.git
synced 2025-04-14 21:40:24 +08:00
* tests: Convert from File::Spec::Functions to File::Spec.
Users report the Functions version doesn't work correctly for some older versions of Perl.
This commit is contained in:
parent
1d289b424a
commit
3ede0b96ac
tests
@ -33,11 +33,11 @@ use lib "$FindBin::Bin";
|
||||
|
||||
require "test_driver.pl";
|
||||
|
||||
use File::Spec::Functions qw(:DEFAULT splitdir splitpath catpath);
|
||||
use File::Spec;
|
||||
|
||||
use Cwd;
|
||||
$cwdpath = cwd();
|
||||
($cwdvol, $cwddir, $_) = splitpath($cwdpath, 1);
|
||||
($cwdvol, $cwddir, $_) = File::Spec->splitpath($cwdpath, 1);
|
||||
|
||||
# Some target systems might not have the POSIX module...
|
||||
$has_POSIX = eval { require "POSIX.pm" };
|
||||
@ -467,15 +467,16 @@ sub set_defaults
|
||||
sub find_prog
|
||||
{
|
||||
my $prog = $_[0];
|
||||
my ($v, $d, $f) = splitpath($prog);
|
||||
my ($v, $d, $f) = File::Spec->splitpath($prog);
|
||||
|
||||
# If there's no directory then we need to search the PATH
|
||||
if (! $d) {
|
||||
foreach my $e (path()) {
|
||||
$prog = catfile($e, $f);
|
||||
-x $prog or next;
|
||||
($v, $d, $f) = splitpath($prog);
|
||||
last;
|
||||
foreach my $e (File::Spec->path()) {
|
||||
$prog = File::Spec->catfile($e, $f);
|
||||
if (-x $prog) {
|
||||
($v, $d, $f) = File::Spec->splitpath($prog);
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -492,7 +493,7 @@ sub set_more_defaults
|
||||
|
||||
# We have a make program so try to compute the blddir.
|
||||
if ($mpd) {
|
||||
my $f = catpath($mpv, catdir($mpd, 'tests'), 'config-flags.pm');
|
||||
my $f = File::Spec->catpath($mpv, File::Spec->catdir($mpd, 'tests'), 'config-flags.pm');
|
||||
if (-f $f) {
|
||||
$bldvol = $mpv;
|
||||
$blddir = $mpd;
|
||||
@ -502,7 +503,7 @@ sub set_more_defaults
|
||||
# If srcdir wasn't provided on the command line, try to find it.
|
||||
if (! $srcdir && $blddir) {
|
||||
# See if the blddir is the srcdir
|
||||
my $f = catpath($bldvol, catdir($blddir, 'src'), 'gnumake.h');
|
||||
my $f = File::Spec->catpath($bldvol, File::Spec->catdir($blddir, 'src'), 'gnumake.h');
|
||||
if (-f $f) {
|
||||
$srcdir = $blddir;
|
||||
$srcvol = $bldvol;
|
||||
@ -511,9 +512,9 @@ sub set_more_defaults
|
||||
|
||||
if (! $srcdir) {
|
||||
# Not found, see if our parent is the source dir
|
||||
my $f = catpath($cwdvol, catdir(updir(), 'src'), 'gnumake.h');
|
||||
my $f = File::Spec->catpath($cwdvol, File::Spec->catdir(File::Spec->updir(), 'src'), 'gnumake.h');
|
||||
if (-f $f) {
|
||||
$srcdir = updir();
|
||||
$srcdir = File::Spec->updir();
|
||||
$srcvol = $cwdvol;
|
||||
}
|
||||
}
|
||||
@ -528,11 +529,11 @@ sub set_more_defaults
|
||||
if (!$blddir) {
|
||||
warn "Cannot locate config-flags.pm (no blddir)\n";
|
||||
} else {
|
||||
my $f = catpath($bldvol, catdir($blddir, 'tests'), 'config-flags.pm');
|
||||
my $f = File::Spec->catpath($bldvol, File::Spec->catdir($blddir, 'tests'), 'config-flags.pm');
|
||||
if (! -f $f) {
|
||||
warn "Cannot locate $f\n";
|
||||
} else {
|
||||
unshift(@INC, catpath($bldvol, catdir($blddir, 'tests'), ''));
|
||||
unshift(@INC, File::Spec->catpath($bldvol, File::Spec->catdir($blddir, 'tests'), ''));
|
||||
require "config-flags.pm";
|
||||
}
|
||||
}
|
||||
@ -556,7 +557,7 @@ sub set_more_defaults
|
||||
$mk or die "FATAL ERROR: Cannot determine the value of \$(MAKE)\n";
|
||||
$make_path = $mk;
|
||||
}
|
||||
($mpv, $mpd, $mpf) = splitpath($make_path);
|
||||
($mpv, $mpd, $mpf) = File::Spec->splitpath($make_path);
|
||||
|
||||
# Ask make what shell to use
|
||||
create_file('shell.mk', 'all:;$(info $(SHELL))');
|
||||
@ -590,19 +591,19 @@ sub set_more_defaults
|
||||
# start with a slash, but contains one). Thanks for the
|
||||
# clue, Roland.
|
||||
|
||||
if ($mpd && !file_name_is_absolute($make_path) && $cwdvol == $mpv) {
|
||||
$mkpath = catpath($cwdvol, catdir($cwd, $mpd), $mpf);
|
||||
if ($mpd && !File::Spec->file_name_is_absolute($make_path) && $cwdvol == $mpv) {
|
||||
$mkpath = File::Spec->catpath($cwdvol, File::Spec->catdir($cwd, $mpd), $mpf);
|
||||
} else {
|
||||
$mkpath = $make_path;
|
||||
}
|
||||
|
||||
# Not with the make program, so see if we can get it out of the makefile
|
||||
if (! $srcdir && open(MF, '<', catfile(updir(), 'Makefile'))) {
|
||||
if (! $srcdir && open(MF, '<', File::Spec->catfile(File::Spec->updir(), 'Makefile'))) {
|
||||
local $/ = undef;
|
||||
$_ = <MF>;
|
||||
close(MF);
|
||||
/^abs_srcdir\s*=\s*(.*?)\s*$/m;
|
||||
-f catfile($1, 'src', 'gnumake.h') and $srcdir = $1;
|
||||
-f File::Spec->catfile($1, 'src', 'gnumake.h') and $srcdir = $1;
|
||||
}
|
||||
|
||||
# Get Purify log info--if any.
|
||||
|
@ -15,13 +15,15 @@ if ($port_type eq 'W32' || !( eval { symlink("",""); 1 })) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
use File::Spec;
|
||||
|
||||
# Set up a symlink sym -> dep
|
||||
# We'll make both dep and targ older than sym
|
||||
&utouch(-10, 'dep');
|
||||
&utouch(-5, 'targ');
|
||||
|
||||
$dirnm = (splitdir($cwddir))[-1];
|
||||
symlink(catfile(updir(), $dirnm, 'dep'), 'sym');
|
||||
$dirnm = (File::Spec->splitdir($cwddir))[-1];
|
||||
symlink(File::Spec->catfile(File::Spec->updir(), $dirnm, 'dep'), 'sym');
|
||||
|
||||
# Without -L, nothing should happen
|
||||
# With -L, it should update targ
|
||||
|
Loading…
Reference in New Issue
Block a user