# 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: ```bash $ 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 ```bash $ 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 ```bash $ 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 ```bash $ 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 ```bash $ 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 ```