From: Mamoru KOMACHI Date: 2004-02-29T01:01:54+09:00 Subject: [ruby-dev:23062] Re: path for RUBY --Multipart_Sun_Feb_29_01:02:04_2004-1 Content-Type: text/plain; charset=ISO-2022-JP 小町と言います。常に最新版を使っているわけではないので報告遅れてすみま せんが、 At Sat, 14 Feb 2004 15:51:45 +0900, GOTOU Yuuzou wrote: > mkmf.rbでMakefileを作ると、$(RUBY)にディレクトリ名が含まれな > いので、PATHが通っていないところにrubyがあるとmake installに > 失敗してしまいます。 > > /somewhere/ruby extconf.rb --ruby=/somewhere/ruby > > とすれば回避できるのですが、mkmf.rbを > > --- lib/mkmf.rb 13 Feb 2004 16:03:13 -0000 1.172 > +++ lib/mkmf.rb 14 Feb 2004 06:37:30 -0000 > @@ -1050,3 +1050,3 @@ Config::CONFIG["topdir"] = CONFIG["topdi > $configure_args["--topdir"] ||= $curdir > -$ruby = arg_config("--ruby", CONFIG["ruby_install_name"]) > +$ruby = arg_config("--ruby", File.join(CONFIG["bindir"], CONFIG["ruby_install_name"])) > > とするのはまずいことがあるでしょうか。 パッケージを作るときなど、DESTDIR が指定されていると、bindir に DESTDIR もついてくるので、たとえば rico% make DESTDIR=/var/tmp/portage/ruby-serialport-0.6/image/ install make: /var/tmp/portage/ruby-serialport-0.6/image//usr/bin/ruby19: Command not found make: *** [/var/tmp/portage/ruby-serialport-0.6/image//usr/lib/ruby/site_ruby/1.9/i686-linux] Error 127 となって失敗してしまうので、ちょっとまずいです。 また、mkmf.rb の 1.169 の変更($topdir に $hdrdir をただ入れるのではな く、$hdrdir に config.h が見つからなかった場合は compile_dir も探し、 それでも見つからなかった場合は abort する)でどうもヘッダをうまく見つけ てくれなくなっていたので、パッチを添付します。 環境は、 rico% /usr/bin/ruby19 -v ruby 1.9.0 (2004-02-27) [i686-linux] です。よろしくお願いします。 -- Mamoru KOMACHI --Multipart_Sun_Feb_29_01:02:04_2004-1 Content-Type: text/plain;name="mkmf.rb.diff"; charset=US-ASCII --- mkmf.rb.orig 2004-02-28 15:00:48.000000000 +0900 +++ mkmf.rb 2004-02-28 22:48:25.018612488 +0900 @@ -84,7 +84,7 @@ else abort "can't find header files for ruby." end -if File.exist?($hdrdir + "/config.h") +if File.exist?(Config.expand($hdrdir) + "/config.h") $topdir = $hdrdir elsif File.exist?((compile_dir = Config::CONFIG['compile_dir']) + "/config.h") $topdir = compile_dir --Multipart_Sun_Feb_29_01:02:04_2004-1--