@@ -19,6 +19,17 @@ If you need to maintain a package written using ``ExtUtils::MakeMaker`` you may
===== Module::Build =====
[[http://perldoc.perl.org/Module/Build.html|``Module::Build``]] was written to replace ``ExtUtils::MakeMaker`` with the goal of getting rid of the dependency on ``make``. This allows ``Module::Build`` to be based purely on Perl. Once Perl itself is installed it already provides a certain standard across the platform that it supports. ``Module::Build`` profits from this standard and is therefore much more reliable. Instead of a ``Makefile`` it uses a Perl script called ``Build`` which is generated by a script ``Build.PL``. The latter is written using the ``Module::Build`` module. Installing a package becomes:
perl Build.PL
./Build
./Build test
./Build install
The similarity to the use of ``ExtUtils::MakeMaker`` above is intentional. For most simple projects both approaches require about the same effort and both are as easy to understand as the other. As soon as the project gets more involved ``Module::Build`` is the better choice. In addition to be based on Perl only it is also a more modern code base with better extensibility using more modern object oriented techniques.
A large number of members of the Perl community use ``Module::Build`` in some form. It has become the de facto standard.