If you want to install some applications into certain directory via build from source, use caam to call ./configure and make continuously with the same command line environment.
アプリケーションはソースからのビルドが基本。そんなちみは caam を使いたまへ。イ ンストールするときは特定の閉じたPREFIXにいれるのだ、そのほうが消したりしやすい から、という運用の利点が理解できる人はぜし caam を。caam はコンパイル環境を設定 する環境変数を適切に設定して連続的に make を呼ぶ。こうすることで ./configure し ているときに設定した変数をキープしたままmakeでコンパイラを呼べる。そのときに CFLAGS, CPPFLAGS, LDFLAGS, LD_RUN_PATH, LD_LIBRARY_PATH, PKG_CONFIG_PATH をしっ かり設定し、なおかつ autoconf によってそれらの変数が継承されない場合でも gcc/ c++ をwrapして上記変数の意味する値がちゃんと伝わるように努力する。コンパイルで こけそうな可能性を最大限に小さくするのが caamである。
The caam scripts are obtained from Mercurial repository.
hg clone http://www.yatex.org/hgrepos/caam
The caam script assumes your application installation hierarchy as follows(/usr /local as an example).
--[/usr/local/] | +-[audio/] # command and libraries related to audio/sound | +-[bin/] | +-[include/] | +-[lib/] | +-[man/] | +-[share/] +-[bin/] +-[gimp-1/] # GIMP-1.x | +-[bin/] | +-[lib/] | : +-[gimp-2/] # GIMP-2.x | +-[bin/] | +-[lib/] | : +-[gtk1/] # cmd and libs related to gtk1 | +-[bin/] | +-[include/] | +-[lib/] | +-[man/] | : +-[gtk2/] # cmd and libs related to gtk2 | +-[bin/] | +-[include/] | : +-[include/] +-[lib/] : :
Then, locate caam in /usr/local/caam/bin.
hg clone https://www.yatex.org/hgrepos/caam /usr/local/caam
or
git clone https://www.yatex.org/gitbucket/git/yuuji/caam.git
もし、ソースビルドで管理しているアプリケーションのインストールPREFIX が /usr/ local だとしたら、上記のように /usr/local/caam 以下にcaamをインストールし、 / usr/local/caam/bin/にPATHを通して使う。
If your local application's prefix is /opt/sfw, then locate caam at /opt/sfw/ caam.
caam は、デフォルトで ./configure と make を続けて呼ぶ。caamには、caam自身のオ プションに続けてその場の configure に与えるオプションを渡せばよい。 caam自身の オプションは以下の通り。
オプション | 意味 |
---|---|
-c | configureのみ(makeしない) |
-m | makeのみ(configureしない) |
-g | makeでなくgmakeを呼ぶ |
-jN | make -jN で呼ぶ |
-t TGT | make allのかわりに make TGTで起動 |
-s SEC | configure後、SEC 秒間停止する |
-S | configure後 suspend する(fgで継続) |
-l | configureで生成されたlibtoolではなくシステムの libtool を利用させる |
-mai | make all installする |
-maic | make all install cleanする |
-gmai | gmake all installする |
-gmaic | gmake all install cleanする |
たとえば、dual coreなマシンで configure --prefix=/opt/hoge && gmake -j3 all & gmake install するなら、
caam -gmai -j3 --prefix=/opt/hoge
とする。
独自ビルドで gtk2 のライブラリがすべて /usr/local/gtk2 に入っているときにgtk2も ののアプリケーションをビルドするならたとえばこうする(systemのPREFIXが /usr/ local の場合)。
CAAM_ADD=gtk2 caam -maic --prefix=/usr/local/gqview2
こうすると、CFLAGS(とCPPFLAGS)に -I/usr/local/gtk2 を必ず付け、 LDFLAGSに -L/ usr/local/gtk2 -R/usr/local/gtk2 を必ず付けた状態で configure と make が呼ばれ る。もちろん、上記の例がうまく行くためにはgtk2関連のライブラリをすべて
CAAM_ADD=gtk2 caam -maic --prefix=/usr/local/gtk2
でインストールしておく必要がある。逆にいえばgtk2ライブラリはほぼ全て上記コマン ドラインでインストールすることができ、gtk2 を利用するアプリケーションは、
CAAM_ADD=gtk2 caam -maic --prefix=/usr/local/application
でインストールすることができる。実行時のライブラリパスも /usr/local/gtk2 として 埋め込まれる。
gtk1とgtk2を両方同時に使いたいという場合は、双方を隔離してインストールする必要 があるのでcaamのような機構が有用なのである。