Update ExtUtils-MakeMaker to CPAN version 6.84
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Sat, 30 Nov 2013 22:55:42 +0000 (22:55 +0000)
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Sat, 30 Nov 2013 22:55:42 +0000 (22:55 +0000)
  [DELTA]

6.84 Sat Nov 30 15:22:35 GMT 2013

    No changes from 6.83_06

6.83_06 Fri Nov 29 21:50:51 GMT 2013
    Doc fixes:
    * Correct the documentation for MAGICXS

6.83_05 Mon Nov 25 22:51:11 GMT 2013
    New Features:
    * Added MAGICXS attribute to explicitly enable automagic
      XS building.

    Bug fixes:
    * RT#90780 fix Macro `BOOTSTRAP' redefined warnings
    * Only enable automatic OBJECT generation if MAGICXS is true

6.83_04 Sun Nov 17 11:41:43 GMT 2013
    New Features:
    * OBJECT can now be specified as an array
    * build C_FILES/O_FILES/OBJECT automatically from XS

6.83_03 Fri Nov 15 09:44:26 GMT 2013
    Bug fixes:
    * Don't recurse into stale dist dirs

6.83_02 Tue Nov 12 11:11:34 GMT 2013
    Misc:
    * Enable bootstrapping to work on v5.10.x again

6.83_01 Tue Nov  5 11:43:50 GMT 2013
    Misc:
    * disable make parallelism for pure_all target

30 files changed:
Porting/Maintainers.pl
cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod
cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm
cpan/ExtUtils-MakeMaker/t/parse_version.t

