NAME

Make::Build::Convert - Makefile.PL to Build.PL converter

SYNOPSIS

 require Make::Build::Convert; 

 my %params = ( Path => '/path/to/perl/distribution',
                Verbose => 2,
		Use_Native_Order => 1,
                Len_Indent => 4 );

 my $make = Make::Build::Convert->new(%params);                            
 $make->convert;

DESCRIPTION

ExtUtils::MakeMaker has been a de-facto standard for the common distribution of Perl modules; Module::Build is expected to supersede ExtUtils::MakeMaker in some time (part of the Perl core as of 5.10?)

The transition takes place slowly, as the converting process manually achieved is yet an uncommon practice. The Make::Build::Convert Makefile.PL parser is intended to ease the transition process.

CONSTRUCTOR

new

Possible arguments:

Path

Path to a Perl distribution. Default: undef

Makefile_PL

Filename of the Makefile script. Default: Makefile.PL

Build_PL

Filename of the Build script. Default: Build.PL

MANIFEST

Filename of the MANIFEST file. Default: MANIFEST

RC

Filename of the RC file. Default: .make2buildrc

Create_RC

Create a RC file in the homedir of the current user. Default: 0

Exec_Makefile

Execute the Makefile.PL via do 'Makefile.PL'. Default: 0

Verbose

Verbose mode. If set to 1, overridden defaults and skipped arguments are printed while converting; if set to 2, output of Verbose = 1 and created Build script will be printed. May be set via the make2build switches -v (mode 1) and -vv (mode 2). Default: 0

Debug

Rudimentary debug facility for examining the parsing process. Default: 0

Use_Native_Order

Native sorting order. If set to 1, the native sorting order of the Makefile arguments will be tried to preserve; it's equal to using the make2build switch -n. Default: 0

Len_Indent

Indentation (character width). May be set via the make2build switch -l. Default: 3

DD_Indent

Data::Dumper indendation mode. Mode 0 will be disregarded in favor of 2. Default: 2

DD_Sortkeys

Data::Dumper sort keys. Default: 1

METHODS

convert

Parses the Makefile.PL's ExtUtils::MakeMaker arguments and converts them to Module::Build equivalents; subsequently the according Build.PL is created. Takes no arguments.

DATA SECTION

Argument conversion

ExtUtils::MakeMaker arguments followed by their Module::Build equivalents. Converted data structures preserve their native structure, that is, HASH -> HASH, etc.

NAME                  module_name
DISTNAME              dist_name
ABSTRACT              dist_abstract
AUTHOR                dist_author
VERSION               dist_version
VERSION_FROM          dist_version_from
PREREQ_PM             requires
PL_FILES              PL_files
PM                    pm_files
MAN1PODS              pod_files
XS                    xs_files
INC                   include_dirs
INSTALLDIRS           installdirs
DESTDIR               destdir
CCFLAGS               extra_compiler_flags
EXTRA_META            meta_add
SIGN                  sign
LICENSE               license
clean.FILES           @add_to_cleanup

Default arguments

Module::Build default arguments may be specified as key/value pairs. Arguments attached to multidimensional structures are unsupported.

recommends	       HASH
build_requires        HASH
conflicts	       HASH
license               unknown
create_readme         1
create_makefile_pl    passthrough

Value may be either a string or of type SCALAR, ARRAY, HASH.

Sorting order

Module::Build arguments are sorted as enlisted herein. Additional arguments, that don't occur herein, are lower prioritized and will be inserted in unsorted order after preceedingly sorted arguments.

module_name
dist_name
dist_abstract
dist_author
dist_version
dist_version_from
requires
recommends
build_requires
conflicts
PL_files
pm_files
pod_files
xs_files
include_dirs
installdirs
destdir
add_to_cleanup
extra_compiler_flags
meta_add
sign
license
create_readme
create_makefile_pl

Begin code

Code that preceeds converted Module::Build arguments.

use Module::Build;

$MAKECODE

my $b = Module::Build->new
$INDENT(

End code

Code that follows converted Module::Build arguments.

$INDENT);

$b->create_build_script;

$MAKECODE

INTERNALS

co-opting WriteMakefile()

This behavior is no longer the default way to receive WriteMakefile()'s arguments; the Makefile.PL is now statically parsed unless one forces manually the co-opting of WriteMakefile().

In order to convert arguments, a typeglob from WriteMakefile() to an internal sub will be set; subsequently Makefile.PL will be executed and the arguments are then accessible to the internal sub.

Data::Dumper

Converted ExtUtils::MakeMaker arguments will be dumped by Data::Dumper's Dump() and are then furtherly processed.

SEE ALSO

http://www.makemaker.org, ExtUtils::MakeMaker, Module::Build, http://www.makemaker.org/wiki/index.cgi?ModuleBuildConversionGuide

AUTHOR

Steven Schubiger, schubiger@cpan.org

LICENSE

This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.

See http://www.perl.com/perl/misc/Artistic.html