Slip Ahead Logging

It's not your fault at all.

autotools

新しめの Autotools (Autoconf&Automake) を使ってみよう

素晴らしい.

  • 自動的に作られるもの
    • autoscanが現在のディレクトリの中身から configure.scanを作る
    • aclocalが*.m4とconfigure.inから aclocal.m4を作る
    • autoheaderがconfigure.inからconfig.h.inを作る
    • automakeがMakefile.amからMakefile.inを作る
    • autoconfがconfigure.inからconfigureを作る
    • そして、コンパイル時にconfigureとすると Makefile.inからMakefile、 config.h.inからconfig.hなど make に必要なものを自動生成してくれる
  • 作らなければいけないもの
    • autoconf のためにconfigure.in
    • automake のためにMakefile.am
    • その他、configureのために m4マクロを書いておいたりできる。 (acinclude.m4 という名前のファイルに書くと aclocalが自動的に読み込んでくれる)
  • aclocal
    • ディレクトリ以下にある*.m4とconfigure.in を探索し、configure用のm4マクロファイル aclocal.m4を生成。 探索したいサブディレクトリを足すには -I dirname のように -I オプションを指定する
  • autoheader
    • configure.inから configure用のテンプレートヘッダファイル config.h.inを生成
  • automake -a -c
    • Makefile.amからMakefile.inを生成
    • ちなみに -a (--add-missing)オプションは足りないファイルを 勝手に生成してくれるオプション。-c (--copy)は、 足りないファイルを生成する時に リンクではなくコピーしてくれる。
    • さらにちなみにちょっと前の automake では、 (-a オプションを付けていても) 用意しておかないといけないファイルがいくつかあった。 昔の automake を使うときには最低 NEWS README AUTHOR ChangeLog の4つのファイルを (空でいいので)作っておく必要がある。
  • autoconf
    • configure.inとaclocal.m4などから configureスクリプトを生成