わたなべです。

"U.Nakamura" <usa / osb.att.ne.jp> 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を改造するという案はどうでしょう?

-- 
わたなべひろふみ