automakeの実行準備

configure.acの編集

makefile.amを作成したので早々automakeを実行してmakefile.inを作成したいところですが、実行前にすべきことがまだいくつかあります。automakeは実行時、configure.acを参照しシェル変数などを適切に処理します。そのためconfigure.acにautomake用のマクロを追加する必要があります。

AM_INIT_AUTOMAKE

このマクロをAC_INITマクロの直後に追加することで、automake用のマクロが展開され適切にconfigureの結果を参照することができるようになります。

aclocal.m4の作成

まだ、やることがあります。AM_INIT_ATUOMAKEマクロを追加しただけでautoconfを実行してみてください。

# autoconf
configure.ac:6: error: possibly undefined macro: AM_INIT_AUTOMAKE
  If this token and others are legitimate, please use m4_pattern_allow.
  See the Autoconf documentation.

上記のようなエラーがでるはずです。

automakeが提供するAM_INIT_AUTOMAKEマクロの定義はautoconfではわかりません。autoconfがAM_INIT_AUTOMAKEマクロを解釈できるようaclocal.m4にAM_INIT_AUTOMAKEマクロに必要な定義を追加する必要があります。aclocal.m4に必要な定義を追加するためにはautomakeが提供するaclocalを使用します。

# aclocal

aclocalツールはconfigure.acをスキャンしaclocal.m4マクロを生成します。@VARIABLES@を使用せず、直接$(VARIABLE)でconfigureスクリプトが生成した変数を参照できるのはこのaclocal.m4のためです。もう一度、autoconfを実行してconfigureスクリプトが生成されたことを確認してください。

install_shのコピー

automakeではパッケージにinstall-shというシェルを要求します。これはautomakeパッケージにふくまれているものをのままコピーします。

# cp /usr/share/automake-1.9/install-sh .

標準ドキュメントの作成

automakeでは通常GNU標準ドキュメントを要求します。GNU標準ドキュメントとは

などのおなじみのドキュメントです。中身は空でも問題ありませんので通常は作成しておきます。ただし、COPYINGとINSTALLファイルは自動的に生成されます。どうしてもこれらを作成したくない場合--foreignオプションを付けて実行することも可能です。

# touch README AUTHORS NEWS ChangeLog

中身は空ですが、とりあえずファイルだけ作成しておけばOKです。

autoconfの実行

これで準備が整いましたのでいよいよautomakeを実行します。automakeでは生成されたmakefileが適切に動作するよう補助ツールを利用することがあります。通常、これらのツールもパッケージに含めますのでautomake実行時これらのツールをパッケージに含めるようオプションを指定します。

# automake -a -c

makefile.inが作成されたことを確認してください。