1# A template for Makefile.PL. 2# - Set the $PACKAGE variable to the name of your module. 3# - Set $LAST_API_CHANGE to reflect the last version you changed the API 4# of your module. 5# - Fill in your dependencies in PREREQ_PM 6# Alternatively, you can say the hell with this and use h2xs. 7 8use ExtUtils::MakeMaker; 9use ExtUtils::MM_Unix; 10eval 'use ExtUtils::MakeMaker::Coverage'; 11 12$PACKAGE = 'XSLoader'; 13($PACKAGE_FILE = $PACKAGE) =~ s|::|/|g; 14$LAST_API_CHANGE = 0; 15 16$CURRENT_VERSION = ${$PACKAGE.'::VERSION'}; 17$NEW_VERSION = ExtUtils::MM_Unix->parse_version("XSLoader_pm.PL"); 18 19eval "require $PACKAGE"; 20 21unless ($@) { # Make sure we did find the module. 22 print <<"CHANGE_WARN" if $CURRENT_VERSION < $LAST_API_CHANGE; 23 24NOTE: There have been API changes between this version and any older 25than version $LAST_API_CHANGE! Please read the Changes file if you 26are upgrading from a version older than $LAST_API_CHANGE. 27 28CHANGE_WARN 29} 30 31# In case the empty lib/ directory was not created. 32mkdir 'lib', 0755 unless $ENV{PERL_CORE}; 33 34# starting with Perl 5.11, "site" and "vendor" directories finally are 35# before "perl" (core) in @INC, thus allowing dual-life modules to be 36# updated without the need to overwrite the old version 37my $installdirs = $] < 5.011 ? "perl" : "site"; 38 39WriteMakefile( 40 NAME => $PACKAGE, 41 LICENSE => 'perl', 42 AUTHOR => 'Sebastien Aperghis-Tramoni <sebastien@aperghis.net>', 43 VERSION_FROM => 'XSLoader_pm.PL', 44 ABSTRACT_FROM => 'XSLoader_pm.PL', 45 INSTALLDIRS => $installdirs, 46 PL_FILES => { 'XSLoader_pm.PL' => 'XSLoader.pm' }, 47 PM => { 'XSLoader.pm' => '$(INST_ARCHLIB)/XSLoader.pm' }, 48 PREREQ_PM => { 49 # NOTE: If we should require a Test::More version higher than 0.98 50 # (that included with perl 5.14), we need to remove the meta-spec 51 # entry below for EUMM 6.57_02 to 6.57_06 (the buggy versions 52 # included with perl 5.14). Otherwise installation will break. 53 # See https://github.com/Perl-Toolchain-Gang/CPAN-Meta/issues/118 54 # for details. 55 'Test::More' => '0.47', 56 }, 57 META_MERGE => { 58 'meta-spec' => { version => 2 }, 59 dynamic_config => 0, 60 resources => { 61 repository => { 62 type => 'git', 63 url => 'git://perl5.git.perl.org/perl.git', 64 }, 65 homepage => 'https://metacpan.org/module/XSLoader', 66 x_IRC => 'irc://irc.perl.org/#p5p', 67 x_MailingList => 'http://lists.perl.org/list/perl5-porters.html', 68 bugtracker => { 69 mailto => 'perlbug@perl.org', 70 web => "https://rt.perl.org/rt3/Search/Results.html?Query=Queue='perl5' AND Content LIKE 'module=XSLoader' AND (Status='open' OR Status='new' OR Status='stalled')", 71 }, 72 }, 73 provides => { 74 'XSLoader' => { 75 file => 'XSLoader_pm.PL', 76 version => $NEW_VERSION, 77 }, 78 }, 79 }, 80 dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', }, 81 clean => { FILES => 'XSLoader-* XSLoader.pm' }, 82); 83 84# Unlink the .pm file included with the distribution 851 while unlink "XSLoader.pm"; 86 87{ 88 package MY; 89 90 sub test_via_harness { 91 my($self, $orig_perl, $tests) = @_; 92 93 my @perls = ($orig_perl); 94 push @perls, qw(bleadperl 95 perl5.6.1 96 perl5.6.0 97 perl5.005_03 98 perl5.004_05 99 perl5.004_04 100 perl5.004) 101 if $ENV{PERL_TEST_ALL}; 102 103 my $out; 104 foreach my $perl (@perls) { 105 $out .= $self->SUPER::test_via_harness($perl, $tests); 106 } 107 108 return $out; 109 } 110} 111