autoconf/automakeに関する昔のメモ

autoconf難しい。GNU系のプログラムで/usr/local/binとかも想定しているので、今作ろうとしてるようなちっちゃいプログラムでは必要ないのかもしれない。

  • http:/shimaki-hp.hp.infoseek.co.jp/autoconf/book1.html
  • http:/sharl.haun.org/autoconf.html
    • http:/www.itojun.org/hack/autoconf/tips.html
  • http:/home.catv.ne.jp/pp/ginoue/gnu/autoconf.html
  • http:/www.amath.washington.edu/~lf/tutorials/autoconf/
  • http:/www.bookshelf.jp/texi/autoconf-ja/autoconf-ja.html
  • http:/hp.vector.co.jp/authors/VA022047/linux/autoconf.html

endian問題を解決する

http:/www.geocities.jp/fut_nis/html/autoconf-ja/C-Compiler.html

AC_HAVE_LIBRARY

ダイナミックライブラリがあるかどうか調べる

    if test -z "$LIBOCTAVE_LIB"; then
      AC_HAVE_LIBRARY( octave,
        LIBOCTAVE_LIB='-loctave',n        AC_MSG_ERROR(*** OCTAVE library not found ***)
        )
    fi
    AC_SUBST(LIBOCTAVE_LIB)
  • これでconfigureのときに/usr/lib/liboctave.soがあるかどうかCheckしてくれる
  • AC_CHECK_LIBというのもある

AC_C_BIGENDIAN ([action-if-true],[action-if-false],[action-if-unknown])

マクロ

(MotorolaSPARCのCPUのように)wordが最上位バイトに最初に保存される場合, action-if-trueを実行します.(IntelとVAXのCPUのように)wordが最下位バイトに最初に保存される場合,action- if-falseを実行します.
システムヘッダファイルからエンディアンを決定不可能な場合,このマクロはテストケースを実行します.クロスコンパイル時に,テストケースは実行されませんが,いくつかのマジック変数を検索します.後者の状況でホストシステムのバイト特性の決定に失敗した場合,action-if-unknownが実行されます.
action-if-trueのデフォルトはWORDS_BIGENDIANを定義することです.action-if-falseのデフォルトは何もしないことです.そして最後に, action-if-unknownのデフォルトは,コンフィグレーションを中断し,インストールしている人に,このテストをバイパスさせるために変数を前もって定義するよう伝えます.