NAME
Module::Install-Cookbook - A Cornucopiæ of Module::Install Recipes
DESCRIPTION
It's a lot easier for most of us to cook a meal from a recipe, rather than just throwing things into a pot until something edible forms. So it is with programming as well. Module::Install makes writing Perl module installers as easy as possible. Having a set of easy to understand samples, makes it simpler yet.
This Cookbook is intended to be an ever-growing repository of small yet complete coding examples; each showing how to accomplish a particular task with Module::Install. Each example is followed by a short discussion, explaining in detail the particular features that are being demonstrated.
Guten Appetit!
Appetizers
Replacing ExtUtils::MakeMaker
- Problem
-
As a CPAN author, you are likely to have some ExtUtils::MakeMaker based Makefile.PL already. You want to take advantage of cool features offered by Module::Install extensions, but why fix something that's not broken?
- Solution
-
The fix turns out to be extremely simple. Where you had:
use ExtUtils::MakeMaker; WriteMakefile( NAME => "Foo::Bar" );
Now just write:
use inc::Module::Install; WriteMakefile( NAME => "Foo::Bar" );
Presto! Your Makefile.PL is now ready to receive all sort of magic extensions; see below for details.
- Problem
-
XXX Build.PL
- Solution
Fast Food
XXX: to be written
The Main Course
- Problem
-
Installing XS extensions from CPAN was difficult. Some platforms do not come with a compiler (Win32, MacOSX...); some headers or libraries may be missing.
- Solution
-
Just use the
par_base
andfetch_par
functions:# same old Makefile.PL, with a few changes use inc::Module::Install; # was "use ExtUtils::MakeMaker;" WriteMakefile( ... ); # same as the original check_nmake(); # make sure the user have nmake par_base('AUTRIJUS'); # your CPAN ID or a URL fetch_par() unless can_cc(); # use precompiled PAR only if necessary
Users will not notice anything, except now it works. Of course, you still need to type
make par
and upload the precompiled package.
Just Desserts
XXX: to be written
Entertaining Guests
XXX: to be written
Food for Thought
XXX: to be written
SEE ALSO
For generic information, see Module::Install.
AUTHOR
Autrijus Tang <autrijus@autrijus.org>
Structure based on Inline::C-Cookbook by Brian Ingerson <INGY@cpan.org>
COPYRIGHT
Copyright 2003, 2004 by Autrijus Tang <autrijus@autrijus.org>.
Copyright 2002 by Brian Ingerson <INGY@cpan.org>.
This document is free documentation; you can redistribute it and/or modify it under the same terms as Perl itself.