Silphireの日記: autoconf/automake(2) 2
日記 by
Silphire
前回autoconf/automakeを使った時から2ヶ月弱、もう使い方を忘れてしまいました。今度はbananan_wさんの助言どおり、summaryを書いてみます。
- まずはautoscanを実行するも…
autoscan: Couldn't find configure.ac nor configure.in file
run /usr/auto*/bin/autoscan directlyなどと言われてしまった。どうやら、autoconf 2.13と2.57を共存させているからこういう事になるらしい。/usr/autotool/にはstableとdevelというディレクトリがあり、stableが2.13でdevelが2.57なようだ。ここでは取りあえず2.57を使ってみようと思ったので、/usr/autotool/devel/bin/autoscanを実行する。
- mv configure.scan configure.in
- configure.inを編集。automakeを使いたいので、AM_INIT_AUTOMAKE(project, version, no-define)を書く。
- Makefile.amを書く。
- autoheader
- aclocal
- automake。install-shとか他諸々が無いと言われるので、automake -a, touch NEWS README AUTHORS ChangeLog。
"automake: no `Makefile.am' found or specified" と怒られてしまう。
automake -a -v --warnings=allしてみてもよく分からない。 - automake -a Makefileが正解だった。/usr/autotool/devel/bin/automake-1.7を眺めてようやく分かった。
- autoconf
- ./configure。Makefileが生成されない。
- configure.inのAC_OUTPUTの引数が指定されていなかった。AC_OUTPUT(Makefile)とすると、Makefileが生成されるようになった。さらに、automake -aの引数にMakefileと指定しなくてもよくなった。
- 無事Makefile作成完了。
- make
- make install
整理すると
- autoscan (/usr/autotool/devel/bin/autoscan)
- mv configure.scan configure.in
- configure.in、Makefile.amを書く。
- autoheader
- aclocal
- touch NEWS README AUTHORS ChangeLog
- automake -a
- autoconf
- ./configure; make; make install
参考リンク
configure.in → configure.ac とか (スコア:2, 参考になる)
まあ、ファイル名の違いはたいした問題ではないとしても、configure.ac や Makefile.am の記述方法のいくつかの変更は、時に問題になりそうです。例えばAM_INIT_AUTOMAKEにパッケージのバージョンなどを記載するという方式は、automake-1.6 で新しいものに変更されています。旧来の記法は後方互換性のためにサポートされている状態で、automake/autoconfのバージョンアップとともに切り捨てられていくかもしれません。
せっかく新規に学ばれるのであれば、新しい情報を参照した方がいいのではないかと思います。日本語の情報源はわかりませんが、automake付属のinfoの Examples::Hello あたりがわかりやすくていいのではないかと思います。ご参考までに。
# や、さくっと触るだけなら細かいことを気にしてもしょうがないんですが
Re:configure.in → configure.ac とか (スコア:1)