|
Packit |
14c646 |
#
|
|
Packit |
14c646 |
# Copyright (c) 1995-2000, Raphael Manfredi
|
|
Packit |
14c646 |
# Copyright (c) 2017, Reini Urban
|
|
Packit |
14c646 |
#
|
|
Packit |
14c646 |
# You may redistribute only under the same terms as Perl 5, as specified
|
|
Packit |
14c646 |
# in the README file that comes with the distribution.
|
|
Packit |
14c646 |
#
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
use strict;
|
|
Packit |
14c646 |
use warnings;
|
|
Packit |
14c646 |
use ExtUtils::MakeMaker 6.31;
|
|
Packit |
14c646 |
use Config;
|
|
Packit |
14c646 |
use File::Copy qw(move copy);
|
|
Packit |
14c646 |
use File::Spec;
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
unlink "lib/Storable/Limit.pm";
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
my $limit_pm = File::Spec->catfile('lib', 'Storable', 'Limit.pm');
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
my $pm = { 'Storable.pm' => '$(INST_ARCHLIB)/Storable.pm' };
|
|
Packit |
14c646 |
unless ($ENV{PERL_CORE}) {
|
|
Packit |
14c646 |
# the core Makefile takes care of this for core builds
|
|
Packit |
14c646 |
$pm->{$limit_pm} = '$(INST_ARCHLIB)/Storable/Limit.pm';
|
|
Packit |
14c646 |
}
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
WriteMakefile(
|
|
Packit |
14c646 |
NAME => 'Storable',
|
|
Packit |
14c646 |
AUTHOR => 'Perl 5 Porters',
|
|
Packit |
14c646 |
LICENSE => 'perl',
|
|
Packit |
14c646 |
DISTNAME => "Storable",
|
|
Packit |
14c646 |
# We now ship this in t/
|
|
Packit |
14c646 |
# PREREQ_PM => { 'Test::More' => '0.41' },
|
|
Packit |
14c646 |
PL_FILES => { }, # prevent default behaviour
|
|
Packit |
14c646 |
PM => $pm,
|
|
Packit |
14c646 |
PREREQ_PM => { XSLoader => 0 },
|
|
Packit |
14c646 |
INSTALLDIRS => ($] >= 5.007 && $] < 5.012) ? 'perl' : 'site',
|
|
Packit |
14c646 |
VERSION_FROM => '__Storable__.pm',
|
|
Packit |
14c646 |
ABSTRACT_FROM => '__Storable__.pm',
|
|
Packit |
14c646 |
($ExtUtils::MakeMaker::VERSION > 6.45 ?
|
|
Packit |
14c646 |
(META_MERGE => { resources =>
|
|
Packit |
14c646 |
{ bugtracker => 'http://rt.perl.org/perlbug/' },
|
|
Packit |
14c646 |
provides => {
|
|
Packit |
14c646 |
'Storable' => {
|
|
Packit |
14c646 |
file => '__Storable__.pm',
|
|
Packit |
14c646 |
version => MM->parse_version('__Storable__.pm'),
|
|
Packit |
14c646 |
},
|
|
Packit |
14c646 |
},
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
},
|
|
Packit |
14c646 |
) : ()),
|
|
Packit |
14c646 |
dist => { SUFFIX => 'gz', COMPRESS => 'gzip -f' },
|
|
Packit |
14c646 |
clean => { FILES => 'Storable-* Storable.pm lib' },
|
|
Packit |
14c646 |
);
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
# Unlink the .pm file included with the distribution
|
|
Packit |
14c646 |
1 while unlink "Storable.pm";
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
my $ivtype = $Config{ivtype};
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
# I don't know if the VMS folks ever supported long long on 5.6.x
|
|
Packit |
14c646 |
if ($ivtype and $ivtype eq 'long long' and $^O !~ /^MSWin/) {
|
|
Packit |
14c646 |
print <<'EOM';
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
You appear to have a perl configured to use 64 bit integers in its scalar
|
|
Packit |
14c646 |
variables. If you have existing data written with an earlier version of
|
|
Packit |
14c646 |
Storable which this version of Storable refuses to load with a
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
Byte order is not compatible
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
error, then please read the section "64 bit data in perl 5.6.0 and 5.6.1"
|
|
Packit |
14c646 |
in the Storable documentation for instructions on how to read your data.
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
(You can find the documentation at the end of Storable.pm in POD format)
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
EOM
|
|
Packit |
14c646 |
}
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
# compute the maximum stacksize, before and after linking
|
|
Packit |
14c646 |
package MY;
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
# FORCE finish of INST_DYNAMIC, avoid loading the old Storable (failed XS_VERSION check)
|
|
Packit |
14c646 |
sub xlinkext {
|
|
Packit |
14c646 |
my $s = shift->SUPER::linkext(@_);
|
|
Packit |
14c646 |
$s =~ s|( :: .*)| $1 FORCE stacksize|;
|
|
Packit |
14c646 |
$s
|
|
Packit |
14c646 |
}
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
sub depend {
|
|
Packit |
14c646 |
my $extra_deps = "";
|
|
Packit |
14c646 |
my $options = "";
|
|
Packit |
14c646 |
if ($ENV{PERL_CORE}) {
|
|
Packit |
14c646 |
$options = "--core";
|
|
Packit |
14c646 |
}
|
|
Packit |
14c646 |
else {
|
|
Packit |
14c646 |
# blib.pm needs arch/lib
|
|
Packit |
14c646 |
$extra_deps = ' Storable.pm';
|
|
Packit |
14c646 |
}
|
|
Packit |
14c646 |
my $linktype = uc($_[0]->{LINKTYPE});
|
|
Packit |
14c646 |
"
|
|
Packit |
14c646 |
$limit_pm : stacksize \$(INST_$linktype)$extra_deps
|
|
Packit |
14c646 |
\$(MKPATH) \$(INST_LIB)
|
|
Packit |
14c646 |
\$(FULLPERLRUNINST) stacksize $options
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
release : dist
|
|
Packit |
14c646 |
git tag \$(VERSION)
|
|
Packit |
14c646 |
cpan-upload \$(DISTVNAME).tar\$(SUFFIX)
|
|
Packit |
14c646 |
git push
|
|
Packit |
14c646 |
git push --tags
|
|
Packit |
14c646 |
"
|
|
Packit |
14c646 |
}
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
sub test {
|
|
Packit |
14c646 |
my ($self, %attr) = @_;
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
my $out = $self->SUPER::test(%attr);
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
if ($ENV{PERL_CORE}) {
|
|
Packit |
14c646 |
$out =~ s!^(test(?:db)?_(?:static|dynamic)\b.*)!$1 $limit_pm!gm;
|
|
Packit |
14c646 |
}
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
$out;
|
|
Packit |
14c646 |
}
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
sub postamble {
|
|
Packit |
14c646 |
'
|
|
Packit |
14c646 |
all :: Storable.pm
|
|
Packit |
14c646 |
$(NOECHO) $(NOOP)
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
Storable.pm :: Storable.pm.PL __Storable__.pm
|
|
Packit |
14c646 |
$(PERLRUN) Storable.pm.PL
|
|
Packit |
14c646 |
'
|
|
Packit |
14c646 |
}
|