index 4623248..0726cc7 100755 (executable)
@@ -473,7 +473,7 @@ use File::Glob qw(:case);
     },
 
     'ExtUtils::MakeMaker' => {
-        'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-6.82.tar.gz',
+        'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-6.84.tar.gz',
         'FILES'        => q[cpan/ExtUtils-MakeMaker],
         'EXCLUDED'     => [
             qr{^t/lib/Test/},
index 390aab0..38eb8b8 100644 (file)
@@ -10,7 +10,7 @@ our @ISA = qw(Exporter);
 
 our @EXPORT  = qw(test_harness pod2man perllocal_install uninstall
                   warn_if_old_packlist test_s cp_nonempty);
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 my $Is_VMS = $^O eq 'VMS';
 
index d396c1f..684157a 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::Liblist;
 
 use strict;
 
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 use File::Spec;
 require ExtUtils::Liblist::Kid;
index 9bb1187..154f335 100644 (file)
@@ -11,7 +11,7 @@ use 5.006;
 
 use strict;
 use warnings;
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 use ExtUtils::MakeMaker::Config;
 use Cwd 'cwd';
index 570aa05..ea7f587 100644 (file)
@@ -3,7 +3,7 @@ package ExtUtils::MM;
 use strict;
 use ExtUtils::MakeMaker::Config;
 
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 require ExtUtils::Liblist;
 require ExtUtils::MakeMaker;
index 7b78e4f..e3f8e70 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MM_AIX;
 
 use strict;
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 require ExtUtils::MM_Unix;
 our @ISA = qw(ExtUtils::MM_Unix);
index a1cecf1..9d046d8 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MM_Any;
 
 use strict;
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 use Carp;
 use File::Spec;
@@ -2154,6 +2154,10 @@ sub init_others {
     }
 
     if ( $self->{OBJECT} ) {
+        $self->{OBJECT} = join(" ", @{$self->{OBJECT}}) if ref $self->{OBJECT};
+        $self->{OBJECT} =~ s!\.o(bj)?\b!\$(OBJ_EXT)!g;
+    } elsif ( $self->{MAGICXS} && @{$self->{O_FILES}||[]} ) {
+        $self->{OBJECT} = join(" ", @{$self->{O_FILES}});
         $self->{OBJECT} =~ s!\.o(bj)?\b!\$(OBJ_EXT)!g;
     } else {
         # init_dirscan should have found out, if we have C files
index f99c72e..9e5239a 100644 (file)
@@ -26,7 +26,7 @@ require ExtUtils::MM_Any;
 require ExtUtils::MM_Unix;
 
 our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 
 =item os_flavor
index 822cdfb..622189d 100644 (file)
@@ -9,7 +9,7 @@ require ExtUtils::MM_Unix;
 require ExtUtils::MM_Win32;
 our @ISA = qw( ExtUtils::MM_Unix );
 
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 
 =head1 NAME
index 4093c7b..1a63fa2 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::MM_DOS;
 
 use strict;
 
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 require ExtUtils::MM_Any;
 require ExtUtils::MM_Unix;
index 7c89859..c093e9a 100644 (file)
@@ -7,7 +7,7 @@ BEGIN {
     our @ISA = qw( ExtUtils::MM_Unix );
 }
 
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 
 =head1 NAME
index 3ab6361..28a0028 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::MM_MacOS;
 
 use strict;
 
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 sub new {
     die <<'UNSUPPORTED';
index 779dc2a..41ed14b 100644 (file)
@@ -22,7 +22,7 @@ use strict;
 use ExtUtils::MakeMaker::Config;
 use File::Basename;
 
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 require ExtUtils::MM_Win32;
 our @ISA = qw(ExtUtils::MM_Win32);
index b7e1f3a..510e33f 100644 (file)
@@ -5,7 +5,7 @@ use strict;
 use ExtUtils::MakeMaker qw(neatvalue);
 use File::Spec;
 
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 require ExtUtils::MM_Any;
 require ExtUtils::MM_Unix;
index 8ae14a5..6c48d0e 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MM_QNX;
 
 use strict;
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 require ExtUtils::MM_Unix;
 our @ISA = qw(ExtUtils::MM_Unix);
index 3f3ad08..8c39701 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MM_UWIN;
 
 use strict;
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 require ExtUtils::MM_Unix;
 our @ISA = qw(ExtUtils::MM_Unix);
index 9ba094e..a7a5e1b 100644 (file)
@@ -15,7 +15,7 @@ use ExtUtils::MakeMaker qw($Verbose neatvalue);
 
 # If we make $VERSION an our variable parse_version() breaks
 use vars qw($VERSION);
-$VERSION = '6.82';
+$VERSION = '6.84';
 $VERSION = eval $VERSION;  ## no critic [BuiltinFunctions::ProhibitStringyEval]
 
 require ExtUtils::MM_Any;
@@ -1266,7 +1266,7 @@ Called by init_main.
 
 sub init_dirscan {     # --- File and Directory Lists (.xs .pm .pod etc)
     my($self) = @_;
-    my(%dir, %xs, %c, %h, %pl_files, %pm);
+    my(%dir, %xs, %c, %o, %h, %pl_files, %pm);
 
     my %ignore = map {( $_ => 1 )} qw(Makefile.PL Build.PL test.pl t);
 
@@ -1274,10 +1274,21 @@ sub init_dirscan {      # --- File and Directory Lists (.xs .pm .pod etc)
     $Is{VMS} ? $ignore{"$self->{DISTVNAME}.dir"} = 1
             : $ignore{$self->{DISTVNAME}} = 1;
 
+    my $distprefix = $Is{VMS} ? qr/^\Q$self->{DISTNAME}\E-.*\.dir$/i
+                              : qr/^\Q$self->{DISTNAME}-/;
+
     @ignore{map lc, keys %ignore} = values %ignore if $Is{VMS};
 
+    if ( defined $self->{XS} and !defined $self->{C} ) {
+       my @c_files = grep { m/\.c(pp|xx)?\z/i } values %{$self->{XS}};
+       my @o_files = grep { m/(?:.(?:o(?:bj)?)|\$\(OBJ_EXT\))\z/i } values %{$self->{XS}};
+       %c = map { $_ => 1 } @c_files;
+       %o = map { $_ => 1 } @o_files;
+    }
+
     foreach my $name ($self->lsdir($Curdir)){
        next if $name =~ /\#/;
+       next if $name =~ $distprefix;
        $name = lc($name) if $Is{VMS};
        next if $name eq $Curdir or $name eq $Updir or $ignore{$name};
        next unless $self->libscan($name);
@@ -1319,7 +1330,8 @@ sub init_dirscan {        # --- File and Directory Lists (.xs .pm .pod etc)
     $self->{PM}         ||= \%pm;
 
     my @o_files = @{$self->{C}};
-    $self->{O_FILES} = [grep s/\.c(pp|xx|c)?\z/$self->{OBJ_EXT}/i, @o_files];
+    %o = (%o, map { $_ => 1 } grep s/\.c(pp|xx|c)?\z/$self->{OBJ_EXT}/i, @o_files);
+    $self->{O_FILES} = [sort keys %o];
 }
 
 
index e1fe50b..aa034a2 100644 (file)
@@ -15,7 +15,7 @@ BEGIN {
 
 use File::Basename;
 
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 require ExtUtils::MM_Any;
 require ExtUtils::MM_Unix;
index 8f428df..c80b55c 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MM_VOS;
 
 use strict;
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 require ExtUtils::MM_Unix;
 our @ISA = qw(ExtUtils::MM_Unix);
index 9c0613d..adbd8e3 100644 (file)
@@ -27,7 +27,7 @@ use ExtUtils::MakeMaker qw( neatvalue );
 require ExtUtils::MM_Any;
 require ExtUtils::MM_Unix;
 our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 $ENV{EMXSHELL} = 'sh'; # to run `commands`
 
index b90f750..c9cde9c 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::MM_Win95;
 
 use strict;
 
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 require ExtUtils::MM_Win32;
 our @ISA = qw(ExtUtils::MM_Win32);
index 537ef9a..4dc472d 100644 (file)
@@ -3,7 +3,7 @@ package ExtUtils::MY;
 use strict;
 require ExtUtils::MM;
 
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 our @ISA = qw(ExtUtils::MM);
 
 {
index 55c9181..eced66d 100644 (file)
@@ -18,7 +18,7 @@ our @Overridable;
 my @Prepend_parent;
 my %Recognized_Att_Keys;
 
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 $VERSION = eval $VERSION;  ## no critic [BuiltinFunctions::ProhibitStringyEval]
 
 # Emulate something resembling CVS $Revision$
@@ -87,6 +87,7 @@ my %Special_Sigs = (
  MAN3PODS           => 'HASH',
  META_ADD           => 'HASH',
  META_MERGE         => 'HASH',
+ OBJECT             => ['ARRAY', ''],
  PL_FILES           => 'HASH',
  PM                 => 'HASH',
  PMLIBDIRS          => 'ARRAY',
@@ -278,7 +279,7 @@ sub full_setup {
     MYEXTLIB NAME NEEDS_LINKING NOECHO NO_META NO_MYMETA NO_PACKLIST NO_PERLLOCAL
     NORECURS NO_VC OBJECT OPTIMIZE PERL_MALLOC_OK PERL PERLMAINCC PERLRUN
     PERLRUNINST PERL_CORE
-    PERL_SRC PERM_DIR PERM_RW PERM_RWX
+    PERL_SRC PERM_DIR PERM_RW PERM_RWX MAGICXS
     PL_FILES PM PM_FILTER PMLIBDIRS PMLIBPARENTDIRS POLLUTE PPM_INSTALL_EXEC
     PPM_INSTALL_SCRIPT PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ
     SIGN SKIP TEST_REQUIRES TYPEMAPS UNINST VERSION VERSION_FROM XS XSOPT XSPROTOARG
@@ -315,7 +316,7 @@ sub full_setup {
 
  special_targets
  c_o xs_c xs_o
- top_targets blibdirs linkext dlsyms dynamic dynamic_bs
+ top_targets blibdirs linkext dlsyms dynamic_bs dynamic
  dynamic_lib static static_lib manifypods processPL
  installbin subdirs
  clean_subdirs clean realclean_subdirs realclean
@@ -2084,6 +2085,10 @@ Defaults to "unknown".
 config.sh). Should only be used to force static linking (also see
 linkext below).
 
+=item MAGICXS
+
+When this is set to C<1>, C<OBJECT> will be automagically derived from C<XS>.
+
 =item MAKE
 
 Variant of make you intend to run the generated Makefile with.  This
@@ -2270,8 +2275,8 @@ Makefile.PL, use it interactively instead.
 =item OBJECT
 
 List of object files, defaults to '$(BASEEXT)$(OBJ_EXT)', but can be a long
-string containing all object files, e.g. "tkpBind.o
-tkpButton.o tkpCanvas.o"
+string or an array containing all object files, e.g. "tkpBind.o
+tkpButton.o tkpCanvas.o" or ["tkpBind.o", "tkpButton.o", "tkpCanvas.o"]
 
 (Where BASEEXT is the last component of NAME, and OBJ_EXT is $Config{obj_ext}.)
 
index cd83fb0..3fbbbf8 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::MakeMaker::Config;
 
 use strict;
 
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 use Config ();
 
index 3b4d30c..aac597a 100644 (file)
@@ -1,6 +1,6 @@
 package ExtUtils::MakeMaker::FAQ;
 
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 1;
 __END__
index 999c9a7..bbd9b1a 100644 (file)
@@ -1,6 +1,6 @@
 package ExtUtils::MakeMaker::Tutorial;
 
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 
 =head1 NAME
index 1a3ad6c..a8f95d6 100644 (file)
@@ -3,7 +3,7 @@ package ExtUtils::Mkbootstrap;
 # There's just too much Dynaloader incest here to turn on strict vars.
 use strict 'refs';
 
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 require Exporter;
 our @ISA = ('Exporter');
index df1baae..5b08922 100644 (file)
@@ -10,7 +10,7 @@ use Config;
 
 our @ISA = qw(Exporter);
 our @EXPORT = qw(&Mksymlists);
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 sub Mksymlists {
     my(%spec) = @_;
index 7edc8ef..9208ab7 100644 (file)
@@ -3,7 +3,7 @@ package ExtUtils::testlib;
 use strict;
 use warnings;
 
-our $VERSION = '6.82';
+our $VERSION = '6.84';
 
 use Cwd;
 use File::Spec;
index e0d181b..8a02f69 100644 (file)
@@ -80,6 +80,10 @@ our $VERSION = 2.34;
 END
 }
 
+if ( $] > 5.009 && $] < 5.012 ) {
+  delete $versions{'$VERSION = -1.0'};
+}
+
 plan tests => (3 * keys %versions) + 4 + grep { !defined} (values %versions);
 
 for my $code ( sort keys %versions ) {