あおきです。
In mail "[ruby-list:30611] Re: Ruby module frame work?"
TAKAHASHI Masayoshi <maki / inac.co.jp> wrote:
> 高橋征義です。
> > うーん、それは setup.rb こそが進む方向だということを意味する
> > んでしょうか。別に異論があるわけじゃないんですが。
>
> そこまで主張するつもりはないのですが、例えば、
>
> * pure Rubyなライブラリ
> -> install.rb を使って site_ruby/ 以下の適当な場所に
> 一発インストール。
> * 拡張ライブラリも含むライブラリ
> -> 次期 extconf.rb(?) というか require 'mkmf' してMakefileを
> 生成し、インストール。
setup.rb の単一パッケージ版みたいなのがあったらニーズに合いませんか?
bin + lib + ext 1 セットだけを扱うものです。たとえば
ARCHIVE_TOP/
install.rb
(bin/) コマンドのツリー (そのまま bindir に cp -r)
lib/ Ruby スクリプトのツリー (そのまま site_ruby に cp -r)
(ext/) 拡張モジュールのツリー (.so があるべき場所にディレクトリを作る)
(share/) データのツリー (そのまま datadir に転写)
という形式だったらアーカイブを作る側としてもわかりやすく、対応も
容易ではないかと思います。ついでにこの方式だとインストールされる
ファイル(と位置)がはっきりするという利点もあります。lib/ と ext/
は特に必然性があって分けているわけではないので併合してもよし。
mkmf.rb の後継をうまいこと作れば組みあわせて使うこともできるでしょう。
どのくらいのものを目指してるのかわからないんですけど、とりあえず
.rb 複数 + .so 複数 1 セットはインストールできるものがいいです。
最初は全部 .rb で書いて、ボトルネックをちょこっと .so にしてみた、
というパターンは推奨されるべきと思うので、.so をすこし増やした
からと言っていきなりインストーラが変わるのはよくないと思うのです。
そのへんを考えて次期 mkmf.rb に欲しい機能は
* 別のファイルから起動した ruby プロセスからも
コンフィグ (--prefix とか) を制御できる。
* 複数の拡張モジュールを同一プロセスで扱える。
現状の create_makefile は同一プロセスで二回呼ぶと落ちるので困る
* ruby だけで全作業が完結する (make 使わない) (?)
でしょうか。
-------------------------------------------------------------------
青木峰郎