Autotoolsの入力ファイルと出力ファイル
Autotoolsの各ツールの役割と入力ファイル,出力ファイルの関係の概略について示す(それらのファイルは非常に多いので主なものについてのみ示す).ツールの出力ファイルは別のツールの入力ファイルになっていることがある.この頁により,どの入力ファイルを修正するとどのツールを再実行する必要があるかが分かる(たぶん).
パッケージを作成する際のAutotools実行の主な順序を以下に示す.
- Aclocal
- Autoheader
- Automake
- Autoconf
- configure(ユーザ)
- Make(ユーザ)
AclocalはAutomakeのためのマクロ,Autoconfのためのマクロ,ユーザ定義のマクロなどを参照し,configure.inに記述されている全てのマクロを解決し,aclocal.m4を生成する.
- 入力ファイル
- configure.in
- acinclude.m4(オプション.なくてもよい)
- ユーザ定義マクロファイル(オプション.なくてもよい)
- 出力ファイル
- aclocal.m4
Autoheaderはm4にconfigure.inを与えてconfig.h.inを生成する.
- 入力ファイル
- configure.in
- aclocal.m4
- 出力ファイル
- configure.h.in
Automakeはconfigure.inとMakefile.amからMakefile.inなどを生成する.また,configure.inにおいてAC_PROG_LIBTOOLが記述されていれば,libtoolizeを実行してconfigureがlibtoolを生成するために必要なltconfigやltmain.shなどを生成する.
- 入力ファイル
- configure.in
- Makefile.am
- 出力ファイル
- COPYING(オプション)
- INSTALL(オプション)
- install.sh
- missing
- mkinstalldirs
- Makefile.in
- ltmain.sh(libtoolizeAC_PROG_LIBTOOL指定時)
- ltconfig(libtoolizeAC_PROG_LIBTOOL指定時)
Autoconfはconfigure.inに記述されたm4マクロをaclocal.m4参照しつつ展開し,configureスクリプトを生成する.
- 入力ファイル
- configure.in
- aclocal.m4
- 出力ファイル
- configure
configureはAutoconfにより生成されるスクリプトで,各プラットフォームの環境をチェックし,その環境にあわせてパッケージをビルドするためのMakefileを生成する.
- 入力ファイル
- Makefile.in
- config.h.in
- ltmain.sh(Libtool使用時)
- 出力ファイル
- Makefile
- config.h
- libtool(Libtool使用時)
Makeはconfigureスクリプトによって生成された,各プラットフォームに適したMakefileからパッケージをビルドする.Autotoolsの目的はここにある(※).
- 入力ファイル
- Makefile
- config.h
- ソース
- 出力ファイル
- ターゲット(実行ファイル,ライブラリなど)
※ そのための目標としてconfigureスクリプトの作成がある.

