前田です。

藤本尚邦 / FUJIMOTO Hisakuni <hisa / imasy.or.jp> wrote:

>> 1.1b7 を x86 対応にしたときは
>> 
>> PowerPC 用	DLDFLAGS="-f ruby.exp"
>> x86 用		DLDFLAGS="ruby.def"
>> 
>> ってな感じにしました。 x86 用は DLDFLAGS に ruby.def を書くのではなく、
>>  DLDFLAGS="" にして、リンクする object に ruby.def を加えるのが真っ当な
>> やり方でしょうが(^^;。
>
>  さらに
>
>> ただし、ここの ruby.def は win32/ruby.def とは別物
>> です。 ruby.exp の一行目に EXPORTS って書いただけのものです。
>
>ということだそうです。
>  僕はconfigureについてよくわかってないのですが、host_osがbeosなら
>host_cpuを見て、例えば
>
>  PowerPCのとき  DLDFLAGS="-f beos/rubysym.ppc.exp"
>  x86のとき      DLDFLAGS="beos/rubysym.x86.def"
>
>というような感じにconfigureを書けるでしょうか?rubysym.*は
>win32/ruby.defから自動生成するなどして作ることにして..

ruby-11b7-mwerks-2.tar.gzに入っているruby.expをbeos/ruby.exp.in
としておいて、そこからruby.expを生成するようにすれば、

PPCなら

cp ruby.exp.in ruby.exp

Intelなら

echo EXPORTS > ruby.exp
cat ruby.exp.in >> ruby.exp

で済むので、この方が楽じゃないでしょうか。
あと、拡張モジュール用のruby.expも自動生成できるようにしたいですね。

それで、configureで、

        beos*)         LDSHARED="mwld -xms"
                        case "$host_cpu" in
                                powerpc*)      DLDFLAGS="-f ruby.exp" ;;
                                *)              DLDFLAGS="ruby.exp" ;;
                        esac
                        rb_cv_dlopen=yes ;;
 
とでもしておけば良さそうな気がします。

あとMakefileやinstruby.rbも変更が必要になると思うのですが、
このあたりはどうしましょう。

--
前田 修吾