小松です。
In message of [ruby-list:15843] Re: cannot install ruby-gtk into FreeBSD 2.2.x
on 1999/8/3 05:23:47 gotoken / math.sci.hokudai.ac.jp (GOTO Kentaro) wrote:
|>そうすると、ruby自身のargv[0]を取れる必要がありますが、
|>できるのかな?
|ってのは、考えが甘い??
# まだ、ここまでする必要があるかという件に結論は出ていませんが……
えーと、
ruby -Xgtk extconf.rb
ruby -Xgtk -X../gtk -X/home/lang/ruby-ext/gtk extconf.rb
というような場合を考慮しなくてよいなら、悪くないと思います。
この場合を考慮すると、rubyを起動したときのカレントディレクトリ
か、-Xの引数のリストかそれをマージしたものが必要になります。
考慮しなくてよい場合、lib/mkmf.rbの、
RUBY = #{CONFIG["ruby_install_name"]}
を
ruby_interpreter = File.expand_path(`which #{RUBY_INTERPRETER}`)
……
RUBY = #{ruby_interpreter}
にすればいいわけですが、whichを呼ぶのはよろしくないので、
相当するルーチンがあればよいかと。
ありましたっけ?
mswin32では、常にフルパスがくるので、
RUBY = #{RUBY_INTERPRETER}
でよいですけどね。
== Solaris 2.5.1 ==
% ruby -ve 'puts RUBY_INTERPRETER'
ruby 1.3.6 (1999-07-28) [sparc-solaris2.5.1]
ruby
% /usr/local/bin/ruby -ve 'puts RUBY_INTERPRETER'
ruby 1.3.6 (1999-07-28) [sparc-solaris2.5.1]
/usr/local/bin/ruby
% cd /usr/local/bin
% ./ruby -ve 'puts RUBY_INTERPRETER'
ruby 1.3.6 (1999-07-28) [sparc-solaris2.5.1]
./ruby
%
% which ruby
/usr/local/bin/ruby
% which /usr/local/bin/ruby
/usr/local/bin/ruby
% which ./ruby
./ruby
%
== mswin32 ==
C:\>ruby -ve 'puts RUBY_INTERPRETER'
ruby 1.3.6 (1999-07-28) [i386-mswin32]
C:\USR\LOCAL\BIN\RUBY.EXE
C:\>\usr\local\bin\ruby -ve 'puts RUBY_INTERPRETER'
ruby 1.3.6 (1999-07-28) [i386-mswin32]
C:\USR\LOCAL\BIN\RUBY.EXE
C:\>cd \usr\local\bin
C:\usr\local\bin>.\ruby -ve 'puts RUBY_INTERPRETER'
ruby 1.3.6 (1999-07-28) [i386-mswin32]
C:\USR\LOCAL\BIN\RUBY.EXE
C:\usr\local\bin>
--
小松克行 / Katsuyuki Komatsu <komatsu / sarion.co.jp>