How to Cross compile Rroonga

For rake-compiler-dock

rake-compiler-dock depends docker and some platform requires docker client such as docker-machine. Please install docker and docker client before cross compiling with rake-compiler-dock.

cross compiling with rake-compiler-dock

execute following rake task:

$ bundle exec rake build:windows

Then, pkg directory is created. And cross compiled gems move into pkg directory.

Manual procedure for Debian GNU/Linux like Linux distribution Users

This is the manual procedure without rake-compiler-dock.

apt

  • mingw-w64
  • build-essential

prepare ruby and rubygems

$ rbenv install 1.9.3-p547
$ gem install rubygems-update
$ update_rubygems
$ gem install bundler
$ rbenv install 2.0.0-p576
$ gem install bundler
$ rbenv install 2.1.3
$ gem install bundler

bundle install

$ rbenv local 1.9.3-p547
$ bundle install [--path vendor/bundle]
$ rbenv local 2.0.0-p576
$ bundle install [--path vendor/bundle]
$ rbenv local 2.1.3
$ bundle install [--path vendor/bundle]

rake-compiler

$ rbenv local 1.9.3-p547
$ bundle exec rake-compiler cross-ruby HOST=i686-w64-mingw32 VERSION=1.9.3-p547 [EXTS=--without-extensions]
$ bundle exec rake-compiler cross-ruby HOST=x86_64-w64-mingw32 VERSION=1.9.3-p547 [EXTS=--without-extensions]
$ rbenv local 2.0.0-p576
$ bundle exec rake-compiler cross-ruby HOST=i686-w64-mingw32 VERSION=2.0.0-p576 [EXTS=--without-extensions]
$ bundle exec rake-compiler cross-ruby HOST=x86_64-w64-mingw32 VERSION=2.0.0-p576 [EXTS=--without-extensions]
[$ rbenv local 2.1.3]
$ bundle exec rake-compiler cross-ruby HOST=i686-w64-mingw32 VERSION=2.1.3 [EXTS=--without-extensions]
$ bundle exec rake-compiler cross-ruby HOST=x86_64-w64-mingw32 VERSION=2.1.3 [EXTS=--without-extensions]

cross compile

$ rbenv local 1.9.3-p547
$ bundle exec rake:build
$ bundle exec rake RUBY_CC_VERSION=1.9.3:2.0.0:2.1.3 cross clean native gem
$ bundle exec rake clean:groonga
$ bundle exec rake RUBY_CC_VERSION=1.9.3:2.0.0:2.1.3 cross RROONGA_USE_GROONGA_X64=true clean native gem