NAME
Module::Build::Convert - Makefile.PL to Build.PL converter
SYNOPSIS
use Module::Build::Convert;
my %params = (Path => '/path/to/perl/distribution(s)',
Verbose => 2,
Use_Native_Order => 1,
Len_Indent => 4);
my $make = Module::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 Module::Build::Convert
Makefile.PL parser is intended to ease the transition process.
CONSTRUCTOR
new
Options:
Path
Path to a Perl distribution. May point to a single distribution
directory or to one containing more than one distribution. Default:
''
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
Dont_Overwrite_Auto
If a Build.PL already exists, output a notification and ask whether
it should be overwritten. Default: 1
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 "WriteMakefile()" 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.
#build_requires HASH
#recommends HASH
#conflicts HASH
license unknown
create_readme 1
create_makefile_pl traditional
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
build_requires
recommends
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 strict;
use warnings;
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.
BUGS & CAVEATS
"Module::Build::Convert" should be considered experimental as the
parsing of the Makefile.PL doesn't necessarily return valid arguments,
especially for Makefiles with bad or even worse, missing intendation.
The parsing process may sometimes hang with or without warnings in such
cases. Debugging by using the appropriate option/switch (see
CONSTRUCTOR/new) may reveal the root cause.
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>