From: matz@... (Yukihiro Matsumoto) Date: 1997-10-24T19:32:55+09:00 Subject: [ruby-list:5133] Re: ruby & tk(wish) まつもと ゆきひろです In message "[ruby-list:5132] Re: ruby & tk(wish)" on 97/10/24, Yuji Shigehiro writes: |しげひろです. (ひらがなにしました (^^)) はやってますねえ. |> Subject: [ruby-list:4677] Re: tcltk library |> Message-Id: <199709260414.NAA27484@picachu.netlab.co.jp> |> |メールが多すぎて忘れたのですが、 |> うーん,[4516]のextconf.rbで直るものだと思っていたのですが. |> |[ruby-list:4516] の extconf.rb は使ってます。 |> ということなんですねえ. | |となりました... そうか.そうでしたね.ぼけてるなあ. 今日tk.rbをtcltklib.soベースにしようと思って手をいれました. こういうextconf.rbではどうでしょう? その他も直しましたが,これは後で公開します. で,バグがあったので,パッチを当てて下さい. -- # extconf.rb for tcltklib def search_file(var, include, *path) for i in path.reverse! ary = Dir[i+"/"+include] if ary.size > 0 path = ary.pop var << File.dirname(path) return File.basename(path) end end end $includes = [] search_file($includes, "tcl.h", "/usr/include/tcl*", "/usr/include", "/usr/local/include/tcl*", "/usr/local/include") search_file($includes, "tk.h", "/usr/include/tk*", "/usr/include", "/usr/local/include/tk*", "/usr/local/include") search_file($includes, "Xlib.h", "/usr/include", "/usr/X11*/include", "/usr/include/X11", "/usr/X11*/include/X11") $CFLAGS = "-Wall " + $includes.collect{|path| "-I" + path}.join(" ") $libraries = [] tcllibfile = search_file($libraries, "libtcl{,7*,8*}.{a,so}", "/usr/lib", "/usr/local/lib") tcllibfile.sub!(/^lib/, '') tcllibfile.sub!(/\.(a|so)$/, '') tklibfile = search_file($libraries, "libtk{,4*,8*}.{a,so}", "/usr/lib", "/usr/local/lib") tklibfile.sub!(/^lib/, '') tklibfile.sub!(/\.(a|so)$/, '') search_file($libraries, "libX11.{a,so}", "/usr/lib", "/usr/X11*/lib") $LDFLAGS = $libraries.collect{|path| "-L" + path}.join(" ") if have_header("tcl.h") && have_header("tk.h") && have_library("X11", "XOpenDisplay") && have_library("m", "log") have_library("dl", "dlopen") have_library(tcllibfile, "Tcl_FindExecutable") && have_library(tklibfile, "Tk_Init") && create_makefile("tcltklib") end -- --- dir.c~ Wed Sep 24 10:19:14 1997 +++ dir.c Fri Oct 24 15:05:09 1997 @@ -307,8 +307,17 @@ p = s; lbrace = rbrace = 0; while (*p) { - if (*p == '{' && !lbrace) lbrace = p; - if (*p == '}' && lbrace) rbrace = p; + if (*p == '{') { + lbrace = p; + break; + } + p++; + } + while (*p) { + if (*p == '}' && lbrace) { + rbrace = p; + break; + } p++; }