From: rubikitch Date: 2006-01-08T04:02:04+09:00 Subject: [ruby-list:41770] Re: カスタム版Rubyの作成 From: rubikitch Subject: [ruby-list:41543] カスタム版Rubyの作成 Date: Tue, 15 Nov 2005 02:54:50 +0900 るびきちです。 > とても恥ずかしいのですが、カスタム版Rubyの作成がうまくいきません。 > ~/src/rubystartupにRuby起動時に自動で読み込まれる拡張ライブラリを置いています。 > ext/Setup には rubystartup が書かれています。 > つまり、rubystartup.soをstatic linkしたいのです。 > bell.rbにはbell_message関数が定義されています。 > > 何がやりたいかというと、bell.rbで定義されている関数群をrequireすることなしに > 組み込み関数のようにそのまま利用したいのです。 > (pなどのように手軽に利用したい) > ruby-1.8.0と比較したところやっと原因がわかりました。 extmk.rbの --extstaticの指定方法が間違っているようです。 $ diff -u common.mk.org common.mk --- common.mk.org 2006-01-08 03:55:55.000000000 +0900 +++ common.mk 2006-01-08 03:55:59.000000000 +0900 @@ -56,7 +56,7 @@ --make="$(MAKE)" \ --mflags="$(MFLAGS)" \ --make-flags="$(MAKEFLAGS)" -EXTMK_ARGS = $(SCRIPT_ARGS) --extout="$(EXTOUT)" --extension $(EXTS) --extstatic $(EXTSTATIC) -- +EXTMK_ARGS = $(SCRIPT_ARGS) --extout="$(EXTOUT)" --extension $(EXTS) --extstatic="$(EXTSTATIC)" -- all: $(MKFILES) $(PREP) $(RBCONFIG) $(LIBRUBY) @$(MINIRUBY) $(srcdir)/ext/extmk.rb $(EXTMK_ARGS) さらに、 ext/rubystartup/extconf.rb で $static = true と指定するとうまくいきました。 #!/usr/bin/env ruby require 'mkmf' $static=true create_makefile("rubystartup") -- rubikitch http://www.rubyist.net/~rubikitch/