X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FExtUtils%2FMakeMaker.pm;h=10ef38e0af40f4593856e37bea8aae8652f42938;hb=03c94fc27a6457bae8911c7fd0efb852cd061468;hp=8191303cc7f6e24ba77f377b60f6890b59734baa;hpb=1b0fc07371681ebcc84e8b3186ecb0bce2c19f5d;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/ExtUtils/MakeMaker.pm b/lib/ExtUtils/MakeMaker.pm index 8191303..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.12'; -($Revision) = q$Revision: 1.124 $ =~ /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,11 +357,13 @@ sub new { if ("@ARGV" =~ /\bPREREQ_PRINT\b/) { require Data::Dumper; print Data::Dumper->Dump([$self->{PREREQ_PM}], [qw(PREREQ_PM)]); + 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; } @@ -378,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; @@ -439,9 +446,10 @@ sub new { next unless defined $self->{PARENT}{$key}; # Don't stomp on WriteMakefile() args. - $self->{$key} = $self->{PARENT}{$key} - unless defined $self->{ARGS}{$key} and - $self->{ARGS}{$key} eq $self->{$key}; + next if defined $self->{ARGS}{$key} and + $self->{ARGS}{$key} eq $self->{$key}; + + $self->{$key} = $self->{PARENT}{$key}; unless ($Is_VMS && $key =~ /PERL$/) { $self->{$key} = $self->catdir("..",$self->{$key}) @@ -658,7 +666,6 @@ sub parse_args{ my($self, @args) = @_; foreach (@args) { unless (m/(.*?)=(.*)/) { - help(),exit 1 if m/^help$/; ++$Verbose if m/^verb/; next; } @@ -1089,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 @@ -1964,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, @@ -1988,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 @@ -2037,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.124 $ =~ /(\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 @@ -2189,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. @@ -2362,7 +2389,8 @@ meta-data file has been introduced, F. F is a YAML document (see http://www.yaml.org) containing basic information about the module (name, version, prerequisites...) in an easy to read format. The format is developed and defined by the -Module::Build developers. +Module::Build developers (see +http://module-build.sourceforge.net/META-spec.html) MakeMaker will automatically generate a F file for you and add it to your F as part of the 'distdir' target (and thus @@ -2436,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