blog20100901

2013/08/20 - プログラミング言語 Perl にまつわる etc. - Perl monger
参考 : perldoc, perldoc.jp, search.cpan.org, perldoc.perl.org ...
「 初めての Perl 第 6 版 」(オライリー・ジャパン発行 ISBN978-4-87311-567-2) 」
「 続・初めての Perl 改訂版 」(オライリー・ジャパン発行 ISBN4-87311-305-9) 」
「 Effective Perl 第 2 版 」(翔泳社発行 ISBN978-4-7981-3981-4) 」 ... etc,.

Perl Perl_6 翻訳

Perl モジュール ExtUtils::MakeMaker ドキュメント [翻訳] (d093)

Perl モジュール ExtUtils::MakeMaker ドキュメント [翻訳] (d093)

目次 - Perl Index


Theme



Perl について、復習を兼ねて断片的な情報を掲載して行く連載その d093 回。

Perl で、「 Makfile 」を生成するためのモジュール「 ExtUtils::MakeMaker 」を確認する。


今回は、モジュール「 ExtUtils::MakeMaker 」のドキュメント ExtUtils::MakeMaker を自家用に翻訳しつつ、その機能を確認します。正確な情報はリンク先の原文を確認してください。

NAME ( 名前 )
SYNOPSIS ( 概要 )
DESCRIPTION ( 説明 )
  How To Write A Makefile.PL ( どのように書くか Makefile.PL を )
  Default Makefile Behaviour ( デフォルトの Makefile の振る舞い )
  make test
  make testdb
  make install
  INSTALL_BASE
  PREFIX and LIB attribute ( PREFIX とLIB アトリビュート )
  AFS users
  Static Linking of a new Perl Binary ( 静的リンク 新しい Perl バイナリの )
  Determination of Perl Library and Installation Locations ( 決定 Perl ライブラリとインストール場所の )
  Which architecture dependent directory? ( どのアーキテクチャ依存のディレクトリ ? )
  Using Attributes and Parameters ( 利用 アトリビュートとパラメータの )
  Additional lowercase attributes ( 追加 小文字アトリビュートの )
  Overriding MakeMaker Methods ( オーバイライドする Makemaker メソッドを )
  The End Of Cargo Cult Programming ( カーゴカルトプログラミング の終わり )
  Hintsfile support ( ヒントファイルのサポート )
  Disribution Support ( ディストリビューションのサポート )
  Module Mete-Data (META and MYMETE) ( モジュールのメタデータ )
  Disabling an extension ( 無効 拡張機能の )
  Other Handy Functions ( 他の便利な機能 )
  Supported versions of Perl ( バージョンサポート Perl の )
ENVIRONMENT ( 環境 )
SEE ALSO ( 関連項目 )
AUTHORS ( 著者 )
LICENSE ( ライセンス )


NAME ( 名前 )



ExtUtils::MakeMaker - Create a module Makefile


ExtUtils::MakeMaker - 生成 モジュール Makefile の


SYNOPSIS ( 概要 )




use ExtUtils::MakeMaker;

WriteMakefile(
NAME => "Foo::Bar",
VERSION_FROM => "lib/Foo/Bar.pm",
);




DESCRIPTION ( 説明 )



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.


このユーティリティは設計されています 書くように Makefile に 拡張モジュールのために Makefile.PL から. それは基づいています Makefile.SH モデルに 提供された Andy Doughery と perl5-porters によって.

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.


これは分割します Makefile 生成のタスクを いくつかのサブルーチンに 個別にオーバーライドできる. 各サブルーチンは返します 書きたいテキストを Makefile に.

As there are various Make programs with incompatible syntax, which use operating system shells, again with incompatible syntax, it is important for users of this module to know which flavour of Make a Makefile has been written for so they'll use the correct one and won't have to face the possibly bewildering errors resulting from using the wrong one.


様々な Make プログラムがあるので 互換性のない構文の, OS のシェルを使う, やはり互換性のない構文の, 重要です このモジュールのユーザにとって 知ることは その Make のフレーバを Makefile に書かれた 使うために 正しいものを それと 直面しないように おそらく目の回るようなエラーに 誤ったものを使うことに起因する.

On POSIX systems, that program will likely be GNU Make; on Microsoft Windows, it will be either Microsoft NMake, DMake or GNU Make. See the section on the "MAKE" parameter for details.


POSIX システムでは, そのプログラムはおそらく GNU Make です; Microsoft Windows では, いずれかです Microsoft NMake, DMake または GNU Make の. 参照してください "MAKE" パラメータのセクションを 詳細のために.

ExtUtils::MakeMaker (EUMM) 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().


ExtUtils::MakeMaker (EUMM) はオブジェクト指向です. 各ディレクトリは 現在のディレクトリ以下の Makefile.PL を含む 扱われます 別のオブジェクトとして. これは書くことができるようにします Makefile を無制限に 1 度呼び出すだけで WriteMakefile() を.

All inputs to WriteMakefile are Unicode characters, not just octets. EUMM seeks to handle all of these correctly. It is currently still not possible to portably use Unicode characters in module names, because this requires Perl to handle Unicode filenames, which is not yet the case on Windows.


すべての入力は WriteMakefile への Unicode 文字です, オクテットだけでなく. EUMM は処理しようとします これらすべてを正しく. 現在はまだできません 移植性のために Unicode 文字を利用することは モジュールの名前に, なぜならこれは要求するからです Perl に Unicode のファイル名の処理を, それはまだです Windows のケースで.


  How To Write A Makefile.PL ( どのように書くか Makefile.PL を )



See ExtUtils::MakeMaker::Tutorial.


参照してください ExtUtils::MakeMaker::Tutorial を.

The long answer is the rest of the manpage :-)


長い答えは残りです マンページの :-)


  Default Makefile Behaviour ( デフォルトの Makefile の振る舞い )



The generated Makefile enables the user of the extension to invoke


生成された Makefile は有効にします 拡張機能のユーザが呼び出すことを


perl Makefile.PL # optionally "perl Makefile.PL verbose"
make
make test # optionally set TEST_VERBOSE=1
make install # See below



The Makefile to be produced may be altered by adding arguments of the form KEY=VALUE. E.g.


Makefile は 制作される 変更されるかもしれません 引数の追加によって KEY=VALUE 形式の. E.g.


perl Makefile.PL INSTALL_BASE=~



Other interesting targets in the generated Makefile are


他の興味深いターゲットは Makefile 生成での


make config # to check if the Makefile is up-to-date
# チェックする Makefile が最新かどうか
make clean # delete local temp files (Makefile gets renamed)
# 削除する ローカルの一時ファイルを (Makefile はリネームされる)
make realclean # delete derived files (including ./blib)
# 削除する 派生ファイルを (./blib を含む)
make ci # check in all the files in the MANIFEST file
# チェックインする すべてのファイルを MANIFEST file の
make dist # see below the Distribution Support section
# 参照 以下の the Distribution Support section を




  make test

MakeMaker checks for the existence of a file named test.pl in the current directory, and if it exists it executes the script with the proper set of perl -I options.


MakeMaker はチェックします 存在するかを ファイル名 test.pl が 現在のディレクトリに, それと もしそれが存在するなら そのスクリプトを実行します 適切なセットで perl -I オブションの.

MakeMaker also checks for any files matching glob("t/*.t"). It will execute all matching files in alphabetical order via the Test::Harness module with the -I switches set correctly.


MakeMaker はまたチェックします すべてのファイルを マッチする glob("t/*.t") に. 実行します すべてのマッチするファイルを アルファベット順で Test::Harness モジュールを介して -I スイッチをセットして 正しく.

You can also organize your tests within subdirectories in the t/ directory. To do so, use the test directive in your Makefile.PL. For example, if you had tests in:


あなたはまたオーガナイズできます あなたのテストを サブティレクトリで t/ ディレクトリの. それをするには, 使います test ディレクティブを あなたの Makefile.PL で. 例えば, もしあなたがテストをもっているなら:


t/foo
t/foo/bar



You could tell make to run tests in both of those directories with the following directives:


あたたは伝えることができます make に テストの実行を それらのディレクトリの両方で 次のディレクティブで:


test=>{TESTS=>'t/*/*.t t/*/*/*.t}
test=>{TESTS=>'t/foo/*.t t/foo/bar/*.t'}



The first will run all test files in all first-level subdirectories and all subdirectories they contain. The second will run tests in only the t/foo and t/foo/bar.


第 1 のものは実行します すべての test ファイルを すべての最初のレベルにあるサブルディレクトリとすべてのサブディレクトリを それらが含む. 第 2 のものは実行します test を t/foo と t/foo/bar の中だけの.

If you'd like to see the raw output of your tests, set the TEST_VERBOSE variable to true.


もしあなたが見たいなら 生の出力を あなたのテストの, セットします TEST_VERBOSE 変数を true に.


make test TEST_VERBOSE=1



If you want to run particular test files, set the TEST_FILES variable. It is possible to use globbing with this mechanism.


もしあなたが望むなら 実行を 特定のテストファイルの, セットします TEST_FILES 変数を. 利用することが可能です グロビング ( globbing ) を このメカニズムで.


make test TEST_FILES='t/foobar.t t/dagobah*.t'



Windows users who are using nmake should note that due to a bug in nmake, when specifying TEST_FILES you must use back-slashes instead of forward-slashes.


Windows ユーザは nmake を使う 注意する必要があります バグのために namek の, 指定するとき TEST_FILES を あなたは使用しなければなりません バックスラッシュを かわりに フォワードスラッシュの.


nmake test TEST_FILES='t\foobar.t t\dagobah*.t'




  make testdb

A useful variation of the above is the target testdb. It runs the test under the Perl debugger (see perldebug). If the file test.pl exists in the current directory, it is used for the test.


便利なバリエーションは 上記の ターゲット testdb です. それは実行します test を Perl デバッガの下で ( 参照 perldebug ). もしファイル test.pl が存在するなら 現在のディレクトリに, それは test のために利用されます.

If you want to debug some other testfile, set the TEST_FILE variable thusly:


もしあなたが望むなら デバッグを いくつか他の test ファイルの, セットします TEST_FILE 変数を このように:


make testdb TEST_FILE=t/mytest.t



By default the debugger is called using -d option to perl. If you want to specify some other option, set the TESTDB_SW variable:


デフォルトでは デバッガは呼び出されます -d オブションを使って perl に. もしあなたが望むなら 指定を いくつか他のオプションを, セットします TESTDB_SW 変数を.


make testdb TESTDB_SW=Dx




  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 not building below the perl source directory. If you are building below the perl source, INST_LIB and INST_ARCHLIB default to ../../lib, and INST_SCRIPT is not defined.


make だけで設置します すべての関連するファイルを ディレクトリに 指名された マクロ INST_LIB, INST_ARCHLIB, INST_SCRIPT, INST_MAN1DIR それと INST_MAN3DIR によって. これらはすべてデフォルトで ./blib 以下のものになります もしあなたが構築していない場合 perl ソースディレクトリの以下で. もしあなたが構築しているなら perl ソース以下で, INST_LIB と INST_ARCHLIB はデフォルトで ../../lib に, それと INST_SCRIPT は定義されません.

The 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:


install ターゲットは 生成された Makefile の ファイルをコピーします 各 INST_* ディレクトリ以下で見つけた それらの INSTALL_* カウンターパートに. どのカウンターパートが選択されるかは INSTALLDIRS の設定によります 次のテーブルに従って:


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 INSTALLSITESCRIPT INSTALLVENDORSCRIPT
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.


INSTALL ... マクロは 同様にして デフォルトで これら %Config ($Config{installprivlib}, $Config{installarchlib}, etc.) のカウンターパートになります.

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 によって, 実行します


perl -le 'print join $/,@INC'



Sometimes older versions of the module you're installing live in other directories in @INC. Because Perl loads the first version of a module it finds, not the newest, you might accidentally get one of these older versions even after installing a brand new version. To delete all other versions of the module you're installing (not simply older ones) set the UNINST variable.


時折より古いバージョンが モジュールの あなたがインストールしている 他のディレクトリにあります @INC の. なぜなら Perl は読み込むからです 最初のバージョンを モジュールの 見つけた, 最新のものではなく, あなたはうっかり取得するかもしれません それらのより古いバージョンのものを インストールした後でも 最新のバージョンを. 削除するには すべての他のバージョンを モジュールの あなたがインストールしている ( 単により古いものではなく ) セットします UNINST 変数を.


make install UNINST=1




  INSTALL_BASE

INSTALL_BASE can be passed into Makefile.PL to change where your module will be installed. INSTALL_BASE is more like what everyone else calls "prefix" than PREFIX is.


INSTALL_BASE を渡してできます Makefile.PL に 変更を どこにあなたのモジュールをインストールするかの. INSTALL_BASE はむしろ皆が "prefix" と呼ぶものです PREFIX よりも.

To have everything installed in your home directory, do the following.


なんでもインストールするには あなたのホームディレクトリに, 次のようにします.


# Unix users, INSTALL_BASE=~ works fine
perl Makefile.PL INSTALL_BASE=/path/to/your/home/dir



Like PREFIX, it sets several INSTALL* attributes at once. Unlike PREFIX it is easy to predict where the module will end up. The installation pattern looks like this:


PREFIX のように, セットします いくつかの INSTALL* アトリビュートを 1 度に. PREFIX とは異なり 予測するのは簡単です どこにモジュールが行き着くか. インストールパターンはこのようになります:


INSTALLARCHLIB INSTALL_BASE/lib/perl5/$Config{archname}
INSTALLPRIVLIB INSTALL_BASE/lib/perl5
INSTALLBIN INSTALL_BASE/bin
INSTALLSCRIPT INSTALL_BASE/bin
INSTALLMAN1DIR INSTALL_BASE/man/man1
ISNTALLMAN3DIR INSTALL_BASE/man/man3



INSTALL_BASE in MakeMaker and --install_base in Module::Build (as of 0.28) install to the same location. If you want MakeMaker and Module::Build to install to the same location simply set INSTALL_BASE and --install_base to the same location.


MakMaker の INSTALL_BASE と Module::Build の --install_base ( 0.28 現在 ) はインストールします 同じ場所に. もしあなたが望むなら MakeMaker と Module::Build のインストールを 同じ場所に 単純にセットします INSTALL_BASE と --install_base を 同じ場所に.

INSTALL_BASE was added in 6.31.


INSTALL_BASE は追加されました 6.31 で.


  PREFIX and LIB attribute ( PREFIX とLIB アトリビュート )

PREFIX and LIB can be used to set several INSTALL* attributes in one go. Here's an example for installing into your home directory.


PREFIX と LIB を使ってセットできます いくつかの ISTALL* あトリビュートを 1 回で. ここに例示します インストールを あなたのホームディレクトリへの.


# Unix users, PREFIX=~ works fine
perl Makefile.PL PREFIX=/path/to/your/home/dir



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). How the exact location is determined is complicated and depends on how your Perl was configured. INSTALL_BASE works more like what other build systems call "prefix" than PREFIX and we recommend you use that instead.


