いがらしです。 「[ruby-list:15815] Re: cannot install ruby-gtk into FreeBSD 2.2.x」で 、 WATANABE Hirofumi <eban / os.rim.or.jp>さんは書きました: > わたなべです. > > WATANABE Hirofumi <eban / os.rim.or.jp> writes: > > ::|スクリプトがminiruby上で動いているということを > ::|認識するにはどうしたらいいでしょうか? > :: > ::インタプリタ名を得る方法が現状ではないですね(Perlの$^Iのよう > ::なの)。良い変数名があれば(あるいはAPIがあれば)、取り込みたい > ::ものですが。 > : > :この場合の本質は miniruby 上で動いているじゃなくて extmk.rb > :から load されてるかどうかです. > > すみません. 全然本質じゃないですね. もともとは extconf.rb じゃ > なくて makedefconst.rb の話だったんですね. そうなんです。 サブディレクトリのMakefileでmakedefconst.rbを呼ぶために このMalefileにrubyインタプリタの名前を埋め込んでいるので。 > やっぱり extconf.rb に移動しちゃうのが簡単かな. 僕もそう考えたんですが…… makedefconst.rbでやっているのは定数の定義をするCプログ ラムの生成です。これを本来configurationための extconf.rbでやってしまうのはちょっと気持ち悪いなぁと 感じて他の方法を探していました。 やりたいことをもう一度書くと、「拡張ライブラリのコンパ イルにrubyスクリプトを使いたい」、つまり ・拡張ライブラリのMakefileからrubyスクリプト(≠extconf.rb)を呼び出す ・このスクリプト中でライブラリ(ftools, rbconfigなど)をrequireする です。 前者はインタプリタ名が分かればそれをMakefileに埋め込む ことによって、さらにextconf.rbが呼び出されたときの $LOAD_PATHも-Iオプションで渡すようにして後者も解決でき るでしょうか。いまのところこれくらいしか思いつきません。 ---- 五十嵐 宏 (Hiroshi IGARASHI)