From: Katsuyuki Komatsu Date: 1999-04-26T23:48:53+09:00 Subject: [ruby-dev:6664] Re: [PATCH] AIX CONFIG["LDSHARED"] and installation 小松です。 In the message of [ruby-dev:6660] on Apr 26 20:43:00 Katsuyuki Komatsu wrote: > diff -u1 configure.in-1.1.1.2.2.15 configure.in これ、1.1.1.2.2.14の間違いですね (1.1.1.2.2.15はconfigure)。 CVSでdiffとれば良かった。 あとは以下のような感じです。 (1) make distcleanでparse.cが消えてしまうが、ソース展開後の状態に 戻らないので望ましくない気がする。 (2) make distcleanでruby.impが消えない。 Makefileで消すかextmk.rbで消すべきか? (3) ruby_1_3のブランチにruby/missing/isinf.cが入っていない。 (4) minirubyを作るときに-Wl,-bE:ruby.impがつくがrubyを作るときに付かない。 Makefile.inで$(XLDFLAGS)を追加する行がおかしい? (5) ruby.impが作られない。 たとえば、Makefile.inを以下のようにして、configure.inで EXTLDFILES=ruby.impとし、ruby.impが作られるようにする方法があるが、 この方式だとconfigure.inとMakefile.inを変更する必要があるので、 ext/extmk.rbで作った方が手っとり早いか? (4)もextmk.rbでやった方が楽かもしれない。 EXTLDFILES = @EXTLDFILES@ all: miniruby$(binsuffix) $(EXTLDFILES) rbconfig.rb ruby.imp: miniruby$(binsuffix) @./miniruby$(binsuffix) -Xext aix_mksym.rb (6) ruby.impを作るためaix_mksym.rbをたとえば以下のように起動としたとき、 エラーが出る。 % ./miniruby -Xext aix_mksym.rb aix_mksym.rb:33: undefined method `older' for # (NameError) % これは、依存関係を外出しにするなら、 --- ruby/ext/aix_mksym.rb-1.1.2.1 Mon Apr 26 18:42:43 1999 +++ ruby/ext/aix_mksym.rb Mon Apr 26 22:17:50 1999 @@ -30,6 +30,5 @@ exp.close nm.close end -if older("../ruby.imp", "../miniruby") - extract(open("|/usr/ccs/bin/nm -p ../*.o"), "../ruby.imp") -end + +extract(open("|/usr/ccs/bin/nm -p ../*.o"), "../ruby.imp") とするか、older()を追加する必要がある。 (7) extmk.rbが、$ruby_inc = ".."として生成される。 $ruby_inc = "../.."とするか$top_srcdirになるようにする必要がある。 (8) rbconfig.rbが、 CONFIG["DLDFLAGS"] = "-eInit_#{CONFIG[\"TARGET\"]} -bI:#{CONFIG[\"ruby_inc\"]}/ruby.imp -bM:SRE -T512 -H512 -lc" と生成されるが、 CONFIG["DLDFLAGS"] = "-eInit_$(TARGET:.so=) -bI:$(ruby_inc)/ruby.imp -bM:SRE -T512 -H512 -lc" とならなければならない。$(TARGET:.so=)とするのはextconf.rbで作った MakefileのTARGETはたとえばuconvなら、TARGET=uconv.soとなっているため。 mkconfig.rb (とconfigure.in?) を変える必要があると思われる。 (9) ext/readlineのリンクでlibreadline.aが/usr/local/libにあるため、 -L/usr/local/libが必要になった。 -- 小松克行 (株)サリオンシステムズリサーチ ソフトウェア開発部 Katsuyuki Komatsu