From: Hidetoshi NAGAI Date: 2008-06-26T23:32:02+09:00 Subject: [ruby-list:45146] Re: ソース:インストール:MacOSX10.3.9 永井@知能.九工大です. From: Ryutaro Amano Subject: [ruby-list:45143] Re: ソース:インストール:MacOSX10.3.9 Date: Thu, 26 Jun 2008 20:15:30 +0900 Message-ID: <9684A59C-5104-43B5-BF62-0798076655DE@asahi-net.or.jp> > これでなぜ10.3.9だけ、だめなのかはわかりませんが、ヘッ > ダを見つけるのに失敗しているのは確かです。 > > /Library/Frameworks/Tcl.framework/Versions/8.5/Headers/ > /Library/Frameworks/Tk.framework/Versions/8.5/Headers/ > > 以下のファイルのシンボリックファイルを/usr/local/include/ > に作るとmake時にコンパイルされます。 どうやら have_header("tcl.h") とかでチェックしてはダメ ということのようですね. だとすると,この点に関しては次の patch でいいと思います. Index: extconf.rb =================================================================== --- extconf.rb (revision 17422) +++ extconf.rb (working copy) @@ -378,11 +378,11 @@ tclver, tkver = check_tcltk_version(tcltk_version) -if have_header("tcl.h") && have_header("tk.h") && - ( tcltk_framework || - ( ( !use_X || find_X11(x11_ldir2, x11_ldir) ) && - find_tcl(tcllib, stubs, tclver, *tcl_ldir_list) && - find_tk(tklib, stubs, tkver, *tk_ldir_list) ) ) +if ( tcltk_framework || + ( have_header("tcl.h") && have_header("tk.h") && + ( !use_X || find_X11(x11_ldir2, x11_ldir) ) && + find_tcl(tcllib, stubs, tclver, *tcl_ldir_list) && + find_tk(tklib, stubs, tkver, *tk_ldir_list) ) ) $CPPFLAGS += ' -DUSE_TCL_STUBS -DUSE_TK_STUBS' if stubs $CPPFLAGS += ' -D_WIN32' if /cygwin/ =~ RUBY_PLATFORM > もっとも、10.3.9+/ruby-1.8.7-p22+8.5.2binaryだとmake > 時にruby-tkの部分でエラーとなります。 お手数かとはおもいますが,どこでどのようなエラーメッセージが 出ているのかを具体的に教えていただけないでしょうか. また,以前のメールに記載されていた CFLAGS=-D_XOPEN_SOURCE=1 は どのような環境では必要なのか (必要と判断されたのか) も わかりましたら教えてください. > TclTkAqua-8.4.10だとエラーはおきません。ただし、tk/sample/demos- > jp/widget > は、漢字の部分が文字化けです。 これは Tcl/TkAqua の wish 上でも化けるのでしょうか. wish では化けず,Ruby/Tk では化けるというのであれば, 対策が必要なのかもしれません. その場合,wish 上の "encoding system" の結果と Ruby/Tk の Tk.encoding_system の結果とは揃っているでしょうか. あと一つ,以前のメールに書かれていた > Tk_MacOSXSetupTkNotifier: first [load] of TkAqua has to occur in the > main thread! > Abort trap ですが,もしかして Index: tcltklib.c =================================================================== --- tcltklib.c (revision 17422) +++ tcltklib.c (working copy) @@ -10148,6 +10148,13 @@ Tcl_ObjType_String = Tcl_GetObjType(Tcl_ObjTypeName_String); /* --------------------------------------------------------------- */ + +#ifdef MAC_OSX_TK + /* for TkAqua */ + Tk_MacOSXSetupTkNotifier(); +#endif + + /* --------------------------------------------------------------- */ } /* eof */ で直ったりします? それとも,良くなるどころかこれまで OK だった環境でも ダメになるでしょうか? -- 永井 秀利 (nagai@ai.kyutech.ac.jp) 九州工業大学 大学院情報工学研究院 知能情報工学研究系