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>

