use 5.00503;
use lib qw(lib); use ExtUtils::MakeMaker;
use File::Spec;
BEGIN {
die "You have File::Spec version $File::Spec::VERSION\n".
"ExtUtils::MakeMaker requires File::Spec >= 0.8 to build at all.\n"
if $File::Spec::VERSION < 0.8;
}
$PACKAGE = 'ExtUtils::MakeMaker';
my $version = ${$PACKAGE.'::VERSION'};
$version =~ s/_//; # for X.Y_Z alpha releases
($PACKAGE_FILE = $PACKAGE) =~ s|::|/|g;
$LAST_API_CHANGE = 5.50;
my $Is_VMS = $^O eq 'VMS';
eval "require $PACKAGE";
unless ($@) { print <<"CHANGE_WARN" if $version < $LAST_API_CHANGE;
NOTE: There have been API changes between this version and any older
than version $LAST_API_CHANGE! Please read the Changes file if you
are upgrading from a version older than $LAST_API_CHANGE.
CHANGE_WARN
}
my %prereq = ( );
$prereq{'Test::Harness'} = 2.00 if $^O eq 'VMS';
my $MM = WriteMakefile(
NAME => $PACKAGE,
VERSION_FROM => "lib/$PACKAGE_FILE.pm", PREREQ_PM => { %prereq,
File::Spec => 0.8,
Pod::Man => 0,
File::Basename => 0,
DirHandle => 0,
},
INSTALLDIRS => 'perl',
EXE_FILES => [qw(bin/instmodsh)],
ABSTRACT_FROM => "lib/$PACKAGE_FILE.pm",
AUTHOR => 'Michael G Schwern <schwern@pobox.com>',
);
if( !$Is_VMS && $MM->{PERL} =~ /\S\s+\S/ ) {
require Test::Harness;
my $th_version = defined $Test::Harness::VERSION ? $Test::Harness::VERSION
: 0;
print <<SPACE_WARN if $th_version < 2.27;
NOTE: Your Perl looks like it contains a space in the path name.
MakeMaker is now OK with that but your version of Test::Harness is not
which means 'make test' will likely puke.
You will have to install this new version of MakeMaker, then upgrade
Test::Harness from CPAN, then run the MakeMaker tests.
SPACE_WARN
}
{
package MY;
my($lib, $tlib);
BEGIN {
$lib = File::Spec->canonpath('lib/');
$tlib = File::Spec->rel2abs('t/lib/');
}
sub init_PERL {
my($self) = shift;
$self->SUPER::init_PERL;
$self->{PERLRUN} .= qq{ "-I$lib"};
$self->{FULLPERLRUN} .= qq{ "-I$lib"};
}
use Config;
sub test_via_harness {
my($self, $orig_perl, $tests) = @_;
my @perls = ($orig_perl);
if( $ENV{PERL_TEST_ALL} ) {
push @perls,
map "PERL5LIB=$lib$Config{path_sep}$tlib /usr/local/bin/$_",
'perl5.5.3';
push @perls, map "PERL5LIB=$lib /usr/local/bin/$_",
qw(perl5.6.0
perl5.6.1
perl
perl5.8.0
perl5.8.0-ithreads
bleadperl
);
}
my $out;
foreach my $perl (@perls) {
$out .= $self->SUPER::test_via_harness($perl, $tests);
}
return $out;
}
}