これでインストールします モジュールのすべてのファイルを あなたのホームディレクトリの下に, man ページとライブラリは入れられます 適切な場所に ( 普通は ~/man と ~/lib ). どのように正確な場所が決定されるかは 複雑で どのようにあなたが Perl を構成したかによります. INSTALL_BASE は働きます むしろ他のビルドシステムが "prefix" と呼ぶように PREFIX よりも それと 私たちは推奨します あなたが使うことを かわりにそれを.

Another way to specify many INSTALL directories with a single parameter is LIB.


他の方法は 指定する 多くの INSTALL ディレクトリを 単一のパラメータで LIB です.


perl Makefile.PL LIB=~/lib



This will install the module's architecture-independent files into ~/lib, the architecture-dependent files into ~/lib/$archname.


これでインストールします モジュールのアーキテクチャ非依存ファイルを ~/lib に, アーキテクチャ依存ファイルを ~/lib/$archname に.

Note, that in both cases the tilde expansion is done by MakeMaker, not by perl by default, nor by make.


注意してください, そのどちらのケースも チルダの展開は MakeMaker によって行われます, デフォルトで perl ではなく, make でもなく.

Conflicts between parameters LIB, PREFIX and the various INSTALL* arguments are resolved so that:


競合は パラメータ間の LIB, PREFIX それと 様々な INSTALL* 引数の 解決されます:


・setting LIB overrides any setting of INSTALLPRIVLIB, INSTALLARCHLIB, INSTALLSITELIB, INSTALLSITEARCH (and they are not affected by PREFIX);

・without LIB, setting PREFIX replaces the initial $Config{prefix} part of those INSTALL* arguments, even if the latter are explicitly set (but are set to still start with $Config{prefix}).


・ LIB を設定すると オーバライドします すべての設定を INSTALLPRIVLIB, INSTALLARCHLIB, INSTALLSITELIB, INSTALLSITEARCH の ( それと それらは影響をうけません PREFIX の );

・LIB を除いて, PREFIX を設定すると 置き換えられます 最初の $Config{prefix} の部分が それら INSTALL* 引数の, たとえ後者が明示的にセットされていたとしても ( しかし セットされます $Config{prefix} で始まるように ).

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:


もしユーザがスーパーユーザ権限を持っているなら, それと AFS とその親戚で作業していないなら, INSTALLPRIVLIB, INSTALLARCHLIB, INSTALLSCRIPT, etc. のデフォルトが適切です, それとこの呪文がベストです:


perl Makefile.PL
make;
make test
make install



make install by default writes some documentation of what has been done into the file $(INSTALLARCHLIB)/perllocal.pod. This feature can be bypassed by calling make pure_install.


make install は デフォルトで書きます いくつかのドキュメントを 何が行われたのかを ファイル $(INSTALLARCHLIB)/perllocal.pod に. この機能はバイパスできます make pure_install を呼ぶことで.


  AFS users

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 それ自身がインストールされてから. それらはこれをする必要があります 呼び出して


perl Makefile.PL INSTALLSITELIB=/afs/here/today \
INSTALLSCRIPT=/aff/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.


繰り返すことに留意してください この手順を あなたが拡張機能をリコンパイルするたびに, あなたが確信していない限り AFS インストールしたディレクトリがまだ有効だと.


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


拡張機能は 構築された 上記手順で すぐに使えます システムで 動的ロードをサポートする. 動的ロードをサポートしないシステムでは すべての新しく生成された拡張機能はリンクされる必要があります 利用可能なリソースと. MakeMaker はサポートします リンク処理を 生成することで 適切なターゲットを Makefile で 拡張機能を構築するたびに. あなたは呼び出せます 対応するセクションを makefile の これで


make inst_perl



To produce a perl binary with a different name than perl, either say


perl バイナリを製作するには 異なる名前で perl とは, どちらかを言います


perl Makefile.PL MAP_TARGET=myperl
make myperl
make inst_perl



または 言います


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 inst_perl target that installs the new binary into INSTALLBIN.


いずれにしても あなたは促されます 正しい呼び出しを inst_perl ターゲットの インストールする 新しいバイナリを INSTALLBIN に.

make inst_perl by default writes some documentation of what has been done into the file $(INSTALLARCHLIB)/perllocal.pod. This can be bypassed by calling make pure_inst_perl.


デフォルトで make inst_perl は書きます いくつかのドキュメントを 何が行われたかの ファイル $(INSTALLARCHLIB)/perllocal.pod に. これはバイパスできます make pure_inst_perl を呼び出すことで.

Warning: the inst_perl: target will most probably overwrite your existing perl binary. Use with care!


警告: inst_perl: ターゲットは ほぼ確実に オーバライドします あなたの既存の perl バイナリを. 慎重に使ってください !

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 または make の:


perl Makefile.PL LINKTYPE=static # recommended



or


make LINKTYPE=static # works on most systems




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 libperl*.*).


MakeMaker は必要とします 知ること, または 推測することを, 特定のものがどこの場所にあるかを. 特に INST_LIB と INST_ARCHLIB ( どこにファイルを置くか make(1) を実行する間), PERL_LIB と PERL_ARCLIB ( どこで読むか 既存のモジュールから ), それと PERL_INC ( ヘッダーファイルと 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.


拡張機能は構築できるはずです いずれかを使って perl ソースのディレクトリツリーの内容 または インストールした perl ライブラリから. 推奨される方法は 拡張機能を構築することです あなたが perl それ自身で 'make install' を実行した後に. あなたはできます すべてのディレクトリで あなたのハードディスクの perl ソースツリーの下にない. 拡張機能のためのサポートは ext ディレクトリ以下の perl ディレクトリビューションの perl に付随する標準エクステンションにのみ良いものです.

If an extension is being built below the ext/ directory of the perl source then MakeMaker will set PERL_SRC automatically (e.g., ../..). If PERL_SRC is defined and the extension is recognized as a standard extension, then other variables default to the following:


もし拡張機能が構築されているなら perl ソースの ext/ ディレクトリ以下で そのとき MakeMaker はセットします PERL_SRC を 自動的に ( e.g., ../.. ). もし PERL_SRC が定義されていて 拡張機能が認識されているなら 標準の拡張機能として, そのとき 他の変数のデフォルトは次のとおりです:


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 ソースから離れて そのとき MakeMaker は PERL_SRC を未定義のままにします それと デフォルトで使います インストールされた perl ライブラリのコピーを. 他の変数のデフォルトは次のとおりです:


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.


もし perl がまだインストールされていないなら そのとき PERL_SRC は定義できます コマンドラインで 前のセクションで示したように.


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.


もしあなたが望まないなら デフォルトの維持を INSTALL* マクロのための, MakeMaker は助けます あなたを タイピングの必要を最小限にするために: 通常の関係は INSTALLPRIVLIB と INSTALLARCHLIB の間の 決定されます Configure によって perl コンパイル時の. MakeMaker はサポートします ユーザを INSTALLPRIVLIB をセットする. もし INSTALLPRIVLIB がセットされ, しかし INSTALLARCHLIB はそうでないなら, そのとき MakeMaker のデフォルトは後者で INSTALLPRIVLIB の同じサブディレクトリになります Configure の決定として %Config のカウンターパートのために, そうでないなら そのデフォルトは INSTALLPRIVLIB になります. 同じ関係は INSTALLSITELIB と INSTALLSITEARCH でも保持されます.

MakeMaker gives you much more freedom than needed to configure internal variables and get different results. It is worth mentioning 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).


MakeMaker は与えます あなたに かなりの自由を 必要とされるよりも 内部変数の configure と異なる結果を得るために. 言及する価値があります make(1) でまたあなたが configure をできることを 変数のほとんどの Makefile で使われる. しかし 大半の状況では これは必要ではありません, それと 行うべきです パッケージの作者が推奨する場合だけに それを ( またはあなたが知っているなら あなたが何をやっているか ).


Using Attributes and Parameters ( 利用 アトリビュートとパラメータの )



The following attributes may be specified as arguments to WriteMakefile() or as NAME=VALUE pairs on the command line. Attributes that became available with later versions of MakeMaker are indicated.


次のアトリビュートは 指定できます 引数として WriteMakefile() への または NAME=VALUE ペアとして コマンドライン上の. アトリビュートは 利用可能になった MakeMaker の later バージョンで 示されます.

In order to maintain portability of attributes with older versions of MakeMaker you may want to use App::EUMM::Upgrade with your Makefile.PL.


維持のために アトリビュートの移植性の MakeMaker の古いバージョンの あなたは利用しても良いでしょう App::EUMM::Upgrade を あなたの Makefile.PL で.


ABSTRACT

One line description of the module. Will be included in PPD file.


モジュールの 1 行解説. PPD ファイルに含まれます.


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.


ファイルの名前 パッケージの説明を含む. MakeMaker は行を探します POD で /^($package\s-\s)(.*)/ にマッチングする. これは 典型的には最初の行です "=head1 NAME" セクションの. $2 が要約になります.


AUTHOR

Array of strings containing name (and email address) of package author(s). Is used in CPAN Meta files (META.yml or META.json) and PPD (Perl Package Description) files for PPM (Perl Package Manager).


文字列の配列 パッケージ作者 (s) の名前を含む. 利用されます CPAN Meta ファイル ( MET.yml または META.json ) それと PPD ( Perl Package Description ) ファイルで PPM ( Perl Package Manager ) のための.


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:


利用します PPD ファイルの生成で バイナリパッケージのための. セットできます 絶対 or 相対パス または URL を バイナリアーカイブへの 特定のアーキテクチャのための. 例えば:


perl Makefile.PL BINARY_LOCATION=x86/Agen.tar.gz



builds a PPD package that references a binary of the Agent package, located in the x86 directory relative to the PPD itself.


PPD パッケージを構築します Agent パッケージのバイナリを参照する, x86 ディレクトリに位置する PPD それ自身から相対的に.


BUILD_REQUIRES

Available in version 6.5503 and above.

A hash of modules that are needed to build your module but not run it.

This will go into the build_requires field of your META.yml and the build of the prereqs field of your META.json.

Defaults to { "ExtUtils::MakeMaker" => 0 } if this attribute is not specified.

The format is the same as PREREQ_PM.


利用可能です バージョン 6.5503 と それ以上で.

モジュールのハッシュです 構築に必要とする あなたのモジュールを しかし実行はしません.

これはなります あなたの META.yml の build_require フィールド と あなたの META.json の preregs フィールドの build に.

デフォルトは {"ExtUtils::MakeMaker" => 0 } になります もしこのアトリビュートが指定されていないなら.

形式は PREREQ_PM と同じです.


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.


リファレンスです *.c ファイル名の配列への. 初期化されます ディレクトリスキャンによって それと XS アトリビュートハッシュの value 部分です. これは 現在使用されていません MakeMaker では しかし Makefiel.PL では便利かもしれません.


CCFLAGS

String that will be included in the compiler call command line between the arguments INC and OPTIMIZE.


