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の書き方はまた今度書こうと思う。