[pm-h] TMTOWTD Makefile.PL

Todd Rinaldo toddr at cpanel.net
Thu Dec 17 08:55:55 PST 2009


On Dec 17, 2009, at 7:32 AM, G. Wade Johnson wrote:

> On Thu, 17 Dec 2009 00:47:39 -0600
> Will Willis <will.willis at gmail.com> wrote:
> 
>> I'm writing a module. I've written plenty before, tests and all.. but
>> only recently have I started paying attention to Makefile.PL as I
>> consider uploading to the CPAN.
>> 
>> While going through a Catalyst book I got some experience with the
>> inc::Module::Install convention. I'm using module-starter to create
>> skeleton modules, which by default uses the ExtUtils::MakeMaker
>> approach to the Makefile.PL
>> 
>> My main point of concern is getting the module dependency list
>> included with my distribution, inc::Module::Install's approach is very
>> straight forward, using the requires subroutine. MakeMaker's appears
>> to go into the PREREQ_PM hash ref.
>> 
>> So as I feel my way through the path of module authoring I've come up
>> with a few questions (and I'm sure more will follow):
> 
> I'm certainly no expert, but here's the little that I know.
> 
>> 2) What are the pros/cons of using one module over the other?
> 
> The author of MakeMaker (Schwern) is trying to convince people to stop
> using it.<grin/> As I understand it, one of the big benefits of
> Module::Install is that the installer comes bundled with your module.
> 
> This has been a major difficulty with getting Module::Build out there.
> Almost everyone already has MakeMaker.
> 
I saw schwern re-give this presentation this year. It's amusing after you've struggled with the module a while:
http://schwern.dreamhosters.com/talks/MakeMaker_Is_DOOMED/

If you're going with Makefile.PL and you want to max out your makefile, you might use mine as an example. I had to hunt through the specs for meta.yaml to get it like this. It's less than well documented:

http://cpansearch.perl.org/src/TODDR/Net-Jabber-Bot-2.1.5/Makefile.PL

The sections I found useful but hard to find documentation on were:
1. build_requires - modules only required for build
2. resources - allows you to re-direct people to other repos for bugtracking, mailing list, homepage, etc. 
3. recommends - It's been a while, but I think this will encourage the interactive CPAN installer to install these also before build.





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/mailman/private/houston/attachments/20091217/b1f34838/attachment.html>


More information about the Houston mailing list