文字列です コンパイラ呼び出しコマンド行に含まれる 引数 INC と OPTIMIZE の間の.


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


配列リファレンスです. E.g. [qw(archname manext)] は定義します ARCHNAME & MANEXT を config.sh から. MakeMaker は追加します CONFIG に 次の値を いずれにしろ: ar cc cccdlflags ccdlflags dlext dlsrc ld lddlflags ldflags libc lib_ext ogj_ext ranlib sitelibexp sitearchexp so


CONFIGURE

CODE reference. The subroutine should return a hash reference. The hash may contain further attributes, e.g. {LIBS => ...}, that have to be determined by some evaluation method.


コードリファレンスです. サブルーチンは返さなければなりません ハッシュリファレンスを. ハッシュは含むことができます さらなるアトリビュートを, e.g. {LIBS => ...}, それは決定されなければなりません いくつかの評価メソッドによって.


CONFIGURE_REQUIRES

Available in version 6.52 and above.

A hash of modules that are required to run Makefile.PL itself, but not to run your distribution.

This will go into the configure_requires field of your META.yml and the configure of the prereqs field of your META.json.

Defaults to { "ExtUtils::MakeMaker" => 0 } if this attribute is not specified.

The format is the same as PREREQ_PM.


利用可能です バージョン 6.52 とそれ以上で.

モジュールのハッシュで Makefile.PL それ自身の実行で要求されます, しかし あなたのディストリビューションは実行しません.

これは あなたの META.yml の configure_require フィールドと あなたの META.json の prereqs フィールドの configure になります.

デフォルトでは {"ExtUtils::MakeMaker" => 0 } です もしこのアトリビュートが指定されていないなら.

形式は PREREQ_PM と同じです.


DEFINE

Something like "-DHAVE_UNISTD_H"


"-DHAVE_UNISTD_H" のようなものです


DESTDIR

This is the root directory into which the code will be installed. It 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.


これはルートディレクトリです コードがインストールされる. ノーマル prefix の先頭にそれ自身を追加します. 例えば, もしあなたのコードが通常 /usr/local/lib/perl なら あなたはセットできます DESTDIR=~/tmp/ を それと インストールされます ~/tmp/usr/local/lib/perl に.

これは主に使います Perl モジュールを再パッケージする人々のために.

注意: make の性質上, 重要です あなたが置くことが 末尾にスラッシュを あなたの DESTDIR で. ~/tmp/ と ~/tmp ではなく.


DIR

Ref to array of subdirectories containing Makefile.PLs e.g. ['sdbm'] in ext/SDBM_File


サブディレクトリの配列リファレンスです Makefile.PL を含む e.g. ext/SDBM_File で ['sdbn']


DISTNAME

A safe filename for the package.

Defaults to NAME below but with :: replaced with -.

For example, Foo::Bar becomes Foo-Bar.


パッケージのための安全なファイル名.

デフォルトで NAME 以下です しかし :: を置き換えています - で.

例えば, Foo::Bar は Foo-Bar になります.


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.


あなたの名前です 配布するための パッケージを バージョン番号を含む. これは利用されます 'make dist' によって 名前にするために アーカイブファイルの結果を.

デフォルトでは DISTNSME-VERSION です.

例えば, Foo::Bar のバージョン 1.04 は Foo-Bar-1.04 になります.

いくつかの OS では . は特別な意味を持っています VERSION_SYM は使えます VERSION の代わりに.


DLEXT

Specifies the extension of the module's loadable object. For example:


指定します モジュールのロードできるオブジェクトの拡張機能を. 例えば:


DLEXT => 'unusual_ext', # Default value is $Config{so}



NOTE: When using this option to alter the extension of a module's loadable object, it is also necessary that the module's pm file specifies the same change:


注意: このオプションを使って モジュールのロードできるオブジェクトを変更するとき, それはまた必要です モジュールの pm ファイルに指定することを 同じ変更を:


local $DynaLoader::dl_dlext = 'unusual_ext';




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


シンボル名のハッシュリファレンスです ルーチンのための 利用可能にする ユニバーサルシンボルとして. 各 key/value は パッケージ名とルーチン名の配列からなります そのパッケージ内の. 利用されます AIX, OS/2, VMS と Win32 でのみ 現在は. 提供されるルーチン名は 展開されます 同じ方法で XSUB 名が XS() マクロによって展開されるのと. デフォルトでは


{"$(NAME)" => ["boot_$(NAME)"]}



e.g.


{"RPC" => [qw(boot_rpcd rpcd_gettime getnetconfigent)],
"NetconfigPtr" => ['DESTROY']}



Please see the ExtUtils::Mksymlists documentation for more information about the DL_FUNCS, DL_VARS and FUNCLIST attributes.


参照してください ExtUtils::Mksymlists ドキュメントを 詳細情報のために DL_FUNCS, DL_VARS それと FUNCLIST アトリビュートについての.


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 ) ])


シンボル名の配列です ユニバーサルシンボルとして利用可能にできる変数のための. 利用されます AIX, OS/2, VMS それと Win32 でのみ 現在は. デフォルトでは [] です. ( e.g. [qw(Foo_version Foo_numstreams Foo_tree)])


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 ) ] )


拡張機能の名前の配列です 除外する 静的ビルドを行う時に. これは無視されます もし INCLUDE_EXT が存在するなら. 参考にしてください INCLUDE_EXT を 詳細のために. ( 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'


このアトリビュートは最も便利なはずです コマンドラインで文字列として指定すると: perl Makefile.PL EXCLUDE_EXT='Socket Safe'


EXE_FILES

Ref to array of executable files. The files will be copied to the INST_SCRIPT directory. Make realclean will delete them from there again.


実行可能なファイルの配列リファレンスです. ファイルはコピーされます INST_SCRIPT ディレクトリに. make realclean は削除します それらを そこから また.

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.


もしあなたの実行ファイルがスタートするなら #!perl や #!/usr/bin/perl のようなもので MakeMaker は変更します これを パスに perl の なので 'MakeMaker.PL' が呼び出したプログラムは 確実に実行します 正しく たとえもし perl が /usr/bin/perl でなくても.


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.


Makefile の名前です 作成される. これは利用されます 2 番目の Makefile のために 作成される MAP_TARGET のために.

Defaults to 'Makefile' or 'Descrip.MMS' on VMS.


デフォルトでは 'Makefile' です または 'Descrip.MMS' です VMS 上では.

(Note: we couldn't use MAKEFILE because dmake uses this for something else).


( 注意: 私たちは使えませんでした MAKEFILE を なぜなら dmake がこれを使うからです 他の何かのために.


FULLPERL

Perl binary able to run this extension, load XS modules, etc...


Perl のバイナリです この拡張機能を実行できる, XS モジュールのロード, etc...


FULLPERLRUN

Like PERLRUN, except it uses FULLPERL.


PERLRUN と同様です, 除いて これが FULLPERL を利用することを.


FULLPERLRUNINST

Like PERLRUNINST, except it uses FULLPERL.


PERLINST と同様です, 除いて これが FULLPERL を利用することを.


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.


これは提供します 代替手段を 関数名を指定する 拡張機能によってエクスポートされる関数名の. この値はリファレンスです 配列への 拡張機能によってエクスポートされる関数名の. これらの名前は通されます 変更なしに リンカオプションのファイルに.


H

Ref to array of *.h file names. Similar to C.


*.h ファイル名の配列のリファレンスです. C に似ています.


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.


これは OS/2 と Win32 上でのみ使われます.


INC

Include file dirs eg: "-I/usr/5include -I/path/to/inc"


ファイルディレクトリを含みます eg: "-I/usr/5include -I/perl/to/inc"


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 ) ])


拡張機能の名前の配列です 含められる 静的ビルドを行うときに. MakeMaker は普通ビルドします インストールされたすべての拡張機能で 静的ビルドを行なったとき, それと それは通常望まれた振る舞いです. もし INCLUDE_EXT が存在するなら MakeMaker はビルドします それらの拡張機能でのみ 明示的に言及された. ( 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.


言及する必要ありません DynaLoader または 現在の拡張機能に INCLUDE_EXT を埋めるときに. もし INCLUDE_EXT が言及されていて しかし空だったなら DynaLoader と 現在の拡張機能だけがビルドに含まれます.

This attribute may be most useful when specified as a string on the command line: perl Makefile.PL INCLUDE_EXT='POSIX Socket Devel::Peek'


このアトリビュートはもっとも便利です コマンドライン上で文字列として指定したときに: perl MakeMaker.PL INCLUDE_EXT='POSIX Socket Devel::Peek'


INSTALLARCHLIB

Used by 'make install', which copies files from INST_ARCHLIB to this directory if INSTALLDIRS is set to perl.


'make install' で使われます, それはファイルをコピーします INST_ARCHLIB からこのディレクトリに もし INST_ALLDIRS が perl にセットされているなら.


INSTALLBIN

Directory to install binary files (e.g. tkperl) into if INSTALLDIRS=perl.


バイナリファイルをインストールするディレクトリです ( e.g. tkpler ) もし INSTALLDIRS=perl なら.


INSTALLDIRS

Determines which of the sets of installation directories to choose: perl, site or vendor. Defaults to site.


決定します インストールするディレクトリのセットを 選択する: perl, site または vendor. デフォルトは site です.


INSTALLMAN1DIR

INSTALLMAN3DIR

These directories get the man pages at 'make install' time if INSTALLDIRS=perl. Defaults to $Config{installman*dir}.


これらはディレクトリを取得します man ページの 'make install' 時に もし INSTALLDIRS=perl なら. デフォルトは $Config{installman*dir} です.

If set to 'none', no man pages will be installed.


もし 'none' にセットされているなら, man ページはインストールされません.


INSTALLPRIVLIB

Used by 'make install', which copies files from INST_LIB to this directory if INSTALLDIRS is set to perl.


'make install' によって使われます, それはファイルをコピーします INST_LIB から このディレクトリに もし INSTALLDIRS が perl にセットされているなら.

Defaults to $Config{installprivlib}.


デフォルトでは $Config{installprivlib} です.


INSTALLSCRIPT

Used by 'make install' which copies files from INST_SCRIPT to this directory if INSTALLDIRS=perl.


'make install' によって使われます, それはファイルをコピーします INST_SCRIPT から このディレクトリに もし INSTALLDIRS=perl なら.


INSTALLSITEARCH

Used by 'make install', which copies files from INST_ARCHLIB to this directory if INSTALLDIRS is set to site (default).


'make install' によって使われます, それはファイルをコピーします INST_ARCHLIB からこのディレクトリに もし INSTALLDIRS が site ( default ) にセットされているなら.


INSTALLSITEBIN

Used by 'make install', which copies files from INST_BIN to this directory if INSTALLDIRS is set to site (default).


'make install' によって使われます, それはファイルをコピーします INST_BIN からこのディレクトリに もし INSTALLDIRS が site ( default ) にセットされているなら.


INSTALLSITELIB

Used by 'make install', which copies files from INST_LIB to this directory if INSTALLDIRS is set to site (default).


'make install' によって使われます, それはファイルをコピーします INST_LIB からこのディレクトリに もし INSTALLDIRS が site ( default ) にセットされているなら.


INSTALLSITEMAN1DIR

INSTALLSITEMAN3DIR

These directories get the man pages at 'make install' time if INSTALLDIRS=site (default). Defaults to $(SITEPREFIX)/man/man$(MAN*EXT).


これらのディレクトリは取得します man ページを 'make install' 時に もし INSTALLDIRS=site ( default ) なら. デフォルトでは $(SITEPREFIX)/man/man$(MAN*EXT) です.

If set to 'none', no man pages will be installed.


もし 'none' にセットされているなら, man ページはインストールされません.


INSTALLSITESCRIPT

Used by 'make install' which copies files from INST_SCRIPT to this directory if INSTALLDIRS is set to site (default).


'make install' によって使われ ファイルをコピーします INST_SCRIPT からこのディレクトリに もし INSTALLDIRS が site ( default ) にセットされているなら.


INSTALLVENDORARCH

Used by 'make install', which copies files from INST_ARCHLIB to this directory if INSTALLDIRS is set to vendor.


'make install' によって使われます, それはファイルをコピーします INST_ARCHLIB からこのディレクトリに もし INSTALLDIRS が vendor にセットされているなら.


INSTALLVENDORBIN

Used by 'make install', which copies files from INST_BIN to this directory if INSTALLDIRS is set to vendor.


'make install' によって使われます, それはファイルをコピーします INST_BIN からこのディレクトリに もし INSTALLDIRS が vendor にセットされているなら.


INSTALLVENDORLIB

Used by 'make install', which copies files from INST_LIB to this directory if INSTALLDIRS is set to vendor.


'make install' によって使われます, それはファイルをコピーします INST_LIB からこのディレクトリに もし INSTALLDIRS が vendor にセットされているなら.


INSTALLVENDORMAN1DIR

INSTALLVENDORMAN3DIR

These directories get the man pages at 'make install' time if INSTALLDIRS=vendor. Defaults to $(VENDORPREFIX)/man/man$(MAN*EXT).


これらのディレクトリは取得します man ページを 'make install' 時に もし INSTALLDIRS=vendor なら. デフォルトでは $(VENDORPREFIX)/man/man$(MAN*EXT) です.

If set to 'none', no man pages will be installed.


もし 'none' にセットされているなら, man ページはインストールされません.


INSTALLVENDORSCRIPT

Used by 'make install' which copies files from INST_SCRIPT to this directory if INSTALLDIRS is set to vendor.


'make install' によって使われ ファイルをコピーします INST_SCRIPT からこのディレクトリに もし INSTALLDIRS が vendor にセットされているなら.


INST_ARCHLIB

Same as INST_LIB for architecture dependent files.


INST_LIB と同様にアーキテクチャ依存のファイルのためのものです.


INST_BIN

Directory to put real binary files during 'make'. These will be copied to INSTALLBIN during 'make install'


設置のためのディレクトリです 実際のバイナリファイルを 'make' の間. これらはコピーされます INSTALLBIN に 'make install' の間に.


INST_LIB

Directory where we put library files of this extension while building it.


ディレクトリです 私たちがライブラリファイルを設置する この拡張機能の それを構築中に.


INST_MAN1DIR

Directory to hold the man pages at 'make' time


ディレクトリです man ページを保持する 'make' 時に


INST_MAN3DIR

Directory to hold the man pages at 'make' time


ディレクトリです man ページを保持する 'make' 時に


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.


ディレクトリです 実行ファイルがインストールされる 'make' の間. デフォルトでは './blib/script' です, ダミーのためだけの場所です テストの間の. make install はコピーします INST_SCRIPT のファイルを INSTALLSCRIPT に.


LD

Program to be used to link libraries for dynamic loading.


プログラムです ライブラリをリンクするために使われる 動的ロードで.

Defaults to $Config{ld}.


デフォルトでは $Config{ld} です.


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 "lddlflags" in Config)


