X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FExtUtils%2FMakeMaker.pm;h=13bb85012933b1a3c35f65b94ec3c7a51c798984;hb=919b8535db3a1743970d092ccde72289af606b22;hp=378640cf73fbed83d82168690f7f3a386f4969d1;hpb=ad2f23df959fc696d664d4612493394ea5ed4c8e;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/ExtUtils/MakeMaker.pm b/lib/ExtUtils/MakeMaker.pm index 378640c..13bb850 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.10_07'; -($Revision) = q$Revision: 1.117 $ =~ /Revision:\s+(\S+)/; +$VERSION = '6.16'; +($Revision) = q$Revision: 1.131 $ =~ /Revision:\s+(\S+)/; require Exporter; use Config; @@ -92,6 +92,7 @@ my %Special_Sigs = ( dynamic_lib=> 'hash', linkext => 'hash', macro => 'hash', + postamble => 'hash', realclean => 'hash', test => 'hash', tool_autosplit => 'hash', @@ -353,11 +354,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; } @@ -436,7 +439,13 @@ sub new { my $key; for $key (@Prepend_parent) { next unless defined $self->{PARENT}{$key}; + + # Don't stomp on WriteMakefile() args. + 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}) unless $self->file_name_is_absolute($self->{$key}); @@ -478,6 +487,7 @@ sub new { $self->init_dist; $self->init_INST; $self->init_INSTALL; + $self->init_DEST; $self->init_dirscan; $self->init_xs; $self->init_PERL; @@ -1346,12 +1356,13 @@ Something like C<"-DHAVE_UNISTD_H"> This is the root directory into which the code will be installed. It I. For example, if your code -would normally go into /usr/local/lib/perl you could set DESTDIR=/tmp +would normally go into /usr/local/lib/perl you could set DESTDIR=/tmp/ and installation would go into /tmp/usr/local/lib/perl. This is primarily of use for people who repackage Perl modules. -From the GNU Makefile conventions. +NOTE: Due to the nature of make, it is important that you put the trailing +slash on your DESTDIR. "/tmp/" not "/tmp". =item DIR @@ -1956,7 +1967,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, @@ -2029,7 +2041,7 @@ MakeMaker object. The following lines will be parsed o.k.: $VERSION = '1.00'; *VERSION = \'1.01'; - $VERSION = sprintf "%d.%03d", q$Revision: 1.117 $ =~ /(\d+)/g; + $VERSION = sprintf "%d.%03d", q$Revision: 1.131 $ =~ /(\d+)/g; $FOO::VERSION = '1.10'; *FOO::VERSION = \'1.11'; our $VERSION = 1.2.3; # new for perl5.6.0 @@ -2089,7 +2101,8 @@ to the value of the VERSION attribute. =head2 Additional lowercase attributes can be used to pass parameters to the methods which implement that -part of the Makefile. +part of the Makefile. Parameters are specified as a hash ref but are +passed to the method as a hash. =over 2 @@ -2136,6 +2149,10 @@ be linked. {ANY_MACRO => ANY_VALUE, ...} +=item postamble + +Anything put here will be passed to MY::postamble() if you have one. + =item realclean {FILES => '$(INST_ARCHAUTODIR)/*.xyz'} @@ -2349,7 +2366,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