[Ultramonkey-l7-develop 955] make install時のインストール先変更について

アーカイブの一覧に戻る

中野 宏朗 nakan****@nttco*****
2013年 7月 11日 (木) 16:19:02 JST


中野@幕張です。

rpmでsample.crmがインストールされない件についてです。
ついでにmanがインストールされない件についても。

わかりました。

sample.crmのインストールをMakefile.amには書いていたのですが、
specファイルのほうには書いていませんでした。
なので、make installではインストールされるのですが、rpm -ivhで
いれるとインストールされないという。

・・・なんでやねん。

specファイルを良く見ると・・・なんでspecファイルにMakefile.amと
同じものが書いてあるのさorz
もしやと思ってmanについても調べてみると、manもmake installでは
/usr/local/share/manに入るんですが、rpm -iだと入らない。

specファイルの%installにmake prefix=$RPM_BUILD_ROOT/{_prefix} install
としても、かたくなに/usrにインストールされてrpmbuildが失敗する。

・・・configure.inに、exec_prefixが/usrって思いっきりハード
コーディングされてました(゜Д゜#)んで、各Makefile.amがそれを参照。
これが原因。

これだと、ビルドする人が

# ./configure --prefix=/hoge

とかやってインストール先を変えようとしても変わらない。
configure使ってる意味を一つ潰してて、そのせいでrpmbuildのときに
仮インストール先を変更できない・・・
make exe_prefix=/hoge
とかやると変えられるかもだけど、configure使ってて、configure.inを解読
しないとmake変数がわからないとか、configureで変えられないとか、非一般的です。

というわけで、AC_SUBST(exec_prefix,[/usr])とか、libdirとかincludeとかの
直でフルパス指定しているところを削除したいです。
# libdirやincludeは、%prefix/libとかになるかな。
そうすると、ソースを直接configure;makeしたときのデフォルトprefixが
automake標準の/usr/localになるんですが、それでもいいでしょうか。

rpmのときはprefixを$RPM_BUILD_ROOT/usrにして、/usr 配下にインストール
されるようにしようと思っています。
その方が一般的だと思うのですが。

-- 
中野 宏朗 (NAKANO Hiroaki)




Ultramonkey-l7-develop メーリングリストの案内
アーカイブの一覧に戻る