すべての特別なフラグです 渡す必要がある ld に 生成するために 共有ライブラリを 動的ロードに適した. makefile 次第です それを使うのは. ( 参照 "lddlflags" in Config )

Defaults to $Config{lddlflags}.


デフォルトでは $Config{lddlflags} です.


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)


デフォルトは "$(OBJECT)" で 使われます ld コマンドで指定するために ファイルを link/load から ( また参照してください dynamic_lib を どのように指定するかのために ld フラグを )


LIB

LIB should only be set at 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.


LIB は perl Makefile.PL 時にセットしなければなりません しかし 許可されています MakeMaker の引数として. それはセットする効果をもっています INSTALLPRIVLIB と INSTALLSITELIB の両方を その値に その引数 ( または PREFIX ) のすべての明示的な設定にかかわらず. INSTALLARCHLIB と INSTALLSITEARCH はセットします 対応するアーキテクチャのサブディレクトリに.


LIBPERL_A

The filename of the perllibrary that will be used together with this extension. Defaults to libperl.a.


perllibrary のファイル名です 使われる この拡張機能と一緒に. デフォルトでは libperl.a です.


LIBS

An anonymous array of alternative library specifications to be searched for (in order) until at least one library is found. E.g.


代替ライブラリの仕様の無名配列です 検索される ( 順番に ) 少なくとものひとつのライブラリが見つかるまで. 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


注意してください, その配列のすべての要素は含みます 引数の完全なセットを ld コマンドのための. なので指定しません


'LIBS' => ["-ltcl","-ltk","-lX11"]



See ODBM_File/Makefile.PL for an example, where an array is needed. If you specify a scalar as in


参照します ODBM_File/Makefile.PL を 例のために, どこで配列が必要かの. もしあなたが指定すると スカラを このように


'LIBS' => "-ltcl -ltk -lX11"



MakeMaker will turn it into an array with one element.


MakeMaker は変えます ひとつの要素の配列に.


LICENSE

Available in version 6.31 and above.


利用可能です バージョン 6.31 とそれ以上で.

The licensing terms of your distribution. Generally it's "perl_5" for the same license as Perl itself.


ライセンス条項です あなたのディストリビューションの. 一般的にそれは "perl_5" です Perl それ自身と同じtライセンスのために.

See CPAN::Meta::Spec for the list of options.


参照します CPAN::Meta::Spec を オブションのリストのために.

Default to "unknown".


デフォルトでは "unknown" です.


LINKTYPE

'static' or 'dynamic' (default unless usedl=undef in config.sh). Should only be used to force static linking (also see linkext below).


'static' または 'dynamic' ( デフォルトです config.sh で usedl=undef でなければ ). 静的リンクの強制でのみ使われるべきです ( また参照します linkext を 下記の ).


MAGICXS

When this is set to 1, OBJECT will be automagically derived from O_FILES.


これを 1 にセットしたとき, OBJECT は自動的に ( automagically ) 派生します O_FILES から.


MAKE

Variant of make you intend to run the generated Makefile with. This parameter lets Makefile.PL know what make quirks to account for when generating the Makefile.


make の変種です あなたが実行しようとする 生成された Makefile で. このパラメータは Makefile.PL に知らせます make の癖を Makefile を生成したときに考慮する.

MakeMaker also honors the MAKE environment variable. This parameter takes precedence.


MakeMaker はまた尊重します MAKE 環境変数を. このパラメータは優先されます.

Currently the only significant values are 'dmake' and 'nmake' for Windows users, instructing MakeMaker to generate a Makefile in the flavour of DMake ("Dennis Vadura's Make") or Microsoft NMake respectively.


現在 唯一重要な値は 'dmake' と 'nmake' です Windows ユーザのために, 指示します MakeMaker に Makefile を生成するように DMake ( "Dennis Vadura's Make" ) または Microsoft NMake のフレーバーで それぞれ.

Defaults to $Config{make}, which may go looking for a Make program in your environment.


デフォルトは $Config{make} です, それは探しにいくかもしれません Make プログラムを あなたの環境で.

How are you supposed to know what flavour of Make a Makefile has been generated for if you didn't specify a value explicitly? Search the generated Makefile for the definition of the MAKE variable, which is used to recursively invoke the Make utility. That will tell you what Make you're supposed to invoke the Makefile with.


どのようにあなたが知るのか Make のフレーバを Makefile が生成した もしあなたが指定しなかった場合に 値を明示的に ? 検索します 生成された Makefiel を MAKE 変数の定義のために, それは使われます 再帰的な呼び出しに Make ユーティリティの. それはあなたに伝えます 何を Make するか あなたが呼び出すはずの Makefile で.


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.


ブール値です MakeMaker に伝える 含めるべきルールを perl の make に. これは自動的に処理されます スイッチとして MakeMaker によって. ユーザは普通それを必要としません.


MAKEFILE_OLD

When 'make clean' or similar is run, the $(FIRST_MAKEFILE) will be backed up at this location.


'make clean' や似たものを実行したとき, $(FIRST_MAKEFILE) はバックアップされます この場所に.

Defaults to $(FIRST_MAKEFILE).old or $(FIRST_MAKEFILE)_old on VMS.


デフォルトで $(FIRST_MAKEFILE).old または VMS で $(FIRST_MAKEFILE)_old です.


MAN1PODS

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.


pod を含むファイルのハッシュリファレンスです. MakeMaker はこれをデフォルトにします すべての EXE_FILES で POD ディレクティブを含む. ここにリストされているファイルは 変換されます man ページに それと インストールされます 要求されたように Configure 時に.

This hash should map POD files (or scripts containing POD) to the man file names under the blib/man1/ directory, as in the following example:


このハッシュはマップする必要があります POD ファイル ( またはスクリプト POD を含む ) を man ファイル名に blib/man1/ ディレクトリ配下の, 次の例のように:


MAN1PODS => {
'doc/command.pod' => 'blib/man1/command.1',
'scripts/script.pl' => 'blib/man1/script.1',
}




MAN3PODS

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 make and will be installed during make install.


ハッシュリファレンスです 割り当てる *.pm と *.pod ファイルに ファイルを その man ページが書き込まれる. MakeMaker は解析します すべての *.pod と *.pm ファイルを POD ディレクティブのための. POD を含むファイルは MAN3PODS のデフォルトの key になります. これらはそれから返還されます man ページに make の間で それと インストールされます make install の間で.

Example similar to MAN1PODS.


例えば MAN1POD と同じように.


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


もしそれが意図されているなら 新しい perl バイナリの作成を, この変数は保持することがあります 名前を そのバイナリのための. デフォルトは perl です


META_ADD

META_MERGE

Available in version 6.46 and above.


利用可能です バージョン 6.46 とそれ以上で.

A hashref of items to add to the CPAN Meta file (META.yml or META.json).


アイテムのハッシュリファレンスです 追加する CPAN Meta ファイルに ( META.yml または META.json ).

They differ in how they behave if they have the same key as the default metadata. META_ADD will override the default value with its own. META_MERGE will merge its value with the default.


それらは異なります どのように振る舞うか もしそれらが同じ kye を持っているなら デフォルトのメタデータとして. META_ADD はオーバーライドします デフォルトの値を 独自のもので. META_MERGE はその値をマージします デフォルトと.

Unless you want to override the defaults, prefer META_MERGE so as to get the advantage of any future defaults.


あなたがデフォルトのオーバーライドを望まない限り, META_MERGE を好みます 得るように すべての将来のデフォルトのアドバンテージを.

Where prereqs are concerned, if META_MERGE is used, prerequisites are merged with their counterpart WriteMakefile() argument (PREREQ_PM is merged into {prereqs}{runtime}{requires}, BUILD_REQUIRES into {prereqs}{build}{requires}, CONFIGURE_REQUIRES into {prereqs}{configure}{requires}, and TEST_REQUIRES into {prereqs}{test}{requires}). When prereqs are specified with META_ADD, the only prerequisites added to the file come from the metadata, not WriteMakefile() arguments.


prereqs に関するかぎり, もし META_MERGE が使われているなら, 前提条件はマージされます それらのカウンターパートと WriteMakefile() の引数の ( PREREQ_PM はマージされます {prereqs}{runtime}{requires) に, BUILD_REQUIRES は {prereqs}{configure}{requires} に, それと TEST_REQUIRES は {prereqs}{test}{requires} に ). prereqs が指定されたとき META_ADD で, 唯一の prerequisites は 追加される ファイルに メタデータからきます, WriteMakefile() の引数ではなく.

Note that these configuration options are only used for generating META.yml and META.json -- they are NOT used for MYMETA.yml and MYMETA.json. Therefore data in these fields should NOT be used for dynamic (user-side) configuration.


注意してください それらの構成オプションは META.yml と META.json の生成にのみ使われます -- それらは MYMETA.yml と MYMETA.json では使われません. ですから データは これらのフィールドの 使ってはいけません 動的 ( ユーザサイド ) な構成 ( configuration ) に.

By default CPAN Meta specification 1.4 is used. In order to use CPAN Meta specification 2.0, indicate with meta-spec the version you want to use.


デフォルトでは CPAN Meta 仕様 1.4 が使われます. CPAN Meta 仕様 2.0 を使うには, 示します meta-spec で バージョンを あなたが利用を望む.


META_MERGE => {
"meta-spec" => { version => 2 },
resources => {
repository => {
type => 'git',
url => 'git://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker.git',
web => 'https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker',
},
},
},




MIN_PERL_VERSION

Available in version 6.48 and above.


利用可能です バージョン 6.48 とそれ以上から.

The minimum required version of Perl for this distribution.


Perl の最小限要求されるバージョンです このディストリビューションのために.

Either the 5.006001 or the 5.6.1 format is acceptable.


5.006001 または 5.6.1 の形式はいずれも受け入れられます.


MYEXTLIB

If the extension links to a library that it builds, set this to the name of the library (see SDBM_File)


もし拡張機能がライブラリにリンクしているなら ビルドする, セットします これをライブラリの名前に ( 参照 SDBM_File )


NAME

The package representing the distribution. For example, Test::More or ExtUtils::MakeMaker. It will be used to derive information about the distribution such as the "DISTNAME", installation locations within the Perl library and where XS files will be looked for by default (see "XS").


ディストリビューションを表すパッケージです. 例えば, Test::More や ExtUtils::MakeMaker です. これは利用されます 情報を得るために ディストリビューションに関する "DISTNAME", インストール場所 Perl ライブラリの中での それと どこで XS ファイルが検索されるか デフォルトで ( 参照 "XS" ) などの.

NAME must be a valid Perl package name and it must have an associated .pm file. For example, Foo::Bar is a valid NAME and there must exist Foo/Bar.pm. Any XS code should be in Bar.xs unless stated otherwise.


NAME は有効な Perl パッケージ名でなければなりません それと 関連する .pm ファイルを持っていなければなりません. 例えば, Foo::Bar は有効な名前で それは Foo/Bar.pm が存在しなければなりません. すべての XS コードは Bar.xs でなければなりません 特に定められていない限り.

Your distribution must have a NAME.


