Windows で使う Ruby を自分でビルドする方法
(id:mrkn は Ruby Advent Calendar jp: 2009 を応援しています。この記事は3日目です。)
Windows で Ruby を使いたい人は自分でビルドしましょう。簡単です。
後述の準備が終わってない人は、先に準備編を読んでください。ビルド→インストール→テストの順に作業します。
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 の生成が動いてしまう気がします (エラーになった記憶もある)。
準備編
準備は少しだけ大変です。
(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:このコンフィギューレ用オプションは、僕が困っているのを見かねた神様によって追加されました