Rubyで遊んだ日々の記録。あくまで著者視点の私的な記録なので、正確さを求めないように。
Rubyと関係ない話題にはその旨注記しているはず。なので、一見関係無いように見える話題もどこかで関係あるのかもしれません。または、注記の書き忘れかもしれません...
_ ところで、うちでは、configure.batを実行してもmakefileが生成されない。他の人は問題ないんだろうか。
ちょっとメールを投げてみるか。
_ いちおうcommitされたけど、なんでうちだけ?
OSかファイルシステムに関係あるのかなぁ。
_ bccwin32でもコンパイルは通るようになったけど、make testが通らない。
うー、pipe周りかぁ... bccwin32版でどうすりゃいいのかちっともわからんなぁ。
ソースを読み込んでなんとかするほどの暇はないので、今日は更新せず。
_ はっ、ということは、これでcommitのタイミングを失ってしまったということ?
まぁ、どーせたらたらやってんだから同じことなんだけど。
_ [ruby-dev:17387]。あぁそういえば。
このところ、1.6でしか拡張ライブラリをいぢってないからすっかり忘れてた<言い訳
_ [ruby-dev:17401]みたいなことを書きつつ、昼休みを利用して自分でも拡張ライブラリのstatic linkに挑戦。
んー、ext/extmk.rb.in の修正って実はあまりいらんな(例のシングルクォート→ダブルクォートくらい)。で、win32/Makefile.sub をいじって extmk.rb の実行時引数に static を加えるくらいか。
問題になってる$(RUBY_SO_NAME).libがいっぱい指定されちゃうってのは、実害ないんじゃないかなぁ(直した方がいい気はするけど)。
_ で、実験。
...
なぜか miniruby.exe を作り直そうとしやがるな。win32/Makefile.sub の関係箇所をコメントアウト。
...
あぅ、miniruby.exe が落ちる。なんでやねん。
たまたま実験に使ったバージョン(1.6の数日前のもの)がまずいだけかなぁ。1.6.7で試すか。
...
1.6.7でもダメ。win32/resource.rb を実行すると落ちるんか。なじぇ?
Windowsもcoredumpしてくれんかのぅ。
_ あ、わかった。win32/config.status.in をヘンにいじったのが敗因。rbconfig.rb の中で無限ループしてるよ。
これで先に進むかな。
_ できた。[ruby-dev:17402]参照。
って、昼休みを1時間オーバーしてるやん。ぐへ。
_ 1.7の方をいじりながら、いろいろ考え直してみる。
miniruby.exe を作り直そうとする件は、miniruby.exe の依存条件から$(EXTOBJS)を削除して、代わりにdmyext.objを加えることで解消された。$(LIBRUBY_A) のルールでも同じようになってるから、たぶんこれが正しいんだろう。
$(RUBY_SO_NAME).libがいっぱい指定される件は、やっぱりダメだ。
つーか、「いっぱい」には問題はないけど、「指定される」ことが問題だった(前者を問題だと思っていた)。結局、もともとの指摘が正しいのねん。
これを回避しようとしたら... 直前でRUBY_PLATFORMで場合分けしてgsub!しちゃうのが簡単ではあるんだけど、もっと抜本的な対応を考えた方がいいのかなぁ。他のプラットフォームへの影響を考えると、頭が痛い。
ま、とりあえず、こんなとこで。
Index: ext/extmk.rb.in
===================================================================
RCS file: /home/cvs/ruby/ext/extmk.rb.in,v
retrieving revision 1.75
diff -u -2 -p -w -r1.75 extmk.rb.in
--- ext/extmk.rb.in 2002/06/11 01:27:46 1.75
+++ ext/extmk.rb.in 2002/06/12 09:43:41
@@ -832,6 +832,13 @@ if $extlist.size > 0
if RUBY_PLATFORM =~ /m68k-human|beos/
$extlibs.gsub!("-L/usr/local/lib", "") if $extlibs
+ elsif RUBY_PLATFORM =~ /mswin32/
+ $extlibs.gsub!(/#{Regexp.quote('@LIBRUBYARG@')}/o, "") if $extlibs
end
- system format(%[#{$make} #{ruby} EXTOBJS='%s' EXTLIBS='%s'], $extobjs, $extlibs)
+ if /nmake/i =~ $make
+ cmd = format(%[#{$make} #{ruby} EXTOBJS="%s" EXTLIBS="%s"], $extobjs, $extlibs)
+ else
+ cmd = format(%[#{$make} #{ruby} EXTOBJS='%s' EXTLIBS='%s'], $extobjs, $extlibs)
+ end
+ system cmd
else
Dir.chdir ".."
Index: win32/Makefile.sub
===================================================================
RCS file: /home/cvs/ruby/win32/Makefile.sub,v
retrieving revision 1.22
diff -u -2 -p -w -r1.22 Makefile.sub
--- win32/Makefile.sub 2002/06/11 04:16:58 1.22
+++ win32/Makefile.sub 2002/06/12 09:43:42
@@ -156,5 +156,5 @@ all: miniruby$(EXEEXT) rbconfig.rb ext/
$(LIBRUBY) $(MISCLIBS)
set LIB=..\..;$(ORGLIBPATH)
- @.\miniruby$(EXEEXT) -Cext extmk.rb
+ @.\miniruby$(EXEEXT) -Cext extmk.rb $(EXTSTATIC)
ruby: $(PROGRAM)
@@ -347,8 +347,7 @@ ext/extmk.rb: $(srcdir)/ext/extmk.rb.in
-output=$@ $(srcdir)/ext/extmk.rb.in
-miniruby$(EXEEXT): $(OBJS) $(MAINOBJ) $(EXTOBJS)
- @echo $(EXTOBJS)
+miniruby$(EXEEXT): $(OBJS) $(MAINOBJ) dmyext.obj
@echo $(LIBS)
- $(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) $(EXTOBJS) $(OBJS) $(LIBS) -Fe$@
+ $(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) dmyext.obj $(OBJS) $(LIBS) -Fe$@
$(PROGRAM): $(MAINOBJ) $(LIBRUBY_SO) $*.res
nmake EXTSTATIC=staticで--with-static-linked-ext相当になります、たぶん。
被捕捉アンテナ類
[\ay antenna (testing)]
[Ant]
[Antenna-Julia]
[LayserあんてなV2]
[nAntenna]
[nuance de Antenna]
[Rabbit's Antenna]
[Read List]
[Ruby hotlinks 五月雨版 (るるりん。)]
[してたま (私的アンテナ with たまてばこ)]
[ただのあんてな]
[ちゃらんぽらん]
[でこぽんリンク]
[なよろアンテナ]
[にっきトレーサー]
[偽善者あんてな - 2nd season -]
[湘南日記放送局(SDB)]
[はてなの各アンテナ]