Windows で使う Ruby を自分でビルドする方法

(id:mrknRuby Advent Calendar jp: 2009 を応援しています。この記事は3日目です。)

WindowsRuby を使いたい人は自分でビルドしましょう。簡単です。
後述の準備が終わってない人は、先に準備編を読んでください。ビルド→インストール→テストの順に作業します。

Ruby のビルド

(1) svn か git を使って trunk の先っぽを落としてください。以下では、ruby.git というディレクトリの中に Ruby のソースツリーが存在していることを前提とします。

> git clone http://github.com/shyouhei/ruby ruby.git

(2) ビルド用ディレクトリを作ります。ディレクトリ名は好きに決めてください。たとえば初恋の人の名前でもいいです。

> mkdir ruby.git/build-for-hiroko

(3) ビルド用ディレクトリの中に入ります。

> cd ruby.git/build-for-hiroko

(4) コンフィギューレします。

../win32/configure.bat --prefix=c:\opt\ruby --target=i686-mswin32 --with-ntver=0x501

--with-ntver オプションに注目です。このオプションで指定している16進法の値は、_WIN32_WINNT というプリプロセッサマクロの値として、ターゲット Windows のバージョンを指定するために使用されます *1

Windows の種類 --with-ntver
Windows NT 4.0 0x400
Windows 2000 0x500
Windows XP 0x501
Windows Server 2003 0x502
Windows Vista 0x600
Windows Server 2008 0x600
Windows 7 0x601

(5) メイクします。

> nmake main

ターゲット main を省略すると、RDoc が動いてドキュメンテーションを生成してしまいます (べらぼうに遅いです)。

インストール

インストールは簡単です。

> nmake install-nodoc

"-nodoc" を付けないと、せっかく省略した RDoc の生成が動いてしまう気がします (エラーになった記憶もある)。

テスト

テストも簡単です。

> nmake test

エラーや失敗が出力されたときは IRCnet の #ruby:*.jp チャネル、もしくは redmine で報告しましょう。

準備編

準備は少しだけ大変です。

(i) Visual Studio 2008 Express Edition をインストールしてください。詳しくは Google で。

(ii) gnuwin32 の bison と sed をインストールしてください。

(iii) 標準添付ライブラリのうち、自分が使いそうな拡張ライブラリが依存しているライブラリを用意します。たとえば zlib、openssl、readline、ncurses (pdcurses)、gdbm などは gnuwin32 からコードを手に入れることができます。できるだけ Visual Studio 2008 Express Edition を用いて自分でビルドし、これからビルドする Ruby とセットで管理しましょう。

(2009.12.04 追記) よく考えると openssl は gnuwin32 の配布物ではないので嘘書いてましたw

(iv) tk を使いたい人は ActiveTcl をインストールしたらいいと思います。

最後に

上に出てきた hiroko さんは、今年の7末に元気な男の子を出産されました。僕は何年も前にフラれました。いい思い出です。

*1:このコンフィギューレ用オプションは、僕が困っているのを見かねた神様によって追加されました