autoconf

言わずと知れた、configureスクリプトを生成するプログラム。現在はautoconf-2.63が最新。
http://www.gnu.org/software/autoconf/
autoconfは、Makefile.inからMakefileを作成したり、config.h.inなど(autoconfのマクロや、AHではじまるマクロからも作られる)からconfig.hを生成し、移植性のあるソースコードパッケージにするもの。

しかし、プログラム作成者が様々な環境を持っているはずも無く、とりあえず、一番簡単なconfigure.acというconfigureスクリプトの雛形を作っておけば、移植したい人が簡単にpatchを送れるのが理想だと思う。

このconfigure.acというのは、マクロだらけで、Shell Scriptとは到底思えないけど、Shell Scriptをそのまま出力してくれる。

空っぽのconfigure.acというファイルを作り、

 $ autoconf

ってコマンドを実行すると、空っぽのconfigureスクリプトが生成され、実行形式になっている。当然、使い物にならない。

しかし、AC_INITとだけ書いたconfigure.acを作ってautoconfコマンドを実行すると、

 $ wc -l configure
 1695 configure

なんて非常に大きいファイルが出来上がる。

 $ ./configure --help

を実行すると、なんかいろいろできそうなスクリプトになっている。

configureスクリプトの中身を見てみると、基本的なコマンドの有無の調査などを行っていて、Shell Scriptの移植性の難しさがよく分かる。autoconfはinfoというマニュアルが秀逸で、これにShell Scriptの移植性の話がたくさん書かれている。

infoの最初の翻訳者は既に故人となっているが、このマニュアルは一度は読むべきだと思う。configure.acの書き方はまた今度書こうと思う。