1#line 1
2package Module::Install::MakeMaker;
3
4use strict;
5use ExtUtils::MakeMaker   ();
6use Module::Install::Base ();
7
8use vars qw{$VERSION @ISA $ISCORE};
9BEGIN {
10	$VERSION = '0.91';
11	@ISA     = 'Module::Install::Base';
12	$ISCORE  = 1;
13}
14
15my $makefile;
16
17sub WriteMakefile {
18    my ($self, %args) = @_;
19    $makefile = $self->load('Makefile');
20
21    # mapping between MakeMaker and META.yml keys
22    $args{MODULE_NAME} = $args{NAME};
23    unless ( $args{NAME} = $args{DISTNAME} or ! $args{MODULE_NAME} ) {
24        $args{NAME} = $args{MODULE_NAME};
25        $args{NAME} =~ s/::/-/g;
26    }
27
28    foreach my $key ( qw{name module_name version version_from abstract author installdirs} ) {
29        my $value = delete($args{uc($key)}) or next;
30        $self->$key($value);
31    }
32
33    if (my $prereq = delete($args{PREREQ_PM})) {
34        while (my($k,$v) = each %$prereq) {
35            $self->requires($k,$v);
36        }
37    }
38
39    # put the remaining args to makemaker_args
40    $self->makemaker_args(%args);
41}
42
43END {
44    if ( $makefile ) {
45        $makefile->write;
46        $makefile->Meta->write;
47    }
48}
49
501;
51