+#line 1
package Module::Install::Makefile;
use strict 'vars';
use vars qw{$VERSION $ISCORE @ISA};
BEGIN {
- $VERSION = '0.72';
+ $VERSION = '0.77';
$ISCORE = 1;
@ISA = qw{Module::Install::Base};
}
sub makemaker_args {
my $self = shift;
- my $args = ($self->{makemaker_args} ||= {});
- %$args = ( %$args, @_ ) if @_;
- $args;
+ my $args = ( $self->{makemaker_args} ||= {} );
+ %$args = ( %$args, @_ );
+ return $args;
}
# For mm args that take multiple space-seperated args,
# Make sure we have a new enough
require ExtUtils::MakeMaker;
- $self->configure_requires( 'ExtUtils::MakeMaker' => $ExtUtils::MakeMaker::VERSION );
+
+ # MakeMaker can complain about module versions that include
+ # an underscore, even though its own version may contain one!
+ # Hence the funny regexp to get rid of it. See RT #35800
+ # for details.
+
+ $self->configure_requires( 'ExtUtils::MakeMaker' => $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/ );
# Generate the
my $args = $self->makemaker_args;
my $user_preop = delete $args{dist}->{PREOP};
if (my $preop = $self->admin->preop($user_preop)) {
- $args{dist} = $preop;
+ foreach my $key ( keys %$preop ) {
+ $args{dist}->{$key} = $preop->{$key};
+ }
}
my $mm = ExtUtils::MakeMaker::WriteMakefile(%args);
__END__
-=pod
-
-=head1 NAME
-
-Module::Install::MakeMaker - Extension Rules for ExtUtils::MakeMaker
-
-=head1 SYNOPSIS
-
-In your F<Makefile.PL>:
-
- use inc::Module::Install;
- WriteMakefile();
-
-=head1 DESCRIPTION
-
-This module is a wrapper around B<ExtUtils::MakeMaker>. It exports
-two functions: C<prompt> (an alias for C<ExtUtils::MakeMaker::prompt>)
-and C<WriteMakefile>.
-
-The C<WriteMakefile> function will pass on keyword/value pair functions
-to C<ExtUtils::MakeMaker::WriteMakefile>. The required parameters
-C<NAME> and C<VERSION> (or C<VERSION_FROM>) are not necessary if
-it can find them unambiguously in your code.
-
-=head1 CONFIGURATION OPTIONS
-
-This module also adds some Configuration parameters of its own:
-
-=head2 NAME
-
-The NAME parameter is required by B<ExtUtils::MakeMaker>. If you have a
-single module in your distribution, or if the module name indicated by
-the current directory exists under F<lib/>, this module will use the
-guessed package name as the default.
-
-If this module can't find a default for C<NAME> it will ask you to specify
-it manually.
-
-=head2 VERSION
-
-B<ExtUtils::MakeMaker> requires either the C<VERSION> or C<VERSION_FROM>
-parameter. If this module can guess the package's C<NAME>, it will attempt
-to parse the C<VERSION> from it.
-
-If this module can't find a default for C<VERSION> it will ask you to
-specify it manually.
-
-=head1 MAKE TARGETS
-
-B<ExtUtils::MakeMaker> provides you with many useful C<make> targets. A
-C<make> B<target> is the word you specify after C<make>, like C<test>
-for C<make test>. Some of the more useful targets are:
-
-=over 4
-
-=item * all
-
-This is the default target. When you type C<make> it is the same as
-entering C<make all>. This target builds all of your code and stages it
-in the C<blib> directory.
-
-=item * test
-
-Run your distribution's test suite.
-
-=item * install
-
-Copy the contents of the C<blib> directory into the appropriate
-directories in your Perl installation.
-
-=item * dist
-
-Create a distribution tarball, ready for uploading to CPAN or sharing
-with a friend.
-
-=item * clean distclean purge
-
-Remove the files created by C<perl Makefile.PL> and C<make>.
-
-=item * help
-
-Same as typing C<perldoc ExtUtils::MakeMaker>.
-
-=back
-
-This module modifies the behaviour of some of these targets, depending
-on your requirements, and also adds the following targets to your Makefile:
-
-=over 4
-
-=item * cpurge
-
-Just like purge, except that it also deletes the files originally added
-by this module itself.
-
-=item * chelp
-
-Short cut for typing C<perldoc Module::Install>.
-
-=item * distsign
-
-Short cut for typing C<cpansign -s>, for B<Module::Signature> users to
-sign the distribution before release.
-
-=back
-
-=head1 SEE ALSO
-
-L<Module::Install>, L<CPAN::MakeMaker>, L<CPAN::MakeMaker::Philosophy>
-
-=head1 AUTHORS
-
-Audrey Tang E<lt>autrijus@autrijus.orgE<gt>
-
-Based on original works by Brian Ingerson E<lt>INGY@cpan.orgE<gt>
-
-=head1 COPYRIGHT
-
-Copyright 2002, 2003, 2004 by
-Audrey Tang E<lt>autrijus@autrijus.orgE<gt>,
-Brian Ingerson E<lt>ingy@cpan.orgE<gt>
-
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-See L<http://www.perl.com/perl/misc/Artistic.html>
-
-=cut
+#line 379