この ruby-gtk-0.12 について,ちょっと提案.

  現在の extconf.rb は LDFLAGS と CFLAGS を gtk-config をみて決定して
  いますよね.で,いくつか問題があると思ったわけです.

  1. (たとえば FreeBSD の packages に入ってるののような)gtk-config
     がないシステムだとくじける.

     これは「失敗したらありそうな設定をしておく」ということで結構どう
     にでもなるのではないかと思うのです.たとえば
     /usr/X11R6/{lib,include} と /usr/local/{lib,include} ぐらいを設定
     しておく.

  2. gtk-config --libs は -L だけでなく -l もはいてくれるわけです.そ
     れでもってこれが LIBS の設定とかぶる.かぶるだけならまだしも -o
     や .o の前に挿入されるのでリンカが文句をいう.

     これもまあ,ちょっとした事で直りそうだな,と.

--- extconf.rb.orig     Tue Sep 22 22:58:57 1998
+++ extconf.rb  Tue Sep 22 23:23:36 1998
@@ -1,8 +1,14 @@
 require "mkmf"
 
 # may need to be changed
-$LDFLAGS=`gtk-config --libs`.chomp!
-$CFLAGS=`gtk-config --cflags`.chomp!
+begin
+  $LDFLAGS, *libs = `gtk-config --libs`.chomp!.split(/(-l.*)/)
+  $libs = libs.join(' ')+' '+$libs
+  $CFLAGS = `gtk-config --cflags`.chomp!
+rescue
+  $LDFLAGS = '-L/usr/X11R6/lib -L/usr/local/lib'
+  $CFLAGS = '-I/usr/X11R6/lib -I/usr/local/include'
+end
 
 have_library("X11", "XOpenDisplay")
 have_library("Xext", "XShmQueryVersion")
@@ -10,5 +16,6 @@
 if have_library("glib", "g_print") and
     have_library("gdk", "gdk_init") and
     have_library("gtk", "gtk_init")
+  $libs = $libs.split(/\s/).uniq.join(' ')
   create_makefile("gtk")
 end

  あわせると,こんな感じ.もっとまともに書けるかもしれませんが.

  どうでしょ?

  # ついでに,FreeBSD では ruby そのものの make で -lxpg4 としてくれる
  # と gtk みたいな setlocale を使うライブラリを使っても `locale
  # unsuppoted. not changed' などとくどくど言われなくてすむのですが,
  # どうでしょ?

> |  実は僕も list/dev の使い分けがよくわかってないんですが、まぁこのくらいなら
> |list でもいいんじゃないかな...
> 
> そーですね.過去にパッチ合戦の経験がありますので,そうなりそ
> うでしたらdevの方へどうぞ.

  このぐらいだと,まあ合戦にはなりませんよね.

  # ruby/gtk で ppp の on/off トグルをする「だけ」のものでも書いて見よ
  # うと思いつつ,早一月.... (^^;

===========================================================================
  柳川和久 @ 東大阪市 . 大阪府
  kjana / os.xaxon.ne.jp                                 September 22, 1998
The more haste, the less speed.