あなたのディストリビューションは NAME を持たなければなりません.


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.


MakeMaker は見つけ出します もし拡張機能が含んでいるなら リンク可能なコードを ディレクトリツリーのどこかに, それと セットしますこの変数を それに応じて, しかし あなたは早くできます ほんの少しだけ もしあなたが定義するなら このブール値の変数を あなた自身で.


NOECHO

Command so make does not print the literal commands it's running.


コマンド make は出力しません リテラルコマンドを その実行中.

By setting it to an empty string you can generate a Makefile that prints all commands. Mainly used in debugging MakeMaker itself.


セットすると 空文字に あなたは生成できます Makefile を すべてのコマンドを出力する. 主に使用されます MakeMaker それ自身のデバッグに.

Defaults to @.


デフォルトでは @ です.


NORECURS

Boolean. Attribute to inhibit descending into subdirectories.


ブール値. 抑止するアトリビュートです 下ることを サブディレクトリに.


NO_META

When true, suppresses the generation and addition to the MANIFEST of the META.yml and META.json module meta-data files during 'make distdir'.


真 のときは, 抑制します 生成と追加を MMANIFEST への META.yml と META.json の モジュールのメタデータファイルの 'make distdir' の間の.

Defaults to false.


デフォルトでは 偽 です.


NO_MYMETA

When true, suppresses the generation of MYMETA.yml and MYMETA.json module meta-data files during 'perl Makefile.PL'.


真 のときは, 抑制します 生成を MYMETA.yml と MYMETA.json のモジュールメタデータファイルの 'perl Makefile.PL' の間の.

Defaults to false.


デフォルトでは 偽 です.


NO_PACKLIST

When true, suppresses the writing of packlist files for installs.


真 のときは, 抑制します 書き込みを インストールのための packlist ファイルの.

Default to false.


デフォルトでは 偽 です.


NO_PERLLOCAL

When true, suppresses the appending of installations to perllocal.


真 のときは, 抑制します perllocal へのインストールの追加を.

Default to false.


デフォルトでは 偽 です.


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.


一般的に, すべての生成された Makefile はチェックします MakeMaker の現在のバージョンを それと Makefile がビルドされたバージョンを. もし NO_VC がセットされているなら, バージョンチェックは無視されます. これは書き込みません あなたの Makefile.PL に, 代わりにそれを対話的に使います.


OBJECT

List of object files, defaults to '$(BASEEXT)$(OBJ_EXT)', but can be a long string or an array containing all object files, e.g. "tkpBind.o tkpButton.o tkpCanvas.o" or ["tkpBind.o", "tkpButton.o", "tkpCanvas.o"]


オブジェクトファイルのリストで, デフォルトでは '$(BASEEXT)$(OBJ_EXT)' です, しかし 長い文字列や配列にもできます すべてのオブジェクトファイルを含む, e.g. "tkpBind.o tkpButton.o tkpCanvas.o" や ["tkpBind.o", "tkpButton.o", "tkpCanvas.o"]

(Where BASEEXT is the last component of NAME, and OBJ_EXT is $Config{obj_ext}.)


BASEEXT は NAME の最後のコンポーネントで, それと OBJ_EXT は $Config{obj_ext} です.


OPTIMIZE

Defaults to -O. Set it to -g to turn debugging on. The flag is passed to subdirectory makes.


デフォルトでは -O です. -g にセットします デバッグをオンにするには. フラグは渡されます サブディレクトリ make に.


PERL

Perl binary for tasks that can be done by miniperl. If it contains spaces or other shell metacharacters, it needs to be quoted in a way that protects them, since this value is intended to be inserted in a shell command line in the Makefile. E.g.:


Perl バイナリです タスクのための miniperl によって実行できる. もしそれが含むなら スペースや他のシェルメタキャラクタを, それは必要とします それらを保護する方法でクォートを, この値は挿入されることを目的としているからです シェルコマンドラインに Makefile で. E.g.:


# Perl executable lives in "C:/Program Files/Perl/bin"
# Normally you don't need to set this yourself!
# Perl 実行ファイルは "C:/Program Files/Perl/bin" にあります
# 普通あなたは 自分でこれをセットする必要はありません !
$ perl Makefile.PL PERL='"C:/Program Files/Perl/bin/perl.exe" -w'




PERL_CORE

Set only when MakeMaker is building the extensions of the Perl core distribution.


セットします MakeMaker が構築する時にのみ Perl コアディストリビューションの拡張機能を.


PERLMAINCC

The call to the program that is able to compile perlmain.c. Defaults to $(CC).


プログラムへの呼び出しです コンパイルできる perlmain.c を. デフォルトでは $(CC) です.


PERL_ARCHLIB

Same as for PERL_LIB, but for architecture dependent files.


同じです PERL_LIB と, しかし アーキテクチャに依存するファイルのためです.

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).


使われます MakeMaker が構築するときにのみ Perl コアディストリビューションの拡張機能を ( なぜなら 普通 $(PERL_ARCHLIB) は自動的に @INC で, それと その追加は妨げになるからです PERL5LIB の ).


PERL_LIB

Directory containing the Perl library to use.


ディレクトリです Perl ライブラリを含む 利用する.

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).


使われます MakeMaker が構築する時にのみ Perl コアディストリビューションの拡張機能を ( なぜなら ふつう $(PERL_LIB) は自動的に @INC で, それと その追加は妨げになるからです PERL5LIB の ).


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


デフォルトでは 0 です. 真 にセットしなければなりません もし拡張機能が動作するなら メモリ割り当てルーチンで Perl malloc() サブシステムによって置き換えられた. これは適用できるはずです ほとんどの拡張機能に 除いて これらを

・with bugs in memory allocations which are caught by Perl's malloc();
・which interact with the memory allocator in other ways than via malloc(), realloc(), free(), calloc(), sbrk() and brk();
・which rely on special alignment which is not provided by Perl's malloc().


・バグがある メモリ割り当てに Perl の malloc() によってキャッチされた;
・メモリアロケータとやりとりする 他の方法で malloc(), realloc(), free(), calloc(), sbrk() それと brk() を介してではなく.
・依拠する 特別なアラインメントに Perl の malloc() が提供していない.

NOTE. Neglecting to set this flag in any one of the 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.


注意してください. このフラグのセットを怠ると ロードされた拡張機能のいずれかへの 無効化されます Perl の malloc() の多くの利点が, システム資源のより良い利用, エラーの検出, メモリ使用リポート, メモリ割り当ての補足可能な失敗 etc のような.


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.


デフォルトでは $Config{installprefixexp} で, フォールバックします $Config{installprefix}, $Config{prefixexp} や $Config{prefic} に $Config{installprefixexp} は存在しないはずです.

Overridden by PREFIX.


PREFIX によりオーバーライドされます.


PERLRUN

Use this instead of $(PERL) when you wish to run perl. It will set up extra necessary flags for you.


使います $(PERL) の代わりにこれを あなたがしたいとき perl の実行を. それはセットアップします 余分に必要なフラグを あなたのために.


PERLRUNINST

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.


使います $(PERL) の代わりにこれを あなたがしたいとき perl の実行を モジュールとともに動作する. -I$(INST_ARCH) や 他の必要なフラグのようなものを追加すると perl は見ることができます モジュールを あなたがインストールしようとする.


PERL_SRC

Directory containing the Perl source code (use of this should be avoided, it may be undefined)


ディレクトリです Perl のソースコードを含む ( これの利用は避けるべきです, これは未定義かもしれません )


PERM_DIR

Desired permission for directories. Defaults to 755.


望ましいパーミッションです ディレクトリのための. デフォルトでは 755 です.


PERM_RW

Desired permission for read/writable files. Defaults to 644.


望ましいパーミンションです 読み/書きするファイルのための. デフォルトでは 644 です.


PERM_RWX

Desired permission for executable files. Defaults to 755.


望ましいパーミンションです 実行するファイルのための. デフォルトでは 755 です.


PL_FILES

MakeMaker can run programs to generate files for you at build time. By default any file named *.PL (except Makefile.PL and Build.PL) in the top level directory will be assumed to be a Perl program and run passing its own basename in as an argument. This basename is actually a build target, and there is an intention, but not a requirement, that the *.PL file make the file passed to to as an argument. For example...


MakeMaker は実行できます プログラムを ファイルを生成する あなたのために 構築時に. デフォルトで すべてのファイルは 名前が .PL の ( 除いて Makefile.PL と Build.PL を ) トップディレクトリにある Perl プログラムとみなされます それと 実行します 渡して それ独自の basename に 引数として. この basename は実際にはビルドターゲットで, 意図があります, しかし必要条件ではありません, *.PL ファイルがファイルを渡すようにする 引数として. 例えば ...


perl foo.PL foo



This behavior can be overridden by supplying your own set of files to search. PL_FILES accepts a hash ref, the key being the file to run and the value is passed in as the first argument when the PL file is run.


この振る舞いはオーバーライドできます 供給することにより あなたの独自のファイルのセットを 検索に. PL_FILES は受け入れます ハッシュリファレンスを, key は実行するファイルで value は渡されます 最初の引数として PL ファイルを実行するときに.


PL_FILES => {'bin/foobar.PL' => 'bin/foobar'}

PL_FILES => {'foo.PL' => 'foo.c' }



Would run bin/foobar.PL like this:


bin/foobar.PL は実行されます このように:


perl bin/foobar.PL bin/foobar



If multiple files from one program are desired an array ref can be used.


もしひとつのファイルから複数のファイルが望まれたなら 配列リファレンスを使えます.


PL_FILES => {'bin/foobar.PL' => [qw(bin/foobar1 bin/foobar2)]}



In this case the program will be run multiple times using each target file.


この場合 プログラムは実行されます 複数回 利用して 各ターゲットファイルを.


perl bin/foobar.PL bin/foobar1
perl bin/foobar.PL bin/foobar2



