[ruby-list:41770] Re: カスタム版Rubyの作成

From: rubikitch <rubikitch@...>
Date: 2006-01-07 19:02:04 UTC
List: ruby-list #41770
From: rubikitch <rubikitch@ruby-lang.org>
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/

In This Thread