summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Garcia-Suarez <rgarciasuarez@gmail.com>2003-09-16 19:08:16 +0000
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2003-09-16 19:08:16 +0000
commit4d52b5f03674d45d88465516f7d7ddaa3078cd28 (patch)
treecb17e362206e045e65d342bb1cad37f1940d0029
parent9f048d315e2a327e44bc12afba24f371d38c9cbe (diff)
downloadperl-4d52b5f03674d45d88465516f7d7ddaa3078cd28.tar.gz
Upgrade to ExtUtils::MakeMaker 6.17.
p4raw-id: //depot/maint-5.6/perl-5.6.2@21248
-rw-r--r--lib/ExtUtils/Changes12
-rw-r--r--lib/ExtUtils/Install.pm3
-rw-r--r--lib/ExtUtils/META.yml4
-rw-r--r--lib/ExtUtils/MM_Unix.pm23
-rw-r--r--lib/ExtUtils/MM_VMS.pm48
-rw-r--r--lib/ExtUtils/MM_Win32.pm3
-rw-r--r--lib/ExtUtils/MakeMaker.pm7
-rw-r--r--lib/ExtUtils/MakeMaker/Tutorial.pod6
-rw-r--r--lib/ExtUtils/Manifest.pm18
-rw-r--r--lib/ExtUtils/t/Manifest.t13
10 files changed, 85 insertions, 52 deletions
diff --git a/lib/ExtUtils/Changes b/lib/ExtUtils/Changes
index 4e0ed06692..3cbeddb84b 100644
--- a/lib/ExtUtils/Changes
+++ b/lib/ExtUtils/Changes
@@ -1,3 +1,15 @@
+6.17 Sun Sep 14 20:52:45 PDT 2003
+ - Fixing LD so it can be set properly on Win32. (Orton Yves)
+ * Fixing the init_PERL() "tack $Config{exe_ext} onto $^X" logic so
+ it works on VMS allowing $^X to be found.
+ * Fixing make install UNINST=1 on Windows so it can search PERL5LIB
+ (Orton Yves)
+ - Fixing "could not open MANIFEST" test for OS/2 (and probably others)
+ where a read-only file cannot be deleted.
+ - Hacking around the fact that when built for debugging, VMS creates
+ ndbgperl.exe.
+ - Eliminating the never implemented "help" argument.
+
6.16 Mon Aug 18 01:39:51 PDT 2003
* Fixing the max exec length for Windows to account for old
versions of nmake (the one you can download for free from MS).
diff --git a/lib/ExtUtils/Install.pm b/lib/ExtUtils/Install.pm
index b5ebab6b5c..18510ade4b 100644
--- a/lib/ExtUtils/Install.pm
+++ b/lib/ExtUtils/Install.pm
@@ -12,7 +12,6 @@ use Config qw(%Config);
$Is_VMS = $^O eq 'VMS';
$Is_MacPerl = $^O eq 'MacOS';
-my $splitchar = $^O eq 'VMS' ? '|' : ($^O eq 'os2' || $^O eq 'dos') ? ';' : ':';
my $Inc_uninstall_warn_handler;
# install relative to here
@@ -335,7 +334,7 @@ sub inc_uninstall {
my $file = (File::Spec->splitpath($filepath))[2];
my %seen_dir = ();
- my @PERL_ENV_LIB = split $splitchar, defined $ENV{'PERL5LIB'}
+ my @PERL_ENV_LIB = split $Config{path_sep}, defined $ENV{'PERL5LIB'}
? $ENV{'PERL5LIB'} : $ENV{'PERLLIB'} || '';
foreach $dir (@INC, @PERL_ENV_LIB, @Config{qw(archlibexp
diff --git a/lib/ExtUtils/META.yml b/lib/ExtUtils/META.yml
index c1ae878cd7..c8515482da 100644
--- a/lib/ExtUtils/META.yml
+++ b/lib/ExtUtils/META.yml
@@ -1,7 +1,7 @@
# http://module-build.sourceforge.net/META-spec.html
#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
name: ExtUtils-MakeMaker
-version: 6.16
+version: 6.17
version_from: lib/ExtUtils/MakeMaker.pm
installdirs: perl
requires:
@@ -11,4 +11,4 @@ requires:
Pod::Man: 0
distribution_type: module
-generated_by: ExtUtils::MakeMaker version 6.16
+generated_by: ExtUtils::MakeMaker version 6.17
diff --git a/lib/ExtUtils/MM_Unix.pm b/lib/ExtUtils/MM_Unix.pm
index 23701e0eac..3821a3571d 100644
--- a/lib/ExtUtils/MM_Unix.pm
+++ b/lib/ExtUtils/MM_Unix.pm
@@ -20,7 +20,7 @@ use vars qw($VERSION @ISA
use ExtUtils::MakeMaker qw($Verbose neatvalue);
-$VERSION = '1.41';
+$VERSION = '1.42';
require ExtUtils::MM_Any;
@ISA = qw(ExtUtils::MM_Any);
@@ -1669,7 +1669,7 @@ sub init_DIRFILESEP {
Initializes AR, AR_STATIC_ARGS, BASEEXT, CONFIG, DISTNAME, DLBASE,
EXE_EXT, FULLEXT, FULLPERL, FULLPERLRUN, FULLPERLRUNINST, INST_*,
-INSTALL*, INSTALLDIRS, LD, LIB_EXT, LIBPERL_A, MAP_TARGET, NAME,
+INSTALL*, INSTALLDIRS, LIB_EXT, LIBPERL_A, MAP_TARGET, NAME,
OBJ_EXT, PARENT_NAME, PERL, PERL_ARCHLIB, PERL_INC, PERL_LIB,
PERL_SRC, PERLRUN, PERLRUNINST, PREFIX, VERSION,
VERSION_SYM, XS_VERSION.
@@ -1870,7 +1870,6 @@ usually solves this kind of problem.
$self->{AR_STATIC_ARGS} ||= "cr";
# These should never be needed
- $self->{LD} ||= 'ld';
$self->{OBJ_EXT} ||= '.o';
$self->{LIB_EXT} ||= '.a';
@@ -1887,7 +1886,7 @@ usually solves this kind of problem.
=item init_others
-Initializes EXTRALIBS, BSLOADLIBS, LDLOADLIBS, LIBS, LD_RUN_PATH,
+Initializes EXTRALIBS, BSLOADLIBS, LDLOADLIBS, LIBS, LD_RUN_PATH, LD,
OBJECT, BOOTDEP, PERLMAINCC, LDFROM, LINKTYPE, SHELL, NOOP,
FIRST_MAKEFILE, MAKEFILE_OLD, NOECHO, RM_F, RM_RF, TEST_F,
TOUCH, CP, MV, CHMOD, UMASK_NULL, ECHO, ECHO_N
@@ -1897,6 +1896,8 @@ TOUCH, CP, MV, CHMOD, UMASK_NULL, ECHO, ECHO_N
sub init_others { # --- Initialize Other Attributes
my($self) = shift;
+ $self->{LD} ||= 'ld';
+
# Compute EXTRALIBS, BSLOADLIBS and LDLOADLIBS from $self->{LIBS}
# Lets look at $self->{LIBS} carefully: It may be an anon array, a string or
# undefined. In any case we turn it into an anon array:
@@ -2321,7 +2322,10 @@ sub init_PERL {
# Build up a set of file names (not command names).
my $thisperl = $self->canonpath($^X);
- $thisperl .= $Config{exe_ext} unless $thisperl =~ m/$Config{exe_ext}$/i;
+ $thisperl .= $Config{exe_ext} unless
+ # VMS might have a file version # at the end
+ $Is_VMS ? $thisperl =~ m/$Config{exe_ext}(;\d+)?$/i
+ : $thisperl =~ m/$Config{exe_ext}$/i;
# We need a relative path to perl when in the core.
$thisperl = $self->abs2rel($thisperl) if $self->{PERL_CORE};
@@ -2345,8 +2349,15 @@ sub init_PERL {
# don't check if perl is executable, maybe they have decided to
# supply switches with perl
+ # When built for debugging, VMS doesn't create perl.exe but ndbgperl.exe.
+ my $perl_name = 'perl';
+ $perl_name = 'ndbgperl' if $Is_VMS &&
+ defined $Config{usevmsdebug} && $Config{usevmsdebug} eq 'define';
+
+ # XXX This logic is flawed. If "miniperl" is anywhere in the path
+ # it will get confused. It should be fixed to work only on the filename.
# Define 'FULLPERL' to be a non-miniperl (used in test: target)
- ($self->{FULLPERL} = $self->{PERL}) =~ s/miniperl/perl/i
+ ($self->{FULLPERL} = $self->{PERL}) =~ s/miniperl/$perl_name/i
unless $self->{FULLPERL};
# Little hack to get around VMS's find_perl putting "MCR" in front
diff --git a/lib/ExtUtils/MM_VMS.pm b/lib/ExtUtils/MM_VMS.pm
index 8ac90bfbee..a21a0d9b3a 100644
--- a/lib/ExtUtils/MM_VMS.pm
+++ b/lib/ExtUtils/MM_VMS.pm
@@ -21,7 +21,7 @@ BEGIN {
use File::Basename;
use vars qw($Revision @ISA $VERSION);
($VERSION) = '5.70';
-($Revision) = q$Revision: 1.109 $ =~ /Revision:\s+(\S+)/;
+($Revision) = q$Revision: 1.110 $ =~ /Revision:\s+(\S+)/;
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
@@ -164,25 +164,33 @@ sub find_perl {
my($rslt);
my($inabs) = 0;
local *TCF;
- # Check in relative directories first, so we pick up the current
- # version of Perl if we're running MakeMaker as part of the main build.
- @sdirs = sort { my($absa) = $self->file_name_is_absolute($a);
- my($absb) = $self->file_name_is_absolute($b);
- if ($absa && $absb) { return $a cmp $b }
- else { return $absa ? 1 : ($absb ? -1 : ($a cmp $b)); }
- } @$dirs;
- # Check miniperl before perl, and check names likely to contain
- # version numbers before "generic" names, so we pick up an
- # executable that's less likely to be from an old installation.
- @snames = sort { my($ba) = $a =~ m!([^:>\]/]+)$!; # basename
- my($bb) = $b =~ m!([^:>\]/]+)$!;
- my($ahasdir) = (length($a) - length($ba) > 0);
- my($bhasdir) = (length($b) - length($bb) > 0);
- if ($ahasdir and not $bhasdir) { return 1; }
- elsif ($bhasdir and not $ahasdir) { return -1; }
- else { $bb =~ /\d/ <=> $ba =~ /\d/
- or substr($ba,0,1) cmp substr($bb,0,1)
- or length($bb) <=> length($ba) } } @$names;
+
+ if( $self->{PERL_CORE} ) {
+ # Check in relative directories first, so we pick up the current
+ # version of Perl if we're running MakeMaker as part of the main build.
+ @sdirs = sort { my($absa) = $self->file_name_is_absolute($a);
+ my($absb) = $self->file_name_is_absolute($b);
+ if ($absa && $absb) { return $a cmp $b }
+ else { return $absa ? 1 : ($absb ? -1 : ($a cmp $b)); }
+ } @$dirs;
+ # Check miniperl before perl, and check names likely to contain
+ # version numbers before "generic" names, so we pick up an
+ # executable that's less likely to be from an old installation.
+ @snames = sort { my($ba) = $a =~ m!([^:>\]/]+)$!; # basename
+ my($bb) = $b =~ m!([^:>\]/]+)$!;
+ my($ahasdir) = (length($a) - length($ba) > 0);
+ my($bhasdir) = (length($b) - length($bb) > 0);
+ if ($ahasdir and not $bhasdir) { return 1; }
+ elsif ($bhasdir and not $ahasdir) { return -1; }
+ else { $bb =~ /\d/ <=> $ba =~ /\d/
+ or substr($ba,0,1) cmp substr($bb,0,1)
+ or length($bb) <=> length($ba) } } @$names;
+ }
+ else {
+ @sdirs = @$dirs;
+ @snames = @$names;
+ }
+
# Image names containing Perl version use '_' instead of '.' under VMS
foreach $name (@snames) { $name =~ s/\.(\d+)$/_$1/; }
if ($trace >= 2){
diff --git a/lib/ExtUtils/MM_Win32.pm b/lib/ExtUtils/MM_Win32.pm
index be9de22d26..8fe0b96d95 100644
--- a/lib/ExtUtils/MM_Win32.pm
+++ b/lib/ExtUtils/MM_Win32.pm
@@ -29,7 +29,7 @@ use vars qw(@ISA $VERSION $BORLAND $GCC $DMAKE $NMAKE);
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
@ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-$VERSION = '1.08';
+$VERSION = '1.09';
$ENV{EMXSHELL} = 'sh'; # to run `commands`
@@ -181,7 +181,6 @@ sub init_others {
$self->{TEST_F} ||= '$(PERLRUN) -MExtUtils::Command -e test_f';
$self->{DEV_NULL} ||= '> NUL';
- # technically speaking, these should be in init_main()
$self->{LD} ||= $Config{ld} || 'link';
$self->{AR} ||= $Config{ar} || 'lib';
diff --git a/lib/ExtUtils/MakeMaker.pm b/lib/ExtUtils/MakeMaker.pm
index 13bb850129..9b7d6ebfad 100644
--- a/lib/ExtUtils/MakeMaker.pm
+++ b/lib/ExtUtils/MakeMaker.pm
@@ -2,8 +2,8 @@ package ExtUtils::MakeMaker;
BEGIN {require 5.005_03;}
-$VERSION = '6.16';
-($Revision) = q$Revision: 1.131 $ =~ /Revision:\s+(\S+)/;
+$VERSION = '6.17';
+($Revision) = q$Revision: 1.133 $ =~ /Revision:\s+(\S+)/;
require Exporter;
use Config;
@@ -661,7 +661,6 @@ sub parse_args{
my($self, @args) = @_;
foreach (@args) {
unless (m/(.*?)=(.*)/) {
- help(),exit 1 if m/^help$/;
++$Verbose if m/^verb/;
next;
}
@@ -2041,7 +2040,7 @@ MakeMaker object. The following lines will be parsed o.k.:
$VERSION = '1.00';
*VERSION = \'1.01';
- $VERSION = sprintf "%d.%03d", q$Revision: 1.131 $ =~ /(\d+)/g;
+ $VERSION = sprintf "%d.%03d", q$Revision: 1.133 $ =~ /(\d+)/g;
$FOO::VERSION = '1.10';
*FOO::VERSION = \'1.11';
our $VERSION = 1.2.3; # new for perl5.6.0
diff --git a/lib/ExtUtils/MakeMaker/Tutorial.pod b/lib/ExtUtils/MakeMaker/Tutorial.pod
index b25e1bb2be..aec12b6f0d 100644
--- a/lib/ExtUtils/MakeMaker/Tutorial.pod
+++ b/lib/ExtUtils/MakeMaker/Tutorial.pod
@@ -86,7 +86,7 @@ A simple listing of all the files in your distribution.
MANIFEST
lib/Your/Module.pm
-Filepaths in a MANIFEST always use Unix conventions (ie. /) even if you're
+File paths in a MANIFEST always use Unix conventions (ie. /) even if you're
not on Unix.
You can write this by hand or generate it with 'make manifest'.
@@ -144,7 +144,7 @@ Suggested information to include here:
A file full of regular expressions to exclude when using 'make
manifest' to generate the MANIFEST. These regular expressions
-are checked against each filepath found in the distrubtion (so
+are checked against each file path found in the distribution (so
you're matching against "t/foo.t" not "foo.t").
Here's a sample:
@@ -172,7 +172,7 @@ L<perlmodstyle> gives stylistic help writing a module.
L<perlnewmod> gives more information about how to write a module.
There are modules to help you through the process of writing a module:
-L<ExtUtils::ModuleMaker>, L<Module::Setup>, L<CPAN::MakeMaker>
+L<ExtUtils::ModuleMaker>, L<Module::Install>, L<PAR>
=cut
diff --git a/lib/ExtUtils/Manifest.pm b/lib/ExtUtils/Manifest.pm
index 819e72cbc8..f6dea291d9 100644
--- a/lib/ExtUtils/Manifest.pm
+++ b/lib/ExtUtils/Manifest.pm
@@ -12,7 +12,7 @@ use vars qw($VERSION @ISA @EXPORT_OK
$Is_MacOS $Is_VMS
$Debug $Verbose $Quiet $MANIFEST $DEFAULT_MSKIP);
-$VERSION = 1.41;
+$VERSION = 1.42;
@ISA=('Exporter');
@EXPORT_OK = qw(mkmanifest
manicheck filecheck fullcheck skipcheck
@@ -539,17 +539,19 @@ sub maniadd {
_fix_manifest($MANIFEST);
my $manifest = maniread();
- my $is_open;
- foreach my $file (_sort keys %$additions) {
- next if exists $manifest->{$file};
+ my @needed = grep { !exists $manifest->{$_} } keys %$additions;
+ return 1 unless @needed;
- $is_open++ or open(MANIFEST, ">>$MANIFEST") or
- die "Could not open $MANIFEST: $!";
+ open(MANIFEST, ">>$MANIFEST") or
+ die "maniadd() could not open $MANIFEST: $!";
+ foreach my $file (_sort @needed) {
my $comment = $additions->{$file} || '';
- printf MANIFEST "%-40s%s\n", $file, $comment;
+ printf MANIFEST "%-40s %s\n", $file, $comment;
}
- close MANIFEST if $is_open;
+ close MANIFEST or die "Error closing $MANIFEST: $!";
+
+ return 1;
}
diff --git a/lib/ExtUtils/t/Manifest.t b/lib/ExtUtils/t/Manifest.t
index 50cf8697c7..215a24b14e 100644
--- a/lib/ExtUtils/t/Manifest.t
+++ b/lib/ExtUtils/t/Manifest.t
@@ -191,30 +191,34 @@ is( $files->{yarrow}, 'hock',' with comment' );
is( $files->{foobar}, '', ' preserved old entries' );
add_file('MANIFEST' => 'Makefile.PL');
-maniadd({ 'META.yml' => 'Module meta-data (added by MakeMaker)' });
+maniadd({ foo => 'bar' });
$files = maniread;
# VMS downcases the MANIFEST. We normalize it here to match.
%$files = map { (lc $_ => $files->{$_}) } keys %$files;
my %expect = ( 'makefile.pl' => '',
- 'meta.yml' => 'Module meta-data (added by MakeMaker)'
+ 'foo' => 'bar'
);
is_deeply( $files, \%expect, 'maniadd() vs MANIFEST without trailing newline');
+add_file('MANIFEST' => 'Makefile.PL');
+maniadd({ foo => 'bar' });
+
SKIP: {
chmod( 0400, 'MANIFEST' );
skip "Can't make MANIFEST read-only", 2 if -w 'MANIFEST';
eval {
- maniadd({ 'META.yml' => 'hock' });
+ maniadd({ 'foo' => 'bar' });
};
is( $@, '', "maniadd() won't open MANIFEST if it doesn't need to" );
eval {
maniadd({ 'grrrwoof' => 'yippie' });
};
- like( $@, qr/^Could not open MANIFEST/,
+ like( $@, qr/^\Qmaniadd() could not open MANIFEST:\E/,
"maniadd() dies if it can't open the MANIFEST" );
+ chmod( 0600, 'MANIFEST' );
}
@@ -224,7 +228,6 @@ END {
# now get rid of the parent directory
ok( chdir( $cwd ), 'return to parent directory' );
- unlink('mantest/MANIFEST');
remove_dir( 'mantest' );
}