+# $Id: $
package ExtUtils::MakeMaker;
BEGIN {require 5.005_03;}
-$VERSION = '6.21_01';
-($Revision) = q$Revision: 1.145 $ =~ /Revision:\s+(\S+)/;
-
require Exporter;
-use Config;
+use ExtUtils::MakeMaker::Config;
use Carp ();
use File::Path;
use vars qw(
@ISA @EXPORT @EXPORT_OK
- $Revision $VERSION $Verbose %Config
+ $VERSION $Verbose %Config
@Prepend_parent @Parent
%Recognized_Att_Keys @Get_from_Config @MM_Sections @Overridable
$Filename
);
+
+# Has to be on its own line with no $ after it to avoid being noticed by
+# the version control system
+use vars qw($Revision);
use strict;
+$VERSION = '6.28';
+($Revision = q$Revision: 4409 $) =~ /Revision:\s+(\S+)/;
+
@ISA = qw(Exporter);
@EXPORT = qw(&WriteMakefile &writeMakefile $Verbose &prompt);
@EXPORT_OK = qw($VERSION &neatvalue &mkbootstrap &mksymlists);
INST_ARCHLIB INST_SCRIPT INST_BIN INST_LIB INST_MAN1DIR INST_MAN3DIR
INSTALLDIRS
- DESTDIR PREFIX
+ DESTDIR PREFIX INSTALLBASE
PERLPREFIX SITEPREFIX VENDORPREFIX
INSTALLPRIVLIB INSTALLSITELIB INSTALLVENDORLIB
INSTALLARCHLIB INSTALLSITEARCH INSTALLVENDORARCH
dynamic_lib static static_lib manifypods processPL
installbin subdirs
clean_subdirs clean realclean_subdirs realclean
- metafile metafile_addtomanifest
- signature signature_addtomanifest
- dist_basics dist_core distdir dist_test dist_ci
+ metafile signature
+ dist_basics dist_core distdir dist_test dist_ci distmeta distsignature
install force perldepend makefile staticmake test ppd
); # loses section ordering
The Makefile to be produced may be altered by adding arguments of the
form C<KEY=VALUE>. E.g.
- perl Makefile.PL PREFIX=/tmp/myperl5
+ perl Makefile.PL PREFIX=~
Other interesting targets in the generated Makefile are
This is the root directory into which the code will be installed. It
I<prepends itself to the normal prefix>. For example, if your code
-would normally go into /usr/local/lib/perl you could set DESTDIR=/tmp/
-and installation would go into /tmp/usr/local/lib/perl.
+would normally go into F</usr/local/lib/perl> you could set DESTDIR=~/tmp/
+and installation would go into F<~/tmp/usr/local/lib/perl>.
This is primarily of use for people who repackage Perl modules.
NOTE: Due to the nature of make, it is important that you put the trailing
-slash on your DESTDIR. "/tmp/" not "/tmp".
+slash on your DESTDIR. F<~/tmp/> not F<~/tmp>.
=item DIR
=item PL_FILES
-Ref to hash of files to be processed as perl programs. MakeMaker
-will default to any found *.PL file (except Makefile.PL) being keys
-and the basename of the file being the value. E.g.
+MakeMaker can run programs to generate files for you at build time.
+By default any file named *.PL (except Makefile.PL and Build.PL) in
+the top level directory will be assumed to be a Perl program and run
+passing its own basename in as an argument. For example...
+
+ perl foo.PL foo
+
+This behavior can be overridden by supplying your own set of files to
+search. PL_FILES accepts a hash ref, the key being the file to run
+and the value is passed in as the first argument when the PL file is run.
+
+ PL_FILES => {'bin/foobar.PL' => 'bin/foobar'}
+
+Would run bin/foobar.PL like this:
+
+ perl bin/foobar.PL bin/foobar
+
+If multiple files from one program are desired an array ref can be used.
+
+ PL_FILES => {'bin/foobar.PL' => [qw(bin/foobar1 bin/foobar2)]}
- {'foobar.PL' => 'foobar'}
+In this case the program will be run multiple times using each target file.
-The *.PL files are expected to produce output to the target files
-themselves. If multiple files can be generated from the same *.PL
-file then the value in the hash can be a reference to an array of
-target file names. E.g.
+ perl bin/foobar.PL bin/foobar1
+ perl bin/foobar.PL bin/foobar2
- {'foobar.PL' => ['foobar1','foobar2']}
=item PM
=item SIGN
-When true, perform the generation and addition to the MANIFEST of
-the SIGNATURE file during 'make distdir', via 'cpansign -s'.
+When true, perform the generation and addition to the MANIFEST of the
+SIGNATURE file in the distdir during 'make distdir', via 'cpansign
+-s'.
Note that you need to install the Module::Signature module to
perform this operation.
$VERSION = '1.00';
*VERSION = \'1.01';
- $VERSION = sprintf "%d.%03d", q$Revision: 1.145 $ =~ /(\d+)/g;
+ $VERSION = sprintf "%d.%03d", q$Revision: 4409 $ =~ /(\d+)/g;
$FOO::VERSION = '1.10';
*FOO::VERSION = \'1.11';
our $VERSION = 1.2.3; # new for perl5.6.0
=over 2
-=item C<<MAN3PODS => ' '>>
+=item C<< MAN3PODS => ' ' >>
This is commonly used to supress the creation of man pages. MAN3PODS
takes a hash ref not a string, but the above worked by accident in old
versions of MakeMaker.
-The correct code is C<<MAN3PODS => { }>>.
+The correct code is C<< MAN3PODS => { } >>.
=back
directory with the name C<$(DISTNAME)-$(VERSION)>. If that directory
exists, it will be removed first.
-Additionally, it will create a META.yml module meta-data file and add
-this to your MANFIEST. You can shut this behavior off with the NO_META
-flag.
+Additionally, it will create a META.yml module meta-data file in the
+distdir and add this to the distdir's MANFIEST. You can shut this
+behavior off with the NO_META flag.
=item make disttest