ExtUtils::MakeMaker
Writes a Makefile for module installation. Provides a
function, WriteMakefile
, which
creates an object with attributes that are set from various sources
and that actually write the Makefile. See Chapter 2 for information about the
using the Makefile and MakeMaker during module installation. This
section explains the details of actually creating the Makefile with
MakeMaker. It assumes an understanding of make
and Makefiles.
If you are a Perl programmer writing a module, you should run h2xs to generate the template for your module. Among other things, h2xs creates a file called Makefile.PL, and it’s Makefile.PL that runs MakeMaker. On the other hand, if you are installing a module, you can usually just run the Makefile.PL that came with the module, perhaps adding a PREFIX argument if you are installing the module locally (see Chapter 2). In either case, you shouldn’t need to run ExtUtils::MakeMaker directly unless you have special requirements.
A typical call to MakeMaker might look like this example from the CGI distribution:
use ExtUtils::MakeMaker; WriteMakefile( NAME => "CGI", DISTNAME => "CGI-modules", VERSION => "2.76", linkext => { LINKTYPE => '' }, dist => {COMPRESS=>'gzip -9f', SUFFIX => 'gz'}, );
MakeMaker attributes can be passed as arguments to WriteMakefile
, as in the example, or they
can be passed as name=value pairs on the command
line:
perl Makefile.PL PREFIX=/home/mydir/Perl/Modules
To see what MakeMaker is doing, you can say:
perl Makefile.PL verbose ...
Get Perl in a Nutshell, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.