El programa usa el módulo ExtUtils::MakeMaker que proporciona
la subrutina WriteMakefile , la cual se encarga de construir el
Makefile
de acuerdo a las especificaciones que se le pasan
como parámetros:
NAME
es el nombre del módulo
VERSION_FROM
dice que fichero contiene
la variable $VERSION
que define la versión de esta
distribución.
PREREQ_PM
es una referencia a un hash
cuyas claves son los nombres de los módulos
de los que depende y los valores son los números de versión
requeridos. Por ejemplo:
PREREQ_PM => { LWP::UserAgent => "1.73", HTTP::Request => "1.27" }
ABSTRACT_FROM
indica el fichero que contiene la descripción, resumen o
abstract del módulo.
ExtUtils::MakeMaker busca en la documentación POD de la distribución
por una línea que case con la expresión regular /^($package\s-\s)(.*)/
.
La costumbre/convenio es que esta sea la primera línea en la sección
=head1 NAME
. El contenido de $2
se interpreta como
abstract.
Por ejemplo en la distribución de Parse::Yapp
podemos ver
que contiene la línea:
nereida:~> sed -ne '/NAME/,/SYNOPSIS/p' `perldoc -l Parse::Yapp` =head1 NAME Parse::Yapp - Perl extension for generating and using LALR parsers. =head1 SYNOPSIS nereida:~> pmdesc Parse::Yapp Parse::Yapp - Perl extension for generating and using LALR parsers.
ABSTRACT
es una línea describiendo el módulo. Se incluye en
el fichero PPD (Perl Package Descriptor). Los ficheros PPD
son ficheros XML.
Por tanto, para crear el Makefile
basta ejecutar
este programa escribiendo perl Makefile.PL
Parse-Yard$ perl Makefile.PL Checking if your kit is complete... Looks good Writing Makefile for Parse::Yard Parse-Yard$ ls -ltr total 44 drwxr-xr-x 2 lhp lhp 4096 2004-12-23 09:47 t -rw-r--r-- 1 lhp lhp 1202 2004-12-23 09:47 README -rw-r--r-- 1 lhp lhp 69 2004-12-23 09:47 MANIFEST -rw-r--r-- 1 lhp lhp 561 2004-12-23 09:47 Makefile.PL drwxr-xr-x 3 lhp lhp 4096 2004-12-23 09:47 lib -rw-r--r-- 1 lhp lhp 158 2004-12-23 09:47 Changes -rw-r--r-- 1 lhp lhp 19549 2004-12-23 16:34 Makefile
Casiano Rodríguez León