summaryrefslogtreecommitdiff
path: root/cpan
diff options
context:
space:
mode:
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>2017-06-09 17:41:20 +0100
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>2017-06-09 17:41:20 +0100
commit7ad910c539e81fc14531489c2ef9c54784deef8f (patch)
treebcddf009ab209be2abf262614a9311b6ff3d7965 /cpan
parent42752acc4959c5b770bbc29532bf2677f4533c4e (diff)
downloadperl-7ad910c539e81fc14531489c2ef9c54784deef8f.tar.gz
Update ExtUtils-MakeMaker to CPAN version 7.28
[DELTA] 7.28 Tue May 30 22:01:08 BST 2017 No changes since v7.27_02 7.27_02 Tue May 30 09:27:56 BST 2017 Bug fixes: - Prune auto/share from search paths RT#121918 7.27_01 Sun May 28 11:35:46 BST 2017 Bug fixes: - Fix regression with metadata RT#121913 7.26 Sat May 27 21:01:47 BST 2017 No changes since 7.25_06 7.25_06 Tue May 23 20:18:01 BST 2017 Bug fixes: - Fix regression with XS tests on MSWin32 with MS toolchain 7.25_05 Mon May 15 10:18:01 BST 2017 Bug fixes: - Make MakeMaker pass compilation tests on AIX again - Test, fix test dep on SKIPped linktype 7.25_04 Fri May 12 12:24:09 BST 2017 Enhancements: - Add os_unsupported() function 7.25_03 Thu May 11 17:51:23 BST 2017 Bug fixes: - processPL now depends on 'pure_all' instead of 'all' 7.25_02 Thu May 11 11:54:42 BST 2017 Bug fixes: - Only add staticlibs that are installed under auto/ - Correct the order of tests of chmod() Doc fixes: - Fixed typo in MakeMaker.pm 7.25_01 Fri Feb 3 13:36:25 GMT 2017 Bug fixes: - Make perllocal.pod files reproducible - META_ADD/MERGE default meta version based on each other - Eliminate an ancient, unneeded, dangerous call to Carp::longmess
Diffstat (limited to 'cpan')
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm5
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm26
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm17
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm36
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm26
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod4
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/t/03-xsstatic.t3
-rw-r--r--cpan/ExtUtils-MakeMaker/t/basic.t16
-rw-r--r--cpan/ExtUtils-MakeMaker/t/eu_command.t13
-rw-r--r--cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/XS.pm76
-rw-r--r--cpan/ExtUtils-MakeMaker/t/metafile_data.t106
-rw-r--r--cpan/ExtUtils-MakeMaker/t/os_unsupported.t15
38 files changed, 322 insertions, 73 deletions
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm
index c9ff022f03..b96609d08c 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm
@@ -7,7 +7,7 @@ use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION);
@ISA = qw(Exporter);
@EXPORT = qw(cp rm_f rm_rf mv cat eqtime mkpath touch test_f test_d chmod
dos2unix);
-$VERSION = '7.24';
+$VERSION = '7.28';
$VERSION = eval $VERSION;
my $Is_VMS = $^O eq 'VMS';
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm
index 69779b2912..ea69e14798 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm
@@ -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 = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
my $Is_VMS = $^O eq 'VMS';
@@ -219,7 +219,8 @@ sub perllocal_install {
: @ARGV;
my $pod;
- $pod = sprintf <<'POD', scalar(localtime), $type, $name, $name;
+ my $time = gmtime($ENV{SOURCE_DATE_EPOCH} || time);
+ $pod = sprintf <<'POD', scalar($time), $type, $name, $name;
=head2 %s: C<%s> L<%s|%s>
=over 4
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm
index 7b2ca535ce..58418815cd 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm
@@ -2,7 +2,7 @@ package ExtUtils::Liblist;
use strict;
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
use File::Spec;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
index a7fae86276..0dc9fc5c1c 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
@@ -11,7 +11,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
use ExtUtils::MakeMaker::Config;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm
index b327932388..ec1aa80132 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm
@@ -3,7 +3,7 @@ package ExtUtils::MM;
use strict;
use ExtUtils::MakeMaker::Config;
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
require ExtUtils::Liblist;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm
index ea646606fc..19f1d5c6c3 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm
@@ -1,9 +1,10 @@
package ExtUtils::MM_AIX;
use strict;
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
+use ExtUtils::MakeMaker::Config;
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
@@ -34,13 +35,7 @@ Define DL_FUNCS and DL_VARS and write the *.exp files.
sub dlsyms {
my($self,%attribs) = @_;
return '' unless $self->needs_linking;
- my @m;
- # these will need XSMULTI-fying but maybe that already happens
- push @m,"\ndynamic :: $self->{BASEEXT}.exp\n\n"
- unless $self->{SKIPHASH}{'dynamic'}; # dynamic and static are subs, so...
- push @m,"\nstatic :: $self->{BASEEXT}.exp\n\n"
- unless $self->{SKIPHASH}{'static'}; # we avoid a warning if we tick them
- join "\n", @m, $self->xs_dlsyms_iterator(\%attribs);
+ join "\n", $self->xs_dlsyms_iterator(\%attribs);
}
=head3 xs_dlsyms_ext
@@ -53,6 +48,21 @@ sub xs_dlsyms_ext {
'.exp';
}
+sub xs_dlsyms_arg {
+ my($self, $file) = @_;
+ return qq{-bE:${file}};
+}
+
+sub init_others {
+ my $self = shift;
+ $self->SUPER::init_others;
+ # perl "hints" add -bE:$(BASEEXT).exp to LDDLFLAGS. strip that out
+ # so right value can be added by xs_make_dynamic_lib to work for XSMULTI
+ $self->{LDDLFLAGS} ||= $Config{lddlflags};
+ $self->{LDDLFLAGS} =~ s#(\s*)\S*\Q$(BASEEXT)\E\S*(\s*)#$1$2#;
+ return;
+}
+
=head1 AUTHOR
Michael G Schwern <schwern@pobox.com> with code from ExtUtils::MM_Unix
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
index 433a8dd7a3..4afe450604 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
@@ -1,7 +1,7 @@
package ExtUtils::MM_Any;
use strict;
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
use Carp;
@@ -910,6 +910,17 @@ MAKE_FRAG
}
+=head3 xs_dlsyms_arg
+
+Returns command-line arg(s) to linker for file listing dlsyms to export.
+Defaults to returning empty string, can be overridden by e.g. AIX.
+
+=cut
+
+sub xs_dlsyms_arg {
+ return '';
+}
+
=head3 xs_dlsyms_ext
Returns file-extension for C<xs_make_dlsyms> method's output file,
@@ -1318,8 +1329,10 @@ sub metafile_data {
# needs to be based on the original version
my $v1_add = _metaspec_version($meta_add) !~ /^2/;
+ my ($add_v, $merge_v) = map _metaspec_version($_), $meta_add, $meta_merge;
for my $frag ($meta_add, $meta_merge) {
- $frag = CPAN::Meta::Converter->new($frag, default_version => "1.4")->upgrade_fragment;
+ my $def_v = $frag == $meta_add ? $merge_v : $add_v;
+ $frag = CPAN::Meta::Converter->new($frag, default_version => $def_v)->upgrade_fragment;
}
# if we upgraded a 1.x _ADD fragment, we gave it a prereqs key that
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm
index 9ede797146..a2700b50a7 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm
@@ -26,7 +26,7 @@ require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm
index e180a44530..ce2084449f 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm
@@ -9,7 +9,7 @@ require ExtUtils::MM_Unix;
require ExtUtils::MM_Win32;
our @ISA = qw( ExtUtils::MM_Unix );
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm
index a453278b2f..ee24ac338f 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm
@@ -2,7 +2,7 @@ package ExtUtils::MM_DOS;
use strict;
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
require ExtUtils::MM_Any;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm
index 03dfe27376..557a9f5487 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm
@@ -7,7 +7,7 @@ BEGIN {
our @ISA = qw( ExtUtils::MM_Unix );
}
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm
index 8207502f71..787a82e328 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm
@@ -2,7 +2,7 @@ package ExtUtils::MM_MacOS;
use strict;
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
sub new {
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm
index 6ec9b7cb8f..f46ecb6f5e 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm
@@ -22,7 +22,7 @@ use strict;
use ExtUtils::MakeMaker::Config;
use File::Basename;
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
require ExtUtils::MM_Win32;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm
index f23ec5a2a6..7b4f8fac54 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm
@@ -5,7 +5,7 @@ use strict;
use ExtUtils::MakeMaker qw(neatvalue);
use File::Spec;
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
require ExtUtils::MM_Any;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm
index 6475983eb8..2c8d56b5c4 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm
@@ -1,7 +1,7 @@
package ExtUtils::MM_QNX;
use strict;
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
require ExtUtils::MM_Unix;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm
index e7e65ef2ad..0a4f0bf53d 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm
@@ -1,7 +1,7 @@
package ExtUtils::MM_UWIN;
use strict;
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
require ExtUtils::MM_Unix;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
index 66a24d7838..ce3dc1abd0 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
@@ -14,7 +14,7 @@ use ExtUtils::MakeMaker qw($Verbose neatvalue _sprintf562);
# If we make $VERSION an our variable parse_version() breaks
use vars qw($VERSION);
-$VERSION = '7.24';
+$VERSION = '7.28';
$VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval]
require ExtUtils::MM_Any;
@@ -932,6 +932,7 @@ sub dynamic_lib {
return '' unless $self->has_link_code;
my @m = $self->xs_dynamic_lib_macros(\%attribs);
my @libs;
+ my $dlsyms_ext = eval { $self->xs_dlsyms_ext };
if ($self->{XSMULTI}) {
my @exts = $self->_xs_list_basenames;
for my $ext (@exts) {
@@ -952,10 +953,14 @@ sub dynamic_lib {
my $ldfrom = $self->_xsbuild_value('xs', $ext, 'LDFROM');
$ldfrom = $objfile unless defined $ldfrom;
my $exportlist = "$ext.def";
- push @libs, [ $objfile, $instfile, $instdir, $ldfrom, $exportlist ];
+ my @libchunk = ($objfile, $instfile, $instdir, $ldfrom, $exportlist);
+ push @libchunk, $dlsyms_ext ? $ext.$dlsyms_ext : undef;
+ push @libs, \@libchunk;
}
} else {
- @libs = ([ qw($(OBJECT) $(INST_DYNAMIC) $(INST_ARCHAUTODIR) $(LDFROM) $(EXPORT_LIST)) ]);
+ my @libchunk = qw($(OBJECT) $(INST_DYNAMIC) $(INST_ARCHAUTODIR) $(LDFROM) $(EXPORT_LIST));
+ push @libchunk, $dlsyms_ext ? '$(BASEEXT)'.$dlsyms_ext : undef;
+ @libs = (\@libchunk);
}
push @m, map { $self->xs_make_dynamic_lib(\%attribs, @$_); } @libs;
@@ -999,10 +1004,11 @@ Defines the recipes for the C<dynamic_lib> section.
=cut
sub xs_make_dynamic_lib {
- my ($self, $attribs, $object, $to, $todir, $ldfrom, $exportlist) = @_;
+ my ($self, $attribs, $object, $to, $todir, $ldfrom, $exportlist, $dlsyms) = @_;
$exportlist = '' if $exportlist ne '$(EXPORT_LIST)';
my $armaybe = $self->_xs_armaybe($attribs);
- my @m = sprintf '%s : %s $(MYEXTLIB) %s$(DFSEP).exists %s $(PERL_ARCHIVEDEP) $(PERL_ARCHIVE_AFTER) $(INST_DYNAMIC_DEP)'."\n", $to, $object, $todir, $exportlist;
+ my @m = sprintf '%s : %s $(MYEXTLIB) %s$(DFSEP).exists %s $(PERL_ARCHIVEDEP) $(PERL_ARCHIVE_AFTER) $(INST_DYNAMIC_DEP) %s'."\n", $to, $object, $todir, $exportlist, ($dlsyms || '');
+ my $dlsyms_arg = $self->xs_dlsyms_arg($dlsyms);
if ($armaybe ne ':'){
$ldfrom = 'tmp$(LIB_EXT)';
push(@m," \$(ARMAYBE) cr $ldfrom $object\n");
@@ -1043,8 +1049,8 @@ sub xs_make_dynamic_lib {
$ld_run_path_shell = 'LD_RUN_PATH="$(LD_RUN_PATH)" ';
}
- push @m, sprintf <<'MAKE', $ld_run_path_shell, $ldrun, $ldfrom, $self->xs_obj_opt('$@'), $libs, $exportlist;
- %s$(LD) %s $(LDDLFLAGS) %s $(OTHERLDFLAGS) %s $(MYEXTLIB) \
+ push @m, sprintf <<'MAKE', $ld_run_path_shell, $ldrun, $dlsyms_arg, $ldfrom, $self->xs_obj_opt('$@'), $libs, $exportlist;
+ %s$(LD) %s $(LDDLFLAGS) %s %s $(OTHERLDFLAGS) %s $(MYEXTLIB) \
$(PERL_ARCHIVE) %s $(PERL_ARCHIVE_AFTER) %s \
$(INST_DYNAMIC_FIX)
$(CHMOD) $(PERM_RWX) $@
@@ -2531,6 +2537,14 @@ $(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib
'auto', $self->{FULLEXT}, "$self->{BASEEXT}$self->{LIB_EXT}"
);
File::Find::find(sub {
+ if ($File::Find::name =~ m{/auto/share\z}) {
+ # in a subdir of auto/share, prune because e.g.
+ # Alien::pkgconfig uses File::ShareDir to put .a files
+ # there. do not want
+ $File::Find::prune = 1;
+ return;
+ }
+
return unless m/\Q$self->{LIB_EXT}\E$/;
# Skip perl's libraries.
@@ -2578,7 +2592,7 @@ $(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib
return if $File::Find::name =~ m:\Q$installed_version\E\z:;
use Cwd 'cwd';
$static{cwd() . "/" . $_}++;
- }, grep( -d $_, @{$searchdirs || []}) );
+ }, grep( -d $_, map { $self->catdir($_, 'auto') } @{$searchdirs || []}) );
# We trust that what has been handed in as argument, will be buildable
$static = [] unless $static;
@@ -3259,7 +3273,7 @@ sub processPL {
$m .= <<MAKE_FRAG;
-all :: $target
+pure_all :: $target
\$(NOECHO) \$(NOOP)
$target :: $plfile $pm_dep
@@ -3659,7 +3673,7 @@ test_ : test_$default_testtype
EOF
for my $linktype (qw(dynamic static)) {
- my $directdeps = "$linktype pure_all";
+ my $directdeps = join ' ', grep !$self->{SKIPHASH}{$_}, $linktype, "pure_all"; # no depend on a linktype if SKIPped
push @m, "subdirs-test_$linktype :: $directdeps\n";
foreach my $dir (@{ $self->{DIR} }) {
my $test = $self->cd($dir, "\$(MAKE) test_$linktype \$(PASTHRU)");
@@ -3869,7 +3883,7 @@ Obsolete, deprecated method. Not used since Version 5.21.
sub writedoc {
# --- perllocal.pod section ---
my($self,$what,$name,@attribs)=@_;
- my $time = localtime;
+ my $time = gmtime($ENV{SOURCE_DATE_EPOCH} || time);
print "=head2 $time: $what C<$name>\n\n=over 4\n\n=item *\n\n";
print join "\n\n=item *\n\n", map("C<$_>",@attribs);
print "\n\n=back\n\n";
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm
index ed3ec8cab0..01c1807c57 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm
@@ -15,7 +15,7 @@ BEGIN {
use File::Basename;
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
require ExtUtils::MM_Any;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm
index c176118d4d..a280176f0b 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm
@@ -1,7 +1,7 @@
package ExtUtils::MM_VOS;
use strict;
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
require ExtUtils::MM_Unix;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm
index 9844d837b7..2f65eb9edf 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm
@@ -27,7 +27,7 @@ use ExtUtils::MakeMaker qw(neatvalue _sprintf562);
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
$ENV{EMXSHELL} = 'sh'; # to run `commands`
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm
index 0d6f0e31bf..c9f5bed3ea 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm
@@ -2,7 +2,7 @@ package ExtUtils::MM_Win95;
use strict;
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
require ExtUtils::MM_Win32;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm
index 779c791297..af7faf6904 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm
@@ -3,7 +3,7 @@ package ExtUtils::MY;
use strict;
require ExtUtils::MM;
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
our @ISA = qw(ExtUtils::MM);
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
index d579256e86..1d81d5ec11 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
@@ -24,7 +24,7 @@ my %Recognized_Att_Keys;
our %macro_fsentity; # whether a macro is a filesystem name
our %macro_dep; # whether a macro is a dependency
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval]
# Emulate something resembling CVS $Revision$
@@ -34,7 +34,7 @@ $Revision = int $Revision * 10000;
our $Filename = __FILE__; # referenced outside MakeMaker
our @ISA = qw(Exporter);
-our @EXPORT = qw(&WriteMakefile $Verbose &prompt);
+our @EXPORT = qw(&WriteMakefile $Verbose &prompt &os_unsupported);
our @EXPORT_OK = qw($VERSION &neatvalue &mkbootstrap &mksymlists
&WriteEmptyMakefile &open_for_writing &write_file_via_tmp
&_sprintf562);
@@ -227,6 +227,10 @@ sub prompt ($;$) { ## no critic
return (!defined $ans || $ans eq '') ? $def : $ans;
}
+sub os_unsupported {
+ die "OS unsupported\n";
+}
+
sub eval_in_subdirs {
my($self) = @_;
use Cwd qw(cwd abs_path);
@@ -652,11 +656,6 @@ END
}
}
- # This is for old Makefiles written pre 5.00, will go away
- if ( Carp::longmess("") =~ /runsubdirpl/s ){
- carp("WARNING: Please rerun 'perl Makefile.PL' to regenerate your Makefiles\n");
- }
-
my $newclass = ++$PACKNAME;
local @Parent = @Parent; # Protect against non-local exits
{
@@ -3014,6 +3013,8 @@ you provide your own C<TESTS> attribute, defaults to false.
{RECURSIVE_TEST_FILES=>1}
+This is supported since 6.76
+
=item tool_autosplit
{MAXLEN => 8}
@@ -3290,6 +3291,17 @@ prevents automated processes from blocking on user input.
If no $default is provided an empty string will be used instead.
+=item os_unsupported
+
+ os_unsupported();
+ os_unsupported if $^O eq 'MSWin32';
+
+The C<os_unsupported()> function provides a way to correctly exit your
+C<Makefile.PL> before calling C<WriteMakefile>. It is essentially a
+C<die> with the message "OS unsupported".
+
+This is supported since 7.26
+
=back
=head2 Supported versions of Perl
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm
index bce9c66dee..5ef367cb33 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm
@@ -2,7 +2,7 @@ package ExtUtils::MakeMaker::Config;
use strict;
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
use Config ();
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod
index 179c9d6f30..f4d9575a87 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod
@@ -1,6 +1,6 @@
package ExtUtils::MakeMaker::FAQ;
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
1;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm
index bec2cc15a4..9d45f5e8a3 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm
@@ -1,7 +1,7 @@
package ExtUtils::MakeMaker::Locale;
use strict;
-our $VERSION = "7.24";
+our $VERSION = "7.28";
$VERSION = eval $VERSION;
use base 'Exporter';
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod
index 76c08d1bed..74b933040e 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod
@@ -1,6 +1,6 @@
package ExtUtils::MakeMaker::Tutorial;
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
@@ -125,7 +125,7 @@ Simply add another entry in the test location string. For example, to test:
You would use the following C<test> directive:
- test => {TESTS => 't/*.t t/*/*/*.t}
+ test => {TESTS => 't/*.t t/*/*/*.t'}
Note that in the above example, tests in the first subdirectory will not be
run. To run all tests in the intermediary subdirectory preceeding the one
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm
index bcfaaa342c..3e7b2aedfc 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm
@@ -15,7 +15,7 @@ use strict;
use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv);
-$VERSION = '7.24';
+$VERSION = '7.28';
$VERSION = eval $VERSION;
$CLASS = 'version';
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm
index 0255909561..3be9475b87 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm
@@ -10,7 +10,7 @@ use strict;
use vars qw($VERSION $CLASS $STRICT $LAX);
-$VERSION = '7.24';
+$VERSION = '7.28';
$VERSION = eval $VERSION;
#--------------------------------------------------------------------------#
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm
index 5eea8bc67e..d3344f3dae 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm
@@ -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 = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
require Exporter;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm
index 0cfb22ac28..6211063319 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm
@@ -10,7 +10,7 @@ use Config;
our @ISA = qw(Exporter);
our @EXPORT = qw(&Mksymlists);
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
sub Mksymlists {
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm
index 0e774664ff..d342bd2abe 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm
@@ -3,7 +3,7 @@ package ExtUtils::testlib;
use strict;
use warnings;
-our $VERSION = '7.24';
+our $VERSION = '7.28';
$VERSION = eval $VERSION;
use Cwd;
diff --git a/cpan/ExtUtils-MakeMaker/t/03-xsstatic.t b/cpan/ExtUtils-MakeMaker/t/03-xsstatic.t
index 1d748ebd4c..8e18ab31fb 100644
--- a/cpan/ExtUtils-MakeMaker/t/03-xsstatic.t
+++ b/cpan/ExtUtils-MakeMaker/t/03-xsstatic.t
@@ -11,9 +11,6 @@ use MakeMaker::Test::Utils;
use MakeMaker::Test::Setup::XS;
use Test::More;
-plan skip_all => "Disabled as broken perl installs give false negative"
- # if not static perl, and not author
- unless !$Config{usedl} or $ENV{AUTHOR_TESTING};
plan skip_all => "ExtUtils::CBuilder not installed or couldn't find a compiler"
unless have_compiler();
plan skip_all => 'Shared perl library' if $Config{useshrplib} eq 'true';
diff --git a/cpan/ExtUtils-MakeMaker/t/basic.t b/cpan/ExtUtils-MakeMaker/t/basic.t
index c98e28c653..41ecd99b15 100644
--- a/cpan/ExtUtils-MakeMaker/t/basic.t
+++ b/cpan/ExtUtils-MakeMaker/t/basic.t
@@ -24,7 +24,7 @@ use ExtUtils::MM;
use Test::More
!MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
? (skip_all => "cross-compiling and make not available")
- : (tests => 186);
+ : (tests => 188);
use File::Find;
use File::Spec;
use File::Path;
@@ -438,8 +438,11 @@ note "META file validity"; SKIP: {
}
-
# Make sure init_dirscan doesn't go into the distdir
+# also with a "messup.PL" that will make a build fail
+open $fh, '>', 'messup.PL' or die "messup.PL: $!";
+print $fh 'die';
+close $fh;
@mpl_out = run(qq{$perl Makefile.PL "PREFIX=$DUMMYINST"});
cmp_ok( $?, '==', 0, 'Makefile.PL exited with zero' ) || diag(@mpl_out);
@@ -448,6 +451,14 @@ ok( grep(/^Writing $makefile for Big::Dummy/, @mpl_out) == 1,
'init_dirscan skipped distdir') ||
diag(@mpl_out);
+# "make test" straight after "perl Makefile.PL" is expected to work same as
+# "make all test" so check that with "messup.PL" that will make the
+# build step fail
+$test_out = run("$make test");
+unlike( $test_out, qr/All tests successful/, 'make test caused build' );
+isnt( $?, 0, ' build should fail' ) ||
+ diag $test_out;
+
# I know we'll get ignored errors from make here, that's ok.
# Send STDERR off to oblivion.
open(SAVERR, ">&STDERR") or die $!;
@@ -455,6 +466,7 @@ open(STDERR, ">",File::Spec->devnull) or die $!;
my $realclean_out = run("$make realclean");
is( $?, 0, 'realclean' ) || diag($realclean_out);
+1 while unlink 'messup.PL'; # also zap deliberate build-breaker
open(STDERR, ">&SAVERR") or die $!;
close SAVERR;
diff --git a/cpan/ExtUtils-MakeMaker/t/eu_command.t b/cpan/ExtUtils-MakeMaker/t/eu_command.t
index 269aa5c9a4..32a6f59dca 100644
--- a/cpan/ExtUtils-MakeMaker/t/eu_command.t
+++ b/cpan/ExtUtils-MakeMaker/t/eu_command.t
@@ -151,20 +151,21 @@ BEGIN {
is( ((stat('testdir'))[2] & 07777) & 0700,
0100, 'change a dir to execute-only' );
- # change a dir to read-only
- @ARGV = ( '0400', 'testdir' );
+ # change a dir to write-only
+ @ARGV = ( '0200', 'testdir' );
ExtUtils::Command::chmod();
is( ((stat('testdir'))[2] & 07777) & 0700,
- 0400, 'change a dir to read-only' );
+ 0200, 'change a dir to write-only' );
- # change a dir to write-only
- @ARGV = ( '0200', 'testdir' );
+ # change a dir to read-only
+ @ARGV = ( '0400', 'testdir' );
ExtUtils::Command::chmod();
is( ((stat('testdir'))[2] & 07777) & 0700,
- 0200, 'change a dir to write-only' );
+ 0400, 'change a dir to read-only' );
+ # remove the dir we've been playing with
@ARGV = ('testdir');
rm_rf;
ok( ! -e 'testdir', 'rm_rf can delete a read-only dir' );
diff --git a/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/XS.pm b/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/XS.pm
index f557875c04..89628a5b53 100644
--- a/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/XS.pm
+++ b/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/XS.pm
@@ -19,7 +19,8 @@ use ExtUtils::MM;
my $tempdir = tempdir(DIR => getcwd, CLEANUP => 1);
chdir $tempdir;
my $typemap = 'type map';
-$typemap =~ s/ //g unless MM->new({NAME=>'name', NORECURS=>1})->can_dep_space;
+my $MM = MM->new({NAME=>'name', NORECURS=>1});
+$typemap =~ s/ //g unless $MM->can_dep_space;
chdir File::Spec->updir;
my $PM_TEST = <<'END';
@@ -148,6 +149,7 @@ $label2files{static} = +{
$MAKEFILEPL, 'Test', 'lib/XS/Test.pm', qq{'$typemap'},
q{LINKTYPE => 'static'},
),
+ "blib/arch/auto/share/dist/x-y/libwhatevs$MM->{LIB_EXT}" => 'hi there', # mimic what File::ShareDir can do
};
$label2files{subdirs} = +{
@@ -211,6 +213,69 @@ $label2files{subdirsstatic} = +{
),
};
+# to mimic behaviour of CGI-Deurl-XS version 0.08
+$label2files{subdirsskip} = +{
+ %{ $label2files{subdirscomplex} }, # make copy
+ 'Makefile.PL' => sprintf(
+ $MAKEFILEPL,
+ 'Test', 'Test.pm', qq{},
+ <<'EOF',
+MYEXTLIB => 'Other$(DIRFILESEP)libparser$(LIB_EXT)',
+EOF
+ ) . <<'EOF',
+sub MY::postamble {
+ my ($self) = @_;
+ return '$(MYEXTLIB) : Other$(DIRFILESEP)Makefile'."\n\t".$self->cd('Other', '$(MAKE) $(PASSTHRU)')."\n";
+}
+EOF
+ 'Other/Makefile.PL' => sprintf(
+ $MAKEFILEPL,
+ 'Other', 'Other.pm', qq{},
+ <<'EOF',
+SKIP => [qw(all static dynamic )],
+clean => {'FILES' => 'libparser$(LIB_EXT)'},
+EOF
+ ) . <<'EOF',
+sub MY::top_targets {
+ my ($self) = @_;
+ my $static_lib_pure_cmd = $self->static_lib_pure_cmd('$(O_FILES)');
+ <<'SNIP' . $static_lib_pure_cmd;
+all :: static
+
+pure_all :: static
+
+static :: libparser$(LIB_EXT)
+
+libparser$(LIB_EXT): $(O_FILES)
+SNIP
+}
+EOF
+ 't/plus1.t' => <<'END',
+#!/usr/bin/perl -w
+use Test::More tests => 2;
+use_ok "XS::Test";
+is XS::Test::plus1(3), 4;
+END
+ 'Test.xs' => <<EOF,
+#ifdef __cplusplus
+extern "C" {
+#endif
+int plus1(int);
+#ifdef __cplusplus
+}
+#endif
+$XS_TEST
+int
+plus1(input)
+ int input
+ CODE:
+ RETVAL = plus1(input);
+ OUTPUT:
+ RETVAL
+EOF
+};
+virtual_rename('subdirsskip', 'Other/lib/file.c', 'Other/file.c');
+
my $XS_MULTI = $XS_OTHER;
# check compiling from top dir still can include local
$XS_MULTI =~ s:(#include "XSUB.h"):$1\n#include "header.h":;
@@ -326,7 +391,7 @@ sub list_dynamic {
$^O ne 'MSWin32' ? (
[ 'bscode', '', '' ],
[ 'bscodemulti', '', '' ],
- $^O ne 'VMS' ? ([ 'subdirscomplex', '', '' ]) : (),
+ $^O !~ m!^(VMS|aix)$! ? ([ 'subdirscomplex', '', '' ]) : (),
) : (), # DynaLoader different
[ 'subdirs', '', '' ],
[ 'subdirsstatic', ' LINKTYPE=dynamic', ' LINKTYPE=dynamic' ],
@@ -335,6 +400,7 @@ sub list_dynamic {
[ 'staticmulti', ' LINKTYPE=dynamic', ' LINKTYPE=dynamic' ],
[ 'staticmulti', ' dynamic', '_dynamic' ],
[ 'xsbuild', '', '' ],
+ [ 'subdirsskip', '', '' ],
);
}
@@ -391,7 +457,11 @@ sub run_tests {
}
chdir File::Spec->updir or die;
- ok rmtree($dir), "teardown $dir";
+ if ($ENV{EUMM_KEEP_TESTDIRS}) {
+ ok 1, "don't teardown $dir";
+ } else {
+ ok rmtree($dir), "teardown $dir";
+ }
}
1;
diff --git a/cpan/ExtUtils-MakeMaker/t/metafile_data.t b/cpan/ExtUtils-MakeMaker/t/metafile_data.t
index 01d72d81d0..bb3670aa77 100644
--- a/cpan/ExtUtils-MakeMaker/t/metafile_data.t
+++ b/cpan/ExtUtils-MakeMaker/t/metafile_data.t
@@ -17,7 +17,7 @@ use File::Temp;
use Cwd;
use MakeMaker::Test::Utils;
-plan tests => 31;
+plan tests => 35;
require ExtUtils::MM_Any;
sub mymeta_ok {
@@ -262,6 +262,110 @@ my @GENERIC_OUT = (
},'TEST_REQUIRES meta-spec 2.0';
}
+{
+ my $mm = $new_mm->(
+ @GENERIC_IN,
+ );
+ is_deeply $mm->metafile_data(
+ {
+ resources => {
+ homepage => "https://metacpan.org/release/ExtUtils-MakeMaker",
+ repository => "http://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker",
+ },
+ },
+ { @METASPEC14 },
+ ), {
+ prereqs => { @REQ20 },
+ resources => {
+ homepage => "https://metacpan.org/release/ExtUtils-MakeMaker",
+ repository => {
+ url => "http://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker",
+ },
+ },
+ @GENERIC_OUT,
+ }, 'META_ADD takes meta version 1.4 from META_MERGE';
+}
+
+{
+ my $mm = $new_mm->(
+ @GENERIC_IN,
+ );
+ is_deeply $mm->metafile_data(
+ { @METASPEC14 },
+ {
+ resources => {
+ homepage => "https://metacpan.org/release/ExtUtils-MakeMaker",
+ repository => "http://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker",
+ },
+ },
+ ), {
+ prereqs => { @REQ20 },
+ resources => {
+ homepage => "https://metacpan.org/release/ExtUtils-MakeMaker",
+ repository => {
+ url => "http://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker",
+ },
+ },
+ @GENERIC_OUT,
+ }, 'META_MERGE takes meta version 1.4 from META_ADD';
+}
+
+{
+ my $mm = $new_mm->(
+ @GENERIC_IN,
+ );
+ is_deeply $mm->metafile_data(
+ {
+ 'configure_requires' => {
+ 'Fake::Module1' => 1,
+ },
+ 'prereqs' => {
+ @REQ20,
+ 'test' => {
+ 'requires' => {
+ 'Fake::Module2' => 2,
+ },
+ },
+ },
+ },
+ { @METASPEC20 },
+ ), {
+ prereqs => {
+ @REQ20,
+ test => { requires => { "Fake::Module2" => 2, }, },
+ },
+ @GENERIC_OUT,
+ }, 'META_ADD takes meta version 2 from META_MERGE';
+}
+
+{
+ my $mm = $new_mm->(
+ @GENERIC_IN,
+ );
+ is_deeply $mm->metafile_data(
+ { @METASPEC20 },
+ {
+ 'configure_requires' => {
+ 'Fake::Module1' => 1,
+ },
+ 'prereqs' => {
+ @REQ20,
+ 'test' => {
+ 'requires' => {
+ 'Fake::Module2' => 2,
+ },
+ },
+ },
+ },
+ ), {
+ prereqs => {
+ @REQ20,
+ test => { requires => { "Fake::Module2" => 2, }, },
+ },
+ @GENERIC_OUT,
+ }, 'META_MERGE takes meta version 2 from META_ADD';
+}
+
# Test _REQUIRES key priority over META_ADD
{
my $mm = $new_mm->(
diff --git a/cpan/ExtUtils-MakeMaker/t/os_unsupported.t b/cpan/ExtUtils-MakeMaker/t/os_unsupported.t
new file mode 100644
index 0000000000..42396c0547
--- /dev/null
+++ b/cpan/ExtUtils-MakeMaker/t/os_unsupported.t
@@ -0,0 +1,15 @@
+#!/usr/bin/perl -w
+
+BEGIN {
+ unshift @INC, 't/lib';
+}
+
+use strict;
+use Test::More tests => 1;
+use ExtUtils::MakeMaker;
+
+eval q{
+ os_unsupported();
+};
+
+like( $@, qr/^OS unsupported$/, 'OS Unsupported' );