読者です 読者をやめる 読者になる 読者になる

Cygwinにjperlをインストールするメモ

今さら使いたくもないし使うべきでもないですがjperlを使う羽目になってしまったので役に立つとは思えませんがCygwinにインストールする手順を書きます。
とはいえPerlがインストールされていない環境にスクリプトといっしょに持って行ってちょちょっと日本語処理をしたいような場合は未だに便利だったりもします。

PerlソースコードとJperlパッチをダウンロード(Jperlのバージョンは5.005_04で止まっています)
$ cd /usr/local/src
$ wget http://ftp.funet.fi/pub/CPAN/src/perl5.005_04.tar.gz
$ wget http://ftp.cpan.jp/authors/id/W/WA/WATANABE/jperl5.005_04-20040401.pat.gz

展開&パッチ当て
$ tar zxvf perl5.005_04.tar.gz
$ gzip -d jperl5.005_04-20040401.pat.gz
$ cd perl5.005_04
$ patch -p1 < ../jperl5.005_04-20040401.pat

あとは基本的にREADME.cygwin32に書いてあるとおりです。

cygwin32/以下のファイルを展開したディレクトリのルートにコピーします。
$ cp cygwin32/* .

ld2を修正
$ vi ld2
PERLPATH=/perl5.005_04 の行を
PERLPATH=/usr/local/src/perl5.005_04 に修正

gcc2とld2を実行できるように実行ビットを立ててPATHを通します。
これらのファイルはgccとldのラッパとして使用されます。
$ chmod 755 gcc2 ld2
$ export PATH=`pwd`:$PATH

LANG=Cでないとコンパイルに失敗することがあるので
$ export LANG=C
$ sh Configure

こんな感じのプロンプトが出てきたら
First time through, eh?  I have some defaults handy for the following systems:
  .
  .
  .
Which of these apply, if any?
"cygwin32" を選択します。

デフォルトの文字コードEUCにするかSJISにするか尋ねられるのでどちらかを選択します。
Do you want to use EUC as the kanji code(y=EUC, n=SJIS)? [y]

ダイナミックローディングを有効にするとどうもうまくコンパイルできないようなので使用しませんでした。
Do you wish to use dynamic loading? [y] n

あとはほとんどデフォルトで大丈夫です。

$ make
$ make test
失敗するテストもありますがほとんどがUnixに依存したものなので成功率が83%くらいなら大丈夫らしいです。

インストール
$ ./perl installperl

perlの実行ファイルだけが必要な場合はperl.exeとcygwin1.dllを持っていってください。