From: Noritsugu Nakamura Date: 1998-03-12T21:16:58+09:00 Subject: [ruby-list:7097] bltlib module 中村のりつぐ です。 tcltklib から bltlib を試しに作ってみました。 一応 graph と pack だけ試して動くのを確認しました。 こういうのをうまくマージする方法が良く分からないので、 diff したものをつけておきます。BLT 2.3 を使いました。 # とりあえず、動いたけど、こういうので本当に良いのかな? --- tcltklib/MANIFEST Fri Jan 16 13:14:50 1998 +++ bltlib/MANIFEST Thu Mar 12 12:19:01 1998 @@ -1,15 +1,4 @@ MANIFEST -README.euc -MANUAL.euc -tcltklib.c +bltlib.c depend extconf.rb -lib/tcltk.rb -demo/lines1.rb -demo/lines0.tcl -demo/lines2.rb -sample/sample1.rb -sample/sample2.rb -sample/maru.gif -sample/batsu.gif -sample/sample0.rb --- tcltklib/lib/tcltk.rb Fri Jan 16 13:14:51 1998 +++ bltlib/blt.rb Thu Mar 12 21:09:50 1998 @@ -3,7 +3,7 @@ #### tcltk ライブラリ #### Sep. 5, 1997 Y. Shigehiro -require "tcltklib" +require "bltlib" ################ @@ -23,7 +23,7 @@ # TclTk.mainloop(): TclTkLib.mainloop() を呼ぶ. def TclTk.mainloop() print("mainloop: start\n") if $DEBUG - TclTkLib.mainloop() + BltLib.mainloop() print("mainloop: end\n") if $DEBUG end --- tcltklib/tcltklib.c Wed Feb 18 11:31:18 1998 +++ bltlib/bltlib.c Thu Mar 12 21:10:27 1998 @@ -10,6 +10,7 @@ #include #include #include +#include /* for debug */ @@ -142,9 +143,12 @@ if (Tk_Init(ptr->ip) == TCL_ERROR) { Fail("Tk_Init"); } + DUMP1("Blt_Init"); + if (Blt_Init(ptr->ip) == TCL_ERROR) { + Fail("Blt_Init"); + } DUMP1("Tcl_StaticPackage(\"Tk\")"); - Tcl_StaticPackage(ptr->ip, "Tk", Tk_Init, - (Tcl_PackageInitProc *) NULL); + Tcl_StaticPackage(ptr->ip, "BLT", Blt_Init, Blt_SafeInit); /* add ruby command to the interpreter */ DUMP1("Tcl_CreateCommand(\"ruby\")"); @@ -192,11 +196,11 @@ } /*---- initialization ----*/ -void Init_tcltklib() +void Init_bltlib() { extern VALUE rb_argv0; /* the argv[0] */ - VALUE lib = rb_define_module("TclTkLib"); + VALUE lib = rb_define_module("BltLib"); VALUE ip = rb_define_class("TclTkIp", cObject); rb_define_module_function(lib, "mainloop", lib_mainloop, 0); --- tcltklib/depend Fri Jan 16 13:14:50 1998 +++ bltlib/depend Thu Mar 12 12:19:42 1998 @@ -1 +1 @@ -tcltklib.o: tcltklib.c $(hdrdir)/ruby.h $(hdrdir)/config.h $(hdrdir)/defines.h +bltlib.o: bltlib.c $(hdrdir)/ruby.h $(hdrdir)/config.h $(hdrdir)/defines.h --- tcltklib/extconf.rb Mon Feb 23 12:52:16 1998 +++ bltlib/extconf.rb Thu Mar 12 12:37:04 1998 @@ -39,6 +39,12 @@ "/usr/include", "/usr/local/include/tk*", "/usr/local/include") +search_header("blt.h", + "/usr/include/blt*", + "/usr/include", + "/usr/local/include/blt*", + "/usr/local/include", + "/usr/local/blt*/include") search_header("X11/Xlib.h", "/usr/include", "/usr/X11*/include", @@ -73,13 +79,15 @@ return FALSE; end -if have_header("tcl.h") && have_header("tk.h") && +if have_header("tcl.h") && have_header("tk.h") && have_header("blt.h") && search_lib("libX11.{a,so}", "XOpenDisplay", "/usr/lib", "/usr/X11*/lib", "/usr/openwin/lib") && search_lib("libtcl{,7*,8*}.{a,so}", "Tcl_FindExecutable", "/usr/lib", "/usr/local/lib") && search_lib("libtk{,4*,8*}.{a,so}", "Tk_Init", "/usr/lib", "/usr/local/lib") + search_lib("libBLT.{a,so}", "Blt_Init", + "/usr/lib", "/usr/local/lib", "/usr/local/blt/lib") && $LDFLAGS = $libraries.collect{|path| "-L" + path}.join(" ") - create_makefile("tcltklib") + create_makefile("bltlib") end 中村典嗣 E-mail: nnakamur@mxq.meshnet.or.jp