X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Makefile.PL;h=4dc9ce0cdab2954745fbaea5841b92e15dd49271;hb=72a295edfeaab7c84e52c0375d2ea67eb5cbdbb2;hp=b6b5963582367eee39d3a7973c4ad05a30ac4e6f;hpb=187178315869b7862b5fcdf1cc6314aea87d0033;p=p5sagit%2Flocal-lib.git diff --git a/Makefile.PL b/Makefile.PL index b6b5963..4dc9ce0 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -176,19 +176,56 @@ DEATH } } -use inc::Module::Install; +require ExtUtils::MakeMaker; +ExtUtils::MakeMaker->import; +(do 'maint/Makefile.PL.include' or die $@) unless -f 'META.yml'; -name 'local-lib'; -all_from 'lib/local/lib.pm'; +my %CONFIGURE_DEPS = (); +my %BUILD_DEPS = (); +my %TEST_DEPS = ( + 'Test::More' => 0, +); +my %RUN_DEPS = ( + 'ExtUtils::MakeMaker' => '6.74', # version PERL_MM_OPT is shell parsed + 'ExtUtils::Install' => '1.43', # version INSTALL_BASE was added + 'Module::Build' => '0.36', # PERL_MB_OPT +); + +my %extra_info = ( + 'meta-spec' => { version => 2 }, + resources => { + repository => { + # r/w: p5sagit@git.shadowcat.co.uk:local-lib.git + url => 'git://git.shadowcat.co.uk/p5sagit/local-lib.git', + web => 'http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/local-lib.git', + type => 'git', + }, + x_IRC => 'irc://irc.perl.org/#local-lib', + bugtracker => { + web => 'https://rt.cpan.org/Public/Dist/Display.html?Name=local-lib', + mailto => 'bug-local-lib@rt.cpan.org', + }, + license => [ 'http://dev.perl.org/licenses/' ], + }, + prereqs => { + runtime => { requires => { %RUN_DEPS, perl => '5.8.1' } }, + }, +); -requires 'ExtUtils::MakeMaker' => '6.74'; # version PERL_MM_OPT is shell parsed -requires 'ExtUtils::Install' => '1.43'; # version INSTALL_BASE was added -requires 'Module::Build' => '0.36'; # PERL_MB_OPT +if ($bootstrapping) { + no warnings 'once'; +*MY::postamble = sub { + <<"END"; +PERL += $bootstrapping_args +FULLPERL += $bootstrapping_args +END + } +} # don't bother fixing CPAN.pm if bootstrapped from cpanminus unless ($ENV{PERL5_CPANM_IS_RUNNING}) { my $required_CPAN = '1.82'; - requires 'CPAN' => $required_CPAN; # sudo support + CPAN::HandleConfig + $RUN_DEPS{'CPAN'} = $required_CPAN; # sudo support + CPAN::HandleConfig # No, really. See # https://rt.cpan.org/Public/Bug/Display.html?id=23735 @@ -214,22 +251,19 @@ unless ($ENV{PERL5_CPANM_IS_RUNNING}) { if (!$@ ) { CPAN::HandleConfig->require_myconfig_or_config; if ( $CPAN::Config ) { - for my $eumm_setting ( qw/makepl_arg make_install_arg/ ) { - if ($CPAN::Config->{$eumm_setting} =~ /(?:PREFIX|INSTALL_BASE)/) { - die <<"DEATH"; -WHOA THERE! It looks like you've got $CPAN::Config->{$eumm_setting} set. This is -known to cause problems with local::lib. Please either remove this setting or -clear out your .cpan directory. -DEATH - } - } - - for my $mb_setting (qw/mbuild_arg mbuild_install_arg mbuildpl_arg/) { - if ($CPAN::Config->{$mb_setting} =~ /(?:--prefix|--install_base)/) { + for my $setting (qw( + makepl_arg make_install_arg + mbuild_arg mbuild_install_arg mbuildpl_arg + )) { + my $value = $CPAN::Config->{$setting} or next; + if ($setting =~ /^make/ + ? $value =~ /(?:PREFIX|INSTALL_BASE)/ + : /(?:--prefix|--install_base)/ + ) { die <<"DEATH"; -WHOA THERE! It looks like you've got $CPAN::Config->{$mb_setting} set. This is -known to cause problems with local::lib. Please either remove this setting or -clear out your .cpan directory. +WHOA THERE! It looks like you've got $CPAN::Config->{$setting} set in +your CPAN config. This is known to cause problems with local::lib. Please +either remove this setting or clear out your .cpan directory. DEATH } } @@ -243,27 +277,42 @@ DEATH die($error) if $CPAN::VERSION >= $required_CPAN; } } +chdir($cwd); -if ($bootstrapping) { - auto_install_now; - postamble <<"END"; -PERL += $bootstrapping_args -FULLPERL += $bootstrapping_args -END -} else { - auto_install; +# have to do this since old EUMM dev releases miss the eval $VERSION line +my $mymeta_works = do { no warnings; $ExtUtils::MakeMaker::VERSION >= 6.57_07 }; +my $mymeta = do { no warnings; $ExtUtils::MakeMaker::VERSION >= 6.57_02 }; + +my $has_test_requires = do { no warnings; $ExtUtils::MakeMaker::VERSION >= 6.63_03 }; + +my $has_meta_v2 = do { no warnings; $ExtUtils::MakeMaker::VERSION >= 6.57_10 }; +if (! $has_meta_v2) { + %extra_info = (); +} +if (not $has_test_requires) { + %BUILD_DEPS = (%BUILD_DEPS, %TEST_DEPS); + %TEST_DEPS = (); +} +if (not $mymeta_works) { + %RUN_DEPS = (%RUN_DEPS, %BUILD_DEPS); + %BUILD_DEPS = (); } -chdir($cwd); -resources( - # r/w: p5sagit@git.shadowcat.co.uk:local-lib.git - repository => 'git://git.shadowcat.co.uk/p5sagit/local-lib.git', - homepage => 'http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/local-lib.git', - bugtracker => 'http://rt.cpan.org/Public/Dist/Display.html?Name=local-lib', -); -makemaker_args( - clean => { FILES => 't/dist/*/MYMETA* t/dist/*/blib t/dist/EUMM/Makefile t/dist/EUMM/pm_to_blib t/dist/MB/Build t/dist/MB/_build' }, - realclean => { FILES => 'MANIFEST MANIFEST.SKIP.bak' }, +WriteMakefile( + NAME => 'local::lib', + VERSION_FROM => 'lib/local/lib.pm', + CONFIGURE_REQUIRES => \%CONFIGURE_DEPS, + PREREQ_PM => { + %RUN_DEPS, + }, + keys %BUILD_DEPS ? ( BUILD_REQUIRES => \%BUILD_DEPS ) : (), + keys %TEST_DEPS ? ( TEST_REQUIRES => \%TEST_DEPS ) : (), + META_ADD => \%extra_info, + META_MERGE => { + no_index => { + directory => [ 'xt' ] + }, + }, + ($mymeta && !$mymeta_works ? (NO_MYMETA => 1) : ()), + LICENSE => 'perl', ); - -WriteAll;