hiroshi hatake
cosmo****@gmail*****
2014年 8月 13日 (水) 22:22:14 JST
畑ケです。
ひと通りこちらではクロスコンパイルの手順を踏んでクロスコンパイルが出来ま
した。
ですが、困ったことが2つあります。
一つはクロスコンパイル用のGroongaをcleanするRake taskがないことです。
(もしくは他に良いやり方がある?)
$ bundle exec rake RUBY_CC_VERSION=1.9.3:2.0.0:2.1.2 cross
RROONGA_USE_GROONGA_X64=true clean native gem
した後にx86向けのクロスコンパイルを行うと
$ bundle exec rake RUBY_CC_VERSION=1.9.3:2.0.0:2.1.2 cross clean native gem
リンカエラーで落ちてしまいます。
$ rm -rf vendor/local
した後にもう一度
$ bundle exec rake RUBY_CC_VERSION=1.9.3:2.0.0:2.1.2 cross clean native gem
すれば通ります。
これを毎回やるのもなぁというところです。それを行うRake taskを作れば少し
は楽になるんでしょうか…。
二つ目は、クロスコンパイルを行うホストへLatestGroongaVersion::VERSIONの
Groonga(今現在では 4.0.4)がインストールされていると、PkgConfigではホス
トのGroongaを見に行ってしまい、
---
checking for GCC... yes
checking for Win32 OS... yes
checking for groonga version (>= 4.0.4)... yes
checking for HAVE_RUBY_ST_H in ruby.h... yes
checking for rb_errinfo() in ruby.h... no
checking for enum ruby_value_type in ruby.h... yes
checking for --enable-debug-log option... no
checking for --enable-debug-build option... no
creating Makefile
cd -
make
compiling ../../../../ext/groonga/rb-groonga.c
In file included from ../../../../ext/groonga/rb-groonga.c:19:0:
../../../../ext/groonga/rb-grn.h:43:21: fatal error: groonga.h: そのよう
なファイルやディレクトリはありません
#include <groonga.h>
^
compilation terminated.
make: *** [rb-groonga.o] エラー 1
rake aborted!
---
で止まってしまいます。
こちらは、ext/groonga/extconf.rbを見に行った所、
PkgConfig.have_packageを使って判定している箇所が怪しそうでした。
クロスコンパイルを行う時はvendor/localへgroonga-(x86|x64)をダウンロード
してくるように書かれているので
win32? #=> trueの時はvendor/localにhave_local_groonga?がtrue
となるかどうかを先にチェックしたほうが良さそうです。
以上の事を試してみたパッチ
https://github.com/cosmo0920/rroonga/compare/fix-for-cross-compile-win32
を書いてみたのですが、
直接masterにコミットするのもどこか違う気がしたのでメールしました!
On 2014年08月12日 18:39, Kouhei Sutou wrote:
> 須藤です。
>
> In <CAET2rA8tq3yx3mZFDsuy93_LxsHg****@mail*****>
> "[groonga-dev,02607] Re: お願い: Rroongaのリリース" on Tue, 12 Aug 2014 01:54:32 +0900,
> Masafumi Yokoyama <myoko****@gmail*****> wrote:
>
>> ところで、次のリリースは今月末でいいでしょうか?
>> もっと早く使いたい方がいれば、先月分を今週末くらいにリリース
>> した方がいいのかなと思っているのですが、どうでしょうか。
> あ、今回はこの体制でのはじめてのリリースなので、あまり時期に
> 縛られなくていいですよ。準備ができたらリリースでよいです。
>
> 慣れてきたら肉の日に焦点を当て始める、くらいで大丈夫です!
>