笠原です。

* From: Toru Hoshina <toru / gte.net>
* Date: Sat, 14 Nov 1998 05:49:06 +0900

> rpmを作るには必ずspecファイルというものが必要です。レシピです。
> 通常は、ソースを展開し、パッチなどを(あれば)あて、普通に人手ですると
> 同じように、
> ./configure --prefix=/usr
> make
> などとしてconfigure、makeします。そしてインストールするわけですが、
> この際には直接、目的の位置にインストールするのではなく/var/tmpなどの
> 一時的な位置にインストールします。

make install のときに

	make install DESTDIR=/var/tmp

とすると、その下 (/var/tmp/usr/local/bin/...)、にインストールしてくれ
る、というのではどうでしょう。GNU automake でも 1.3 からこの手法が導
入されましたが、採用された理由はやはり「パッケージマネージャで便利だ
から」だったと思います。

> ただ1点だけ、libruby.so が今のinstruby.rbだと /usr/local/lib/ruby に
> 置かれます。1.1c6では/usr/local/lib に置かれていました。
> 通常、/usr/local/lib/rubyなどの固有なディレクトリは/etc/ld.so.conf
> には書かれていないので、ldconfigは見にきませんよね。

すみません。これは私が新たにバグを作ってしまいました。
両方とも libdir にしてしまったのが、いけませんでした。

たとえば libdir と pkglibdir に分ける、というのではどうでしょう。

    libdir = @libdir@
	# => "$(prefix)/lib" => "/usr/local/lib" という具合に展開される

    pkglibdir = "@libdir@/ruby"
	# => "$(prefix)/lib/ruby" => "/usr/local/lib/ruby" という具合
	# に展開される

この @pkglibdir@ というネーミングも、automake からの拝借です。
これで良ければ、パッチを作ります。

個人的には automake を導入して Makefile.in は自動生成した方が楽チンだ
と思いますが、*.rb を使ったインストール (instruby.rb や extmk.rb) は
諦めなくてはなりません。今の ruby だと instruby.rb はともかく、extmk.rb
の方を諦めるのは無理そうです。

それから、automake を使うと `make uninstall' や `make dist' (ソースコー
ドの配布パッケージの *.tar.gz を生成する) といったターゲットも自動生成
してくれるという利点があります。

さらに大いなる蛇足ですが、ruby の Makefile.in にある realclean という
ターゲットは現在の GNU Coding Standard からは削除されていて、代わりに
mostlyclean と maintainer-clean が加わってます。(使ったことないけど ^^;)
______________________________________________________________________
                                          笠原 基之(かさはら もとゆき)