argra****@users*****
argra****@users*****
2018年 1月 4日 (木) 03:59:28 JST
Index: docs/modules/ExtUtils-MakeMaker-6.17/ExtUtils/MakeMaker.pod diff -u /dev/null docs/modules/ExtUtils-MakeMaker-6.17/ExtUtils/MakeMaker.pod:1.1 --- /dev/null Thu Jan 4 03:59:28 2018 +++ docs/modules/ExtUtils-MakeMaker-6.17/ExtUtils/MakeMaker.pod Thu Jan 4 03:59:28 2018 @@ -0,0 +1,1931 @@ + +=encoding euc-jp + +=head1 NAME + +=begin original + +ExtUtils::MakeMaker - Create a module Makefile + +=end original + +ExtUtils::MakeMaker - モジュール用 Makefile の生成 + +=head1 SYNOPSIS + + use ExtUtils::MakeMaker; + + WriteMakefile( ATTRIBUTE => VALUE [, ...] ); + +=head1 DESCRIPTION + +=begin original + +This utility is designed to write a Makefile for an extension module +from a Makefile.PL. It is based on the Makefile.SH model provided by +Andy Dougherty and the perl5-porters. + +=end original + +このユーティリティは Makefile.PL において拡張モジュールのための +Makefile を書くために設計されています。 +これは、Andy Dougherty 及び perl5-porter による Makefile.SH を +基盤としています。 + +=begin original + +It splits the task of generating the Makefile into several subroutines +that can be individually overridden. Each subroutine returns the text +it wishes to have written to the Makefile. + +=end original + +これは Makefile を生成する処理を独立してオーバーライド可能ないくつかの +関数に分解します。 +各関数では Makefile に書かれる内容をテキストとして +返します。 + +=begin original + +MakeMaker is object oriented. Each directory below the current +directory that contains a Makefile.PL is treated as a separate +object. This makes it possible to write an unlimited number of +Makefiles with a single invocation of WriteMakefile(). + +=end original + +MakeMaker はオブジェクト指向です。 +Makefile.PL を含んでいるカレントディレクトリにある各ディレクトリは +分割されたオブジェクトとして扱われます。 +これは一度の WriteMakefile() 呼び出しから無制限個の Makefile を +出力することを可能にしています。 + +=head2 How To Write A Makefile.PL + +(Makefile.PL の書き方) + +=begin original + +See ExtUtils::MakeMaker::Tutorial. + +=end original + +L<ExtUtils::MakeMaker::Tutorial> を参照してください。 + +=begin original + +The long answer is the rest of the manpage :-) + +=end original + +そしてこのマニュアルページの残りの部分が長い答えになります :-) + +=head2 Default Makefile Behaviour + +(デフォルトの Makefile の振る舞い) + +=begin original + +The generated Makefile enables the user of the extension to invoke + +=end original + +生成された Makefile は呼び出しの拡張を有効にします + + perl Makefile.PL # optionally "perl Makefile.PL verbose" + make + make test # optionally set TEST_VERBOSE=1 + make install # See below + +=begin original + +The Makefile to be produced may be altered by adding arguments of the +form C<KEY=VALUE>. E.g. + +=end original + +生成された Makefile は C<KEY=VALUE> 形式の引数を与えることで +その動作を変えることができます。 +例: + + perl Makefile.PL PREFIX=/tmp/myperl5 + +=begin original + +Other interesting targets in the generated Makefile are + +=end original + +生成された Makefile の持つターゲットの一例として +次のようなものがあります: + +=begin original + + make config # to check if the Makefile is up-to-date + make clean # delete local temp files (Makefile gets renamed) + make realclean # delete derived files (including ./blib) + make ci # check in all the files in the MANIFEST file + make dist # see below the Distribution Support section + +=end original + + make config # Makefile が最新版かどうかを確認する + make clean # ローカルの一時ファイルを削除する (Makefile はリネームする) + make realclean # (./blib を含む) 派生ファイルを削除する + make ci # MANIFEST ファイルにある全てのファイルを確認する + make dist # 以下の Distribution Support 節を参照 + +=head2 make test + +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. + +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. + +If you'd like to see the raw output of your tests, set the +C<TEST_VERBOSE> variable to true. + + make test TEST_VERBOSE=1 + +=head2 make testdb + +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. + +If you want to debug some other testfile, set the C<TEST_FILE> variable +thusly: + + make testdb TEST_FILE=t/mytest.t + +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: + + make testdb TESTDB_SW=-Dx + +=head2 make install + +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. + +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: + + INSTALLDIRS set to + perl site vendor + + PERLPREFIX SITEPREFIX VENDORPREFIX + INST_ARCHLIB INSTALLARCHLIB INSTALLSITEARCH INSTALLVENDORARCH + INST_LIB INSTALLPRIVLIB INSTALLSITELIB INSTALLVENDORLIB + INST_BIN INSTALLBIN INSTALLSITEBIN INSTALLVENDORBIN + INST_SCRIPT INSTALLSCRIPT INSTALLSCRIPT INSTALLSCRIPT + INST_MAN1DIR INSTALLMAN1DIR INSTALLSITEMAN1DIR INSTALLVENDORMAN1DIR + INST_MAN3DIR INSTALLMAN3DIR INSTALLSITEMAN3DIR INSTALLVENDORMAN3DIR + +The INSTALL... macros in turn default to their %Config +($Config{installprivlib}, $Config{installarchlib}, etc.) counterparts. + +You can check the values of these variables on your system with + + perl '-V:install.*' + +And to check the sequence in which the library directories are +searched by perl, run + + perl -le 'print join $/, @INC' + + +=head2 PREFIX and LIB attribute + +(PREFIX 及び LIB 属性) + +=begin original + +PREFIX and LIB can be used to set several INSTALL* attributes in one +go. The quickest way to install a module in a non-standard place might +be + +=end original + +PREFIX 及び LIB を使っていくつかの INSTALL* 属性を一度に +変更することができます。 +モジュールを標準以外の場所にインストールする +一番簡単な方法は次のようになります: + + perl Makefile.PL PREFIX=~ + +=begin original + +This will install all files in the module under your home directory, +with man pages and libraries going into an appropriate place (usually +~/man and ~/lib). + +=end original + +これはモジュール内のファイルをホームディレクトリ上に、 +マニュアルページやライブラリを適切な位置(通常 ~/man 及び ~/lib)に +インストールします。 + +=begin original + +Another way to specify many INSTALL directories with a single +parameter is LIB. + +=end original + +単一のパラメータからいくつかのインストールディレクトリを変更する +ものとしては他に LIB があります。 + + perl Makefile.PL LIB=~/lib + +=begin original + +This will install the module's architecture-independent files into +~/lib, the architecture-dependent files into ~/lib/$archname. + +=end original + +これはモジュールのアーキテクチャ非依存ファイルを ~/lib に、 +アーキテクチャ依存ファイルを ~/lib/$archname にインストールします。 + +=begin original + +Note, that in both cases the tilde expansion is done by MakeMaker, not +by perl by default, nor by make. + +=end original + +これら共にチルダの展開はデフォルトでは perl や make によってではなく +MakeMaker によって行われることに注意してください。 + +=begin original + +Conflicts between parameters LIB, PREFIX and the various INSTALL* +arguments are resolved so that: + +=end original + +LIB, PREFIX パラメータや INSTALL* 引数の衝突時には次の順に解決されます: + +=over 4 + +=item * + +=begin original + +setting LIB overrides any setting of INSTALLPRIVLIB, INSTALLARCHLIB, +INSTALLSITELIB, INSTALLSITEARCH (and they are not affected by PREFIX); + +=end original + +LIB を設定すると、INSTALLPRIVLIB, INSTALLARCHLIB, INSTALLSITELIB, +INSTALLSITEARCH に対する設定を上書きします +(また、これらは PREFIX の影響を受けなくなります); + +=item * + +=begin original + +without LIB, setting PREFIX replaces the initial C<$Config{prefix}> +part of those INSTALL* arguments, even if the latter are explicitly +set (but are set to still start with C<$Config{prefix}>). + +=end original + +LIB の設定がなければ、PREFIX は これら INSTALL* 引数の最初の +C<$Config{prefix}> 箇所を置き換えます; +これは INSTALL* 引数が +明示的に設定されていても(C<$Config{prefix}>ではじまっているのなら) +行われます。 + +=back + +=begin original + +If the user has superuser privileges, and is not working on AFS or +relatives, then the defaults for INSTALLPRIVLIB, INSTALLARCHLIB, +INSTALLSCRIPT, etc. will be appropriate, and this incantation will be +the best: + +=end original + +ユーザがスーパーユーザー権限を持っていてかつ、AFS や相対的に +処理していないのなら、INSTALLPRIVLIB, INSTALLARCHLIB, INSTALLSCRIPT 等は +適切に設定されます; +これは最良の動作でしょう。 + + perl Makefile.PL; + make; + make test + make install + +=begin original + +make install per default writes some documentation of what has been +done into the file C<$(INSTALLARCHLIB)/perllocal.pod>. This feature +can be bypassed by calling make pure_install. + +=end original + +デフォルトの make install は行った動作を +C<$(INSTALLARCHLIB)/perllocal.pod> に書き出します。 +この機能は make pure_install を使うことで回避できます。 + +=head2 AFS users + +(AFS ユーザへ) + +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 + + perl Makefile.PL INSTALLSITELIB=/afs/here/today \ + INSTALLSCRIPT=/afs/there/now INSTALLMAN3DIR=/afs/for/manpages + make + +Be careful to repeat this procedure every time you recompile an +extension, unless you are sure the AFS installation directories are +still valid. + +=head2 Static Linking of a new Perl Binary + +(新しい Perl 実行形式のスタティックリンク) + +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 + + make perl + +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. + +The binary can be installed into the directory where perl normally +resides on your machine with + + make inst_perl + +To produce a perl binary with a different name than C<perl>, either say + + perl Makefile.PL MAP_TARGET=myperl + make myperl + make inst_perl + +or say + + perl Makefile.PL + make myperl MAP_TARGET=myperl + make inst_perl MAP_TARGET=myperl + +In any case you will be prompted with the correct invocation of the +C<inst_perl> target that installs the new binary into INSTALLBIN. + +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. + +Warning: the inst_perl: target will most probably overwrite your +existing perl binary. Use with care! + +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: + + perl Makefile.PL LINKTYPE=static # recommended + +or + + make LINKTYPE=static # works on most systems + +=head2 Determination of Perl Library and Installation Locations + +(Perl ライブラリとインストール位置の決定) + +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*.*>). + +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. + +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: + + PERL_INC = PERL_SRC + PERL_LIB = PERL_SRC/lib + PERL_ARCHLIB = PERL_SRC/lib + INST_LIB = PERL_LIB + INST_ARCHLIB = PERL_ARCHLIB + +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: + + PERL_INC = $archlibexp/CORE + PERL_LIB = $privlibexp + PERL_ARCHLIB = $archlibexp + INST_LIB = ./blib/lib + INST_ARCHLIB = ./blib/arch + +If perl has not yet been installed then PERL_SRC can be defined on the +command line as shown in the previous section. + + +=head2 Which architecture dependent directory? + +(アーキテクチャ依存ディレクトリの位置) + +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. + +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). + +=head2 Using Attributes and Parameters + +(属性とパラメータの使用) + +The following attributes may be specified as arguments to WriteMakefile() +or as NAME=VALUE pairs on the command line. + +=over 2 + +=item ABSTRACT + +ABSTRACT + +One line description of the module. Will be included in PPD file. + +=item ABSTRACT_FROM + +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. + +=item AUTHOR + +AUTHOR + +String containing name (and email address) of package author(s). Is used +in PPD (Perl Package Description) files for PPM (Perl Package Manager). + +=item BINARY_LOCATION + +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: + + perl Makefile.PL BINARY_LOCATION=x86/Agent.tar.gz + +builds a PPD package that references a binary of the C<Agent> package, +located in the C<x86> directory relative to the PPD itself. + +=item C + +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. + +=item CCFLAGS + +String that will be included in the compiler call command line between +the arguments INC and OPTIMIZE. + +=item CONFIG + +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 + +=item CONFIGURE + +=begin original + +CODE reference. The subroutine should return a hash reference. The +hash may contain further attributes, e.g. {LIBS =E<gt> ...}, that have to +be determined by some evaluation method. + +=end original + +CODE リファレンス。 +この関数はハッシュリファレンスを返すべきです。 +このハッシュにはいくつかの評価メソッドにとっては確定されている +必要がある {LIBS =E<gt> ...} の様なより進んだ属性を含んでいるでしょう。 + +=item DEFINE + +Something like C<"-DHAVE_UNISTD_H"> + +=item DESTDIR + +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. + +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". + +=item DIR + +Ref to array of subdirectories containing Makefile.PLs e.g. [ 'sdbm' +] in ext/SDBM_File + +=item DISTNAME + +A safe filename for the package. + +Defaults to NAME above but with :: replaced with -. + +For example, Foo::Bar becomes Foo-Bar. + +=item DISTVNAME + +Your name for distributing the package with the version number +included. This is used by 'make dist' to name the resulting archive +file. + +Defaults to DISTNAME-VERSION. + +For example, version 1.04 of Foo::Bar becomes Foo-Bar-1.04. + +On some OS's where . has special meaning VERSION_SYM may be used in +place of VERSION. + +=item DL_FUNCS + +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 + + {"$(NAME)" => ["boot_$(NAME)" ] } + +e.g. + + {"RPC" => [qw( boot_rpcb rpcb_gettime getnetconfigent )], + "NetconfigPtr" => [ 'DESTROY'] } + +Please see the L<ExtUtils::Mksymlists> documentation for more information +about the DL_FUNCS, DL_VARS and FUNCLIST attributes. + +=item DL_VARS + +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 ) ]) + +=item EXCLUDE_EXT + +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 ) ] ) + +This attribute may be most useful when specified as a string on the +command line: perl Makefile.PL EXCLUDE_EXT='Socket Safe' + +=item EXE_FILES + +=begin original + +Ref to array of executable files. The files will be copied to the +INST_SCRIPT directory. Make realclean will delete them from there +again. + +=end original + +実行ファイルの配列リファレンス。 +ファイルは INST_SCRIPT ディレクトリにコピーされます。 +make realclean はそこからの削除を行います。 + +=begin original + +If your executables start with something like #!perl or +#!/usr/bin/perl MakeMaker will change this to the path of the perl +'Makefile.PL' was invoked with so the programs will be sure to run +properly even if perl is not in /usr/bin/perl. + +=end original + +もし実行ファイルが #!perl もしくは #!/usr/bin/perl のように +なっていれば、MakeMaker は 'Makefile.PL' を実行した perl のパスに変更します。 +これによって perl が /usr/bin/perl になかったとしても適切に実行できます。 + +=item FIRST_MAKEFILE + +The name of the Makefile to be produced. This is used for the second +Makefile that will be produced for the MAP_TARGET. + +Defaults to 'Makefile' or 'Descrip.MMS' on VMS. + +(Note: we couldn't use MAKEFILE because dmake uses this for something +else). + +=item FULLPERL + +Perl binary able to run this extension, load XS modules, etc... + +=item FULLPERLRUN + +Like PERLRUN, except it uses FULLPERL. + +=item FULLPERLRUNINST + +Like PERLRUNINST, except it uses FULLPERL. + +=item FUNCLIST + +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. + +=item H + +Ref to array of *.h file names. Similar to C. + +=item IMPORTS + +This attribute is used to specify names to be imported into the +extension. Takes a hash ref. + +It is only used on OS/2 and Win32. + +=item INC + +Include file dirs eg: C<"-I/usr/5include -I/path/to/inc"> + +=item INCLUDE_EXT + +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 ) ]) + +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. + +This attribute may be most useful when specified as a string on the +command line: perl Makefile.PL INCLUDE_EXT='POSIX Socket Devel::Peek' + +=item INSTALLARCHLIB + +Used by 'make install', which copies files from INST_ARCHLIB to this +directory if INSTALLDIRS is set to perl. + +=item INSTALLBIN + +Directory to install binary files (e.g. tkperl) into if +INSTALLDIRS=perl. + +=item INSTALLDIRS + +Determines which of the sets of installation directories to choose: +perl, site or vendor. Defaults to site. + +=item INSTALLMAN1DIR + +=item INSTALLMAN3DIR + +These directories get the man pages at 'make install' time if +INSTALLDIRS=perl. Defaults to $Config{installman*dir}. + +If set to 'none', no man pages will be installed. + +=item INSTALLPRIVLIB + +Used by 'make install', which copies files from INST_LIB to this +directory if INSTALLDIRS is set to perl. + +Defaults to $Config{installprivlib}. + +=item INSTALLSCRIPT + +Used by 'make install' which copies files from INST_SCRIPT to this +directory. + +=item INSTALLSITEARCH + +Used by 'make install', which copies files from INST_ARCHLIB to this +directory if INSTALLDIRS is set to site (default). + +=item INSTALLSITEBIN + +Used by 'make install', which copies files from INST_BIN to this +directory if INSTALLDIRS is set to site (default). + +=item INSTALLSITELIB + +Used by 'make install', which copies files from INST_LIB to this +directory if INSTALLDIRS is set to site (default). + +=item INSTALLSITEMAN1DIR + +=item INSTALLSITEMAN3DIR + +These directories get the man pages at 'make install' time if +INSTALLDIRS=site (default). Defaults to +$(SITEPREFIX)/man/man$(MAN*EXT). + +If set to 'none', no man pages will be installed. + +=item INSTALLVENDORARCH + +Used by 'make install', which copies files from INST_ARCHLIB to this +directory if INSTALLDIRS is set to vendor. + +=item INSTALLVENDORBIN + +Used by 'make install', which copies files from INST_BIN to this +directory if INSTALLDIRS is set to vendor. + +=item INSTALLVENDORLIB + +Used by 'make install', which copies files from INST_LIB to this +directory if INSTALLDIRS is set to vendor. + +=item INSTALLVENDORMAN1DIR + +=item INSTALLVENDORMAN3DIR + +These directories get the man pages at 'make install' time if +INSTALLDIRS=vendor. Defaults to $(VENDORPREFIX)/man/man$(MAN*EXT). + +If set to 'none', no man pages will be installed. + +=item INST_ARCHLIB + +Same as INST_LIB for architecture dependent files. + +=item INST_BIN + +Directory to put real binary files during 'make'. These will be copied +to INSTALLBIN during 'make install' + +=item INST_LIB + +Directory where we put library files of this extension while building +it. + +=item INST_MAN1DIR + +Directory to hold the man pages at 'make' time + +=item INST_MAN3DIR + +Directory to hold the man pages at 'make' time + +=item INST_SCRIPT + +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. + +=item LD + +Program to be used to link libraries for dynamic loading. + +Defaults to $Config{ld}. + +=item LDDLFLAGS + +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>) + +Defaults to $Config{lddlflags}. + +=item LDFROM + +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) + +=item LIB + +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. + +=item LIBPERL_A + +The filename of the perllibrary that will be used together with this +extension. Defaults to libperl.a. + +=item LIBS + +An anonymous array of alternative library +specifications to be searched for (in order) until +at least one library is found. E.g. + + 'LIBS' => ["-lgdbm", "-ldbm -lfoo", "-L/path -ldbm.nfs"] + +Mind, that any element of the array +contains a complete set of arguments for the ld +command. So do not specify + + 'LIBS' => ["-ltcl", "-ltk", "-lX11"] + +See ODBM_File/Makefile.PL for an example, where an array is needed. If +you specify a scalar as in + + 'LIBS' => "-ltcl -ltk -lX11" + +MakeMaker will turn it into an array with one element. + +=item LINKTYPE + +'static' or 'dynamic' (default unless usedl=undef in +config.sh). Should only be used to force static linking (also see +linkext below). + +=item MAKEAPERL + +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. + +=item MAKEFILE_OLD + +When 'make clean' or similar is run, the $(FIRST_MAKEFILE) will be +backed up at this location. + +Defaults to $(FIRST_MAKEFILE).old or $(FIRST_MAKEFILE)_old on VMS. + +=item MAN1PODS + +=begin original + +Hashref of pod-containing files. MakeMaker will default this to all +EXE_FILES files that include POD directives. The files listed +here will be converted to man pages and installed as was requested +at Configure time. + +=end original + +pod を含んでいるファイルのハッシュリファレンス。 +MakeMaker は POD ディレクティブを含んでいる EXE_FILES 内の全てのファイルを +デフォルトとします。 +ここに指定したファイルはマニュアルページに変換され、 +Configure 時に要求されていればインストールされます。 + +=item MAN3PODS + +=begin original + +Hashref that assigns to *.pm and *.pod files the files into which the +manpages are to be written. MakeMaker parses all *.pod and *.pm files +for POD directives. Files that contain POD will be the default keys of +the MAN3PODS hashref. These will then be converted to man pages during +C<make> and will be installed during C<make install>. + +=end original + +*.pm 及び *.pod ファイルから生成するマニュアルページのファイル名を +示すハッシュリファレンス。 +MakeMaker は全ての *.pod 及び *.pod ファイルに対して POD ディレクティブを +含むか解析します。 +POD を含むファイルは MAN3POD ハッシュリファレンスのデフォルトのキーに +なります。 +これらは C<make> 時にマニュアルページに変換され、C<make install> によって +インストールされます。 + +=item MAP_TARGET + +If it is intended, that a new perl binary be produced, this variable +may hold a name for that binary. Defaults to perl + +=item MYEXTLIB + +If the extension links to a library that it builds set this to the +name of the library (see SDBM_File) + +=item NAME + +NAME + +Perl module name for this extension (DBD::Oracle). This will default +to the directory name but should be explicitly defined in the +Makefile.PL. + +=item NEEDS_LINKING + +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. + +=item NOECHO + +Command so make does not print the literal commands its running. + +By setting it to an empty string you can generate a Makefile that +prints all commands. Mainly used in debugging MakeMaker itself. + +Defaults to C<@>. + +=item NORECURS + +Boolean. Attribute to inhibit descending into subdirectories. + +=item NO_META + +When true, suppresses the generation and addition to the MANIFEST of +the META.yml module meta-data file during 'make distdir'. + +Defaults to false. + +=item NO_VC + +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. + +=item OBJECT + +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" + +(Where BASEEXT is the last component of NAME, and OBJ_EXT is $Config{obj_ext}.) + +=item OPTIMIZE + +Defaults to C<-O>. Set it to C<-g> to turn debugging on. The flag is +passed to subdirectory makes. + +=item PERL + +=begin original + +Perl binary for tasks that can be done by miniperl + +=end original + +miniperl によって行われるタスクの為の Perl バイナリ。 + +=item PERL_CORE + +=begin original + +Set only when MakeMaker is building the extensions of the Perl core +distribution. + +=end original + +MakeMaker が Perl のコア配布のエクステンションを +ビルドするときにのみ設定されます。 + +=item PERLMAINCC + +=begin original + +The call to the program that is able to compile perlmain.c. Defaults +to $(CC). + +=end original + +perlmain.c をコンパイルすることができるプログラムの呼び出し方。 +デフォルトでは $(CC)。 + +=item PERL_ARCHLIB + +Same as for PERL_LIB, but for architecture dependent files. + +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). + +=item PERL_LIB + +Directory containing the Perl library to use. + +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). + +=item PERL_MALLOC_OK + +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 + +=over 4 + +=item * + +with bugs in memory allocations which are caught by Perl's malloc(); + +=item * + +which interact with the memory allocator in other ways than via +malloc(), realloc(), free(), calloc(), sbrk() and brk(); + +=item * + +which rely on special alignment which is not provided by Perl's malloc(). + +=back + +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. + +=item PERLPREFIX + +Directory under which core modules are to be installed. + +Defaults to $Config{installprefixexp} falling back to +$Config{installprefix}, $Config{prefixexp} or $Config{prefix} should +$Config{installprefixexp} not exist. + +Overridden by PREFIX. + +=item PERLRUN + +=begin original + +Use this instead of $(PERL) when you wish to run perl. It will set up +extra necessary flags for you. + +=end original + +perl を実行したいときには $(PERL) ではなくてこれを使ってください。 +必要なフラグが設定されています。 + +=item PERLRUNINST + +=begin original + +Use this instead of $(PERL) when you wish to run perl to work with +modules. It will add things like -I$(INST_ARCH) and other necessary +flags so perl can see the modules you're about to install. + +=end original + +perl をモジュールと一緒に実行させたいときには $(PERL) ではなくて +これを使ってください。 +これは -I$(INST_ARCH) や他の必要なフラグが設定されているので +インストール中でもモジュールを見つけることができます。 + +=item PERL_SRC + +Directory containing the Perl source code (use of this should be +avoided, it may be undefined) + +=item PERM_RW + +Desired permission for read/writable files. Defaults to C<644>. +See also L<MM_Unix/perm_rw>. + +=item PERM_RWX + +Desired permission for executable files. Defaults to C<755>. +See also L<MM_Unix/perm_rwx>. + +=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. + + {'foobar.PL' => 'foobar'} + +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. + + {'foobar.PL' => ['foobar1','foobar2']} + +=item PM + +=begin original + +Hashref of .pm files and *.pl files to be installed. e.g. + +=end original + +インストールする *.pm 及び *.pl ファイルをハッシュリファレンスで指定します。 +例: + + {'name_of_file.pm' => '$(INST_LIBDIR)/install_as.pm'} + +=begin original + +By default this will include *.pm and *.pl and the files found in +the PMLIBDIRS directories. Defining PM in the +Makefile.PL will override PMLIBDIRS. + +=end original + +デフォルトでは、*.pm 及び *.pl ファイル、そして PMLIBDIRS +ディレクトリに見つかったファイルが含まれます。 +Makefile.PL で PM を定義すると、PMLIBDIRS は上書きされます。 + +=item PMLIBDIRS + +=begin original + +Ref to array of subdirectories containing library files. Defaults to +[ 'lib', $(BASEEXT) ]. The directories will be scanned and I<any> files +they contain will be installed in the corresponding location in the +library. A libscan() method can be used to alter the behaviour. +Defining PM in the Makefile.PL will override PMLIBDIRS. + +=end original + +ライブラリファイルを含んでいるサブディレクトリを配列リファレンスで +指定します。 +デフォルトでは ['lib',$(BASEEXT)] です。 +このディレクトリは走査され、そこに存在した I<全ての> ファイルが対応する +位置にインストールされます。 +この振る舞いを変更するときには libscan() メソッドを使います。 +Makefile.PL で PM を定義していると PMLIBDIRS は上書きされます。 + +=begin original + +(Where BASEEXT is the last component of NAME.) + +=end original + +(BASEEXT は NAME の最後の要素が使われます。) + +=item PM_FILTER + +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. + +Great care is necessary when defining the command if quoting needs to be +done. For instance, you would need to say: + + {'PM_FILTER' => 'grep -v \\"^\\#\\"'} + +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: + + PM_FILTER = grep -v \"^\#\" + +Without the \\ before the #, we'd have the start of a Makefile comment, +and the macro would be incorrectly defined. + +=item POLLUTE + +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: + + perl Makefile.PL POLLUTE=1 + +Please inform the module author if this is necessary to successfully install +a module under 5.6 or later. + +=item PPM_INSTALL_EXEC + +Name of the executable used to run C<PPM_INSTALL_SCRIPT> below. (e.g. perl) + +=item PPM_INSTALL_SCRIPT + +Name of the script that gets executed by the Perl Package Manager after +the installation of a package. + +=item PREFIX + +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. + +If you specify LIB or any INSTALL* variables they will not be effected +by the PREFIX. + +=item PREREQ_FATAL + +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. + +Note: see L<Test::Harness> for a shortcut for stopping tests early if +you are missing dependencies. + +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. + +It is I<extremely> rare to have to use C<PREREQ_FATAL> at all! + +=item PREREQ_PM + +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. + +=item PREREQ_PRINT + +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. + +$PREREQ_PM = { + 'A::B' => Vers1, + 'C::D' => Vers2, + ... + }; + +=item PRINT_PREREQ + +RedHatism for C<PREREQ_PRINT>. The output format is different, though: + + perl(A::B)>=Vers1 perl(C::D)>=Vers2 ... + +=item SITEPREFIX + +Like PERLPREFIX, but only for the site install locations. + +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. + +Overridable by PREFIX + +=item SKIP + +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. + +=item TYPEMAPS + +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. + +=item VENDORPREFIX + +Like PERLPREFIX, but only for the vendor install locations. + +Defaults to $Config{vendorprefixexp}. + +Overridable by PREFIX + +=item VERBINST + +If true, make install will be verbose + +=item VERSION + +VERSION + +Your version number for distributing the package. This defaults to +0.1. + +=item VERSION_FROM + +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 + + /([\$*])(([\w\:\']*)\bVERSION)\b.*\=/ + +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.: + + $VERSION = '1.00'; + *VERSION = \'1.01'; + $VERSION = sprintf "%d.%03d", q$Revision: 1.1 $ =~ /(\d+)/g; + $FOO::VERSION = '1.10'; + *FOO::VERSION = \'1.11'; + our $VERSION = 1.2.3; # new for perl5.6.0 + +but these will fail: + + my $VERSION = '1.01'; + local $VERSION = '1.02'; + local $FOO::VERSION = '1.30'; + +(Putting C<my> or C<local> on the preceding line will work o.k.) + +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 + + depend => { Makefile => '$(VERSION_FROM)' } + +See attribute C<depend> below. + +=item VERSION_SYM + +A sanitized VERSION with . replaced by _. For places where . has +special meaning (some filesystems, RCS labels, etc...) + +=item XS + +Hashref of .xs files. MakeMaker will default this. e.g. + + {'name_of_file.xs' => 'name_of_file.c'} + +The .c files will automatically be included in the list of files +deleted by a make clean. + +=item XSOPT + +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. + +=item XSPROTOARG + +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. + +=item XS_VERSION + +Your version number for the .xs file of this package. This defaults +to the value of the VERSION attribute. + +=back + +=head2 Additional lowercase attributes + +(追加の小文字の属性) + +=begin original + +can be used to pass parameters to the methods which implement that +part of the Makefile. Parameters are specified as a hash ref but are +passed to the method as a hash. + +=end original + +これらは Makefile の部品を実装しているメソッドにパラメータを +渡すために使うことができます。 +パラメータにはハッシュリファレンス +で指定しますがメソッドにはハッシュとして渡されます。 + +=over 2 + +=item clean + + {FILES => "*.xyz foo"} + +=item depend + + {ANY_TARGET => ANY_DEPENDECY, ...} + +=begin original + +(ANY_TARGET must not be given a double-colon rule by MakeMaker.) + +=end original + +(MakeMaker は ANY_TARGET をダブルコロンルールにしてはなりません。) + +=item dist + + {TARFLAGS => 'cvfF', COMPRESS => 'gzip', SUFFIX => '.gz', + SHAR => 'shar -m', DIST_CP => 'ln', ZIP => '/bin/zip', + ZIPFLAGS => '-rl', DIST_DEFAULT => 'private tardist' } + +=begin original + +If you specify COMPRESS, then SUFFIX should also be altered, as it is +needed to tell make the target file of the compression. Setting +DIST_CP to ln can be useful, if you need to preserve the timestamps on +your files. DIST_CP can take the values 'cp', which copies the file, +'ln', which links the file, and 'best' which copies symbolic links and +links the rest. Default is 'best'. + +=end original + +COMPRESS を設定しているのなら SUFFIX も設定しなければなりません。 +make に圧縮対象を知らせるためです。 +ファイルのタイムスタンプを保存する必要があるときには DIST_CP に ln を +設定すると便利です。 +DIST_CP が 'cp' という値に指定されているときにはファイルをコピーし、 +'ln' を指定されているときにはファイルをリンクします。 +そして 'best' を指定するとシンボリックリンクであればコピーし、 +それ以外はリンクします。 +デフォルトは 'best' です。 + +=item dynamic_lib + + {ARMAYBE => 'ar', OTHERLDFLAGS => '...', INST_DYNAMIC_DEP => '...'} + +=item linkext + + {LINKTYPE => 'static', 'dynamic' or ''} + +NB: Extensions that have nothing but *.pm files had to say + + {LINKTYPE => ''} + +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. + +=item macro + + {ANY_MACRO => ANY_VALUE, ...} + +=item postamble + +Anything put here will be passed to MY::postamble() if you have one. + +=item realclean + + {FILES => '$(INST_ARCHAUTODIR)/*.xyz'} + +=item test + + {TESTS => 't/*.t'} + +=item tool_autosplit + + {MAXLEN => 8} + +=back + +=head2 Overriding MakeMaker Methods + +(メソッドのオーバーライド) + +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: + + sub MY::c_o { "new literal text" } + +or you can edit the default by saying something like: + + package MY; # so that "SUPER" works right + sub c_o { + my $inherited = shift->SUPER::c_o(@_); + $inherited =~ s/old text/new text/; + $inherited; + } + +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. + +If you still need a different solution, try to develop another +subroutine that fits your needs and submit the diffs to +F<makem****@perl*****> + +For a complete description of all MakeMaker methods see +L<ExtUtils::MM_Unix>. + +Here is a simple example of how to add a new target to the generated +Makefile: + + sub MY::postamble { + return <<'MAKE_FRAG'; + $(MYEXTLIB): sdbm/Makefile + cd sdbm && $(MAKE) all + + MAKE_FRAG + } + +=head2 The End Of Cargo Cult Programming + +(カーゴカルトプログラミングとの決別) + +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. + +=begin original + +Some of the most common mistakes: + +=end original + +最もよくあるミスを挙げます: + +=over 2 + +=item C<<MAN3PODS => ' '>> + +=begin original + +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. + +=end original + +これは man ページの作成を抑制するためによく使われます。 +MAN3PODS は文字列ではなくハッシュリファレンスを取りますが、 +前述のものも古いバージョンの MakeMaker では誤って動作していました。 + +=begin original + +The correct code is C<<MAN3PODS => { }>>. + +=end original + +正しいコードは C<<MAN3PODS => { }>> です。 + +=back + + +=head2 Hintsfile support + +(hints ファイルのサポート) + +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. + +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 + + $self->{LIBS} = ['-ldbm -lucb -lc']; + +=head2 Distribution Support + +(配布のサポート) + +=begin original + +For authors of extensions MakeMaker provides several Makefile +targets. Most of the support comes from the ExtUtils::Manifest module, +where additional documentation can be found. + +=end original + +エクステンションの作者のために、MakeMaker はいくつかの Makefile ターゲットを +提供します。 +サポートのほとんどは ExtUtils::Manifest モジュール由来で、 +ここに追加の文書があります。 + +=over 4 + +=item make distcheck + +reports which files are below the build directory but not in the +MANIFEST file and vice versa. (See ExtUtils::Manifest::fullcheck() for +details) + +=item make skipcheck + +reports which files are skipped due to the entries in the +C<MANIFEST.SKIP> file (See ExtUtils::Manifest::skipcheck() for +details) + +=item make distclean + +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. + +=item make manifest + +rewrites the MANIFEST file, adding all remaining files found (See +ExtUtils::Manifest::mkmanifest() for details) + +=item make distdir + +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. + +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. + +=item make disttest + +Makes a distdir first, and runs a C<perl Makefile.PL>, a make, and +a make test in that directory. + +=item make tardist + +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. + +=item make dist + +Defaults to $(DIST_DEFAULT) which in turn defaults to tardist. + +=item make uutardist + +Runs a tardist first and uuencodes the tarfile. + +=item make shdist + +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. + +=item make zipdist + +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. + +=item make ci + +Does a $(CI) and a $(RCS_LABEL) on all files in the MANIFEST file. + +=back + +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: + + CI ('ci -u') + COMPRESS ('gzip --best') + POSTOP ('@ :') + PREOP ('@ :') + TO_UNIX (depends on the system) + RCS_LABEL ('rcs -q -Nv$(VERSION_SYM):') + SHAR ('shar') + SUFFIX ('.gz') + TAR ('tar') + TARFLAGS ('cvf') + ZIP ('zip') + ZIPFLAGS ('-r') + +=begin original + +An example: + +=end original + +例: + + WriteMakefile( 'dist' => { COMPRESS=>"bzip2", SUFFIX=>".bz2" }) + + +=head2 Module Meta-Data + +(モジュールのメタデータ) + +=begin original + +Long plaguing users of MakeMaker based modules has been the problem of +getting basic information about the module out of the sources +I<without> running the F<Makefile.PL> and doing a bunch of messy +heuristics on the resulting F<Makefile>. To this end a simple module +meta-data file has been introduced, F<META.yml>. + +=end original + +Long plaguing users of +MakeMaker ベースのモジュールで長く苦しんでいるユーザーは、 +F<Makefile.PL> を実行して、結果の F<Makefile> に対して大量の面倒な +ヒューリスティックを使うこと I<なしに> ソース外のモジュールに関する +基本情報を取得するのに問題を抱えていました。 +これを終わらせるために、F<META.yml> という単純な +モジュールメタデータファイルが導入されました。 + +=begin original + +F<META.yml> is a YAML document (see http://www.yaml.org) containing +basic information about the module (name, version, prerequisites...) +in an easy to read format. The format is developed and defined by the +Module::Build developers (see +http://module-build.sourceforge.net/META-spec.html) + +=end original + +F<META.yml> は、モジュールに関する基本的な情報 +(名前、バージョン、必須条件…) を読みやすい形式で記録した YAML 文書 +(http://www.yaml.org 参照) です。 +この型式は Module::Build 開発者によって開発と定義がされています +(http://module-build.sourceforge.net/META-spec.html を参照してください) + +=begin original + +MakeMaker will automatically generate a F<META.yml> file for you and +add it to your F<MANIFEST> as part of the 'distdir' target (and thus +the 'dist' target). This is intended to seamlessly and rapidly +populate CPAN with module meta-data. If you wish to shut this feature +off, set the C<NO_META> C<WriteMakefile()> flag to true. + +=end original + +MakeMaker は自動的に F<META.yml> を生成し、これを +'distdir' ターゲット (従って 'dist' ターゲット) の一部として +F<MANIFEST> に追加します。 +これはシームレスになることを意図していて、モジュールメタデータとして +CPAN で 急速に伝搬しています。 +この機能をオフにしたい場合、C<NO_META> C<WriteMakefile()> フラグを +設定してください。 + + +=head2 Disabling an extension + +(拡張の無効化) + +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 + + ExtUtils::MakeMaker::WriteEmptyMakefile(); + +instead of WriteMakefile(). + +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). + +=head2 Other Handy Functions + +(その他の便利な関数) + +=over 4 + +=item prompt + + my $value = prompt($message); + my $value = prompt($message, $default); + +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. + +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. + +If no $default is provided an empty string will be used instead. + +=back + + +=head1 ENVIRONMENT + +(環境変数) + +=over 4 + +=item PERL_MM_OPT + +=begin original + +Command line options used by C<MakeMaker-E<gt>new()>, and thus by +C<WriteMakefile()>. The string is split on whitespace, and the result +is processed before any actual command line arguments are processed. + +=end original + +C<MakeMaker-E<gt>new()> で使われ、従って C<WriteMakefile()> で使われる +コマンドラインオプション。 +この文字列は空白で区切られ、その結果は実際のコマンドライン引数を処理する前に +処理されます。 + +=item PERL_MM_USE_DEFAULT + +=begin original + +If set to a true value then MakeMaker's prompt function will +always return the default without waiting for user input. + +=end original + +これを真の値に設定すると、MakeMaker のプロンプト関数はユーザー入力を +待つことなくデフォルトでリターンします。 + +=back + +=head1 SEE ALSO + +ExtUtils::MM_Unix, ExtUtils::Manifest ExtUtils::Install, +ExtUtils::Embed + +=head1 AUTHORS + +Andy Dougherty <F<dough****@lafay*****>>, Andreas KE<ouml>nig +<F<andre****@mind*****>>, Tim Bunce <F<timb****@cpan*****>>. VMS +support by Charles Bailey <F<baile****@newma*****>>. OS/2 support +by Ilya Zakharevich <F<ilya****@math*****>>. + +Currently maintained by Michael G Schwern <F<schwe****@pobox*****>> + +Send patches and ideas to <F<makem****@perl*****>>. + +Send bug reports via http://rt.cpan.org/. Please send your +generated Makefile along with your report. + +For more up-to-date information, see http://www.makemaker.org. + +=head1 LICENSE + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See F<http://www.perl.com/perl/misc/Artistic.html> + +=begin meta + +Translate: 山科 氷魚 (YAMASHINA Hio) <hio****@hio*****> (6.16) +Update: SHIRAKATA Kentaro <argra****@ub32*****> (6.17-) +Status: in progress + +=end meta +