diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2003-09-16 04:57:08 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2003-09-16 04:57:08 +0000 |
commit | 303615418b9a57c2ec471053f1ec710915096066 (patch) | |
tree | 6c4c2263d31cf3bc61631ae26b25b02489afaa15 /lib | |
parent | 864f8ab4dc777f1f69726cb282c61127880e06f9 (diff) | |
download | perl-303615418b9a57c2ec471053f1ec710915096066.tar.gz |
Upgrade to MakeMaker 6.17.
p4raw-id: //depot/perl@21238
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ExtUtils/Changes | 12 | ||||
-rw-r--r-- | lib/ExtUtils/Install.pm | 3 | ||||
-rw-r--r-- | lib/ExtUtils/MANIFEST.SKIP | 33 | ||||
-rw-r--r-- | lib/ExtUtils/META.yml | 4 | ||||
-rw-r--r-- | lib/ExtUtils/MM_Any.pm | 2 | ||||
-rw-r--r-- | lib/ExtUtils/MM_Unix.pm | 32 | ||||
-rw-r--r-- | lib/ExtUtils/MM_VMS.pm | 48 | ||||
-rw-r--r-- | lib/ExtUtils/MM_Win32.pm | 3 | ||||
-rw-r--r-- | lib/ExtUtils/MakeMaker.pm | 7 | ||||
-rw-r--r-- | lib/ExtUtils/Manifest.pm | 18 | ||||
-rw-r--r-- | lib/ExtUtils/README | 36 | ||||
-rw-r--r-- | lib/ExtUtils/t/MM_Win32.t | 2 | ||||
-rw-r--r-- | lib/ExtUtils/t/Manifest.t | 3 | ||||
-rw-r--r-- | lib/ExtUtils/t/basic.t | 1 |
14 files changed, 126 insertions, 78 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/MANIFEST.SKIP b/lib/ExtUtils/MANIFEST.SKIP index 41f89ae707..62b78eea26 100644 --- a/lib/ExtUtils/MANIFEST.SKIP +++ b/lib/ExtUtils/MANIFEST.SKIP @@ -1,22 +1,17 @@ -# Avoid version control files. -\bRCS\b +\.ppd$ \bCVS\b -,v$ -\B\.svn\b - -# Avoid Makemaker generated and utility files. -\bMANIFEST\.bak -\bMakefile$ -\bblib/ -\bMakeMaker-\d -\bpm_to_blib$ - -# Avoid Module::Build generated and utility files. -\bBuild$ -\b_build/ - -# Avoid temp and backup files. ~$ +t/lib/File/ +t/Big-Dummy +t/Problem-Module +.gz$ +.bak$ +Makefile$ +MANIFEST.perl$ \.old$ -\#$ -\b\.# +merge_bleadperl$ +^blib/ +^pm_to_blib +.DS_Store +\# +^bleadperl\.patch$ 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_Any.pm b/lib/ExtUtils/MM_Any.pm index 8b418c0f3c..5d8d640b68 100644 --- a/lib/ExtUtils/MM_Any.pm +++ b/lib/ExtUtils/MM_Any.pm @@ -11,7 +11,7 @@ use File::Spec; =head1 NAME -ExtUtils::MM_Any - Platform agnostic MM methods +ExtUtils::MM_Any - Platform-agnostic MM methods =head1 SYNOPSIS diff --git a/lib/ExtUtils/MM_Unix.pm b/lib/ExtUtils/MM_Unix.pm index 80e7a6ec1d..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,21 +2322,15 @@ 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}; my @perls = ($thisperl); - my $ndbg = ''; - if ( $Is_VMS ) { - if ( defined( $Config{usevmsdebug} ) ) { - if ( $Config{usevmsdebug} eq 'define' ) { - push @perls, map { "$_$Config{exe_ext}" } ('ndbgperl'); - $ndbg = 'ndbg'; - } - } - } push @perls, map { "$_$Config{exe_ext}" } ('perl', 'perl5', "perl$Config{version}"); @@ -2354,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/${ndbg}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/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/README b/lib/ExtUtils/README index eda94c0585..4d6eed77c5 100644 --- a/lib/ExtUtils/README +++ b/lib/ExtUtils/README @@ -1,10 +1,42 @@ -This is a CPAN distribution of the venerable MakeMaker module. +This is a CPAN distribution of the venerable MakeMaker module. It has been +backported to work with Perl 5.005_03 and up. + +If you do not have a make program, several can be found... + +Most Unixen: The make utility which comes with your operating system +should work fine. If you don't have one, GNU make is recommended, +most others (Sun, BSD, etc...) will work fine as well. + +Windows: nmake or dmake will work. GNU make will *not*. +ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe +http://search.cpan.org/author/GSAR/dmake-4.1pl1-win32/ + +VMS: MMS or the free MadGoat MaKe utility (MMK) will work. +http://www.madgoat.com/mmk.html + +If all else fails there is a pure Perl version of make available on +CPAN which should work on most Unixen. +http://search.cpan.org/author/NI-S/Make-1.00/ PLEASE NOTE: This distribution does not include the xsubpp or typemap programs. They are extremely specific to your version or Perl, so MakeMaker will simply use the one which came with your copy of Perl. -Do not delete your old ExtUtils/ directory. +Do not delete your old ExtUtils/ directory. An upgraded version of xsubpp +can be found in the ExtUtils::ParseXS module. + +Known Good Systems: + +Every stable MakeMaker release is tested at least on: + +MacOS X +Linux/x86 +ActivePerl on Windows 98 +Cygwin on Windows 98 +OpenVMS + +Covering the major portability flavors MakeMaker has to cover. +(I'm always on the lookout for DJGPP, Solaris, *BSD and OS/2 users) Known Problems: diff --git a/lib/ExtUtils/t/MM_Win32.t b/lib/ExtUtils/t/MM_Win32.t index 315b9158cf..1431ababd0 100644 --- a/lib/ExtUtils/t/MM_Win32.t +++ b/lib/ExtUtils/t/MM_Win32.t @@ -112,7 +112,7 @@ delete $ENV{PATHEXT} unless $had_pathext; # init_others(): check if all keys are created and set? # qw( TOUCH CHMOD CP RM_F RM_RF MV NOOP TEST_F LD AR LDLOADLIBS DEV_NUL ) { - my $mm_w32 = bless( {}, 'MM' ); + my $mm_w32 = bless( { BASEEXT => 'Foo' }, 'MM' ); $mm_w32->init_others(); my @keys = qw( TOUCH CHMOD CP RM_F RM_RF MV NOOP TEST_F LD AR LDLOADLIBS DEV_NULL ); diff --git a/lib/ExtUtils/t/Manifest.t b/lib/ExtUtils/t/Manifest.t index ec7115ca3f..215a24b14e 100644 --- a/lib/ExtUtils/t/Manifest.t +++ b/lib/ExtUtils/t/Manifest.t @@ -215,7 +215,7 @@ SKIP: { 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' ); @@ -228,7 +228,6 @@ END { # now get rid of the parent directory ok( chdir( $cwd ), 'return to parent directory' ); - unlink('mantest/MANIFEST'); remove_dir( 'mantest' ); } diff --git a/lib/ExtUtils/t/basic.t b/lib/ExtUtils/t/basic.t index 0c05a5e5ec..960a75dfdf 100644 --- a/lib/ExtUtils/t/basic.t +++ b/lib/ExtUtils/t/basic.t @@ -42,6 +42,7 @@ ok( chdir('Big-Dummy'), "chdir'd to Big-Dummy" ) || diag("chdir failed: $!"); my @mpl_out = run(qq{$perl Makefile.PL "PREFIX=../dummy-install"}); +END { rmtree '../dummy-install'; } cmp_ok( $?, '==', 0, 'Makefile.PL exited with zero' ) || diag(@mpl_out); |