From: matthewt Date: Thu, 13 Sep 2007 22:01:02 +0000 (+0000) Subject: heinous bootstrapping code X-Git-Tag: 1.006009~108 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2Flocal-lib.git;a=commitdiff_plain;h=86f54d7f5cc99b82a69c0ca9157d9700744efbe6 heinous bootstrapping code git-svn-id: http://dev.catalyst.perl.org/repos/bast/local-lib/1.000/trunk@3733 bd8105ee-0ff8-0310-8827-fb3f25b6796d --- diff --git a/Makefile.PL b/Makefile.PL index 4ed53cd..6532653 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -1,11 +1,55 @@ use strict; use warnings; +use vars qw($bootstrapping); + +BEGIN { + if (grep { /^--bootstrap(?:=(.*))?$/ } @ARGV) { + $bootstrapping = 1; + my @args = (defined $1 ? ($1) : ()); + + { + local @INC = @INC; + unshift(@INC, 'lib'); + require local::lib; + } + + local::lib->import(@args); + + push(@ARGV,$ENV{PERL_MM_OPT}); + + system($^X, '-MExtUtils::MakeMaker 6.31', '-e1'); + my $r = $? >> 8; + + # XXX - remove the force on EUMM once its test suite survive PERL_MM_OPT + + if ($r) { # non-zero exit + system($^X, '-MCPAN', '-e', 'force("install","ExtUtils::MakeMaker");'); + } + + } +} + use inc::Module::Install; name 'local-lib'; all_from 'lib/local/lib.pm'; +include('CPAN'); +include('CPAN::HandleConfig'); +include('CPAN::Debug'); +include('CPAN::Version'); +include('CPAN::Tarzip'); + requires 'ExtUtils::MakeMaker' => '6.31'; # version INSTALL_BASE was added +requires 'ExtUtils::CBuilder'; # this and ParseXS are needed for MB C_support +requires 'ExtUtils::ParseXS'; requires 'Module::Build' => '0.28'; # lib -> lib/perl5 change +requires 'CPAN' => '1.80'; # sudo support + +if ($bootstrapping) { + auto_install_now; +} else { + auto_install; +} WriteAll;