Date: Saturday January 04, 2020 @ 03:09 Author: argrath Update of /cvsroot/perldocjp/docs/modules/ExtUtils-MakeMaker-6.17/ExtUtils In directory sf-cvs:/tmp/cvs-serv146313/modules/ExtUtils-MakeMaker-6.17/ExtUtils Modified Files: MakeMaker.pod Log Message: comment out original =================================================================== File: no file MakeMaker.pod Status: Needs Checkout Working revision: 1.2 Fri Jan 3 18:09:43 2020 Repository revision: 1.2 /cvsroot/perldocjp/docs/modules/ExtUtils-MakeMaker-6.17/ExtUtils/MakeMaker.pod,v Existing Tags: No Tags Exist -------------- next part -------------- Index: docs/modules/ExtUtils-MakeMaker-6.17/ExtUtils/MakeMaker.pod diff -u docs/modules/ExtUtils-MakeMaker-6.17/ExtUtils/MakeMaker.pod:1.1 docs/modules/ExtUtils-MakeMaker-6.17/ExtUtils/MakeMaker.pod:1.2 --- docs/modules/ExtUtils-MakeMaker-6.17/ExtUtils/MakeMaker.pod:1.1 Thu Jan 4 03:59:28 2018 +++ docs/modules/ExtUtils-MakeMaker-6.17/ExtUtils/MakeMaker.pod Sat Jan 4 03:09:43 2020 @@ -137,48 +137,121 @@ =head2 make test +=begin original + +MakeMaker checks for the existence of a file named F<test.pl> in the +current directory and if it exists it execute the script with the +proper set of perl C<-I> options. + +=end original + MakeMaker checks for the existence of a file named F<test.pl> in the current directory and if it exists it execute the script with the proper set of perl C<-I> options. +(TBT) + +=begin original + +MakeMaker also checks for any files matching glob("t/*.t"). It will +execute all matching files in alphabetical order via the +L<Test::Harness> module with the C<-I> switches set correctly. + +=end original MakeMaker also checks for any files matching glob("t/*.t"). It will execute all matching files in alphabetical order via the L<Test::Harness> module with the C<-I> switches set correctly. +(TBT) + +=begin original + +If you'd like to see the raw output of your tests, set the +C<TEST_VERBOSE> variable to true. + +=end original If you'd like to see the raw output of your tests, set the C<TEST_VERBOSE> variable to true. +(TBT) make test TEST_VERBOSE=1 =head2 make testdb +=begin original + +A useful variation of the above is the target C<testdb>. It runs the +test under the Perl debugger (see L<perldebug>). If the file +F<test.pl> exists in the current directory, it is used for the test. + +=end original + A useful variation of the above is the target C<testdb>. It runs the test under the Perl debugger (see L<perldebug>). If the file F<test.pl> exists in the current directory, it is used for the test. +(TBT) + +=begin original + +If you want to debug some other testfile, set the C<TEST_FILE> variable +thusly: + +=end original If you want to debug some other testfile, set the C<TEST_FILE> variable thusly: +(TBT) make testdb TEST_FILE=t/mytest.t +=begin original + By default the debugger is called using C<-d> option to perl. If you want to specify some other option, set the C<TESTDB_SW> variable: +=end original + +By default the debugger is called using C<-d> option to perl. If you +want to specify some other option, set the C<TESTDB_SW> variable: +(TBT) + make testdb TESTDB_SW=-Dx =head2 make install +=begin original + +make alone puts all relevant files into directories that are named by +the macros INST_LIB, INST_ARCHLIB, INST_SCRIPT, INST_MAN1DIR and +INST_MAN3DIR. All these default to something below ./blib if you are +I<not> building below the perl source directory. If you I<are> +building below the perl source, INST_LIB and INST_ARCHLIB default to +../../lib, and INST_SCRIPT is not defined. + +=end original + make alone puts all relevant files into directories that are named by the macros INST_LIB, INST_ARCHLIB, INST_SCRIPT, INST_MAN1DIR and INST_MAN3DIR. All these default to something below ./blib if you are I<not> building below the perl source directory. If you I<are> building below the perl source, INST_LIB and INST_ARCHLIB default to ../../lib, and INST_SCRIPT is not defined. +(TBT) + +=begin original + +The I<install> target of the generated Makefile copies the files found +below each of the INST_* directories to their INSTALL* +counterparts. Which counterparts are chosen depends on the setting of +INSTALLDIRS according to the following table: + +=end original The I<install> target of the generated Makefile copies the files found below each of the INST_* directories to their INSTALL* counterparts. Which counterparts are chosen depends on the setting of INSTALLDIRS according to the following table: +(TBT) INSTALLDIRS set to perl site vendor @@ -191,16 +264,39 @@ INST_MAN1DIR INSTALLMAN1DIR INSTALLSITEMAN1DIR INSTALLVENDORMAN1DIR INST_MAN3DIR INSTALLMAN3DIR INSTALLSITEMAN3DIR INSTALLVENDORMAN3DIR +=begin original + +The INSTALL... macros in turn default to their %Config +($Config{installprivlib}, $Config{installarchlib}, etc.) counterparts. + +=end original + The INSTALL... macros in turn default to their %Config ($Config{installprivlib}, $Config{installarchlib}, etc.) counterparts. +(TBT) + +=begin original + +You can check the values of these variables on your system with + +=end original You can check the values of these variables on your system with +(TBT) perl '-V:install.*' +=begin original + And to check the sequence in which the library directories are searched by perl, run +=end original + +And to check the sequence in which the library directories are +searched by perl, run +(TBT) + perl -le 'print join $/, @INC' @@ -344,31 +440,73 @@ (AFS ¥æ¡¼¥¶¤Ø) +=begin original + +will have to specify the installation directories as these most +probably have changed since perl itself has been installed. They will +have to do this by calling + +=end original + will have to specify the installation directories as these most probably have changed since perl itself has been installed. They will have to do this by calling +(TBT) perl Makefile.PL INSTALLSITELIB=/afs/here/today \ INSTALLSCRIPT=/afs/there/now INSTALLMAN3DIR=/afs/for/manpages make +=begin original + +Be careful to repeat this procedure every time you recompile an +extension, unless you are sure the AFS installation directories are +still valid. + +=end original + Be careful to repeat this procedure every time you recompile an extension, unless you are sure the AFS installation directories are still valid. +(TBT) =head2 Static Linking of a new Perl Binary (¿·¤·¤¤ Perl ¼Â¹Ô·Á¼°¤Î¥¹¥¿¥Æ¥£¥Ã¥¯¥ê¥ó¥¯) +=begin original + +An extension that is built with the above steps is ready to use on +systems supporting dynamic loading. On systems that do not support +dynamic loading, any newly created extension has to be linked together +with the available resources. MakeMaker supports the linking process +by creating appropriate targets in the Makefile whenever an extension +is built. You can invoke the corresponding section of the makefile with + +=end original + An extension that is built with the above steps is ready to use on systems supporting dynamic loading. On systems that do not support dynamic loading, any newly created extension has to be linked together with the available resources. MakeMaker supports the linking process by creating appropriate targets in the Makefile whenever an extension is built. You can invoke the corresponding section of the makefile with +(TBT) make perl +=begin original + +That produces a new perl binary in the current directory with all +extensions linked in that can be found in INST_ARCHLIB, SITELIBEXP, +and PERL_ARCHLIB. To do that, MakeMaker writes a new Makefile, on +UNIX, this is called Makefile.aperl (may be system dependent). If you +want to force the creation of a new perl, it is recommended, that you +delete this Makefile.aperl, so the directories are searched-through +for linkable libraries again. + +=end original + That produces a new perl binary in the current directory with all extensions linked in that can be found in INST_ARCHLIB, SITELIBEXP, and PERL_ARCHLIB. To do that, MakeMaker writes a new Makefile, on @@ -376,41 +514,105 @@ want to force the creation of a new perl, it is recommended, that you delete this Makefile.aperl, so the directories are searched-through for linkable libraries again. +(TBT) + +=begin original + +The binary can be installed into the directory where perl normally +resides on your machine with + +=end original The binary can be installed into the directory where perl normally resides on your machine with +(TBT) make inst_perl +=begin original + +To produce a perl binary with a different name than C<perl>, either say + +=end original + To produce a perl binary with a different name than C<perl>, either say +(TBT) perl Makefile.PL MAP_TARGET=myperl make myperl make inst_perl +=begin original + +or say + +=end original + or say +(TBT) perl Makefile.PL make myperl MAP_TARGET=myperl make inst_perl MAP_TARGET=myperl +=begin original + +In any case you will be prompted with the correct invocation of the +C<inst_perl> target that installs the new binary into INSTALLBIN. + +=end original + In any case you will be prompted with the correct invocation of the C<inst_perl> target that installs the new binary into INSTALLBIN. +(TBT) + +=begin original make inst_perl per default writes some documentation of what has been done into the file C<$(INSTALLARCHLIB)/perllocal.pod>. This can be bypassed by calling make pure_inst_perl. +=end original + +make inst_perl per default writes some documentation of what has been +done into the file C<$(INSTALLARCHLIB)/perllocal.pod>. This +can be bypassed by calling make pure_inst_perl. +(TBT) + +=begin original + Warning: the inst_perl: target will most probably overwrite your existing perl binary. Use with care! +=end original + +Warning: the inst_perl: target will most probably overwrite your +existing perl binary. Use with care! +(TBT) + +=begin original + +Sometimes you might want to build a statically linked perl although +your system supports dynamic loading. In this case you may explicitly +set the linktype with the invocation of the Makefile.PL or make: + +=end original + Sometimes you might want to build a statically linked perl although your system supports dynamic loading. In this case you may explicitly set the linktype with the invocation of the Makefile.PL or make: +(TBT) perl Makefile.PL LINKTYPE=static # recommended +=begin original + +or + +=end original + or +(TBT) make LINKTYPE=static # works on most systems @@ -418,10 +620,32 @@ (Perl ¥é¥¤¥Ö¥é¥ê¤È¥¤¥ó¥¹¥È¡¼¥ë°ÌÃ֤ηèÄê) +=begin original + +MakeMaker needs to know, or to guess, where certain things are +located. Especially INST_LIB and INST_ARCHLIB (where to put the files +during the make(1) run), PERL_LIB and PERL_ARCHLIB (where to read +existing modules from), and PERL_INC (header files and C<libperl*.*>). + +=end original + MakeMaker needs to know, or to guess, where certain things are located. Especially INST_LIB and INST_ARCHLIB (where to put the files during the make(1) run), PERL_LIB and PERL_ARCHLIB (where to read existing modules from), and PERL_INC (header files and C<libperl*.*>). +(TBT) + +=begin original + +Extensions may be built either using the contents of the perl source +directory tree or from the installed perl library. The recommended way +is to build extensions after you have run 'make install' on perl +itself. You can do that in any directory on your hard disk that is not +below the perl source tree. The support for extensions below the ext +directory of the perl distribution is only good for the standard +extensions that come with perl. + +=end original Extensions may be built either using the contents of the perl source directory tree or from the installed perl library. The recommended way @@ -430,11 +654,22 @@ below the perl source tree. The support for extensions below the ext directory of the perl distribution is only good for the standard extensions that come with perl. +(TBT) + +=begin original + +If an extension is being built below the C<ext/> directory of the perl +source then MakeMaker will set PERL_SRC automatically (e.g., +C<../..>). If PERL_SRC is defined and the extension is recognized as +a standard extension, then other variables default to the following: + +=end original If an extension is being built below the C<ext/> directory of the perl source then MakeMaker will set PERL_SRC automatically (e.g., C<../..>). If PERL_SRC is defined and the extension is recognized as a standard extension, then other variables default to the following: +(TBT) PERL_INC = PERL_SRC PERL_LIB = PERL_SRC/lib @@ -442,9 +677,18 @@ INST_LIB = PERL_LIB INST_ARCHLIB = PERL_ARCHLIB +=begin original + +If an extension is being built away from the perl source then MakeMaker +will leave PERL_SRC undefined and default to using the installed copy +of the perl library. The other variables default to the following: + +=end original + If an extension is being built away from the perl source then MakeMaker will leave PERL_SRC undefined and default to using the installed copy of the perl library. The other variables default to the following: +(TBT) PERL_INC = $archlibexp/CORE PERL_LIB = $privlibexp @@ -452,14 +696,36 @@ INST_LIB = ./blib/lib INST_ARCHLIB = ./blib/arch +=begin original + +If perl has not yet been installed then PERL_SRC can be defined on the +command line as shown in the previous section. + +=end original + If perl has not yet been installed then PERL_SRC can be defined on the command line as shown in the previous section. +(TBT) =head2 Which architecture dependent directory? (¥¢¡¼¥¥Æ¥¯¥Á¥ã°Í¸¥Ç¥£¥ì¥¯¥È¥ê¤Î°ÌÃÖ) +=begin original + +If you don't want to keep the defaults for the INSTALL* macros, +MakeMaker helps you to minimize the typing needed: the usual +relationship between INSTALLPRIVLIB and INSTALLARCHLIB is determined +by Configure at perl compilation time. MakeMaker supports the user who +sets INSTALLPRIVLIB. If INSTALLPRIVLIB is set, but INSTALLARCHLIB not, +then MakeMaker defaults the latter to be the same subdirectory of +INSTALLPRIVLIB as Configure decided for the counterparts in %Config , +otherwise it defaults to INSTALLPRIVLIB. The same relationship holds +for INSTALLSITELIB and INSTALLSITEARCH. + +=end original + If you don't want to keep the defaults for the INSTALL* macros, MakeMaker helps you to minimize the typing needed: the usual relationship between INSTALLPRIVLIB and INSTALLARCHLIB is determined @@ -469,6 +735,9 @@ INSTALLPRIVLIB as Configure decided for the counterparts in %Config , otherwise it defaults to INSTALLPRIVLIB. The same relationship holds for INSTALLSITELIB and INSTALLSITEARCH. +(TBT) + +=begin original MakeMaker gives you much more freedom than needed to configure internal variables and get different results. It is worth to mention, @@ -477,12 +746,30 @@ be necessary, and should only be done if the author of a package recommends it (or you know what you're doing). +=end original + +MakeMaker gives you much more freedom than needed to configure +internal variables and get different results. It is worth to mention, +that make(1) also lets you configure most of the variables that are +used in the Makefile. But in the majority of situations this will not +be necessary, and should only be done if the author of a package +recommends it (or you know what you're doing). +(TBT) + =head2 Using Attributes and Parameters (°À¤È¥Ñ¥é¥á¡¼¥¿¤Î»ÈÍÑ) +=begin original + +The following attributes may be specified as arguments to WriteMakefile() +or as NAME=VALUE pairs on the command line. + +=end original + The following attributes may be specified as arguments to WriteMakefile() or as NAME=VALUE pairs on the command line. +(TBT) =over 2 @@ -490,45 +777,126 @@ ABSTRACT +=begin original + +One line description of the module. Will be included in PPD file. + +=end original + One line description of the module. Will be included in PPD file. +(TBT) =item ABSTRACT_FROM +=begin original + Name of the file that contains the package description. MakeMaker looks for a line in the POD matching /^($package\s-\s)(.*)/. This is typically the first line in the "=head1 NAME" section. $2 becomes the abstract. +=end original + +Name of the file that contains the package description. MakeMaker looks +for a line in the POD matching /^($package\s-\s)(.*)/. This is typically +the first line in the "=head1 NAME" section. $2 becomes the abstract. +(TBT) + =item AUTHOR AUTHOR +=begin original + String containing name (and email address) of package author(s). Is used in PPD (Perl Package Description) files for PPM (Perl Package Manager). +=end original + +String containing name (and email address) of package author(s). Is used +in PPD (Perl Package Description) files for PPM (Perl Package Manager). +(TBT) + =item BINARY_LOCATION +=begin original + +Used when creating PPD files for binary packages. It can be set to a +full or relative path or URL to the binary archive for a particular +architecture. For example: + +=end original + Used when creating PPD files for binary packages. It can be set to a full or relative path or URL to the binary archive for a particular architecture. For example: +(TBT) perl Makefile.PL BINARY_LOCATION=x86/Agent.tar.gz +=begin original + +builds a PPD package that references a binary of the C<Agent> package, +located in the C<x86> directory relative to the PPD itself. + +=end original + builds a PPD package that references a binary of the C<Agent> package, located in the C<x86> directory relative to the PPD itself. +(TBT) =item C +=begin original + +Ref to array of *.c file names. Initialised from a directory scan +and the values portion of the XS attribute hash. This is not +currently used by MakeMaker but may be handy in Makefile.PLs. + +=end original + Ref to array of *.c file names. Initialised from a directory scan and the values portion of the XS attribute hash. This is not currently used by MakeMaker but may be handy in Makefile.PLs. +(TBT) =item CCFLAGS +=begin original + +String that will be included in the compiler call command line between +the arguments INC and OPTIMIZE. + +=end original + String that will be included in the compiler call command line between the arguments INC and OPTIMIZE. +(TBT) =item CONFIG +=begin original + +Arrayref. E.g. [qw(archname manext)] defines ARCHNAME & MANEXT from +config.sh. MakeMaker will add to CONFIG the following values anyway: +ar +cc +cccdlflags +ccdlflags +dlext +dlsrc +ld +lddlflags +ldflags +libc +lib_ext +obj_ext +ranlib +sitelibexp +sitearchexp +so + +=end original + Arrayref. E.g. [qw(archname manext)] defines ARCHNAME & MANEXT from config.sh. MakeMaker will add to CONFIG the following values anyway: ar @@ -547,6 +915,7 @@ sitelibexp sitearchexp so +(TBT) =item CONFIGURE @@ -565,79 +934,224 @@ =item DEFINE +=begin original + +Something like C<"-DHAVE_UNISTD_H"> + +=end original + Something like C<"-DHAVE_UNISTD_H"> +(TBT) =item DESTDIR +=begin original + +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. + +=end original + 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. +(TBT) + +=begin original + +This is primarily of use for people who repackage Perl modules. + +=end original This is primarily of use for people who repackage Perl modules. +(TBT) + +=begin original + +NOTE: Due to the nature of make, it is important that you put the trailing +slash on your DESTDIR. "/tmp/" not "/tmp". + +=end original NOTE: Due to the nature of make, it is important that you put the trailing slash on your DESTDIR. "/tmp/" not "/tmp". +(TBT) =item DIR +=begin original + Ref to array of subdirectories containing Makefile.PLs e.g. [ 'sdbm' ] in ext/SDBM_File +=end original + +Ref to array of subdirectories containing Makefile.PLs e.g. [ 'sdbm' +] in ext/SDBM_File +(TBT) + =item DISTNAME +=begin original + +A safe filename for the package. + +=end original + A safe filename for the package. +(TBT) + +=begin original + +Defaults to NAME above but with :: replaced with -. + +=end original Defaults to NAME above but with :: replaced with -. +(TBT) + +=begin original + +For example, Foo::Bar becomes Foo-Bar. + +=end original For example, Foo::Bar becomes Foo-Bar. +(TBT) =item DISTVNAME +=begin original + +Your name for distributing the package with the version number +included. This is used by 'make dist' to name the resulting archive +file. + +=end original + Your name for distributing the package with the version number included. This is used by 'make dist' to name the resulting archive file. +(TBT) + +=begin original + +Defaults to DISTNAME-VERSION. + +=end original Defaults to DISTNAME-VERSION. +(TBT) + +=begin original + +For example, version 1.04 of Foo::Bar becomes Foo-Bar-1.04. + +=end original For example, version 1.04 of Foo::Bar becomes Foo-Bar-1.04. +(TBT) + +=begin original + +On some OS's where . has special meaning VERSION_SYM may be used in +place of VERSION. + +=end original On some OS's where . has special meaning VERSION_SYM may be used in place of VERSION. +(TBT) =item DL_FUNCS +=begin original + +Hashref of symbol names for routines to be made available as universal +symbols. Each key/value pair consists of the package name and an +array of routine names in that package. Used only under AIX, OS/2, +VMS and Win32 at present. The routine names supplied will be expanded +in the same way as XSUB names are expanded by the XS() macro. +Defaults to + +=end original + Hashref of symbol names for routines to be made available as universal symbols. Each key/value pair consists of the package name and an array of routine names in that package. Used only under AIX, OS/2, VMS and Win32 at present. The routine names supplied will be expanded in the same way as XSUB names are expanded by the XS() macro. Defaults to +(TBT) {"$(NAME)" => ["boot_$(NAME)" ] } +=begin original + +e.g. + +=end original + e.g. +(TBT) {"RPC" => [qw( boot_rpcb rpcb_gettime getnetconfigent )], "NetconfigPtr" => [ 'DESTROY'] } +=begin original + +Please see the L<ExtUtils::Mksymlists> documentation for more information +about the DL_FUNCS, DL_VARS and FUNCLIST attributes. + +=end original + Please see the L<ExtUtils::Mksymlists> documentation for more information about the DL_FUNCS, DL_VARS and FUNCLIST attributes. +(TBT) =item DL_VARS +=begin original + +Array of symbol names for variables to be made available as universal symbols. +Used only under AIX, OS/2, VMS and Win32 at present. Defaults to []. +(e.g. [ qw(Foo_version Foo_numstreams Foo_tree ) ]) + +=end original + Array of symbol names for variables to be made available as universal symbols. Used only under AIX, OS/2, VMS and Win32 at present. Defaults to []. (e.g. [ qw(Foo_version Foo_numstreams Foo_tree ) ]) +(TBT) =item EXCLUDE_EXT +=begin original + +Array of extension names to exclude when doing a static build. This +is ignored if INCLUDE_EXT is present. Consult INCLUDE_EXT for more +details. (e.g. [ qw( Socket POSIX ) ] ) + +=end original + Array of extension names to exclude when doing a static build. This is ignored if INCLUDE_EXT is present. Consult INCLUDE_EXT for more details. (e.g. [ qw( Socket POSIX ) ] ) +(TBT) + +=begin original + +This attribute may be most useful when specified as a string on the +command line: perl Makefile.PL EXCLUDE_EXT='Socket Safe' + +=end original This attribute may be most useful when specified as a string on the command line: perl Makefile.PL EXCLUDE_EXT='Socket Safe' +(TBT) =item EXE_FILES @@ -668,250 +1182,673 @@ =item FIRST_MAKEFILE +=begin original + +The name of the Makefile to be produced. This is used for the second +Makefile that will be produced for the MAP_TARGET. + +=end original + The name of the Makefile to be produced. This is used for the second Makefile that will be produced for the MAP_TARGET. +(TBT) + +=begin original + +Defaults to 'Makefile' or 'Descrip.MMS' on VMS. + +=end original Defaults to 'Makefile' or 'Descrip.MMS' on VMS. +(TBT) + +=begin original (Note: we couldn't use MAKEFILE because dmake uses this for something else). +=end original + +(Note: we couldn't use MAKEFILE because dmake uses this for something +else). +(TBT) + =item FULLPERL +=begin original + +Perl binary able to run this extension, load XS modules, etc... + +=end original + Perl binary able to run this extension, load XS modules, etc... +(TBT) =item FULLPERLRUN +=begin original + +Like PERLRUN, except it uses FULLPERL. + +=end original + Like PERLRUN, except it uses FULLPERL. +(TBT) =item FULLPERLRUNINST +=begin original + +Like PERLRUNINST, except it uses FULLPERL. + +=end original + Like PERLRUNINST, except it uses FULLPERL. +(TBT) =item FUNCLIST +=begin original + +This provides an alternate means to specify function names to be +exported from the extension. Its value is a reference to an +array of function names to be exported by the extension. These +names are passed through unaltered to the linker options file. + +=end original + This provides an alternate means to specify function names to be exported from the extension. Its value is a reference to an array of function names to be exported by the extension. These names are passed through unaltered to the linker options file. +(TBT) =item H +=begin original + +Ref to array of *.h file names. Similar to C. + +=end original + Ref to array of *.h file names. Similar to C. +(TBT) =item IMPORTS +=begin original + This attribute is used to specify names to be imported into the extension. Takes a hash ref. +=end original + +This attribute is used to specify names to be imported into the +extension. Takes a hash ref. +(TBT) + +=begin original + +It is only used on OS/2 and Win32. + +=end original + It is only used on OS/2 and Win32. +(TBT) =item INC +=begin original + +Include file dirs eg: C<"-I/usr/5include -I/path/to/inc"> + +=end original + Include file dirs eg: C<"-I/usr/5include -I/path/to/inc"> +(TBT) =item INCLUDE_EXT +=begin original + Array of extension names to be included when doing a static build. MakeMaker will normally build with all of the installed extensions when doing a static build, and that is usually the desired behavior. If INCLUDE_EXT is present then MakeMaker will build only with those extensions which are explicitly mentioned. (e.g. [ qw( Socket POSIX ) ]) +=end original + +Array of extension names to be included when doing a static build. +MakeMaker will normally build with all of the installed extensions when +doing a static build, and that is usually the desired behavior. If +INCLUDE_EXT is present then MakeMaker will build only with those extensions +which are explicitly mentioned. (e.g. [ qw( Socket POSIX ) ]) +(TBT) + +=begin original + +It is not necessary to mention DynaLoader or the current extension when +filling in INCLUDE_EXT. If the INCLUDE_EXT is mentioned but is empty then +only DynaLoader and the current extension will be included in the build. + +=end original + It is not necessary to mention DynaLoader or the current extension when filling in INCLUDE_EXT. If the INCLUDE_EXT is mentioned but is empty then only DynaLoader and the current extension will be included in the build. +(TBT) + +=begin original This attribute may be most useful when specified as a string on the command line: perl Makefile.PL INCLUDE_EXT='POSIX Socket Devel::Peek' +=end original + +This attribute may be most useful when specified as a string on the +command line: perl Makefile.PL INCLUDE_EXT='POSIX Socket Devel::Peek' +(TBT) + =item INSTALLARCHLIB +=begin original + +Used by 'make install', which copies files from INST_ARCHLIB to this +directory if INSTALLDIRS is set to perl. + +=end original + Used by 'make install', which copies files from INST_ARCHLIB to this directory if INSTALLDIRS is set to perl. +(TBT) =item INSTALLBIN +=begin original + Directory to install binary files (e.g. tkperl) into if INSTALLDIRS=perl. +=end original + +Directory to install binary files (e.g. tkperl) into if +INSTALLDIRS=perl. +(TBT) + =item INSTALLDIRS +=begin original + +Determines which of the sets of installation directories to choose: +perl, site or vendor. Defaults to site. + +=end original + Determines which of the sets of installation directories to choose: perl, site or vendor. Defaults to site. +(TBT) =item INSTALLMAN1DIR =item INSTALLMAN3DIR +=begin original + +These directories get the man pages at 'make install' time if +INSTALLDIRS=perl. Defaults to $Config{installman*dir}. + +=end original + These directories get the man pages at 'make install' time if INSTALLDIRS=perl. Defaults to $Config{installman*dir}. +(TBT) + +=begin original + +If set to 'none', no man pages will be installed. + +=end original If set to 'none', no man pages will be installed. +(TBT) =item INSTALLPRIVLIB +=begin original + Used by 'make install', which copies files from INST_LIB to this directory if INSTALLDIRS is set to perl. +=end original + +Used by 'make install', which copies files from INST_LIB to this +directory if INSTALLDIRS is set to perl. +(TBT) + +=begin original + +Defaults to $Config{installprivlib}. + +=end original + Defaults to $Config{installprivlib}. +(TBT) =item INSTALLSCRIPT +=begin original + Used by 'make install' which copies files from INST_SCRIPT to this directory. +=end original + +Used by 'make install' which copies files from INST_SCRIPT to this +directory. +(TBT) + =item INSTALLSITEARCH +=begin original + +Used by 'make install', which copies files from INST_ARCHLIB to this +directory if INSTALLDIRS is set to site (default). + +=end original + Used by 'make install', which copies files from INST_ARCHLIB to this directory if INSTALLDIRS is set to site (default). +(TBT) =item INSTALLSITEBIN +=begin original + +Used by 'make install', which copies files from INST_BIN to this +directory if INSTALLDIRS is set to site (default). + +=end original + Used by 'make install', which copies files from INST_BIN to this directory if INSTALLDIRS is set to site (default). +(TBT) =item INSTALLSITELIB +=begin original + +Used by 'make install', which copies files from INST_LIB to this +directory if INSTALLDIRS is set to site (default). + +=end original + Used by 'make install', which copies files from INST_LIB to this directory if INSTALLDIRS is set to site (default). +(TBT) =item INSTALLSITEMAN1DIR =item INSTALLSITEMAN3DIR +=begin original + +These directories get the man pages at 'make install' time if +INSTALLDIRS=site (default). Defaults to +$(SITEPREFIX)/man/man$(MAN*EXT). + +=end original + These directories get the man pages at 'make install' time if INSTALLDIRS=site (default). Defaults to $(SITEPREFIX)/man/man$(MAN*EXT). +(TBT) + +=begin original + +If set to 'none', no man pages will be installed. + +=end original If set to 'none', no man pages will be installed. +(TBT) =item INSTALLVENDORARCH +=begin original + +Used by 'make install', which copies files from INST_ARCHLIB to this +directory if INSTALLDIRS is set to vendor. + +=end original + Used by 'make install', which copies files from INST_ARCHLIB to this directory if INSTALLDIRS is set to vendor. +(TBT) =item INSTALLVENDORBIN +=begin original + +Used by 'make install', which copies files from INST_BIN to this +directory if INSTALLDIRS is set to vendor. + +=end original + Used by 'make install', which copies files from INST_BIN to this directory if INSTALLDIRS is set to vendor. +(TBT) =item INSTALLVENDORLIB +=begin original + +Used by 'make install', which copies files from INST_LIB to this +directory if INSTALLDIRS is set to vendor. + +=end original + Used by 'make install', which copies files from INST_LIB to this directory if INSTALLDIRS is set to vendor. +(TBT) =item INSTALLVENDORMAN1DIR =item INSTALLVENDORMAN3DIR +=begin original + +These directories get the man pages at 'make install' time if +INSTALLDIRS=vendor. Defaults to $(VENDORPREFIX)/man/man$(MAN*EXT). + +=end original + These directories get the man pages at 'make install' time if INSTALLDIRS=vendor. Defaults to $(VENDORPREFIX)/man/man$(MAN*EXT). +(TBT) + +=begin original If set to 'none', no man pages will be installed. +=end original + +If set to 'none', no man pages will be installed. +(TBT) + =item INST_ARCHLIB +=begin original + +Same as INST_LIB for architecture dependent files. + +=end original + Same as INST_LIB for architecture dependent files. +(TBT) =item INST_BIN +=begin original + +Directory to put real binary files during 'make'. These will be copied +to INSTALLBIN during 'make install' + +=end original + Directory to put real binary files during 'make'. These will be copied to INSTALLBIN during 'make install' +(TBT) =item INST_LIB +=begin original + +Directory where we put library files of this extension while building +it. + +=end original + Directory where we put library files of this extension while building it. +(TBT) =item INST_MAN1DIR +=begin original + +Directory to hold the man pages at 'make' time + +=end original + Directory to hold the man pages at 'make' time +(TBT) =item INST_MAN3DIR +=begin original + +Directory to hold the man pages at 'make' time + +=end original + Directory to hold the man pages at 'make' time +(TBT) =item INST_SCRIPT +=begin original + +Directory, where executable files should be installed during +'make'. Defaults to "./blib/script", just to have a dummy location during +testing. make install will copy the files in INST_SCRIPT to +INSTALLSCRIPT. + +=end original + Directory, where executable files should be installed during 'make'. Defaults to "./blib/script", just to have a dummy location during testing. make install will copy the files in INST_SCRIPT to INSTALLSCRIPT. +(TBT) =item LD +=begin original + +Program to be used to link libraries for dynamic loading. + +=end original + Program to be used to link libraries for dynamic loading. +(TBT) + +=begin original + +Defaults to $Config{ld}. + +=end original Defaults to $Config{ld}. +(TBT) =item LDDLFLAGS +=begin original + +Any special flags that might need to be passed to ld to create a +shared library suitable for dynamic loading. It is up to the makefile +to use it. (See L<Config/lddlflags>) + +=end original + Any special flags that might need to be passed to ld to create a shared library suitable for dynamic loading. It is up to the makefile to use it. (See L<Config/lddlflags>) +(TBT) + +=begin original + +Defaults to $Config{lddlflags}. + +=end original Defaults to $Config{lddlflags}. +(TBT) =item LDFROM +=begin original + +Defaults to "$(OBJECT)" and is used in the ld command to specify +what files to link/load from (also see dynamic_lib below for how to +specify ld flags) + +=end original + Defaults to "$(OBJECT)" and is used in the ld command to specify what files to link/load from (also see dynamic_lib below for how to specify ld flags) +(TBT) =item LIB +=begin original + +LIB should only be set at C<perl Makefile.PL> time but is allowed as a +MakeMaker argument. It has the effect of setting both INSTALLPRIVLIB +and INSTALLSITELIB to that value regardless any explicit setting of +those arguments (or of PREFIX). INSTALLARCHLIB and INSTALLSITEARCH +are set to the corresponding architecture subdirectory. + +=end original + LIB should only be set at C<perl Makefile.PL> time but is allowed as a MakeMaker argument. It has the effect of setting both INSTALLPRIVLIB and INSTALLSITELIB to that value regardless any explicit setting of those arguments (or of PREFIX). INSTALLARCHLIB and INSTALLSITEARCH are set to the corresponding architecture subdirectory. +(TBT) =item LIBPERL_A +=begin original + +The filename of the perllibrary that will be used together with this +extension. Defaults to libperl.a. + +=end original + The filename of the perllibrary that will be used together with this extension. Defaults to libperl.a. +(TBT) =item LIBS +=begin original + +An anonymous array of alternative library +specifications to be searched for (in order) until +at least one library is found. E.g. + +=end original + An anonymous array of alternative library specifications to be searched for (in order) until at least one library is found. E.g. +(TBT) 'LIBS' => ["-lgdbm", "-ldbm -lfoo", "-L/path -ldbm.nfs"] +=begin original + +Mind, that any element of the array +contains a complete set of arguments for the ld +command. So do not specify + +=end original + Mind, that any element of the array contains a complete set of arguments for the ld command. So do not specify +(TBT) 'LIBS' => ["-ltcl", "-ltk", "-lX11"] +=begin original + +See ODBM_File/Makefile.PL for an example, where an array is needed. If +you specify a scalar as in + +=end original + See ODBM_File/Makefile.PL for an example, where an array is needed. If you specify a scalar as in +(TBT) 'LIBS' => "-ltcl -ltk -lX11" +=begin original + +MakeMaker will turn it into an array with one element. + +=end original + MakeMaker will turn it into an array with one element. +(TBT) =item LINKTYPE +=begin original + +'static' or 'dynamic' (default unless usedl=undef in +config.sh). Should only be used to force static linking (also see +linkext below). + +=end original + 'static' or 'dynamic' (default unless usedl=undef in config.sh). Should only be used to force static linking (also see linkext below). +(TBT) =item MAKEAPERL +=begin original + +Boolean which tells MakeMaker, that it should include the rules to +make a perl. This is handled automatically as a switch by +MakeMaker. The user normally does not need it. + +=end original + Boolean which tells MakeMaker, that it should include the rules to make a perl. This is handled automatically as a switch by MakeMaker. The user normally does not need it. +(TBT) =item MAKEFILE_OLD +=begin original + +When 'make clean' or similar is run, the $(FIRST_MAKEFILE) will be +backed up at this location. + +=end original + When 'make clean' or similar is run, the $(FIRST_MAKEFILE) will be backed up at this location. +(TBT) + +=begin original Defaults to $(FIRST_MAKEFILE).old or $(FIRST_MAKEFILE)_old on VMS. +=end original + +Defaults to $(FIRST_MAKEFILE).old or $(FIRST_MAKEFILE)_old on VMS. +(TBT) + =item MAN1PODS =begin original @@ -952,69 +1889,182 @@ =item MAP_TARGET +=begin original + +If it is intended, that a new perl binary be produced, this variable +may hold a name for that binary. Defaults to perl + +=end original + If it is intended, that a new perl binary be produced, this variable may hold a name for that binary. Defaults to perl +(TBT) =item MYEXTLIB +=begin original + +If the extension links to a library that it builds set this to the +name of the library (see SDBM_File) + +=end original + If the extension links to a library that it builds set this to the name of the library (see SDBM_File) +(TBT) =item NAME NAME +=begin original + +Perl module name for this extension (DBD::Oracle). This will default +to the directory name but should be explicitly defined in the +Makefile.PL. + +=end original + Perl module name for this extension (DBD::Oracle). This will default to the directory name but should be explicitly defined in the Makefile.PL. +(TBT) =item NEEDS_LINKING +=begin original + +MakeMaker will figure out if an extension contains linkable code +anywhere down the directory tree, and will set this variable +accordingly, but you can speed it up a very little bit if you define +this boolean variable yourself. + +=end original + MakeMaker will figure out if an extension contains linkable code anywhere down the directory tree, and will set this variable accordingly, but you can speed it up a very little bit if you define this boolean variable yourself. +(TBT) =item NOECHO +=begin original + +Command so make does not print the literal commands its running. + +=end original + Command so make does not print the literal commands its running. +(TBT) + +=begin original + +By setting it to an empty string you can generate a Makefile that +prints all commands. Mainly used in debugging MakeMaker itself. + +=end original By setting it to an empty string you can generate a Makefile that prints all commands. Mainly used in debugging MakeMaker itself. +(TBT) + +=begin original Defaults to C<@>. +=end original + +Defaults to C<@>. +(TBT) + =item NORECURS +=begin original + +Boolean. Attribute to inhibit descending into subdirectories. + +=end original + Boolean. Attribute to inhibit descending into subdirectories. +(TBT) =item NO_META +=begin original + +When true, suppresses the generation and addition to the MANIFEST of +the META.yml module meta-data file during 'make distdir'. + +=end original + When true, suppresses the generation and addition to the MANIFEST of the META.yml module meta-data file during 'make distdir'. +(TBT) + +=begin original + +Defaults to false. + +=end original Defaults to false. +(TBT) =item NO_VC +=begin original + +In general, any generated Makefile checks for the current version of +MakeMaker and the version the Makefile was built under. If NO_VC is +set, the version check is neglected. Do not write this into your +Makefile.PL, use it interactively instead. + +=end original + In general, any generated Makefile checks for the current version of MakeMaker and the version the Makefile was built under. If NO_VC is set, the version check is neglected. Do not write this into your Makefile.PL, use it interactively instead. +(TBT) =item OBJECT +=begin original + +List of object files, defaults to '$(BASEEXT)$(OBJ_EXT)', but can be a long +string containing all object files, e.g. "tkpBind.o +tkpButton.o tkpCanvas.o" + +=end original + List of object files, defaults to '$(BASEEXT)$(OBJ_EXT)', but can be a long string containing all object files, e.g. "tkpBind.o tkpButton.o tkpCanvas.o" +(TBT) + +=begin original + +(Where BASEEXT is the last component of NAME, and OBJ_EXT is $Config{obj_ext}.) + +=end original (Where BASEEXT is the last component of NAME, and OBJ_EXT is $Config{obj_ext}.) +(TBT) =item OPTIMIZE +=begin original + Defaults to C<-O>. Set it to C<-g> to turn debugging on. The flag is passed to subdirectory makes. +=end original + +Defaults to C<-O>. Set it to C<-g> to turn debugging on. The flag is +passed to subdirectory makes. +(TBT) + =item PERL =begin original @@ -1051,57 +2101,153 @@ =item PERL_ARCHLIB +=begin original + +Same as for PERL_LIB, but for architecture dependent files. + +=end original + Same as for PERL_LIB, but for architecture dependent files. +(TBT) + +=begin original + +Used only when MakeMaker is building the extensions of the Perl core +distribution (because normally $(PERL_ARCHLIB) is automatically in @INC, +and adding it would get in the way of PERL5LIB). + +=end original Used only when MakeMaker is building the extensions of the Perl core distribution (because normally $(PERL_ARCHLIB) is automatically in @INC, and adding it would get in the way of PERL5LIB). +(TBT) =item PERL_LIB +=begin original + +Directory containing the Perl library to use. + +=end original + Directory containing the Perl library to use. +(TBT) + +=begin original + +Used only when MakeMaker is building the extensions of the Perl core +distribution (because normally $(PERL_LIB) is automatically in @INC, +and adding it would get in the way of PERL5LIB). + +=end original Used only when MakeMaker is building the extensions of the Perl core distribution (because normally $(PERL_LIB) is automatically in @INC, and adding it would get in the way of PERL5LIB). +(TBT) =item PERL_MALLOC_OK +=begin original + +defaults to 0. Should be set to TRUE if the extension can work with +the memory allocation routines substituted by the Perl malloc() subsystem. +This should be applicable to most extensions with exceptions of those + +=end original + defaults to 0. Should be set to TRUE if the extension can work with the memory allocation routines substituted by the Perl malloc() subsystem. This should be applicable to most extensions with exceptions of those +(TBT) =over 4 =item * +=begin original + +with bugs in memory allocations which are caught by Perl's malloc(); + +=end original + with bugs in memory allocations which are caught by Perl's malloc(); +(TBT) =item * +=begin original + +which interact with the memory allocator in other ways than via +malloc(), realloc(), free(), calloc(), sbrk() and brk(); + +=end original + which interact with the memory allocator in other ways than via malloc(), realloc(), free(), calloc(), sbrk() and brk(); +(TBT) =item * +=begin original + which rely on special alignment which is not provided by Perl's malloc(). +=end original + +which rely on special alignment which is not provided by Perl's malloc(). +(TBT) + =back +=begin original + +B<NOTE.> Negligence to set this flag in I<any one> of loaded extension +nullifies many advantages of Perl's malloc(), such as better usage of +system resources, error detection, memory usage reporting, catchable failure +of memory allocations, etc. + +=end original + B<NOTE.> Negligence to set this flag in I<any one> of loaded extension nullifies many advantages of Perl's malloc(), such as better usage of system resources, error detection, memory usage reporting, catchable failure of memory allocations, etc. +(TBT) =item PERLPREFIX +=begin original + +Directory under which core modules are to be installed. + +=end original + Directory under which core modules are to be installed. +(TBT) + +=begin original + +Defaults to $Config{installprefixexp} falling back to +$Config{installprefix}, $Config{prefixexp} or $Config{prefix} should +$Config{installprefixexp} not exist. + +=end original Defaults to $Config{installprefixexp} falling back to $Config{installprefix}, $Config{prefixexp} or $Config{prefix} should $Config{installprefixexp} not exist. +(TBT) + +=begin original + +Overridden by PREFIX. + +=end original Overridden by PREFIX. +(TBT) =item PERLRUN @@ -1132,32 +2278,75 @@ =item PERL_SRC +=begin original + +Directory containing the Perl source code (use of this should be +avoided, it may be undefined) + +=end original + Directory containing the Perl source code (use of this should be avoided, it may be undefined) +(TBT) =item PERM_RW +=begin original + +Desired permission for read/writable files. Defaults to C<644>. +See also L<MM_Unix/perm_rw>. + +=end original + Desired permission for read/writable files. Defaults to C<644>. See also L<MM_Unix/perm_rw>. +(TBT) =item PERM_RWX +=begin original + +Desired permission for executable files. Defaults to C<755>. +See also L<MM_Unix/perm_rwx>. + +=end original + Desired permission for executable files. Defaults to C<755>. See also L<MM_Unix/perm_rwx>. +(TBT) =item PL_FILES +=begin original + 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. +=end original + +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. +(TBT) + {'foobar.PL' => 'foobar'} +=begin original + 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. +=end original + +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. +(TBT) + {'foobar.PL' => ['foobar1','foobar2']} =item PM @@ -1215,85 +2404,225 @@ =item PM_FILTER +=begin original + +A filter program, in the traditional Unix sense (input from stdin, output +to stdout) that is passed on each .pm file during the build (in the +pm_to_blib() phase). It is empty by default, meaning no filtering is done. + +=end original + A filter program, in the traditional Unix sense (input from stdin, output to stdout) that is passed on each .pm file during the build (in the pm_to_blib() phase). It is empty by default, meaning no filtering is done. +(TBT) + +=begin original + +Great care is necessary when defining the command if quoting needs to be +done. For instance, you would need to say: + +=end original Great care is necessary when defining the command if quoting needs to be done. For instance, you would need to say: +(TBT) {'PM_FILTER' => 'grep -v \\"^\\#\\"'} +=begin original + +to remove all the leading coments on the fly during the build. The +extra \\ are necessary, unfortunately, because this variable is interpolated +within the context of a Perl program built on the command line, and double +quotes are what is used with the -e switch to build that command line. The +# is escaped for the Makefile, since what is going to be generated will then +be: + +=end original + to remove all the leading coments on the fly during the build. The extra \\ are necessary, unfortunately, because this variable is interpolated within the context of a Perl program built on the command line, and double quotes are what is used with the -e switch to build that command line. The # is escaped for the Makefile, since what is going to be generated will then be: +(TBT) PM_FILTER = grep -v \"^\#\" +=begin original + +Without the \\ before the #, we'd have the start of a Makefile comment, +and the macro would be incorrectly defined. + +=end original + Without the \\ before the #, we'd have the start of a Makefile comment, and the macro would be incorrectly defined. +(TBT) + +=item POLLUTE + +=begin original + +Release 5.005 grandfathered old global symbol names by providing preprocessor +macros for extension source compatibility. As of release 5.6, these +preprocessor definitions are not available by default. The POLLUTE flag +specifies that the old names should still be defined: -=item POLLUTE +=end original Release 5.005 grandfathered old global symbol names by providing preprocessor macros for extension source compatibility. As of release 5.6, these preprocessor definitions are not available by default. The POLLUTE flag specifies that the old names should still be defined: +(TBT) perl Makefile.PL POLLUTE=1 +=begin original + +Please inform the module author if this is necessary to successfully install +a module under 5.6 or later. + +=end original + Please inform the module author if this is necessary to successfully install a module under 5.6 or later. +(TBT) =item PPM_INSTALL_EXEC +=begin original + +Name of the executable used to run C<PPM_INSTALL_SCRIPT> below. (e.g. perl) + +=end original + Name of the executable used to run C<PPM_INSTALL_SCRIPT> below. (e.g. perl) +(TBT) =item PPM_INSTALL_SCRIPT +=begin original + +Name of the script that gets executed by the Perl Package Manager after +the installation of a package. + +=end original + Name of the script that gets executed by the Perl Package Manager after the installation of a package. +(TBT) =item PREFIX +=begin original + +This overrides all the default install locations. Man pages, +libraries, scripts, etc... MakeMaker will try to make an educated +guess about where to place things under the new PREFIX based on your +Config defaults. Failing that, it will fall back to a structure +which should be sensible for your platform. + +=end original + This overrides all the default install locations. Man pages, libraries, scripts, etc... MakeMaker will try to make an educated guess about where to place things under the new PREFIX based on your Config defaults. Failing that, it will fall back to a structure which should be sensible for your platform. +(TBT) + +=begin original + +If you specify LIB or any INSTALL* variables they will not be effected +by the PREFIX. + +=end original If you specify LIB or any INSTALL* variables they will not be effected by the PREFIX. +(TBT) =item PREREQ_FATAL +=begin original + +Bool. If this parameter is true, failing to have the required modules +(or the right versions thereof) will be fatal. perl Makefile.PL will die +with the proper message. + +=end original + Bool. If this parameter is true, failing to have the required modules (or the right versions thereof) will be fatal. perl Makefile.PL will die with the proper message. +(TBT) + +=begin original Note: see L<Test::Harness> for a shortcut for stopping tests early if you are missing dependencies. +=end original + +kNote: see L<Test::Harness> for a shortcut for stopping tests early if +you are missing dependencies. +(TBT) + +=begin original + Do I<not> use this parameter for simple requirements, which could be resolved at a later time, e.g. after an unsuccessful B<make test> of your module. +=end original + +Do I<not> use this parameter for simple requirements, which could be resolved +at a later time, e.g. after an unsuccessful B<make test> of your module. +(TBT) + +=begin original + +It is I<extremely> rare to have to use C<PREREQ_FATAL> at all! + +=end original + It is I<extremely> rare to have to use C<PREREQ_FATAL> at all! +(TBT) =item PREREQ_PM +=begin original + +Hashref: Names of modules that need to be available to run this +extension (e.g. Fcntl for SDBM_File) are the keys of the hash and the +desired version is the value. If the required version number is 0, we +only check if any version is installed already. + +=end original + Hashref: Names of modules that need to be available to run this extension (e.g. Fcntl for SDBM_File) are the keys of the hash and the desired version is the value. If the required version number is 0, we only check if any version is installed already. +(TBT) =item PREREQ_PRINT +=begin original + +Bool. If this parameter is true, the prerequisites will be printed to +stdout and MakeMaker will exit. The output format is an evalable hash +ref. + +=end original + Bool. If this parameter is true, the prerequisites will be printed to stdout and MakeMaker will exit. The output format is an evalable hash ref. +(TBT) $PREREQ_PM = { 'A::B' => Vers1, @@ -1303,83 +2632,216 @@ =item PRINT_PREREQ +=begin original + +RedHatism for C<PREREQ_PRINT>. The output format is different, though: + +=end original + RedHatism for C<PREREQ_PRINT>. The output format is different, though: +(TBT) perl(A::B)>=Vers1 perl(C::D)>=Vers2 ... =item SITEPREFIX +=begin original + +Like PERLPREFIX, but only for the site install locations. + +=end original + Like PERLPREFIX, but only for the site install locations. +(TBT) + +=begin original + +Defaults to $Config{siteprefixexp}. Perls prior to 5.6.0 didn't have +an explicit siteprefix in the Config. In those cases +$Config{installprefix} will be used. + +=end original Defaults to $Config{siteprefixexp}. Perls prior to 5.6.0 didn't have an explicit siteprefix in the Config. In those cases $Config{installprefix} will be used. +(TBT) + +=begin original + +Overridable by PREFIX + +=end original Overridable by PREFIX +(TBT) =item SKIP +=begin original + Arrayref. E.g. [qw(name1 name2)] skip (do not write) sections of the Makefile. Caution! Do not use the SKIP attribute for the negligible speedup. It may seriously damage the resulting Makefile. Only use it if you really need it. +=end original + +Arrayref. E.g. [qw(name1 name2)] skip (do not write) sections of the +Makefile. Caution! Do not use the SKIP attribute for the negligible +speedup. It may seriously damage the resulting Makefile. Only use it +if you really need it. +(TBT) + =item TYPEMAPS +=begin original + +Ref to array of typemap file names. Use this when the typemaps are +in some directory other than the current directory or when they are +not named B<typemap>. The last typemap in the list takes +precedence. A typemap in the current directory has highest +precedence, even if it isn't listed in TYPEMAPS. The default system +typemap has lowest precedence. + +=end original + Ref to array of typemap file names. Use this when the typemaps are in some directory other than the current directory or when they are not named B<typemap>. The last typemap in the list takes precedence. A typemap in the current directory has highest precedence, even if it isn't listed in TYPEMAPS. The default system typemap has lowest precedence. +(TBT) =item VENDORPREFIX +=begin original + +Like PERLPREFIX, but only for the vendor install locations. + +=end original + Like PERLPREFIX, but only for the vendor install locations. +(TBT) + +=begin original + +Defaults to $Config{vendorprefixexp}. + +=end original Defaults to $Config{vendorprefixexp}. +(TBT) + +=begin original Overridable by PREFIX +=end original + +Overridable by PREFIX +(TBT) + =item VERBINST +=begin original + +If true, make install will be verbose + +=end original + If true, make install will be verbose +(TBT) =item VERSION VERSION +=begin original + +Your version number for distributing the package. This defaults to +0.1. + +=end original + Your version number for distributing the package. This defaults to 0.1. +(TBT) =item VERSION_FROM +=begin original + +Instead of specifying the VERSION in the Makefile.PL you can let +MakeMaker parse a file to determine the version number. The parsing +routine requires that the file named by VERSION_FROM contains one +single line to compute the version number. The first line in the file +that contains the regular expression + +=end original + Instead of specifying the VERSION in the Makefile.PL you can let MakeMaker parse a file to determine the version number. The parsing routine requires that the file named by VERSION_FROM contains one single line to compute the version number. The first line in the file that contains the regular expression +(TBT) /([\$*])(([\w\:\']*)\bVERSION)\b.*\=/ +=begin original + +will be evaluated with eval() and the value of the named variable +B<after> the eval() will be assigned to the VERSION attribute of the +MakeMaker object. The following lines will be parsed o.k.: + +=end original + will be evaluated with eval() and the value of the named variable B<after> the eval() will be assigned to the VERSION attribute of the MakeMaker object. The following lines will be parsed o.k.: +(TBT) $VERSION = '1.00'; *VERSION = \'1.01'; - $VERSION = sprintf "%d.%03d", q$Revision: 1.1 $ =~ /(\d+)/g; + $VERSION = sprintf "%d.%03d", q$Revision: 1.2 $ =~ /(\d+)/g; $FOO::VERSION = '1.10'; *FOO::VERSION = \'1.11'; our $VERSION = 1.2.3; # new for perl5.6.0 +=begin original + +but these will fail: + +=end original + but these will fail: +(TBT) my $VERSION = '1.01'; local $VERSION = '1.02'; local $FOO::VERSION = '1.30'; +=begin original + +(Putting C<my> or C<local> on the preceding line will work o.k.) + +=end original + (Putting C<my> or C<local> on the preceding line will work o.k.) +(TBT) + +=begin original + +The file named in VERSION_FROM is not added as a dependency to +Makefile. This is not really correct, but it would be a major pain +during development to have to rewrite the Makefile for any smallish +change in that file. If you want to make sure that the Makefile +contains the correct VERSION macro after any change of the file, you +would have to do something like + +=end original The file named in VERSION_FROM is not added as a dependency to Makefile. This is not really correct, but it would be a major pain @@ -1387,41 +2849,98 @@ change in that file. If you want to make sure that the Makefile contains the correct VERSION macro after any change of the file, you would have to do something like +(TBT) depend => { Makefile => '$(VERSION_FROM)' } +=begin original + +See attribute C<depend> below. + +=end original + See attribute C<depend> below. +(TBT) =item VERSION_SYM +=begin original + +A sanitized VERSION with . replaced by _. For places where . has +special meaning (some filesystems, RCS labels, etc...) + +=end original + A sanitized VERSION with . replaced by _. For places where . has special meaning (some filesystems, RCS labels, etc...) +(TBT) =item XS +=begin original + +Hashref of .xs files. MakeMaker will default this. e.g. + +=end original + Hashref of .xs files. MakeMaker will default this. e.g. +(TBT) {'name_of_file.xs' => 'name_of_file.c'} +=begin original + +The .c files will automatically be included in the list of files +deleted by a make clean. + +=end original + The .c files will automatically be included in the list of files deleted by a make clean. +(TBT) =item XSOPT +=begin original + +String of options to pass to xsubpp. This might include C<-C++> or +C<-extern>. Do not include typemaps here; the TYPEMAP parameter exists for +that purpose. + +=end original + String of options to pass to xsubpp. This might include C<-C++> or C<-extern>. Do not include typemaps here; the TYPEMAP parameter exists for that purpose. +(TBT) =item XSPROTOARG +=begin original + +May be set to an empty string, which is identical to C<-prototypes>, or +C<-noprototypes>. See the xsubpp documentation for details. MakeMaker +defaults to the empty string. + +=end original + May be set to an empty string, which is identical to C<-prototypes>, or C<-noprototypes>. See the xsubpp documentation for details. MakeMaker defaults to the empty string. +(TBT) =item XS_VERSION +=begin original + +Your version number for the .xs file of this package. This defaults +to the value of the VERSION attribute. + +=end original + Your version number for the .xs file of this package. This defaults to the value of the VERSION attribute. +(TBT) =back @@ -1491,17 +3010,33 @@ {ARMAYBE => 'ar', OTHERLDFLAGS => '...', INST_DYNAMIC_DEP => '...'} -=item linkext +=item linkext + + {LINKTYPE => 'static', 'dynamic' or ''} + +=begin original + +NB: Extensions that have nothing but *.pm files had to say - {LINKTYPE => 'static', 'dynamic' or ''} +=end original NB: Extensions that have nothing but *.pm files had to say +(TBT) {LINKTYPE => ''} +=begin original + +with Pre-5.0 MakeMakers. Since version 5.00 of MakeMaker such a line +can be deleted safely. MakeMaker recognizes when there's nothing to +be linked. + +=end original + with Pre-5.0 MakeMakers. Since version 5.00 of MakeMaker such a line can be deleted safely. MakeMaker recognizes when there's nothing to be linked. +(TBT) =item macro @@ -1509,7 +3044,14 @@ =item postamble +=begin original + +Anything put here will be passed to MY::postamble() if you have one. + +=end original + Anything put here will be passed to MY::postamble() if you have one. +(TBT) =item realclean @@ -1529,15 +3071,33 @@ (¥á¥½¥Ã¥É¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É) +=begin original + +If you cannot achieve the desired Makefile behaviour by specifying +attributes you may define private subroutines in the Makefile.PL. +Each subroutine returns the text it wishes to have written to +the Makefile. To override a section of the Makefile you can +either say: + +=end original + If you cannot achieve the desired Makefile behaviour by specifying attributes you may define private subroutines in the Makefile.PL. Each subroutine returns the text it wishes to have written to the Makefile. To override a section of the Makefile you can either say: +(TBT) sub MY::c_o { "new literal text" } +=begin original + +or you can edit the default by saying something like: + +=end original + or you can edit the default by saying something like: +(TBT) package MY; # so that "SUPER" works right sub c_o { @@ -1546,20 +3106,55 @@ $inherited; } +=begin original + +If you are running experiments with embedding perl as a library into +other applications, you might find MakeMaker is not sufficient. You'd +better have a look at ExtUtils::Embed which is a collection of utilities +for embedding. + +=end original + If you are running experiments with embedding perl as a library into other applications, you might find MakeMaker is not sufficient. You'd better have a look at ExtUtils::Embed which is a collection of utilities for embedding. +(TBT) + +=begin original + +If you still need a different solution, try to develop another +subroutine that fits your needs and submit the diffs to +F<makem****@perl*****> + +=end original If you still need a different solution, try to develop another subroutine that fits your needs and submit the diffs to F<makem****@perl*****> +(TBT) + +=begin original + +For a complete description of all MakeMaker methods see +L<ExtUtils::MM_Unix>. + +=end original For a complete description of all MakeMaker methods see L<ExtUtils::MM_Unix>. +(TBT) + +=begin original + +Here is a simple example of how to add a new target to the generated +Makefile: + +=end original Here is a simple example of how to add a new target to the generated Makefile: +(TBT) sub MY::postamble { return <<'MAKE_FRAG'; @@ -1573,10 +3168,20 @@ (¥«¡¼¥´¥«¥ë¥È¥×¥í¥°¥é¥ß¥ó¥°¤È¤Î·èÊÌ) +=begin original + +WriteMakefile() now does some basic sanity checks on its parameters to +protect against typos and malformatted values. This means some things +which happened to work in the past will now throw warnings and +possibly produce internal errors. + +=end original + WriteMakefile() now does some basic sanity checks on its parameters to protect against typos and malformatted values. This means some things which happened to work in the past will now throw warnings and possibly produce internal errors. +(TBT) =begin original @@ -1617,6 +3222,19 @@ (hints ¥Õ¥¡¥¤¥ë¤Î¥µ¥Ý¡¼¥È) +=begin original + +MakeMaker.pm uses the architecture specific information from +Config.pm. In addition it evaluates architecture specific hints files +in a C<hints/> directory. The hints files are expected to be named +like their counterparts in C<PERL_SRC/hints>, but with an C<.pl> file +name extension (eg. C<next_3_2.pl>). They are simply C<eval>ed by +MakeMaker within the WriteMakefile() subroutine, and can be used to +execute commands as well as to include special variables. The rules +which hintsfile is chosen are the same as in Configure. + +=end original + MakeMaker.pm uses the architecture specific information from Config.pm. In addition it evaluates architecture specific hints files in a C<hints/> directory. The hints files are expected to be named @@ -1625,11 +3243,22 @@ MakeMaker within the WriteMakefile() subroutine, and can be used to execute commands as well as to include special variables. The rules which hintsfile is chosen are the same as in Configure. +(TBT) + +=begin original + +The hintsfile is eval()ed immediately after the arguments given to +WriteMakefile are stuffed into a hash reference $self but before this +reference becomes blessed. So if you want to do the equivalent to +override or create an attribute you would say something like + +=end original The hintsfile is eval()ed immediately after the arguments given to WriteMakefile are stuffed into a hash reference $self but before this reference becomes blessed. So if you want to do the equivalent to override or create an attribute you would say something like +(TBT) $self->{LIBS} = ['-ldbm -lucb -lc']; @@ -1654,83 +3283,207 @@ =item make distcheck +=begin original + +reports which files are below the build directory but not in the +MANIFEST file and vice versa. (See ExtUtils::Manifest::fullcheck() for +details) + +=end original + reports which files are below the build directory but not in the MANIFEST file and vice versa. (See ExtUtils::Manifest::fullcheck() for details) +(TBT) =item make skipcheck +=begin original + +reports which files are skipped due to the entries in the +C<MANIFEST.SKIP> file (See ExtUtils::Manifest::skipcheck() for +details) + +=end original + reports which files are skipped due to the entries in the C<MANIFEST.SKIP> file (See ExtUtils::Manifest::skipcheck() for details) +(TBT) =item make distclean +=begin original + +does a realclean first and then the distcheck. Note that this is not +needed to build a new distribution as long as you are sure that the +MANIFEST file is ok. + +=end original + does a realclean first and then the distcheck. Note that this is not needed to build a new distribution as long as you are sure that the MANIFEST file is ok. +(TBT) =item make manifest +=begin original + +rewrites the MANIFEST file, adding all remaining files found (See +ExtUtils::Manifest::mkmanifest() for details) + +=end original + rewrites the MANIFEST file, adding all remaining files found (See ExtUtils::Manifest::mkmanifest() for details) +(TBT) =item make distdir +=begin original + +Copies all the files that are in the MANIFEST file to a newly created +directory with the name C<$(DISTNAME)-$(VERSION)>. If that directory +exists, it will be removed first. + +=end original + Copies all the files that are in the MANIFEST file to a newly created directory with the name C<$(DISTNAME)-$(VERSION)>. If that directory exists, it will be removed first. +(TBT) + +=begin original + +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. + +=end original 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. +(TBT) =item make disttest +=begin original + +Makes a distdir first, and runs a C<perl Makefile.PL>, a make, and +a make test in that directory. + +=end original + Makes a distdir first, and runs a C<perl Makefile.PL>, a make, and a make test in that directory. +(TBT) =item make tardist +=begin original + +First does a distdir. Then a command $(PREOP) which defaults to a null +command, followed by $(TOUNIX), which defaults to a null command under +UNIX, and will convert files in distribution directory to UNIX format +otherwise. Next it runs C<tar> on that directory into a tarfile and +deletes the directory. Finishes with a command $(POSTOP) which +defaults to a null command. + +=end original + First does a distdir. Then a command $(PREOP) which defaults to a null command, followed by $(TOUNIX), which defaults to a null command under UNIX, and will convert files in distribution directory to UNIX format otherwise. Next it runs C<tar> on that directory into a tarfile and deletes the directory. Finishes with a command $(POSTOP) which defaults to a null command. +(TBT) =item make dist +=begin original + +Defaults to $(DIST_DEFAULT) which in turn defaults to tardist. + +=end original + Defaults to $(DIST_DEFAULT) which in turn defaults to tardist. +(TBT) =item make uutardist +=begin original + +Runs a tardist first and uuencodes the tarfile. + +=end original + Runs a tardist first and uuencodes the tarfile. +(TBT) =item make shdist +=begin original + First does a distdir. Then a command $(PREOP) which defaults to a null command. Next it runs C<shar> on that directory into a sharfile and deletes the intermediate directory again. Finishes with a command $(POSTOP) which defaults to a null command. Note: For shdist to work properly a C<shar> program that can handle directories is mandatory. +=end original + +First does a distdir. Then a command $(PREOP) which defaults to a null +command. Next it runs C<shar> on that directory into a sharfile and +deletes the intermediate directory again. Finishes with a command +$(POSTOP) which defaults to a null command. Note: For shdist to work +properly a C<shar> program that can handle directories is mandatory. +(TBT) + =item make zipdist +=begin original + +First does a distdir. Then a command $(PREOP) which defaults to a null +command. Runs C<$(ZIP) $(ZIPFLAGS)> on that directory into a +zipfile. Then deletes that directory. Finishes with a command +$(POSTOP) which defaults to a null command. + +=end original + First does a distdir. Then a command $(PREOP) which defaults to a null command. Runs C<$(ZIP) $(ZIPFLAGS)> on that directory into a zipfile. Then deletes that directory. Finishes with a command $(POSTOP) which defaults to a null command. +(TBT) =item make ci +=begin original + +Does a $(CI) and a $(RCS_LABEL) on all files in the MANIFEST file. + +=end original + Does a $(CI) and a $(RCS_LABEL) on all files in the MANIFEST file. +(TBT) =back +=begin original + +Customization of the dist targets can be done by specifying a hash +reference to the dist attribute of the WriteMakefile call. The +following parameters are recognized: + +=end original + Customization of the dist targets can be done by specifying a hash reference to the dist attribute of the WriteMakefile call. The following parameters are recognized: +(TBT) CI ('ci -u') COMPRESS ('gzip --best') @@ -1817,14 +3570,33 @@ (³ÈÄ¥¤Î̵¸ú²½) +=begin original + +If some events detected in F<Makefile.PL> imply that there is no way +to create the Module, but this is a normal state of things, then you +can create a F<Makefile> which does nothing, but succeeds on all the +"usual" build targets. To do so, use + +=end original + If some events detected in F<Makefile.PL> imply that there is no way to create the Module, but this is a normal state of things, then you can create a F<Makefile> which does nothing, but succeeds on all the "usual" build targets. To do so, use +(TBT) ExtUtils::MakeMaker::WriteEmptyMakefile(); +=begin original + +instead of WriteMakefile(). + +=end original + instead of WriteMakefile(). +(TBT) + +=begin original This may be useful if other modules expect this module to be I<built> OK, as opposed to I<work> OK (say, this system-dependent module builds @@ -1832,6 +3604,15 @@ dependency in a CPAN::Bundle, but the functionality is supported by different means on the current architecture). +=end original + +This may be useful if other modules expect this module to be I<built> +OK, as opposed to I<work> OK (say, this system-dependent module builds +in a subdirectory of some other distribution, or is listed as a +dependency in a CPAN::Bundle, but the functionality is supported by +different means on the current architecture). +(TBT) + =head2 Other Handy Functions (¤½¤Î¾¤ÎÊØÍø¤Ê´Ø¿ô) @@ -1843,17 +3624,44 @@ my $value = prompt($message); my $value = prompt($message, $default); +=begin original + +The C<prompt()> function provides an easy way to request user input +used to write a makefile. It displays the $message as a prompt for +input. If a $default is provided it will be used as a default. The +function returns the $value selected by the user. + +=end original + The C<prompt()> function provides an easy way to request user input used to write a makefile. It displays the $message as a prompt for input. If a $default is provided it will be used as a default. The function returns the $value selected by the user. +(TBT) + +=begin original + +If C<prompt()> detects that it is not running interactively and there +is nothing on STDIN or if the PERL_MM_USE_DEFAULT environment variable +is set to true, the $default will be used without prompting. This +prevents automated processes from blocking on user input. + +=end original If C<prompt()> detects that it is not running interactively and there is nothing on STDIN or if the PERL_MM_USE_DEFAULT environment variable is set to true, the $default will be used without prompting. This prevents automated processes from blocking on user input. +(TBT) + +=begin original + +If no $default is provided an empty string will be used instead. + +=end original If no $default is provided an empty string will be used instead. +(TBT) =back