unoh.github.com

Global standard programming with GNU Autotools

Mon Oct 23 22:17:07 -0700 2006

尾藤正人です。



UNIXのソフトウェアをインストールするときに、よくやるのが



./configure
make
make install


という手順ですが、この configure スクリプトや Makefile を自動的に生成してくれるツールは GNU Autotools と呼ばれます。



GNU Autotools は使うとすごく便利なんだけど、結構知らない人が多そうだった(実際あまり知らなかった)ので、昨日の勉強会の時に紹介しました。せっかくなので資料を公開します。



プレゼン資料(OpenOffice)

プレゼン資料(PowerPoint)

bat.tar.gz

bat-0.0.1.tar.gz



プレゼン資料はOpenOfficeで作りました。念のためPowerPoint用に変換したのもおいておきます。



単に説明だけだと内容がよく分からないので簡単な例として bat コマンドを作りました。標準入力を受け取って標準出力に出すというだけの簡単なコマンドです。catよりも機能がないので bat にしました。bat コマンドは無駄にライブラリ libbat を生成して bat コマンドは libbat を共有ライブラリとして使用します。



bat.tar.gz に GNU Autotools を適用する前の最小限のファイルを固めてあります。



tar zxvf bat.tar.gz
cd bat
./autosetup.sh


で GNU Autotools を使って configure とか Makefile.in を生成します。
autosetup.sh はこんな感じで GNU Autotools のコマンドを実行してます。



#!/bin/sh
touch AUTHORS ChangeLog NEWS README
test -e config || mkdir config
aclocal
libtoolize
aclocal
autoheader
automake -af
autoconf


そのまま



./configure
make dist


とやると配布用の tarball である bat-0.0.1.tar.gz を作ってくれます。



rpmファイルが簡単に生成できるように spec ファイルも含まれるようにしてみました。



rpmbuild -ta bat-0.0.1.tar.gz


で簡単に rpm が作れるようになってます。



UNIXのソフトウェアを作るときの参考になれば幸いです。