PL files are normally run after pm_to_blib and include INST_LIB and INST_ARCH in their @INC, so the just built modules can be accessed... unless the PL file is making a module (or anything else in PM) in which case it is run before pm_to_blib and does not include INST_LIB and INST_ARCH in its @INC. This apparently odd behavior is there for backwards compatibility (and it's somewhat DWIM). The argument passed to the .PL is set up as a target to build in the Makefile. In other sections such as postamble you can specify a dependency on the filename/argument that the .PL is supposed (or will have, now that that is is a dependency) to generate. Note the file to be generated will still be generated and the .PL will still run even without an explicit dependency created by you, since the all target still depends on running all eligible to run.PL files.


PL ファイルは普通実行されます pm_to_blib の後で それとインクルードします INST_LIB と INST_ARCH を @INC に, なので ちょうど構築したモジュールにアクセスできます ... PL ファイルがモジュール ( または 何か他のものを PM の ) を作成している場合を除いて この場合それは実行されます pm_to_blib の前に それとインクルードしません INST_LIB と INST_ARCH は @INC に. この一見奇妙な振る舞いは下位互換のためにあります ( それとこれはいくらか DWIM ( Do What I Mean ) です ). 引数は .PL に渡される セットアップされます 構築するターゲッットとして Makefile で. 他のセクションでは postamble のような あなたは指定できます 依存関係を filename/argument で .PL が想定される ( またはなる, 今それが依存関係に ) 生成すると. 注意してください 生成されるファイルは まだ生成されます それと .PL は実行され続けます たとえ明示的な依存関係がなくても あなたによって作成された, すべてのターゲットが依存しているためです 実行中のすべての適格な run.PL ファイルに.


PM

Hashref of .pm files and *.pl files to be installed. e.g.


ハッシュリファレンスです .pm ファイルと .pl ファイルの インストールされる. e.g.


{'name_of_file.pm' => '$(INST_LIB)/install_as.pm'}



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.


デフォルトでこれは含みます *.pm と *.pl それと PMLIBDIRS ディレクトリで見つかったファイルを. PM を定義すると Makefile.PL で PMLIBDIRS をオーバーライドします.


PMLIBDIRS

Ref to array of subdirectories containing library files. Defaults to [ 'lib', $(BASEEXT) ]. The directories will be scanned and 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.


リファレンスです サブディレクトリの配列への ライブラリファイルを含む. デフォルトでは ['lib', $(BASEEXT)] です. ディレクトリはスキャンされます それと それらが含むすべてのファイルをインストールします 対応する場所に ライブラリの. libscan() メソッドは変更に使えます 振る舞いの. PM を定義すると Makefile.PL で オーバーライドします PMLIBDIRS を.

(Where BASEEXT is the last component of NAME.)


( BASEEXT は NAME の最後のコンポーネントです. )


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. You could use:


フィルタプログラムで, 伝統的な Unix 感覚の ( stdin から入力, stdout から出力 ) 各 .pm ファイルに渡されます 構築の間で ( pm_to_blib() フェーズです ). それは空がデフォルトで, 意味します フィルタリングを行わないことを. あなたは使えます:


PM_FILTER => 'perl -ne "print unless /^\\#/"',



to remove all the leading comments on the fly during the build. In order to be as portable as possible, please consider using a Perl one-liner rather than Unix (or other) utilities, as above. The # is escaped for the Makefile, since what is going to be generated will then be:


削除します すべての読み込んだコメントを その場で 構築の間に. 移植しやすいようにするために できるだけ, 検討してください Perl ワンライナーの利用を Unix ( または他の ) ユーティリティではなく, 上記のように. # はエスケープされます Makefile のために, なのでそれから生成されることになります:


PM_FILTER = perl -ne "print unless /^\#/"



Without the \ before the #, we'd have the start of a Makefile comment, and the macro would be incorrectly defined.


# の前に \ がないと, 私たちは Makefile コメントのスタートとしてしまい, マクロが誤って定義されます.

You will almost certainly be better off using the PL_FILES system, instead. See above, or the ExtUtils::MakeMaker::FAQ entry.


あなたはほとんど確実に使ったほうが良いです PL_FILES システムを, 代わりに. 参照します 上記を, または ExtUtils::MakeMaker::FAQ エントリを.


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:


リリース 5.005 では 新しい規則から免除しています ( grandfathered ) 古いグローバルシンボル名を 提供することによって プリプロセッサマクロを 拡張機能のソースの互換性のために. リリース 5.6 からは, これらプリプロセッサの定義は利用できません デフォルトでは. POLLUTE フラグは指定してます 古い名前をまだ定義しなければならないことを:


perl Makefile.PL POLLUTE=1



Please inform the module author if this is necessary to successfully install a module under 5.6 or later.


通知してください モジュールの作者に もしこれが必要なら 正常なモジュールのインストールに 5.6 またはそれ以降での.


PPM_INSTALL_EXEC

Name of the executable used to run PPM_INSTALL_SCRIPT below. (e.g. perl)


実行可能ファイルの名前です PPM_INSTALL_SCRIPT 以下の実行に使われる. ( e.g. perl )


PPM_INSTALL_SCRIPT

Name of the script that gets executed by the Perl Package Manager after the installation of a package.


スクリプトの名前です 実行されることになる Perl パッケージマネージャによって パッケージのインストール後に.


PPM_UNISTALL_EXEC

Name of the executable used to run PPM_UNINSTALL_SCRIPT below. (e.g. perl)


実行可能ファイルの名前です PPM_UNISTALL_SCRIPT 以下の実行に使われる ( e.g. perl )


PPM_UNISTALL_SCRIPT

Name of the script that gets executed by the Perl Package Manager before the removal of a package.


スクリプトの名前です 実行されることになる Perl パッケージマネージャによって パッケージの削除の前に.


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.


これはオーバーライドします すべてのデフォルトのインストール場所を. man ページ, ライブラリ, スクリプト, etc... MakeMaker はトライします 目星をつけることを 置く場所について 新しい PREFIX の下の あなたのデフォルトの Config に基づいて. それに失敗すると, それはフォールバックします 理にかなった構造に あなたのプラットフォームのための.

If you specify LIB or any INSTALL* variables they will not be affected by the PREFIX.


もしあなたが指定すると LIB または任意の INSTALL* 変数を それは影響を受けません PREFIX による.


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 instead of simply informing the user of the missing dependencies.


ブールです. もしこのパラメータが 真 で, 必要なモジュール ( またはそれの正しいバージョン ) を持っていないと致命的になります. perl Makefile.PL は die します 不足している依存関係のシンプルな通知をユーザにする代わりに.

It is extremely rare to have to use PREREQ_FATAL. Its use by module authors is strongly discouraged and should never be used lightly.


極めてレアです PREREQ_FATAL を使う必要は. モジュール作者による利用は強く推奨されません それと 決して軽く使わないでください.

For dependencies that are required in order to run Makefile.PL, see CONFIGURE_REQUIRES.


依存関係については 要求される Makefile.PL を実行するために, 参照してください CONFIGURE_REQUIRES を.

Module installation tools have ways of resolving unmet dependencies but to do that they need a Makefile. Using PREREQ_FATAL breaks this. That's bad.


モジュールインストールツールは持っています 解決の方法を 満たされない依存関係を しかしそれを行うには Makefile が必要です. PREREQ_FATAL を使うとこれは中断します. That's bad.

Assuming you have good test coverage, your tests should fail with missing dependencies informing the user more strongly that something is wrong. You can write a t/00compile.t test which will simply check that your code compiles and stop "make test" prematurely if it doesn't. See "BAIL_OUT" in Test::More for more details.


仮定すると あなたが良いテストカバレッジを, あなたのテストは失敗して 不足している依存関係で 通知します ユーザにより強く 何かが間違っていると.あなたは書けます t/00compile.t テストを それはシンプルにチェックします あなたのコードのコンパイルを それと 停止します "make test" を 早々に もしそうでないなら. 参照します "BAIL_OUT" を Test::More の 詳細のために.


PREREQ_PM

A hash of modules that are needed to run your module. The keys are the module names ie. Test::More, and the minimum version is the value. If the required version number is 0 any version will do. The versions given may be a Perl v-string (see version) or a range (see CPAN::Meta::Requirements).


モジュールのハッシュです 実行に必要とされる あなたのモジュールの. key はモジュール名です ie. Test::More, それと最小バージョンが value です. もし要求されたバージョン番号が 0 ならすべてのバージョンで動作します. バージョンに与えられるのは Perl の v-string ( 参照 vertion ) か 範囲 ( 参照 CPAN::Meta::Requirements ) であるはずです.

This will go into the requires field of your META.yml and the runtime of the prereqs field of your META.json.


これは あなたの META.yml の requires フィールド と あなたの META.json の prereqs の runtime になります.


PREREQ_PM => {
# Require Test::More at least 0.47
"Test::More" => "0.47",

# Require any version of Acme::Buffy
"Acme::Buffy" => 0,
}




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.


ブールです. もしこのパラメータが 真 なら, prerequisites は stdout に出力されます それと MakeMaker は終了します. 出力フォーマットは evalble ( eval 可能 ) なハッシュリファレンスです.


$PREREQ_PM = {
'A::B' => Vers1,
'C::D' => Vers2,
...
};



If a distribution defines a minimal required perl version, this is added to the output as an additional line of the form:


もしディストリビューションが定義していたら 必要最低限の perl バージョンを, これは追加されます 出力に 追加業として このフォームで:


$MIN_PERL_VERSION = '5.008001';



If BUILD_REQUIRES is not empty, it will be dumped as $BUILD_REQUIRES hashref.


もし BUILD_REQUIRES が空でないなら, それはダンプされます $BUILD_REQUIRES ハッシュリファレンスとして.


PRINT_PREREQ

RedHatism for PREREQ_PRINT. The output format is different, though:


PREREQ_PRINT のための RedHatism ( RedHat 主義 ? ). 出力形式は異なります, けども:


perl(A::B)>=Vers1 perl(C::D)>=Vers2 ...



A minimal required perl version, if present, will look like this:


必要最小限の perl バージョンが, もしあれば, このようになります:


perl(perl)>=5.008001




SITEPREFIX

Like PERLPREFIX, but only for the site install locations.


PERLPREFIX と同様です, しかし site インストールの場所だけのためです.

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.


デフォルトでは $Config{siteprefixexp} です. Perl の 5.6.0 では持っていませんでした 明示的な siteprefix を Config で. その場合は $Config{installprefix} が使われます.

Overridable by PREFIX


PREFIX によってオーバライドされます


SIGN

When true, perform the generation and addition to the MANIFEST of the SIGNATURE file in the distdir during 'make distdir', via 'cpansign -s'.


真 のとき, 行います 生成と追加を SIGNATURE ファイルの MANIFEST に distdir の 'make distdir' の間に, 'cpansign -s' を介して.

Note that you need to install the Module::Signature module to perform this operation.


注意してください あなたはインストールが必要です Module::Signature モジュールの この操作をおこなうために.

Default to false.


デフォルトでは 偽 です.


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.


配列リファレンスです. E.g. [qw(name1 name2)] スキップします ( 書き込みをしない ) Makefile のセクションを. 注意 ! SKIP アトリビュートを使わないでください 無視できる程度のスピードアップのために. それは深刻なダメージになるかもしれません Makefile の結果として. もしあなたが本当にそれを必要とするときにのみ使います.


TEST_REQUIRES

Available in version 6.64 and above.


利用可能です バージョン 6.64 以上で.

A hash of modules that are needed to test your module but not run or build it.


モジュールのハッシュです あなたのモジュールのテストに必要な しかしその実行や構築はしません.

This will go into the build_requires field of your META.yml and the test of the prereqs field of your META.json.


これは あなたの META.yml の build_require フィールドとあなたの META.json の prereqs フィールドの test になります.

The format is the same as PREREQ_PM.


フォーマットは PREREQ_PM と同じです.


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 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.


typemap ファイル名の配列リファレンスです. これを使います typemap が何か他のディレクトリにあるとき 現在のディレクトリではなく または それが typemap という名前でないときに. リストの最後の typemap が優先されます. 現在のディレクトリの typemap は最高の優先度です, たとえそれが TYPEMAPS にリストされていなくても. デフォルトのシステムの typemap は最低の優先度です.


VENDORPREFIX

Like PERLPREFIX, but only for the vendor install locations.


PERLPREFIX と同様です, しかし vendor のインストール場所のためのみです.

Defaults to $Config{vendorprefixexp}.


デフォルトでは $Config{vendorprefixexp}.

Overridable by PREFIX


PREFIX によってオーバーライドされます


VERBINST

If true, make install will be verbose


もし 真 なら, make isntall は冗長になります


VERSION

Your version number for distributing the package. This defaults to 0.1.


あなたのバージョン番号です 配布するパッケージのための. このデフォルトは 0.1 です.


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 something like a $VERSION assignment or package Name VERSION will be used. The following lines will be parsed o.k.:


VERSION の指定の代わりです Makefile.PL での あなたは MakeMaker にファイルを解析させて 決定できます バージョン番号を. 解析ルーチンは要求します VERSION_FROM によって指名されたファイルが含むことを バージョン番号を計算できる 1 行を. ファイルの最初の行が $VERSION 割り当てやパッケージの Name VERSION のようなものを含む 使われます. 次の行は解析されます o.k:


# Good
package Foo::Bar 1.23; # 1.23
$VERSION = '1.00'; # 1.00
*VERSION = \'1.01'; # 1.01
($VERSION) = q$Revision$ =~ /(\d+)/g; # The digits in $Revision$
$FOO::VERSION = '1.10'; # 1.10
*FOO::VERSION = \'1.11'; # 1.11



but these will fail:


しかしこれらは失敗します:


# Bad
my $VERSION = '1.01';
local $VERSION = '1.02';
local $FOO::VERSION = '1.30';



(Putting my or local on the preceding line will work o.k.)


( my や local を置くと 先行する行で 動作します o.k. )

"Version strings" are incompatible and should not be used.


"Version strings" は互換性がないので使わないでください.


# Bad
$VERSION = 1.2.3;
$VERSION = v1.2.3;



version objects are fine. As of MakeMaker 6.35 version.pm will be automatically loaded, but you must declare the dependency on version.pm. For compatibility with older MakeMaker you should load on the same line as $VERSION is declared.


version オブジェクトは大丈夫です. MakeMaker 6.35 からは version.pm は自動的に読み込まれます, しかし あなたは宣言しなければなりません 依存関係を version.pm で. 互換性のために 古い MakeMaker との あなたはロードするべきです $VERSION が宣言されているのと同じ行で.


# All on one line
use version; our $VERSION = qv(1.2.3);



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


VERSION_FROM で指名されたファイルは 依存関係として追加されません Makefile に. これはそれほど正しくはありません, しかし それは大きな痛みになります 開発の間に Makefile を書き直さなければなりません 小さな変更のために そのファイルでの. もしあなたが望むなら 確認を Makefile が含むかの 正しい VERSION マクロを ファイルの全ての変更の後で, あなたはこういうようにしなければならないでしょう


depend => { Makefile => '$(VERSION_FROM)' }



See attribute depend below.


参照します アトリビュート depend を 以下の.


VERSION_SYM

A sanitized VERSION with . replaced by _. For places where . has special meaning (some filesystems, RCS labels, etc...)


サニタイズされた VERSION です . を _ によって置き換えた. 場所のために . が特別な意味をもつ ( いくつかのファイルシステム, RCS ラベル, etc... )


XS

Hashref of .xs files. MakeMaker will default this. e.g.


.xs ファイルのハッシュリファレンスです. MakeMaker のデフォルトはこれです. 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.


.c ファイルは自動的にインクルードされます ファイルのリストに make clean によって削除された.


XSBUILD

Hashref with options controlling the operation of XSMULTI:


オプションを伴うハッシュリファレンスです コントロールする XSMULTI の操作を:


{
xs => {
all => {
# options applying to all .xs files for this distribution
},
'lib/Class/Name/File' => { # specifically for this file
DEFINE => '-Dfunktastic', # defines for only this file
INC => "-I$funkyliblocation", # include flags for only this file
# OBJECT => 'lib/Class/Name/File$(OBJ_EXT)', # default
LDFROM => "lib/Class/Name/File\$(OBJ_EXT) $otherfile\$(OBJ_EXT)", # what's linked
},
}
}



Note xs is the file-extension. More possibilities may arise in the future. Note that object names are specified without their XS extension.


注意してください xs はファイル拡張子です. より多くの可能性が起こるかもしれません 将来. 注意してください そのオブジェクトの名前は指定されます XS 拡張子なしで.

LDFROM defaults to the same as OBJECT. OBJECT defaults to, for XSMULTI, just the XS filename with the extension replaced with the compiler-specific object-file extension.


LDFROM のデフォルトは OBJECT と同じです. OBJECT のデフォルトは, XSMULTI では, ちょうど XS のファイル名です 拡張子付きの 置き換えられた コンパイラ特定の オブジェクトファイル拡張子で.

The distinction between OBJECT and LDFROM: OBJECT is the make target, so make will try to build it. However, LDFROM is what will actually be linked together to make the shared object or static library (SO/SL), so if you override it, make sure it includes what you want to make the final SO/SL, almost certainly including the XS basename with $(OBJ_EXT) appended.


区別 OBJECT と LDFROM の間の: OBJECT は make ターゲットです, なので make はトライします それの構築を. しかしながら, LDFROM は実際に一緒にリンクされるものです シェアードオブジェクトや静的ライブラリ ( SO/SL ) を作るために, なので もしあなたがそれをオーバーライドするなら, 確認してください 含まれていることを あなたが望むものが 最終的な SO/SL にすると, ほとんどの確実に 含まれています XS basename が $(OBJ_EXT) が追加された.


XSMULTI

When this is set to 1, multiple XS files may be placed under lib/ next to their corresponding *.pm files (this is essential for compiling with the correct VERSION values). This feature should be considered experimental, and details of it may change.


これが 1 にセットされたとき, 複数の XS ファイルを配置できるはずです lib/ 配下の それらに対応する *.pm ファイルのそばに ( これは不可欠です 正しい VERSION 値のコンパイルのために ). この機能は実験的と見なされています, それと その詳細は変更になるかもしれません.

This feature was inspired by, and small portions of code copied from, ExtUtils::MakeMaker::BigHelper. Hopefully this feature will render that module mainly obsolete.


この機能はインスパイアされています, それとコードの小さい部分をコピーしています, ExtUtils::MakeMaker::BigHelper から. うまくいけばこの機能は 主にそのモジュールを廃れさせます.


XSOPT

String of options to pass to xsubpp. This might include -C++ or -extern. Do not include typemaps here; the TYPEMAP parameter exists for that purpose.


xsubpp に渡すオプションの文字列です. これは含むかもしれません -C++ や -exterm を. 含めないでください ここに typemaps を; TYPEMAP パラメータが存在します その目的のために.


XSPROTOARG

May be set to -protoypes, -noprototypes or the empty string. The empty string is equivalent to the xsubpp default, or -noprototypes. See the xsubpp documentation for details. MakeMaker defaults to the empty string.


おそらくセットされています -protoypes ( ? prototypes ), -noprototypes または空文字列に. 空文字列は等価です xsubpp のデフォルト, または -noprototypes と. 参照します xsubpp のドキュメントを. MakeMaker のデフォルトはから文字です.


XS_VERSION

Your version number for the .xs file of this package. This defaults to the value of the VERSION attribute.


あなたのバージョン番号です このパッケージの .xs ファイルのための. このデフォルトは VERSION アトリビュートの値です.


Additional lowercase attributes ( 追加 小文字アトリビュートの )



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.


パラメータを渡すために使えます メソッドを実装する Makefile のパートに. パラメータは指定されます ハッシュリファレンスとして しかし 渡されます メソッドにはハッシュとして.

clean


{FILES => "*.xyz foo"}




depend


{ANY_TARGET => ANY_DEPENDENCY, ...}



(ANY_TARGET must not be given a double-colon rule by MakeMaker.)


( ANY_TARGET には与えてはいけません ダブルコロンルールを MakeMaker による. )


dist


{TARFLAGS => 'cvfF', COMPRESS => 'gzip', SUFFIX => '.gz',
SHAR => 'shar -m', DIST_CP => 'ln', ZIP => '/bin/zip',
ZIPFLAGS => '-rl', DIST_DEFAULT => 'private tardist' }



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'.


もしあなたが指定するなら COMPRESS を, その後 SUFFIX もまた変更しなければなりません, そのまま伝える必要があるので make に その圧縮のターゲットファイルを. DIST_CP を ln に設定すると便利になります, もしあなたが必要とするなら タイムスタンプの保存を あなたのファイルの. DIST_CP は値を取ることができます'cp', それはファイルをコピーします, 'ln', はファイルをリンクします, それと 'best' はシンボリックリンクをコピーして残りをリンクします. デフォルトは 'best' です.


dynamic_lib


{ARMAYBE => 'ar', OTHERLDFLAGS => '...', INST_DYANMIC_DEP => '...'}




linkext


{LINKTYPE => 'static', 'dynamic' or ''}



NB: Extensions that have nothing but *.pm files had to say


NB: 拡張子が *.pm のファイルだけをもっているなら 言わなければなりませんでした


{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.


5.0 より前の MakeMaker では. MakMaker のバージョン 5.00 からは このような行を削除できます 安全に. MakeMaker は認識します それらが何にもリンクされていないと.


macro


{ANY_MACRO => ANY_VALUE, ...}




postamble

Anything put here will be passed to MY::postamble() if you have one.


ここに置かれたものはすべて渡されます MY::postamble() に もしあなたがそれを持っているなら.


realclean


{FILES => '$(INST_ARCHAUTODIR)/*.xyz'}




test

Specify the target for testing.


ターゲットを指定します テストのための.


{TESTS => 't/*.t'}



RECURSIVE_TEST_FILES can be used to include all directories recursively under t that contain .t files. It will be ignored if you provide your own TESTS attribute, defaults to false.


RECURSIVE_TEST_FILES はインクルードに使えます すべてのディレクトリの再帰的な .t ファイルを含む t 配下の. それは無視されます もしあなたが提供しているなら あなた独自の TESTS アトリビュートを, デフォルトでは 偽 です.


{RECURSIVE_TEST_FILES => 1}




tool_autosplit


{MAXLEN => 8}




Overriding MakeMaker Methods ( オーバイライドする Makemaker メソッドを )



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:


もしあなたが達成できないなら 求める MakeMaker の振る舞いを 指定したあトリビュートで あなたは定義できます プライベートなサブルーチンを Makefile.PL で. 各サブルーチンはテキストを返します Makefile に書き込みたい. Makefile のセクションのオーバーライドには あなたはそれぞれ言います:


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.


もしあなたが実験を実行しているなら ライブラリとして埋め込んだ perl で 他のアプリケーションに, あなたが見つける MakeMaker は十分ではないかもしれません. あなたは ExtUtils::Embed を見ると良いかもしれません それは埋め込みのためのユーティリティのコレクションです.

If you still need a different solution, try to develop another subroutine that fits your needs and submit the diffs to makemaker@perl.org


もしあなたがまだ必要なら 異なる解決策を, 開発をトライしてください 他のサブルーチンの あなたのニーズにフィットする それと提出してください diff を makemaker@perl.prg に

For a complete description of all MakeMaker methods see ExtUtils::MM_Unix.


完全な説明のためには すべての MakeMaker メソッドの 参照します ExtUtils::MM_Unix を.

Here is a simple example of how to add a new target to the generated Makefile:


これはシンプルな例です どのように追加するかの 新しいターゲットを 生成された Makefile に:


sub MY::postamble {
return <<'MAKE_FRAGS';
$(MYEXTLIB): sdbm/Makefile
cd sdbm && $(MAKE) all

MAKE_FRAGS
}




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.


WriteMakefile() は現在いくつかの基本的な正当性チェック ( sanity check ) を行います そのパラメータを保護するために タイプミスや不正な値に対して. これは意味します たまたま過去にあった何かが 今警告を投げることを それと もしかすると生じさせることを 内部エラーを.

Some of the most common mistakes:


いくつかのもっとも一般的な間違い:


MAN3PODS => ' '



This is commonly used to suppress the creation of man pages. MAN3PODS takes a hash ref not a string, but the above worked by accident in old versions of MakeMaker.


これは一般的に使われます 抑制するために man ページの作成を. MAN3PODS は取ります ハッシュリファレンスを 文字列ではなく, しかし上記は動きました 偶然 MakeMaker の古いバージョンで.

The correct code is MAN3PODS => { }.


正しいコードは MAN3PODS => { } です.


  Hintsfile support ( ヒントファイルのサポート )



MakeMaker.pm uses the architecture-specific information from Config.pm. In addition it evaluates architecture specific hints files in a hints/ directory. The hints files are expected to be named like their counterparts in PERL_SRC/hints, but with an .pl file name extension (eg. next_3_2.pl). They are simply evaled 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.


MakeMaker.pm は使います アーキテクチャ固有 ( the architecture-specific ) の情報を Config.pm から. 加えて アーキテクチャ特有のヒントファイルを評価します hints/ ディレクトの. ヒントファイルは名付けられるはずですそれらのカウンターパートのように PERL_SRC/hitns の, しかし .pl ファイル名の拡張性で ( eg. next_3_2.pl ). それは単純に評価されます MakeMaker によって WriteMakeMaker() サブルーチンの中で, それと 使えます コマンドの実行ならびに特別な変数のインクルードに. ルールは ヒントファイルが選択される 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


ヒントファイルはただちに eval() されます 引数が与えられて WriteMakefile に ハッシュリファレンス $self に押し込まれた後で しかしこのリファレンスがブレスされる前です. なので もしあなたが行うことを望むなら あトリビュートのオーバーライドや作成に相当することを あなたはこのように言います


$self->{LIBS} = ['-ldbm -lucb -lc'];



Distribution Support ( ディストリビューションのサポート )



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.


拡張機能の作者のために MakeMaker は提供します いくつかの Makefile ターゲットを. サポートのほとんどは ExtUtils::Manifest から来ていて, そこで追加のドキュメントを見つけられます.

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)


リポートです どのファイルが ビルドディレクトリ以下で しかし MANIFEST 内でないファイルかの 逆の場合も同じ ( ? MANIFEST 内のファイルは報告しない ) です. ( 参照します ExtUtils::Manifest::fullcheck() を 詳細のために )


make skipcheck

reports which files are skipped due to the entries in the MANIFEST.SKIP file (See ExtUtils::Manifest::skipcheck() for details)


リポートです どのファイルがスキップされるか MANIFEST.SKIP ファイルのエントリに起因して ( 参照します ExtUtils::Manifest::skipcheck() を 詳細のために )


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.


行います realclean を 最初に それから distcheck を. 注意してください これは必要とされません 構築に 新しいディストリビューションの あなたが確信しているなら MANIFEST ファイルが ok だと.


make veryclean

does a realclean first and then removes backup files such as *~, *.bak, *.old and *.orig


行います realclean を 最初に それから バックアップファイルを削除します *~, *.bak, *.old や *.orig などのような


make manifest

rewrites the MANIFEST file, adding all remaining files found (See ExtUtils::Manifest::mkmanifest() for details)


書き換えて MANIFEST ファイルを, 追加します すべての残ったファイルを 見つかった ( 参照します ExtUtils::Manifest::mkmanifest() を 詳細のために )


make distdir

Copies all the files that are in the MANIFEST file to a newly created directory with the name $(DISTNAME)-$(VERSION). If that directory exists, it will be removed first.


コピーします すべてのファイルを MANIFEST ファイルの 新しく作成したディレクトリに 名前が $(DISTNAM)-$(VERSION) の. もしそのディレクトリが存在するなら, それは先に削除されます.

Additionally, it will create META.yml and META.json module meta-data file in the distdir and add this to the distdir's MANIFEST. You can shut this behavior off with the NO_META flag.


加えて, 作成します META.yml と META.json のモジュールのメタデータファイルを distdir で それと これを追加します distdir の MANIFEST に. あなたはこの振る舞いを止められます NO_META フラグで.


make disttest

Makes a distdir first, and runs a perl Makefile.PL, a make, and a make test in that directory.


distdir を作り 最初に, それと 実行します perl Makefile.PL, make, それから make test を そのディレクトリで.

make tardist

First does a distdir. Then a command $(PREOP) which defaults to a null command, followed by $(TO_UNIX), which defaults to a null command under UNIX, and will convert files in distribution directory to UNIX format otherwise. Next it runs tar on that directory into a tarfile and deletes the directory. Finishes with a command $(POSTOP) which defaults to a null command.


最初に distdir を行います. その後 コマンド $(PREOP) を そのデフォルトは null コマンドです, 続いて $(TO_UNIX) です, そのデフォルトは null コマンドです UNIX の下では, それと ファイルを変換します ディストリビューションディレクトリの UNIX フォーマットに それ以外では. 次に tar を実行して そのディレクトリで tarfile にします それと 削除します そのディレクトリを. 終了します コマンド $(POSTOP) で そのデフォルトは null コマンドです.


make dist

Defaults to $(DIST_DEFAULT) which in turn defaults to tardist.


デフォルトでは $(DIST_DEFAULT) で そのデフォルトは tardist になります.


make uutardist

Runs a tardist first and uuencodes the tarfile.


実行します tardist を 最初に それと uuencode します tarfile を.


make shdist

First does a distdir. Then a command $(PREOP) which defaults to a null command. Next it runs 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 shar program that can handle directories is mandatory.


最初に distdir を行います. その後に コマンド $(PREOP) で そのデフォルトは null コマンドです. 次に shar を実行して そのディレクトリで sharfile にします それと削除します 中間のディレクトリを 再び. 終了します コマンド $(POSTOP) で そのディレクトリは null コマンドです. 注意: shdist が適切に動作するために shar プログラムが扱うことは ディレクトリを 必須です.


make zipdist

First does a distdir. Then a command $(PREOP) which defaults to a null command. Runs $(ZIP) $(ZIPFLAGS) on that directory into a zipfile. Then deletes that directory. Finishes with a command $(POSTOP) which defaults to a null command.


最初に distdir を行います. その後に コマンド $(PREOP) で そのデフォルトは null コマンドです. 実行して $(ZIP) $(ZIPFLAGS) を そのディレクトリで zipfile にします. その後にそのディレクトリを削除します. 終了します コマンド $(POSTOP) で デフォルトでは null コマンドです.


make ci

Does a $(CI) and a $(RCS_LABEL) on all files in the MANIFEST file.


行います $(CI) と $(RCS_LABEL) を MANIFEST ファイルのすべてのファイルで.



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:


dist ターゲットのカスタマイズは 行えます 指定することによって ハッシュリファレンスを dist アトリビュートの WriteMakefile 呼び出しの. 次のパラメータは認識されます:


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')



An example:


例:


WriteMakefile(
...other options...
dist => {
COMPRESS => "bzip2",
SUFFIX => ".bz2",
}
);




Module Meta-Data (META and MYMETE) ( モジュールのメタデータ )



Long plaguing users of MakeMaker based modules has been the problem of getting basic information about the module out of the sources without running the Makefile.PL and doing a bunch of messy heuristics on the resulting Makefile. Over the years, it has become standard to keep this information in one or more CPAN Meta files distributed with each distribution.


ユーザを長く悩ますのは MakeMaker ベースのモジュールの 得ることの問題でした モジュールの基本的な情報を そのソースから 除いて 実行と Makefile.PL の 行うことを 面倒なたくさんのヒューリスティックを 結果の Makefile で. 長年, それは標準になっています この情報を保持することが 1 つ以上の CPAN Meta ファイルで 配布される 各ディストリビューションと共に.

The original format of CPAN Meta files was YAML and the corresponding file was called META.yml. In 2010, version 2 of the CPAN::Meta::Spec was released, which mandates JSON format for the metadata in order to overcome certain compatibility issues between YAML serializers and to avoid breaking older clients unable to handle a new version of the spec. The CPAN::Meta library is now standard for accessing old and new-style Meta files.


CPAN Meta ファイルのオリジナルフォーマットは YAML で それと 対応するファイルは呼ばれました META.yml と. 2010 年では, CPAN::Meta::Spec のバージョン 2 がリリースされ, それは指示します JSON フォーマットを メタデータのための 克服するために 特定の互換性の問題を YAML シリアライザ間の それと 壊すのを回避するために 古いクライアントを 扱うことができない spec の新しいバージョンを. CPAN::Meta ライブラリは現在標準です アクセスするための 古い それと 新しいスタイルの Meta ファイルに.

If CPAN::Meta is installed, MakeMaker will automatically generate META.json and META.yml files for you and add them to your 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 NO_META WriteMakefile() flag to true.


もし CPAN::Meta がインストールされているなら, MakeMaker は自動的に生成します META.json と META.yml ファイルを あなたのために それと 追加します それらを あなたの MANIFEST に 'distdir' ターゲットのパートとして ( つまり 'dist' ターゲットです ). これは目的とします シームレスで迅速に 追加するために CPAN に モジュールのメタデータと共に. もしあなたがしたいなら この機能の停止を, セットします NO_META を WriteMakefile() のフラグの 真 に.

At the 2008 QA Hackathon in Oslo, Perl module toolchain maintainers agreed to use the CPAN Meta format to communicate post-configuration requirements between toolchain components. These files, MYMETA.json and MYMETA.yml, are generated when Makefile.PL generates a Makefile (if CPAN::Meta is installed). Clients like CPAN or CPANPLUS will read these files to see what prerequisites must be fulfilled before building or testing the distribution. If you wish to shut this feature off, set the NO_MYMETA WriteMakeFile() flag to true.


2008 年の QA ハッカソンで Oslo の, Perl モジュールツールチェインのメンテナは同意しました CPAN Meta フォーマットを使うことに コミュニケートで 構成後に要求される ツールチェインコンポーネント間の. これらのファイル, MYMETA.json と MYMETA.yml, は 生成されます Makefile.PL が生成した時に Makefile を ( もし CPAN::Meta がインストールされていれば ). クライアントは CPANCPANPLUS のような これらのファイルを読んで 参照します 何が前提条件か 満たされるべき 前に ディストリビューションの構築やテストの. もしあなたはしたいなら この機能の停止を, セットします NO_MYMETA を WriteMakeFile() のフラグを 真 に.


Disabling an extension ( 無効 拡張機能の )



If some events detected in 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 Makefile which does nothing, but succeeds on all the "usual" build targets. To do so, use


もしいくつかのイベントが 検出された Makefile.PL で 暗示する場合 生成する方法がないことを モジュールを, しかし これは普通の状態です, それからあなたは生成できます Makefile を その何も行わない, しかし 成功します すべての "いつもの" ビルドターゲットで. そのためには, 使います


use ExtUtils::MakeMaker qw(WriteEmptyMakefile);
WriteEmptyMakefile();



instead of WriteMakefile().


代わりに WriteMakefile() の.

This may be useful if other modules expect this module to be built OK, as opposed to 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).


