From: matz@... (Yukihiro Matsumoto) Date: 1997-09-22T22:34:44+09:00 Subject: [ruby-list:4516] Re: tcltk library まつもと ゆきひろです In message "[ruby-list:4509] Re: tcltk library" on 97/09/22, Yuji Shigehiro writes: |ライブラリを書く人に取っては, おそらく, Init_ を実行するのを遅らせる, |というのが良いです(^^) その線で考えましょう.でもやっぱり $0 じゃだめそうなんで,そ れはそれで問題なんですけど. ちなみにうちで動作したextconf.rbは以下の通りです -- # extconf.rb for tcltklib # ファイルを探す # 引数は, 探すファイルの候補からなる配列 # 最後に見つかったファイルを返す def search_file(list) res = [] list.each{|file| res = res + Dir[file] } return (res.pop) end tclhdr = search_file(["/usr/include/tcl*/tcl.h", "/usr/include/tcl.h", "/usr/local/include/tcl*/tcl.h", "/usr/local/include/tcl.h"]) tkhdr = search_file(["/usr/include/tk*/tk.h", "/usr/include/tk.h", "/usr/local/include/tk*/tk.h", "/usr/local/include/tk.h"]) xlibhdr = search_file(["/usr/include/Xlib.h", "/usr/X11*/include/Xlib.h", "/usr/include/X11/Xlib.h", "/usr/X11*/include/X11/Xlib.h"]) tcllib = search_file(["/usr/lib/libtcl.{a,so}", "/usr/local/lib/libtcl.{a,so}"]) tklib = search_file(["/usr/lib/libtk.{a,so}", "/usr/local/lib/libtk.{a,so}"]) x11lib = search_file(["/usr/lib/libX11.{a,so}", "/usr/X11*/lib/libX11.{a,so}"]) if tkhdr && tclhdr && xlibhdr && tcllib && tklib && x11lib tclhdr = tclhdr.gsub(/\/tcl.h$/, "") tkhdr = tkhdr.gsub(/\/tk.h$/, "") xlibhdr = xlibhdr.gsub(/(\/X11)?\/Xlib.h$/, "") tcllib, tcllibfile = tcllib.scan(/^(.*)\/lib(tcl[^.]*)[^/]*$/) tklib, tklibfile = tklib.scan(/^(.*)\/lib(tk[^.]*)[^/]*$/) x11lib, x11libfile = x11lib.scan(/^(.*)\/lib(X11[^.]*)[^/]*$/) $CFLAGS = "-Wall " + ([tclhdr] | [tkhdr] | [xlibhdr]).collect{|path| "-I" + path}.join(" ") $LDFLAGS = ([tcllib] | [tklib] | [x11lib]).collect{|path| "-L" + path}.join(" ") have_library("m", "log") have_library("dl", "dlopen") have_library(tcllibfile, "Tcl_CreateInterp") have_library(x11libfile, "XOpenDisplay") have_library(tklibfile, "Tk_Init") create_makefile("tcltklib") end # eof