Hi all: I just wanted to take a few minutes to thank everyone for their discussion, particularly Michael Schwern (maintainer of ExtUtils::MakeMaker among others) and Adam Kennedy (maintainer of Module::Install among others).
I know this question comes up time and time again, and I had personally advocated for preferring Build.PL over Makefile.PL, if both are included in a distribution. I'd like to see a note in Module::Build or Module::Build::Compat perldocs discussing this, but I suppose their mailing list/bug reporting mechanism is best for that. To that end, I have managed to convince the Debian Perl Packagers team that it is beneficial to switch. However, anecdotal evidence from upstream suggests that preferring Build.PL over Makefile.PL may break the build process for our existing packages (some of which have had patches made against Makefile.PL, I suppose). What is left is testing the 202+ packages in our control that have both a Makefile.PL and Build.PL to make sure nothing breaks. If we're successful in our testing then I don't see any reason why our build process won't be switched over, particularly given the advice of everyone here. Thanks again, Jonathan Yu On behalf of the pkg-perl team On Fri, May 8, 2009 at 4:24 PM, Michael G Schwern <schw...@pobox.com> wrote: > Adam Kennedy wrote: >> 2009/5/6 Jonathan Yu <jonathan.i...@gmail.com>: >>> The real question at hand here is: for modules that provide both a >>> Makefile.PL and Build.PL, which should be preferred? More than that, >>> from the perspective of CPAN authors, is it even useful to provide >>> both? Now that Module::Build is a core module, maybe only a Build.PL >>> should be included. >> >> When both Makefile.PL and Build.PL exist, you should ALWAYS run the >> Module::Build installation process ( perl Build.PL; perl Build; perl >> Build test; and so on...) and ignore Makefile.PL. > > I concur. If you can run the Build.PL, run it. > > The Makefile.PL exists for compatibility only. It is not perfect, never was > intended to be and never will be. It may contain only a subset of the logic > in the Build.PL. It may not fully emulate a real Makefile.PL. > > You can consider this definitive. > > > -- > You know what the chain of command is? It's the chain I go get and beat you > with 'til you understand who's in ruttin' command here. > -- Jayne Cobb, "Firefly" >