gonzui gem を Windows に対応した
ソースコード検索エンジン gonzui を gem 化した - mallowlabsの備忘録 は
Windows 未対応だったので、頑張って Windows 対応にした。
tar とか unzip とかを使う操作はもちろん動かないけど、
パスが通ってれば、それなりに動くかもしれない。
インストール手順
技術的な話
langscan と gonzui の場合は比較的ビルドは簡単。
Visual C++ 2008 環境と Ruby 1.8.7 (mswin32) 環境を用意する。
以下のファイルを書き換える。
の
#if _MSC_VER != 1200
を
#if _MSC_VER >= 1200
に変更。これはお決まり。
の
extern struct RVarmap *ruby_dyna_vars;
を
RUBY_EXTERN struct RVarmap *ruby_dyna_vars;
に変更。こうしないと Ripper がビルドできない。
langscan/metaconfig
の
add_bool_config 'nounistd', false, 'do not include <unistd.h> for flex'
を
add_bool_config 'nounistd', true, 'do not include <unistd.h> for flex'
に変更。Windows には unistd.h は無いので。
この状態で通常通り gem を作り、コンパイル済みのgemパッケージを作るRubyGemsプラグイン - Blog by Sadayuki Furuhashi を使って compile するだけ。
問題は gonzui が依存している Berkeley DB の Ruby binding で
これがどうしても Windows でビルドできなかった。
どうやら、Berkeley DB の本体までビルドし、
それを使って Ruby binding をビルドしなければならないらしい。
大変面倒なので、http://soutaro.com/gonzui-win32/index.ja.html から、id:soutaro さんがビルドした
Berkley DB 本体と Ruby binding を拝借し、gem に格納した。
なんという dirty hack …。
Windows でも気軽に gonzui が使えることが目的なので
とりあえずは目をつむることにしたい。
# だったら、gonzui 本体も id:soutaro さんのビルドでよいのでは
# というツッコミは受け付けません:)
# Redmine プラグインを作りたいのです。
Berkeley DB Ruby binding
実は Berkeley DB の Ruby binding も gem 化しようとしていた。
http://github.com/mallowlabs/ruby-bdb
Ubuntu なら
$ sudo apt-get install libdb libdb-dev $ sudo gem install bdb-0.6.5.gem
でインストール可能。
Mac OS X (Snow Leopard) でも
$ sudo env $ARCHFLAGS="―arch x86_64" gem install bdb-0.6.5.gem ― ―with-db-dir=/usr/local/BerkeleyDB.4.7/
でインストール可能。
というところまではできてるんだけど、
https://rubygems.org/gems/dk-bdb/
のような別の実装があったり、
http://github.com/knu/ruby-bdb/
みたいにメンテされている形跡があったりするので、
とりあえずは github に置いて置くだけにする。