これは便利なはずです もし他のモジュールが期待しているなら このモジュールの build OK になることを, 対照的に work OK と ( 言ってみれば, このシステム依存のモジュールを構築すると サブディレクトリで 何か他のディストリビューションの, または リストされた 依存関係として CPAN::Bundle で, しかし 機能はサポートされます 異なる手段によって 現在のアーキテクチャで).


Other Handy Functions ( 他の便利な機能 )



prompt


my $value = prompt($message);
my $value = prompt($message,$default);



The 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.


この prompt() 関数は 提供します 簡単な方法を ユーザに入力を要求する makefile に書くために. それは表示します $message を 入力のためのプロンプトとして. もし $default が提供されているなら デフォルトで使われます. この関数は返します $value を ユーザによって選択された.

If 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.


もし prompt() が検出したなら それが実行されていないことを 対話形式で それと STDIN に何もないことを または PERL_MM_USE_DEFAULT 環境変数が 真 にセットされている場合, $default は使われます プロンプトなしで. これは防止します 自動化された処理を ブロックすることから ユーザの入力で.

If no $default is provided an empty string will be used instead.


もし $default が提供されていないなら空文字が使われます 代わりに.


Supported versions of Perl ( バージョンサポート Perl の )



Please note that while this module works on Perl 5.6, it is no longer being routinely tested on 5.6 - the earliest Perl version being routinely tested, and expressly supported, is 5.8.1. However, patches to repair any breakage on 5.6 are still being accepted.


