37
# Store a cleaned up version of the MakeMaker version,
38
# since we need to behave differently in a variety of
39
# ways based on the MM version.
40
my $makemaker = eval $ExtUtils::MakeMaker::VERSION;
42
# If we are passed a param, do a "newer than" comparison.
43
# Otherwise, just return the MakeMaker version.
45
( @_ < 2 or $makemaker >= eval($_[1]) ) ? $makemaker : 0
37
48
sub makemaker_args {
39
50
my $args = ( $self->{makemaker_args} ||= {} );
130
144
# an underscore, even though its own version may contain one!
131
145
# Hence the funny regexp to get rid of it. See RT #35800
133
$self->build_requires( 'ExtUtils::MakeMaker' => $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/ );
134
$self->configure_requires( 'ExtUtils::MakeMaker' => $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/ );
147
my $v = $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/;
148
$self->build_requires( 'ExtUtils::MakeMaker' => $v );
149
$self->configure_requires( 'ExtUtils::MakeMaker' => $v );
136
151
# Allow legacy-compatibility with 5.005 by depending on the
137
152
# most recent EU:MM that supported 5.005.
138
$self->build_requires( 'ExtUtils::MakeMaker' => 6.42 );
153
$self->build_requires( 'ExtUtils::MakeMaker' => 6.42 );
139
154
$self->configure_requires( 'ExtUtils::MakeMaker' => 6.42 );
145
160
$args->{NAME} = $self->module_name || $self->name;
146
161
$args->{VERSION} = $self->version;
147
162
$args->{NAME} =~ s/-/::/g;
148
164
if ( $self->tests ) {
149
$args->{test} = { TESTS => $self->tests };
166
TESTS => $self->tests,
168
} elsif ( -d 'xt' and ($Module::Install::AUTHOR or $ENV{RELEASE_TESTING}) ) {
170
TESTS => join( ' ', map { "$_/*.t" } grep { -d $_ } qw{ t xt } ),
151
173
if ( $] >= 5.005 ) {
152
174
$args->{ABSTRACT} = $self->abstract;
153
175
$args->{AUTHOR} = $self->author;
155
if ( eval($ExtUtils::MakeMaker::VERSION) >= 6.10 ) {
156
$args->{NO_META} = 1;
177
if ( $self->makemaker(6.10) ) {
178
$args->{NO_META} = 1;
179
#$args->{NO_MYMETA} = 1;
158
if ( eval($ExtUtils::MakeMaker::VERSION) > 6.17 and $self->sign ) {
181
if ( $self->makemaker(6.17) and $self->sign ) {
159
182
$args->{SIGN} = 1;
161
184
unless ( $self->is_admin ) {
162
185
delete $args->{SIGN};
165
# Merge both kinds of requires into prereq_pm
166
188
my $prereq = ($args->{PREREQ_PM} ||= {});
167
189
%$prereq = ( %$prereq,
190
map { @$_ } # flatten [module => version]
171
($self->configure_requires, $self->build_requires, $self->requires)
174
196
# Remove any reference to perl, PREREQ_PM doesn't support it
175
197
delete $args->{PREREQ_PM}->{perl};
177
# merge both kinds of requires into prereq_pm
199
# Merge both kinds of requires into BUILD_REQUIRES
200
my $build_prereq = ($args->{BUILD_REQUIRES} ||= {});
201
%$build_prereq = ( %$build_prereq,
202
map { @$_ } # flatten [module => version]
205
($self->configure_requires, $self->build_requires)
208
# Remove any reference to perl, BUILD_REQUIRES doesn't support it
209
delete $args->{BUILD_REQUIRES}->{perl};
211
# Delete bundled dists from prereq_pm
178
212
my $subdirs = ($args->{DIR} ||= []);
179
213
if ($self->bundles) {
180
214
foreach my $bundle (@{ $self->bundles }) {
181
215
my ($file, $dir) = @$bundle;
182
216
push @$subdirs, $dir if -d $dir;
183
delete $prereq->{$file};
217
delete $build_prereq->{$file}; #Delete from build prereqs only
221
unless ( $self->makemaker('6.55_03') ) {
222
%$prereq = (%$prereq,%$build_prereq);
223
delete $args->{BUILD_REQUIRES};
187
226
if ( my $perl_version = $self->perl_version ) {
188
227
eval "use $perl_version; 1"
189
228
or die "ERROR: perl: Version $] is installed, "
190
229
. "but we need version >= $perl_version";
231
if ( $self->makemaker(6.48) ) {
232
$args->{MIN_PERL_VERSION} = $perl_version;
193
236
$args->{INSTALLDIRS} = $self->installdirs;
195
my %args = map { ( $_ => $args->{$_} ) } grep {defined($args->{$_})} keys %$args;
239
( $_ => $args->{$_} ) } grep {defined($args->{$_} )
197
242
my $user_preop = delete $args{dist}->{PREOP};
198
if (my $preop = $self->admin->preop($user_preop)) {
243
if ( my $preop = $self->admin->preop($user_preop) ) {
199
244
foreach my $key ( keys %$preop ) {
200
245
$args{dist}->{$key} = $preop->{$key};