2008-05-30
■ [mac][Ruby/SDL] Mac OS X と Ruby/SDL 2.0.1 と Ruby 1.9
MacでもRuby/SDL+Fiberしたい。したいですよね。
というわけでやってみた。
手順
まずRuby/SDLを普通にコンパイルする。rubyとかSDLとかSDL_imageとかSDL_ttfとかSDL_soundはMacPortsで入れておこう。
次にRuby 1.9.0-1のソースを取ってきてコンパイルする。
- ./configure --prefix=/Users/yhara/bin/rubys/ruby-1.9.0-1
- make && make install
- ln -s ~/bin/rubys/ruby-1.9.0-1/ ~/bin/ruby-1.9.0-1
次にrsdlを取ってきてコンパイルする…んだが、timespecが再定義されているというエラーが。
以下適当すぎるパッチ。
/Users/yhara/research/Ruby/rubys/ruby-1.9.0-1/include/ruby % diff missing.h ~/bin/rubys/ruby-1.9.0-1/include/ruby-1.9.0/ruby/missing.h
34,39c34,39
< #if !defined(HAVE_STRUCT_TIMESPEC)
< struct timespec {
< time_t tv_sec; /* seconds */
< long tv_nsec; /* nanoseconds */
< };
< #endif
---
> //#if !defined(HAVE_STRUCT_TIMESPEC)
> //struct timespec {
> // time_t tv_sec; /* seconds */
> // long tv_nsec; /* nanoseconds */
> //};
> //#endif
さらに、Makefileをちょっと修正する。
/Users/yhara/research/sdl/rsdl % diff Makefile Makefile-1.9 4c4 < LIBS = -lpthread -ldl -lobjc `sdl-config --libs` --- > LIBS = -L/Users/yhara/bin/rubys/ruby-1.9.0-1/lib -lpthread -ldl -lobjc `sdl-config --libs`
これでmakeが通るはず。rsdlを~/bin/rsdl-1.9にコピー。あ、~/binは「どこかパスの通ってるとこ」ってことね。
うごきましたー

ばばーん
ソースは 20080210 を参照。
[ツッコミを入れる]