中野 宏朗
nakan****@nttco*****
2013年 7月 17日 (水) 14:36:19 JST
中野@幕張です。 autoconf,automake,rpmbuildと格闘中。。。 rpmbuildで、RPMを作るのにmake installを 使うようにすると、develパッケージ用の ヘッダファイルがコピーされないことに 気づきました。 # というか、知ってたけど忘れてましたw tar ballからのmake installからでも ヘッダファイルをインストールするように しようと思います。 (2013/07/12 15:09), 中野 宏朗 wrote: > 中野@幕張です。 > > v2では、インストールマニュアルで./configure時に > prefix, sysconfdir, localstatedir, libdirを > コマンドラインで指定するようにしていたんですね。 > > v3もそうしようかな・・・ > 他の方はどうでしょうか? > > (2013/07/12 14:53), TATEISHI Katsuyuki wrote: >> たていしです。 >> >> On Fri, 12 Jul 2013 14:44:34 +0900 (JST), >> TATEISHI Katsuyuki <k.t****@nttco*****> wrote: >>>> >>>> --with-l7vsadm-sockdir と --with-l7vs-config-dir あるから、 >>>> こいつらだけ生path指定して、rpmbuild時はこのオプションに >>>> RPM_BUILD_ROOTを付与するしかないかな? >>>> でも、v2のconfigure.acとMakefile.amを見ると、sysconfdirや >>>> localstatedirを使っているんですよね。 >>>> >>>> v2のときはどう乗り切ったんだろう? >>> >>> v2では --with-l7... のデフォルト値を >>> >>> ============================================================ >>> AC_ARG_WITH( >>> l7vsadm-sockdir, >>> [ --with-l7vsadm-sockdir=DIR l7vsadm sockfile path. >>> [default="${localstatedir}/run/l7vs"] ], >>> [ l7vsadm_sockdir="$withval" ], >>> # XXX: Should be [ l7vsadm_sockdir="${localstatedir}/run/${PACKAGE}" ] >>> [ l7vsadm_sockdir="${localstatedir}/run/l7vs" ] >>> ) >>> ============================================================ >>> のようにしています >>> # XXX が残ってますが今回は関係なさげ >>> >>> なので、 --prefix を指定しただけだと同様に /usr/local/var 配 >>> 下とかになる仕様です。 >>> >>> 前述のとおり rpm にするときは rpmbuild がこのへんの場所を指定 >>> してくれるので、Makefile.am が install 先を生で埋め込んでない >>> 限りうまく動作するはずです。 >> >> 補足です。 >> >> v2 は spec ファイルでも >> ============================================================ >> %define l7vs_moddir %{_libdir}/l7vs >> %define l7vs_logdir %{_localstatedir}/log/l7vs >> %define l7vsadm_sockdir %{_localstatedir}/run/l7vs >> (中略) >> >> %build >> %configure \ >> --with-l7vs-moddir=%{l7vs_moddir} \ >> --with-l7vs-logdir=%{l7vs_logdir} \ >> --with-l7vsadm-sockdir=%{l7vsadm_sockdir} \ >> --with-l7vs-maxvs=%{l7vs_maxvs} >> ============================================================ >> のように指定してました。 >> >> -- >> TATEISHI Katsuyuki <k.t****@nttco*****> >> >> >>> >>> -- >>> TATEISHI Katsuyuki <k.t****@nttco*****> >>> >>> >>> >>>> >>>> (2013/07/12 11:14), TATEISHI Katsuyuki wrote: >>>>> たていしです。 >>>>> >>>>> On Thu, 11 Jul 2013 16:19:02 +0900, >>>>> 中野 宏朗 <nakan****@nttco*****> wrote: >>>>>> # ./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 配下にインストール >>>>>> されるようにしようと思っています。 >>>>>> その方が一般的だと思うのですが。 >>>>> >>>>> ./configure のときに何も指定しなければ /usr/local へ、 RPM >>>>> は (rpmbuild が --prefix とかを /usr に指定するので) /usr へ >>>>> インストールされるというかたちで良いと思います。 >>>>> >>>>> # v2 のときも、たしかそうしたはずですし。 >> >> 補足です。 >> >> >> > -- 中野 宏朗 (NAKANO Hiroaki) NTTコムウェア 品質生産性技術本部 技術SE部 基盤ソフトSE・OSS部門 OSS・DB技術担当 Tel: 043-211-2452 (Ext: 特番+26-8341), Fax: 043-211-5086 Zip/Address: 261-0023 千葉県千葉市美浜区中瀬1-6 NTT幕張ビル21F-En