hakeの日記

Windows環境でプログラミングの勉強をしています。

Hpricotのセルフコンパイル

RubyGemsでインストールを行うとスワップを使用しているにも係わらず高い確率でメモリ不足が発生してターミナルごと落ちてしまう。これでは都合がよくないので単体でのインストールに挑戦。
前提として使用するRubydipusさんトコのを、コンパイル環境は幾霜さんトコのgcc3.4.4を使用しています。


Rakefileがあったのでrakeを試してみましたが、ragelとrlcodegenが無いと怒られたので断念。RubyGemsでインストールするときはどういう手順になってるんだろ?
以下、マニュアルで行った手順

$ tar zxvf hpricot-0.5.tgz
$ cd hpricot-0.5/ext/hpricot_scan
$ ruby extconf.rb
  • Makefileが作成されるので適宜修正(実際はRuby側のrbconfig.rbを直接変更している)
CC = gcc
CFLAGS = -fPIC -O2 -static-libgcc
LDSHARED = $(CC) -shared -static-libgcc
$ make
$ strip hpricot_scan.so
$ cp hpricot_scan.so ../../lib
$ cd ../../lib
  • libディレクトリにある以下を/opt/QtPalmtop/lib/ruby/site_ruby/1.8/へコピー。.soなファイルはarm-linuxへ置いた方が良いのかな?
hpricot/*
hpricot.rb
hpricot_scan.so
  • irbでrequire "hpricot"できれば、おっけー。あとはipkにしておけば扱いも簡単になります。