この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
こんにちは、たろちゃんです。先日同僚のWindows環境にpgが必要になったのですがWindows側でコンパイラがなかったのでMac OS Xで作成してみました。
今回はMacPortsの環境を使います。
まず、Windowsのソフトウェアをクロスコンパイルできるようにするためにmingw32の環境をMacPortsで取得します。
$ sudo port install i386-mingw32-gcc
次に必要なgemをインストールします。
$ sudo gem install rdoc
$ sudo gem install rake-compiler
次にクロスコンパイルされたrubyを構築します(調べた当時ではruby-1.8.6 p398がビルドされました)。
$ rake-compiler cross-ruby
次にpg-0.9.0のgemを取得して展開します。
$ gem fetch -v 0.9.0 pg
$ gem unpack pg-0.9.0.gem
最後にrake crossを使ってpgをビルドします。
$ cd pg-0.9.0
$ rake cross native gem POSTGRESQL_VERSION=8.4.6
あとはrake crossを実行したところのpkg以下にできる pg-0.9.0-x86-mingw32.gem をWindows環境で手動インストールします。
今回の注意点としては、クロスコンパイル環境として ruby 1.8.7 を利用したところクロスコンパイルができない状態があり、調べてみると細かいパッチレベルでできるできないがあったりするようです。現段階では1.8系でクロスコンパイルをするには1.8.6の方が安定しているのではないかという印象がありました。