その他
    ホーム 技術発信 DoRuby pg 0.9.0 の Windows版バイナリをMac OS XでCross compileする

    pg 0.9.0 の Windows版バイナリをMac OS XでCross compileする

    この記事はアピリッツの技術ブログ「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の方が安定しているのではないかという印象がありました。

    記事を共有