From: WATANABE Hirofumi Date: 2002-08-21T02:18:23+09:00 Subject: [ruby-dev:18050] Re: msvcrt わたなべです。 "U.Nakamura" writes: > > archdirはどちらもi386-msvcrtとする > > > > でうまくいくのかな?rbconfig.rbは > > > > CONFIG["archdir"] = "$(rubylibdir)/$(arch)" > > > > なので、configure.in的には面倒な気がする。 > > 問題点が見えてないのですが、例えばどんなパターンを考慮して > いらっしゃいますか? $(arch)というのはCONFIG["arch"]なわけで、これは今現在それぞれ CONFIG["arch"] = "i386-mingw32" CONFIG["arch"] = "i386-mswin32" となってますよね?これが CONFIG["arch"] = "i386-msvcrt" になるようにするにはconfigure.inでarchを変更しなければいけな いけど、そうするとRUBY_PLATFORMもi386-msvcrtになってしまうん じゃないかなと思ってました。でも arch="${target_cpu}-${target_os}" AC_DEFINE_UNQUOTED(RUBY_PLATFORM, "${arch}") の後に case "$target_os" in mingw*) arch='i386-msvcrt';; esac を追加すればいい気がしてきました。 後はruby.cでRUBY_THIN_ARCHLIB, RUBY_SITE_THIN_ARCHLIBのよう な定数を用意して処理を加えればよしと。 となると決めなきゃいけないのはその名前と優先順位ぐらいかな? i386-msvcrt/とi386-(mswin32|mingw32)/のどちらを優先するか? 今までi386-(mswin32|mingw32)/だったからそこには古い拡張ライ ブラリが残っているのでi386-msvcrtを優先しないとまずい。 でも専用と汎用という観点からはi386-msvcrtのほうが後のほうが いいんじゃないという気もする。うーむ。 というわけで、archは今まで通りi386-(mswin32|mingw32)のままで CONFIG["archdir"] = "$(rubylibdir)/$(arch)" として、単にi386-msvcrt/も探すようにruby.cを変更。後から追加 する拡張ライブラリはi386-msvcrt/へインストールされるように mkmf.rbを改造するという案はどうでしょう? -- わたなべひろふみ