CAAM: Configure && Make Helper

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

Installation

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.

gtar zxpfC caam20150311.tar.gz /usr/local
or
hg clone http://www.yatex.org/hgrepos/caam /usr/local/caam

もし、ソースビルドで管理しているアプリケーションのインストール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.

How to Use

caam は、デフォルトで ./configuremake を続けて呼ぶ。caamには、caam自身のオプションに続けてその場の configure に与えるオプションを渡せばよい。 caam自身のオプションは以下の通り。

オプション意味
-cconfigureのみ(makeしない)
-mmakeのみ(configureしない)
-gmakeでなくgmakeを呼ぶ
-jNmake -jN で呼ぶ
-t TGTmake allのかわりに make TGTで起動
-s SEC configure後、SEC 秒間停止する
-Sconfigure後 suspend する(fgで継続)
-lconfigureで生成されたlibtoolではなくシステムの libtool を利用させる
-maimake all installする
-maicmake all install cleanする
-gmaigmake all installする
-gmaicgmake 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のような機構が有用なのである。


yuuji@example.org
Fingerprint16 = FF F9 FF CC E0 FE 5C F7 19 97 28 24 EC 5D 39 BA
HIROSE Yuuji - ASTROLOGY / BIKE / EPO / GUEST BOOK / YaTeX [Tweet]