どうも、先ほど IRC でお話した eruby 0.1.0 同梱の Makefile.RB に
対する修正です。FreeBSD/NetBSD の ELF 形式の共有ライブラリには
数字を一つしか振れないので、それに対応しました。

 Ruby 本体のように MAJOR と MINOR をくっつけるだけだと、
今 MAJOR が 0 なので 01 となってしまい格好悪いので、算術演算で
MAJOR*10+MINOR ということにしました。

 あと、 FreeBSD port から入れた Ruby の CONFIG['PLATFORM'] は
i386--freebsd5.0 のように elf と入ってくれないので、バージョンも
見るようにしました。

 そして NetBSD と FreeBSD はほとんど同じなのでまとめました。
手元に NetBSD ELF の環境がないのですが、お持ちの方はこれで合って
いるかどうかチェックしていただければ幸いです。

 もし OK なら取り込んでください。 :)

-- 
                           /
                          /__  __       
                         / )  )  ) )  /
Akinori -Aki- MUSHA aka / (_ /  ( (__(  @ idaemons.org / FreeBSD.org

"We're only at home when we're on the run, on the wing, on the fly"

--- Makefile.RB.orig	Wed Sep  6 19:04:23 2000
+++ Makefile.RB	Mon Sep 11 19:15:03 2000
@@ -86,18 +86,13 @@
   when /-linux/
     $DLDFLAGS = '-Wl,-soname,liberuby.so.$(MAJOR).$(MINOR)'
     $LIBERUBY_ALIASES = "liberuby.so.$(MAJOR).$(MINOR) liberuby.so"
-  when /-freebsd/
+  when /-(freebsd|netbsd)/
     $LIBERUBY_SO = "liberuby.so.$(MAJOR).$(MINOR)"
-    if PLATFORM =~ /elf/
-      $LIBERUBY_SO = "liberuby.so.$(MAJOR).$(MINOR).$(TEENY)"
-      $LIBERUBY_ALIASES = ""
-    end
-  when /-netbsd/
-    $LIBERUBY_SO = "liberuby.so.$(MAJOR).$(MINOR)"
-    if PLATFORM =~ /elf/
-      $LIBERUBY_ALIASES = "liberuby.so.$(MAJOR) liberuby.so"
+    if PLATFORM =~ /elf/ || PLATFORM =~ /-freebsd[3-9]/
+      $LIBERUBY_SO = "liberuby.so.$(MAJOR_MINOR)"
+      $LIBERUBY_ALIASES = "liberuby.so"
     else
-      $LIBERUBY_ALIASES = ""
+      $LIBERUBY_ALIASES = "liberuby.so.$(MAJOR) liberuby.so"
     end
   when /-solaris/
     $XLDFLAGS = "-R$(prefix)/lib"
@@ -167,6 +162,7 @@
 MAJOR = #{$MAJOR}
 MINOR = #{$MINOR}
 TEENY = #{$TEENY}
+MAJOR_MINOR = #{$MAJOR.to_i * 10 + $MINOR.to_i}
 
 LIBERUBY_A = #{$LIBERUBY_A}
 LIBERUBY_SO = #{$LIBERUBY_SO}