05
1月
2007

Autotoolsの入力ファイルと出力ファイル

Autotoolsの各ツールの役割と入力ファイル,出力ファイルの関係の概略について示す(それらのファイルは非常に多いので主なものについてのみ示す).ツールの出力ファイルは別のツールの入力ファイルになっていることがある.この頁により,どの入力ファイルを修正するとどのツールを再実行する必要があるかが分かる(たぶん).
流れ
Aclocal
Autoheader
Automake
Autoconf
configure
Make

流れ

パッケージを作成する際のAutotools実行の主な順序を以下に示す.
Aclocal
Autoheader
Automake
Autoconf
configure(ユーザ)
Make(ユーザ)
各ツールの位置付けについて以降に示す.

Aclocal

AclocalはAutomakeのためのマクロ,Autoconfのためのマクロ,ユーザ定義のマクロなどを参照し,configure.inに記述されている全てのマクロを解決し,aclocal.m4を生成する.
入力ファイル
configure.in
acinclude.m4(オプション.なくてもよい)
ユーザ定義マクロファイル(オプション.なくてもよい)
出力ファイル
aclocal.m4

Autoheader

Autoheaderはm4にconfigure.inを与えてconfig.h.inを生成する.
入力ファイル
configure.in
aclocal.m4
出力ファイル
configure.h.in

Automake

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

Autoconfはconfigure.inに記述されたm4マクロをaclocal.m4参照しつつ展開し,configureスクリプトを生成する.
入力ファイル
configure.in
aclocal.m4
出力ファイル
configure
Autotoolsの目標は,このconfigureを作成することにある.

configure

configureはAutoconfにより生成されるスクリプトで,各プラットフォームの環境をチェックし,その環境にあわせてパッケージをビルドするためのMakefileを生成する.
入力ファイル
Makefile.in
config.h.in
ltmain.sh(Libtool使用時)
出力ファイル
Makefile
config.h
libtool(Libtool使用時)
この他にも多くの入出力ファイルを使用している.

Make

Makeはconfigureスクリプトによって生成された,各プラットフォームに適したMakefileからパッケージをビルドする.Autotoolsの目的はここにある(※).
入力ファイル
Makefile
config.h
ソース
出力ファイル
ターゲット(実行ファイル,ライブラリなど)
※ そのための目標としてconfigureスクリプトの作成がある.

You may also like...