X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FExtUtils%2FMakeMaker.pm;h=10ef38e0af40f4593856e37bea8aae8652f42938;hb=03c94fc27a6457bae8911c7fd0efb852cd061468;hp=dbfc81a86147553a0c884e9bfbc17b871b639754;hpb=324b23145b17e1acc327e170d31ebe7b00858b10;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/ExtUtils/MakeMaker.pm b/lib/ExtUtils/MakeMaker.pm index dbfc81a..10ef38e 100644 --- a/lib/ExtUtils/MakeMaker.pm +++ b/lib/ExtUtils/MakeMaker.pm @@ -2,8 +2,8 @@ package ExtUtils::MakeMaker; BEGIN {require 5.005_03;} -$VERSION = '6.15'; -($Revision) = q$Revision: 1.130 $ =~ /Revision:\s+(\S+)/; +$VERSION = '6.21_01'; +($Revision) = q$Revision: 1.145 $ =~ /Revision:\s+(\S+)/; require Exporter; use Config; @@ -167,9 +167,11 @@ sub eval_in_subdirs { foreach my $dir (@{$self->{DIR}}){ my($abs) = $self->catdir($pwd,$dir); - $self->eval_in_x($abs); + eval { $self->eval_in_x($abs); }; + last if $@; } chdir $pwd; + die $@ if $@; } sub eval_in_x { @@ -226,7 +228,7 @@ sub full_setup { PERL_SRC PERM_RW PERM_RWX PL_FILES PM PM_FILTER PMLIBDIRS POLLUTE PPM_INSTALL_EXEC PPM_INSTALL_SCRIPT PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ - SKIP TYPEMAPS VERSION VERSION_FROM XS XSOPT XSPROTOARG + SIGN SKIP TYPEMAPS VERSION VERSION_FROM XS XSOPT XSPROTOARG XS_VERSION clean depend dist dynamic_lib linkext macro realclean tool_autosplit @@ -260,11 +262,12 @@ sub full_setup { special_targets c_o xs_c xs_o - top_targets linkext dlsyms dynamic dynamic_bs + top_targets blibdirs linkext dlsyms dynamic dynamic_bs dynamic_lib static static_lib manifypods processPL installbin subdirs clean_subdirs clean realclean_subdirs realclean metafile metafile_addtomanifest + signature signature_addtomanifest dist_basics dist_core distdir dist_test dist_ci install force perldepend makefile staticmake test ppd @@ -273,7 +276,7 @@ sub full_setup { @Overridable = @MM_Sections; push @Overridable, qw[ - dir_target libscan makeaperl needs_linking perm_rw perm_rwx + libscan makeaperl needs_linking perm_rw perm_rwx subdir_x test_via_harness test_via_script init_PERL ]; @@ -354,12 +357,13 @@ sub new { if ("@ARGV" =~ /\bPREREQ_PRINT\b/) { require Data::Dumper; print Data::Dumper->Dump([$self->{PREREQ_PM}], [qw(PREREQ_PM)]); - exit 0; + exit 0; } # PRINT_PREREQ is RedHatism. if ("@ARGV" =~ /\bPRINT_PREREQ\b/) { - print join(" ", map { "perl($_)>=$self->{PREREQ_PM}->{$_} " } sort keys %{$self->{PREREQ_PM}}), "\n"; + print join(" ", map { "perl($_)>=$self->{PREREQ_PM}->{$_} " } + sort keys %{$self->{PREREQ_PM}}), "\n"; exit 0; } @@ -379,7 +383,9 @@ sub new { foreach my $prereq (sort keys %{$self->{PREREQ_PM}}) { # 5.8.0 has a bug with require Foo::Bar alone in an eval, so an # extra statement is a workaround. - eval "require $prereq; 0"; + my $file = "$prereq.pm"; + $file =~ s{::}{/}g; + eval { require $file }; my $pr_version = $prereq->VERSION || 0; @@ -660,7 +666,6 @@ sub parse_args{ my($self, @args) = @_; foreach (@args) { unless (m/(.*?)=(.*)/) { - help(),exit 1 if m/^help$/; ++$Verbose if m/^verb/; next; } @@ -1091,6 +1096,15 @@ searched by perl, run perl -le 'print join $/, @INC' +Sometimes older versions of the module you're installing live in other +directories in @INC. Because Perl loads the first version of a module it +finds, not the newest, you might accidentally get one of these older +versions even after installing a brand new version. To delete I (not simply older ones) set the +C variable. + + make install UNINST=1 + =head2 PREFIX and LIB attribute @@ -1966,7 +1980,8 @@ only check if any version is installed already. =item PREREQ_PRINT Bool. If this parameter is true, the prerequisites will be printed to -stdout and MakeMaker will exit. The output format is +stdout and MakeMaker will exit. The output format is an evalable hash +ref. $PREREQ_PM = { 'A::B' => Vers1, @@ -1990,6 +2005,16 @@ $Config{installprefix} will be used. Overridable by PREFIX +=item SIGN + +When true, perform the generation and addition to the MANIFEST of +the SIGNATURE file during 'make distdir', via 'cpansign -s'. + +Note that you need to install the Module::Signature module to +perform this operation. + +Defaults to false. + =item SKIP Arrayref. E.g. [qw(name1 name2)] skip (do not write) sections of the @@ -2039,7 +2064,7 @@ MakeMaker object. The following lines will be parsed o.k.: $VERSION = '1.00'; *VERSION = \'1.01'; - $VERSION = sprintf "%d.%03d", q$Revision: 1.130 $ =~ /(\d+)/g; + $VERSION = sprintf "%d.%03d", q$Revision: 1.145 $ =~ /(\d+)/g; $FOO::VERSION = '1.10'; *FOO::VERSION = \'1.11'; our $VERSION = 1.2.3; # new for perl5.6.0 @@ -2191,7 +2216,7 @@ for embedding. If you still need a different solution, try to develop another subroutine that fits your needs and submit the diffs to -F +C For a complete description of all MakeMaker methods see L. @@ -2439,26 +2464,26 @@ ExtUtils::Embed =head1 AUTHORS -Andy Dougherty >, Andreas KEnig ->, Tim Bunce >. VMS -support by Charles Bailey >. OS/2 support -by Ilya Zakharevich >. +Andy Dougherty C, Andreas KEnig +C, Tim Bunce C. VMS +support by Charles Bailey C. OS/2 support +by Ilya Zakharevich C. -Currently maintained by Michael G Schwern > +Currently maintained by Michael G Schwern C -Send patches and ideas to >. +Send patches and ideas to C. Send bug reports via http://rt.cpan.org/. Please send your generated Makefile along with your report. -For more up-to-date information, see http://www.makemaker.org. +For more up-to-date information, see L. =head1 LICENSE This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. -See F +See L =cut