make_ppmでインストールパッケージを作成する

WindowsではActiveStateのActivePerlを使用している。
ActivePerlではPPMPerl Package Manager)を使用してActiveStateのリポジトリからライブラリを追加するのが一般的だが、CPANにしか存在しないライブラリや最新のライブラリを使用したい場合は、ソースコードを入手してビルドを行いインストールすることになる。
しかし、そうやってインストールしたライブラリはPPMの管理外となり、ドキュメントもActivePerl User Guideに組み入れられない。また、他のPCにインストールされているActivePerlに同じライブラリをインストールしたい場合は、同様にソースコードからインストールするか、何らかの手段でインストールするファイルをコピーすることになり、面倒な上に一貫性が無くなってしまう。

最近になって、make_ppmコマンドなるものが存在することを知った(参考サイト)。
make_ppmコマンドはPPM::Makeライブラリによって提供されるものだが、これを使用して作成したインストールパッケージはPPMによってインストールすることができる。
使い方はいたって簡単で、ソースコードを展開したディレクトリで以下のコマンドを入力する。

例)Win32-GuiTest-1.56.tar.gzをインストールする場合
> perl Makefile.PL
> nmake
> nmake test
> make_ppm
> ppm install Win32-GuiTest.ppd


PPM::MakeライブラリはActivePerl 5.8.9ではActiveStateのリポジトリからインストールすることができるが、ActivePerl 5.8.7ではソースコードからインストールする必要がある。
その際、PPM::Make 0.97では以下の修正を加えないとテストでエラーが発生する。

<PPM::Make展開先ディレクトリ>\lib\PPM\Make\Util.pm
の547〜550行目をコメントアウトする。

#      my $d = parse_ppm();
#      $src_dir = $d->{OPTIONS}->{BUILDDIR};
#      $build_dir = $src_dir;
#      last SWITCH if ($src_dir and $build_dir);


ちなみに、前述の(参考サイト)には、独自のリポジトリを作成する方法も紹介されている。