Blame Makefile.PL

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
}