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 を参照。