小松です。

In the message of [ruby-list:17215] Re: make Ruby-1.4.2 on BeOS R4.5.2(Intel)
    on 1999/9/29 11:04:58 MORITA Atsushi <moritaa / coe.nttdata.co.jp> wrote:
|>それとも、ファイル (ruby.def) ができていても、コマンドラインの
|>引数が足りなくて実は使われていないとか?
|
|はらださんの言うように、ruby.defは作られています。
|
|nkfのmake時のようすは、
|
|gcc -fPIC -I/boot/home/ruby-1.4.0 -I/boot/home/ruby-1.4.0 -g -O2  -I/usr/local/include -c nkf.c -o nkf.o
|ld -shared -L/boot/develop/lib/x86 -lbe -lroot -L/boot/home/ruby-1.4.0  -o nkf.so nkf.o -lruby
|
|こんな感じです。

ふーむ、引数が足りないみたいですね。
ldの時にruby.defを足す必要があるんでしょうけど、単に足せばいいのかな?
たとえば、

ld -shared ruby.def -L/boot/develop/lib/x86 -lbe -lroot -L/boot/home/ruby-1.4.0  -o nkf.so nkf.o -lruby

みたいに。
configure.inをみると、powerpcなら「-f ruby.exp」とかに
なってますので、何かスイッチが必要かもしれません。

ちなみに、Init_nkf等のexportはaixやmswin32では、
    aix: -eInit_$(TARGET)
    mswin32: -link /EXPORT:Init_$(TARGET)
のように引数で処理していて、cygwin (dllwrapを使わない場合) では、
    --def=$(TARGET).exp
みたいになるのですが。

これでうまくゆくようなら、configure.inを以下のように変えれば
よいということになりますが……

--- configure.in.dist	Mon Aug 30 16:00:47 1999
+++ configure.in	Wed Sep 29 12:10:32 1999
@@ -468,5 +468,5 @@
 			  i586*)
 			    LDSHARED="ld -shared"
-			    DLDFLAGS="-L/boot/develop/lib/x86 -lbe -lroot"
+			    DLDFLAGS="ruby.def -L/boot/develop/lib/x86 -lbe -lroot"
 			    ;;
 			  *)

# --enable-sharedは……動いているのかな?

--
小松克行 / Katsuyuki Komatsu <komatsu / sarion.co.jp>