From: Ryo HAYASAKA Date: 1999-07-21T14:37:24+09:00 Subject: [ruby-dev:7387] [PATCH]extconf.rb, tcltklib.c, and rubytest.rb for NetBSD 早坂@会津大学です。 NetBSD で ext/* をコンパイルできるようにするためのパッチで す。 NetBSD では package を使ってインストールした software は普 通 /usr/pkg に入ります。なので、/usr/pkg を見るように extconf.rb を変更しました。 tcltklib.c では warning をなくすため、インクルードする順番 を変えました。 rubytest.rb では、 ryo-h@uxxipc3$ gmake test /usr/libexec/ld.so: preload: ./libruby.so.1.3: cannot map object test failed と言われますので、LD_PRELOAD をセットしないようにしました。 #他の platform では大丈夫なのかな? Linux では必要なようで すけど。 diff -ur ruby-1.3.5.dist/ext/curses/extconf.rb ruby-1.3.5/ext/curses/extconf.rb --- ruby-1.3.5.dist/ext/curses/extconf.rb Tue Apr 20 17:41:52 1999 +++ ruby-1.3.5/ext/curses/extconf.rb Tue Jul 20 22:45:38 1999 @@ -1,6 +1,6 @@ require 'mkmf' -$CFLAGS="-I/usr/include/ncurses -I/usr/local/include/ncurses" -$LDFLAGS="-L/usr/local/lib" +$CFLAGS="-I/usr/include/ncurses -I/usr/local/include/ncurses -I/usr/pkg/include" +$LDFLAGS="-L/usr/local/lib -L/usr/pkg/lib" make=FALSE have_library("mytinfo", "tgetent") if /bow/ =~ PLATFORM diff -ur ruby-1.3.5.dist/ext/dbm/extconf.rb ruby-1.3.5/ext/dbm/extconf.rb --- ruby-1.3.5.dist/ext/dbm/extconf.rb Tue Jun 22 11:51:28 1999 +++ ruby-1.3.5/ext/dbm/extconf.rb Tue Jul 20 22:48:35 1999 @@ -1,5 +1,5 @@ require 'mkmf' -$LDFLAGS = "-L/usr/local/lib" +$LDFLAGS = "-L/usr/local/lib -L/usr/pkg/lib" if dir = with_config("dbm-include") $CFLAGS = "-I#{dir}" end diff -ur ruby-1.3.5.dist/ext/gdbm/extconf.rb ruby-1.3.5/ext/gdbm/extconf.rb --- ruby-1.3.5.dist/ext/gdbm/extconf.rb Fri May 14 23:25:34 1999 +++ ruby-1.3.5/ext/gdbm/extconf.rb Tue Jul 20 22:49:32 1999 @@ -1,5 +1,5 @@ require 'mkmf' -$LDFLAGS = "-L/usr/local/lib" +$LDFLAGS = "-L/usr/local/lib -L/usr/pkg/lib" if have_library("gdbm", "gdbm_open") and have_header("gdbm.h") and have_func("gdbm_open") then diff -ur ruby-1.3.5.dist/ext/tcltklib/extconf.rb ruby-1.3.5/ext/tcltklib/extconf.rb --- ruby-1.3.5.dist/ext/tcltklib/extconf.rb Wed May 19 12:21:43 1999 +++ ruby-1.3.5/ext/tcltklib/extconf.rb Tue Jul 20 22:57:48 1999 @@ -34,12 +34,16 @@ "/usr/include/tcl{,8*,7*}", "/usr/include", "/usr/local/include/tcl{,8*,7*}", - "/usr/local/include") + "/usr/local/include", + "/usr/pkg/include/tcl{,8*,7*}", + "/usr/pkg/include") search_header("tk.h", "/usr/include/tk{,8*,4*}", "/usr/include", "/usr/local/include/tk{,8*,4*}", - "/usr/local/include") + "/usr/local/include", + "/usr/pkg/include/tk{,8*,4*}", + "/usr/pkg/include") search_header("X11/Xlib.h", "/usr/include/X11*", "/usr/include", @@ -77,9 +81,9 @@ search_lib("libX11.{so*,a}", "XOpenDisplay", "/usr/lib", "/usr/openwin/lib", "/usr/X11*/lib") && search_lib("libtcl{8*,7*,}.{so,a}", "Tcl_FindExecutable", - "/usr/lib", "/usr/local/lib") && + "/usr/lib", "/usr/local/lib", "/usr/pkg/lib") && search_lib("libtk{8*,4*,}.{so,a}", "Tk_Init", - "/usr/lib", "/usr/local/lib") + "/usr/lib", "/usr/local/lib", "/usr/pkg/lib") $LDFLAGS = $libraries.collect{|path| "-L" + path}.join(" ") create_makefile("tcltklib") end diff -ur ruby-1.3.5.dist/ext/tcltklib/tcltklib.c ruby-1.3.5/ext/tcltklib/tcltklib.c --- ruby-1.3.5.dist/ext/tcltklib/tcltklib.c Fri Jun 18 08:29:24 1999 +++ ruby-1.3.5/ext/tcltklib/tcltklib.c Tue Jul 20 23:29:16 1999 @@ -4,12 +4,12 @@ * Oct. 24, 1997 Y. Matsumoto */ -#include "ruby.h" -#include "rubysig.h" #include #include #include #include +#include "ruby.h" +#include "rubysig.h" #ifdef __MACOS__ # include diff -ur ruby-1.3.5.dist/rubytest.rb ruby-1.3.5/rubytest.rb --- ruby-1.3.5.dist/rubytest.rb Mon Jun 28 13:13:11 1999 +++ ruby-1.3.5/rubytest.rb Wed Jul 21 00:06:15 1999 @@ -17,9 +17,9 @@ ENV[dldpath] = x end -if File.exist? CONFIG['LIBRUBY_SO'] - ENV["LD_PRELOAD"] ||= "" - ENV["LD_PRELOAD"] += " ./#{CONFIG['LIBRUBY_SO']}" +if RUBY_PLATFORM !~ /netbsd/ and File.exist? CONFIG['LIBRUBY_SO'] + ENV["LD_PRELOAD"] ||= "" + ENV["LD_PRELOAD"] += " ./#{CONFIG['LIBRUBY_SO']}" end $stderr.reopen($stdout) package を使って software をそろえている NetBSD(大抵の人は package を使ってます)でコンパイルするには、下のように configure を実行する必要があります。 CFLAGS='-g -O2 -I/usr/pkg/include' LDFLAGS='-L/usr/local/lib -L/usr/pkg/lib' \ ./configure --enable-shared --with-readline-dir=/usr/pkg ライブラリやヘッダのチェックが configure と ext 関係で分か れてるところがややっこしいですね。 ------- Name : HAYASAKA, Ryo (早坂 良) E-mail : hayasaka@univ21.u-aizu.ac.jp URL : http://www.u-aizu.ac.jp/%7Es1041140/ Computer Science and Engineering Lab., The University of Aizu