Module::Build::Convert - Makefile.PL to Build.PL converter
use Module::Build::Convert; # example arguments (empty %args is sufficient too) %args = (Path => '/path/to/perl/distribution(s)', Verbose => 2, Use_Native_Order => 1, Len_Indent => 4); $make = Module::Build::Convert->new(%args); $make->convert;
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.9.4).
ExtUtils::MakeMaker
Module::Build
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.
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
Parse_PPI
Parse the Makefile.PL in the PPI Parser mode. Default: 0
Exec_Makefile
Execute the Makefile.PL via 'do Makefile.PL'. Default: 0
'do Makefile.PL'
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
Verbose = 1
-v
-vv
Debug
Rudimentary debug facility for examining the parsing process. Default: 0
Process_Code
Process code embedded within the arguments list. 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
-n
Len_Indent
Indentation (character width). May be set via the make2build switch -l. Default: 3
-l
DD_Indent
Data::Dumper indendation mode. Mode 0 will be disregarded in favor of 2. Default: 2
Data::Dumper
DD_Sortkeys
Data::Dumper sort keys. Default: 1
Parses the Makefile.PL's WriteMakefile() arguments and converts them to Module::Build equivalents; subsequently the according Build.PL is created. Takes no arguments.
WriteMakefile()
ExtUtils::MakeMaker arguments followed by their Module::Build equivalents. Converted data structures preserve their native structure, that is, HASH -> HASH, etc.
HASH
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
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.
SCALAR, ARRAY, HASH
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
Code that preceeds converted Module::Build arguments.
use strict; use warnings; use Module::Build; $MAKECODE my $b = Module::Build->new $INDENT(
Code that follows converted Module::Build arguments.
$INDENT); $b->create_build_script; $MAKECODE
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.
Converted ExtUtils::MakeMaker arguments will be dumped by Data::Dumper's Dump() and are then furtherly processed.
Data::Dumper's
Dump()
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.
Module::Build::Convert
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.
http://www.makemaker.org, ExtUtils::MakeMaker, Module::Build, http://www.makemaker.org/wiki/index.cgi?ModuleBuildConversionGuide
Steven Schubiger <schubiger@cpan.org>
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
To install Module::Build::Convert, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Module::Build::Convert
CPAN shell
perl -MCPAN -e shell install Module::Build::Convert
For more information on module installation, please visit the detailed CPAN module installation guide.