注意してください このモジュールは動作しますが Perl 5.6 で, それはもはや定期的にテストされていません 5.6 で - 最古の Perl バージョンは 定期的にテストされている, それと明示的にサポートされている, は 5.8.1 です. しかしながら, パッチは 修復のための すべての破損を 5.6 で まだ受け入れられています.


ENVIRONMENT ( 環境 )



PERL_MM_OPT

Command line options used by MakeMaker->new(), and thus by WriteMakefile(). The string is split as the shell would, and the result is processed before any actual command line arguments are processed.


コマンドラインオプションです 使われる MakeMaker->new() によって,つまり WriteMakefile() によって. 文字列は分割します シェルでのように, それと 結果は処理されます 前に すべてのコマンドライン引数が処理される.


PERL_MM_OPT='CCFLAGS="-Wl,-rpath -Wl,/foo/bar/lib" LIBS="-lwibble -lwobble"'




PERL_MM_USE_DEFAULT

If set to a true value then MakeMaker's prompt function will always return the default without waiting for user input.


もしセットしたなら 真 の値に その後 MakeMaker のプロンプト機能は ツナに返します デフォルトを 待つことなしに ユーザの入力を.


PERL_CORE

Same as the PERL_CORE parameter. The parameter overrides this.


PERL_CORE パラメータと同じです. このパラメータは上書きします これを.


SEE ALSO ( 関連項目 )



Module::Build is a pure-Perl alternative to MakeMaker which does not rely on make or any other external utility. It is easier to extend to suit your needs.


Module::Build はピュア Perl の代替です MakeMaker のための 頼らない make や他の外部ユーティリティに. 拡張は簡単です あなたのニーズに適した.

Module::Install is a wrapper around MakeMaker which adds features not normally available.


Module::Install はラッバーで MakeMaker 周りの それは追加します 機能を 普通では利用できない.

ExtUtils::ModuleMaker and Module::Starter are both modules to help you setup your distribution.


ExtUtils::ModuleMakerModule::Starter は 両方モジュールです 助ける あなたがセットアップすることを あなたのディストリビューションを.

CPAN::Meta and CPAN::Meta::Spec explain CPAN Meta files in detail.


CPAN::MetaCPAN::Meta::Spec は説明します CPAN Meta ファイルを 詳細に.

File::ShareDir::Install makes it easy to install static, sometimes also referred to as 'shared' files. File::ShareDir helps accessing the shared files after installation.


File::ShareDir::Install は 簡単にします 静的なインストールを, ときにはまた参照されます 'shared' ファイルとして. File::ShareDir は助けます アクセスを 共有ファイルへの インストール後に.

Dist::Zilla makes it easy for the module author to create MakeMaker-based distributions with lots of bells and whistles.


Dist::Zilla は簡単にします モジュールの作者のために MakeMaker ベースのディストリビューションの生成を ベルと笛 ( 付加機能 ) とともに.


AUTHORS ( 著者 )



Andy Dougherty doughera@lafayette.edu, Andreas König andreas.koenig@mind.de, Tim Bunce timb@cpan.org. VMS support by Charles Bailey bailey@newman.upenn.edu. OS/2 support by Ilya Zakharevich ilya@math.ohio-state.edu.


Currently maintained by Michael G Schwern schwern@pobox.com


現在のメンテナンスは Michael G Schwern schwern@pobox.com によるものです

Send patches and ideas to makemaker@perl.org.


送ってください パッチとアイデアは makemaker@perl.org まで.

Send bug reports via http://rt.cpan.org/. Please send your generated Makefile along with your report.


送ってください バグリポートは http://rt.cpan.org/ を介して. 送るようにしてください あなたが生成いsた Makfile を あなたのリポートと一緒に.

For more up-to-date information, see https://metacpan.org/release/ExtUtils-MakeMaker.


up-to-date のためのより多くの情報は, 参照します http://metacpan.org/release/ExUtils-MakeMaker を.

Repository available at https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker.


リポジトリは利用可能です https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker で.


LICENSE ( ライセンス )



This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


このプログラムはフリーソフトウェアです; あなたは再配布 and/or 変更できます Perl それ自身と同じ規約下で.

See http://www.perl.com/perl/misc/Artistic.html



NEXT



次回は、MakeMaker をつかったモジュールの書き方を解説しているらしい「 ExtUtils::MakeMaker::Tutorial 」のドキュメントを確認します。


参考情報は書籍「 続・初めての Perl 改訂版 」, 「 Effective Perl 第 2 版 」を中心に perldoc, Wikipedia および各 Web サイト。それと詳しい先輩。

目次 - Perl Index













































同じカテゴリー(Perl)の記事
 Perl mp2 翻訳 Web コンテンツ圧縮の FAQ (d228) (2023-10-11 23:49)
 Perl mp2 翻訳 既知のブラウザのバグの回避策をいくつか (d227) (2023-05-26 15:41)
 Perl mp2 翻訳 Perl と Apache でのキュートなトリック (d226) (2023-05-19 17:05)
 Perl mp2 翻訳 テンプレートシステムの選択 (d225) (2022-08-15 22:23)
 Perl mp2 翻訳 大規模 E コマースサイトの構築 (d224) (2022-06-15 20:43)
 Perl mp2 翻訳 チュートリアル (d223) (2022-06-15 20:42)
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

Llama
リャマ
TI-DA
てぃーだブログ
プロフィール
セラ (perlackline)
セラ (perlackline)
QRコード
QRCODE
オーナーへメッセージ

PAGE TOP ▲