ファイヤープロジェクト
Autotoolsの入力ファイルと出力ファイル
2003-09-26T07:00+09:00   matsu
Autotoolsの各ツールの役割と入力ファイル,出力ファイルの関係の概略について示す(それらのファイルは非常に多いので主なものについてのみ示す).ツールの出力ファイルは別のツールの入力ファイルになっていることがある.この頁により,どの入力ファイルを修正するとどのツールを再実行する必要があるかが分かる(たぶん).
パッケージを作成する際のAutotools実行の主な順序を以下に示す.
  1. Aclocal
  2. Autoheader
  3. Automake
  4. Autoconf
  5. configure(ユーザ)
  6. 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
Autotoolsの目標は,この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スクリプトの作成がある.
matsu(C)
Since 2002
Mail to matsu