This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Upgrade to ExtUtils-MakeMaker-6.48
[perl5.git] / lib / ExtUtils / Command / MM.pm
index 4aa3738..5665bbb 100644 (file)
@@ -1,18 +1,20 @@
 package ExtUtils::Command::MM;
 
+require 5.006;
+
 use strict;
+use warnings;
 
-require 5.005_03;
 require Exporter;
-use vars qw($VERSION @ISA @EXPORT);
-@ISA = qw(Exporter);
+our @ISA = qw(Exporter);
 
-@EXPORT  = qw(test_harness pod2man perllocal_install uninstall 
-              warn_if_old_packlist);
-$VERSION = '0.02';
+our @EXPORT  = qw(test_harness pod2man perllocal_install uninstall 
+                  warn_if_old_packlist);
+our $VERSION = '6.48';
 
 my $Is_VMS = $^O eq 'VMS';
 
+
 =head1 NAME
 
 ExtUtils::Command::MM - Commands for the MM's to use in Makefiles
@@ -50,9 +52,14 @@ sub test_harness {
 
     $Test::Harness::verbose = shift;
 
+    # Because Windows doesn't do this for us and listing all the *.t files
+    # out on the command line can blow over its exec limit.
+    require ExtUtils::Command;
+    my @argv = ExtUtils::Command::expand_wildcards(@ARGV);
+
     local @INC = @INC;
     unshift @INC, map { File::Spec->rel2abs($_) } @_;
-    Test::Harness::runtests(sort { lc $a cmp lc $b } @ARGV);
+    Test::Harness::runtests(sort { lc $a cmp lc $b } @argv);
 }
 
 
@@ -83,14 +90,14 @@ If no arguments are given to pod2man it will read from @ARGV.
 =cut
 
 sub pod2man {
+    local @ARGV = @_ ? @_ : @ARGV;
+
     require Pod::Man;
     require Getopt::Long;
 
-    my %options = ();
-
     # We will cheat and just use Getopt::Long.  We fool it by putting
     # our arguments into @ARGV.  Should be safe.
-    local @ARGV = @_ ? @_ : @ARGV;
+    my %options = ();
     Getopt::Long::config ('bundling_override');
     Getopt::Long::GetOptions (\%options, 
                 'section|s=s', 'release|r=s', 'center|c=s',
@@ -104,15 +111,13 @@ sub pod2man {
 
     # Official sets --center, but don't override things explicitly set.
     if ($options{official} && !defined $options{center}) {
-        $options{center} = 'Perl Programmers Reference Guide';
+        $options{center} = q[Perl Programmer's Reference Guide];
     }
 
     # This isn't a valid Pod::Man option and is only accepted for backwards
     # compatibility.
     delete $options{lax};
 
-    my $parser = Pod::Man->new(%options);
-
     do {{  # so 'next' works
         my ($pod, $man) = splice(@ARGV, 0, 2);
 
@@ -122,6 +127,7 @@ sub pod2man {
 
         print "Manifying $man\n";
 
+        my $parser = Pod::Man->new(%options);
         $parser->parse_from_file($pod, $man)
           or do { warn("Could not install $man\n");  next };
 
@@ -162,9 +168,9 @@ PACKLIST_WARNING
     perl "-MExtUtils::Command::MM" -e perllocal_install 
         <type> <module name> <key> <value> ...
 
-    # VMS only, key/value pairs come on STDIN
+    # VMS only, key|value pairs come on STDIN
     perl "-MExtUtils::Command::MM" -e perllocal_install
-        <type> <module name> < <key> <value> ...
+        <type> <module name> < <key>|<value> ...
 
 Prints a fragment of POD suitable for appending to perllocal.pod.
 Arguments are read from @ARGV.
@@ -188,7 +194,8 @@ sub perllocal_install {
 
     # VMS feeds args as a piped file on STDIN since it usually can't
     # fit all the args on a single command line.
-    @ARGV = split /\|/, <STDIN> if $Is_VMS;
+    my @mod_info = $Is_VMS ? split /\|/, <STDIN>
+                           : @ARGV;
 
     my $pod;
     $pod = sprintf <<POD, scalar localtime;
@@ -199,7 +206,7 @@ sub perllocal_install {
 POD
 
     do {
-        my($key, $val) = splice(@ARGV, 0, 2);
+        my($key, $val) = splice(@mod_info, 0, 2);
 
         $pod .= <<POD
  =item *
@@ -208,7 +215,7 @@ POD
  
 POD
 
-    } while(@ARGV);
+    } while(@mod_info);
 
     $pod .= "=back\n\n";
     $pod =~ s/^ //mg;
@@ -228,7 +235,7 @@ uninstallation.
 =cut
 
 sub uninstall {
-    my($packlist) = shift;
+    my($packlist) = shift @ARGV;
 
     require ExtUtils::Install;