たむらです。
えっと、まず別件から。cygwin上の make から MinGW の gcc を指定しているせい
だと思いますが、CCがフルパスになってるため、C:\mingw 以外に、MinGWを
インストールしている人は、拡張ライブラリを作れません。
Rubyは、rbconfig.rb に make時の情報を保持しているので、このようになって
しまいます。
On Thu, 10 Oct 2002 21:38:04 +0900
Keiichi Takahashi <bitwalk@...> wrote:
> ビットウォークの高橋です。
>
> >>このパッケージは(最新の)MinGWとMSYSだけでコンパイルしましたが、make
> >>installがうまく出来なかったので、ここだけCygwinで処理しました。この理由
> >>は詳しく調べていません。
> >
> >
> > ruby-talkでも報告があったので一昨日から調べているのですが、
> > MSYSのshellには勝手に引数をいじる機能があります。
> > $ ./miniruby -e 'p ARGV[0]' /usr/local
> > "D:\\MinGW\\1.0\\local"
> > ruby.exe, mingw32-ruby16.dll等はinstruby.rb内で
> > Config::CONFIG['prefix']を見てインストールするのに対し、
> > ext/配下の拡張ライブラリはruby -rftools ....の引数で指定した
> > ディレクトリにインストールされます。この時shell経由で起動さ
> > れるため喰い違いが起きます。
> > たとえば私の場合だとDドライブで作業してるので
> > D:/MinGW/1.0/local - *.soやその関係の*.rb
> > D:/usr/local - ruby.exe, mingw32-ruby16.dll, irb, ...
> > となってしまいます。
>
> なるほど、それで d:\usr\local なんてフォルダが出来ていたりするわけですね
> (私は/homeをd:\homeにマウントしてそこで作業しています)。このような現象
> に遭遇したのははじめてでしたので、さしあたってCygwin環境に逃げてしまいま
> した。
基本的に DOSISH(ドライブレター有)な MinGWと、Unix-Likeな Cygwin/MSYSの
組み合わせの問題ですよね。私も苦労してますが、決定的な解決策は見つかりません。
cygpath を使って prefixで指定したりもしてますが。
わたなべさんみたく Cross な環境がやっぱり良いのかなぁ。
> Ruby関連のMLに参加して情報収集に励む必要があるかもしれません。お奨めのML
> があれば教えて頂けませんか?
基本的に、ruby-listは必須ですね。ruby-dev はかなり内部的な突っ込んだ内容です。
* Blade (Ruby関連MLのアーカイブ)
http://blade.nagaokaut.ac.jp/ruby/index.html
* Ruby ML Topics [ja]
http://rwiki.jin.gr.jp/cgi-bin/rw-cgi.rb?cmd=view;name=ML+Topics
* MLのリスト
http://rwiki.jin.gr.jp/cgi-bin/rw-cgi.rb?cmd=view;name=ML+list
後は何と言っても、
* Just another Ruby porter,
http://www.ruby-lang.org/~eban/diary/
でしょう。
# UNIX-USER誌の、OpenCOBOLの記事も早く読みたいなぁ。
--
たむら (http://tamura.tdiary.net)