[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Automakeはパッケージに関するある情報を決定するために、そのパッケージの
`configure.in'を検査する。`configure.in'には、いくつかの
autoconf
マクロが必要とされ、いくつかの変数が定義されていなければ
ならない。Automakeはまたその出力を将来調整するために`configure.in'
からの情報を使用するだろう。
Automakeはまた管理を容易にするためにいくつかのAutoconfマクロを与
える。これらのマクロはaclocal
プログラムを使って、あなたの
`aclocal.m4'に自動的に配置することができる。
5.1 設定の必要なもの | ||
5.2 Automakeが認識する他のもの | ||
5.3 aclocal.m4の自動生成 | ||
5.4 Automakeと共に与えられるAutoconfのマクロ | ||
5.5 あなた自身のaclocalマクロの記述 |
Automakeに必要な基本的なものを満たす最も簡単な方法はマクロ
AM_INIT_AUTOMAKE
(see section Automakeと共に与えられるAutoconfのマクロ)を使うことだ。しかし好むなら、手
で必要な処置を行うことができる。
変数PACKAGE
とVERSION
をAC_SUBST
で定義しなさい。
PACKAGE
は配布物にまとめられるときに現れるような、パッケージの名前
であるべきだ。例えば、AutomakeはPACKAGE
を`automake'であると
定義している。VERSION
は開発されているそのリリースのバージョン・ナ
ンバーであるべきだ。`configure.in'をあなたのパッケージでバージョン・
ナンバーが定義される唯一の場所とすることを勧める。こうすればもっとリリー
スが簡単になる。
Automakeは`Gnits'モード(see section --gnu
と--gnits
の影響)以外では、PACKAGE
や
VERSION
の解釈を何も行わない。
もしプログラムやスクリプトがインストールされるなら、マクロ
AC_ARG_PROGRAM
を使いなさい。
See (autoconf)Transforming Names section `Transforming Program Names When Installing' in The Autoconf.
もしそのパッケージがflatでないなら、AC_PROG_MAKE_SET
を使いなさい。
See (autoconf)Output section `Creating Output Files' in The Autoconf Manual.
構築環境が健全であることを確かにするためにAM_SANITY_CHECK
を使いな
さい。
AC_PROG_INSTALL
を呼びなさい。
(see (autoconf)Particular Programs section `Particular Program Checks' in The Autoconf Manual).
プログラム aclocal
、autoconf
、automake
、
autoheader
、makeinfo
が構築環境にあるかどうかを調べるのに
AM_MISSING_PROG
を使いなさい。ここでこれがどう行われるかを示す。
missing_dir=`cd $ac_aux_dir && pwd` AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) |
Automakeが必要とするがAM_INIT_AUTOMAKE
によって走らされない他のマ
クロはこのようである。
AC_OUTPUT
Automakeはこれをどのファイルが作成されるのかを決定するのに使用する
(see (autoconf)Output section `Creating Output Files' in The Autoconf Manual)。
Makefile
と名付けられた、列挙されたファイルは`Makefile'である
として扱われる。他の列挙されたファイルは異なる扱いを受ける。現在唯一の違
いは`Makefile'はmake distclean
によって削除されるが、他のファ
イルはmake clean
によって削除されることである。
Automakeはまた特定のマクロの使用を認識し、生成された`Makefile.in'を 適切に調整する。現在認識されるマクロとそれらの効果はこのようである。
AC_CONFIG_HEADER
AutomakeはAM_CONFIG_HEADER
の使用を必要とするが、それは
AC_CONFIG_HEADER
(see (autoconf)Configuration Headers section `Configuration Header Files' in The Autoconf Manual)
に似ているが、Automake特異的な有用な作業を行う。
AC_CONFIG_AUX_DIR
Automakeは`mkinstalldirs'のような、さまざまな援助スクリプトをこのマ クロの起動で名付けられたディレクトリで探す。もし見付からないと、スクリプ トはそれらの`標準的な'場所(一番上のソース・ディレクトリか、現在の `Makefile.am'に対応するソース・ディレクトリで、適切であればどちらで も)で探される。See (autoconf)Input section `Finding `configure' Input' in The Autoconf Manual.
AC_PATH_XTRA
AutomakeはAC_PATH_XTRA
によって定義される変数のための定義を、Cプロ
グラムやライブラリを構築する`Makefile.in'のそれぞれに挿入する。
See (autoconf)System Services section `System Services' in The Autoconf Manual.
AC_CANONICAL_HOST
AC_CHECK_TOOL
Automakeは`config.guess'と`config.sub'が存在することを保証する だろう。また、`Makefile'変数の`host_alias'と `host_triplet'が導入される。(autoconf)Canonicalizing section `Getting the Canonical System Type' in The Autoconf Manual, と (autoconf)Generic Programs section `Generic Program Checks' in The Autoconf Manual の両方を見なさい。
AC_CANONICAL_SYSTEM
これはAC_CANONICAL_HOST
に似ているが、`Makefile'変数の
`build_alias'と`target_alias'も定義する。
See (autoconf)Canonicalizing section `Getting the Canonical System Type' in The Autoconf Manual.
AC_FUNC_ALLOCA
AC_FUNC_GETLOADAVG
AC_FUNC_MEMCMP
AC_STRUCT_ST_BLOCKS
AC_FUNC_FNMATCH
AM_FUNC_STRTOD
AC_REPLACE_FUNCS
AC_REPLACE_GNU_GETOPT
AM_WITH_REGEX
Automakeは適切な依存関係がこれらのマクロに対応するオブジェクトに対して生
成されることを保証するだろう。また、Automakeは適切なソース・ファイルが配
布物に含まれていることを確認するだろう。Automakeはこれらのマクロを使用す
るために必要とされる、いかなるCソースとも配られていないので、
automake -a
はそのソースをインストールしようとしないことに注意せよ。
See section ライブラリの構築にもっと情報がある。(autoconf)Particular Functions section `Particular Function Checks' in The Autoconf Manual
も見なさい。
LIBOBJS
Automakeは`.o'ファイルをLIBOBJS
に置く式を検出し、これらの追
加ファイルがAC_REPLACE_FUNCS
によって見付けられたかのように扱うだ
ろう。See (autoconf)Generic Functions section `Generic Function Checks' in The Autoconf Manual.
AC_PROG_RANLIB
これはもしそのパッケージでライブラリが構築されるなら必要である。 See (autoconf)Particular Programs section `Particular Program Checks' in The Autoconf Manual.
AC_PROG_CXX
これはC++のソースが含まれているなら必要である。See (autoconf)Particular Programs section `Particular Program Checks' in The Autoconf Manual.
AC_PROG_F77
これはFortran77ソースが含まれているなら必要である。このマクロはAutoconf のバージョン2.13以降に配布される。See (autoconf)Particular Programs section `Particular Program Checks' in The Autoconf Manual.
AC_F77_LIBRARY_LDFLAGS
これはFortran77を含む言語が混在するプログラムと共有ライブラリのために必 要である(see section CとC++と,Fortran 77の混在)。See section Autoconf macros supplied with Automake.
AM_PROG_LIBTOOL
Automakeはlibtool
(see (libtool)Top section `Introduction' in The Libtool Manual)を処理するようになるだろう。
AC_PROG_YACC
もしYaccのソース・ファイルが現れるなら、このマクロを使うか、 `configure.in'で変数`YACC'を定義してなければならない。前者がよ り好ましい。(see (autoconf)Particular Programs section `Particular Program Checks' in The Autoconf Manual).
AC_DECL_YYTEXT
このマクロはもしそのパッケージにLexのソースがあるなら必要である。 See (autoconf)Particular Programs section `Particular Program Checks' in The Autoconf Manual.
AC_PROG_LEX
もしLexのソース・ファイルが現れるなら、このマクロが使われなければならない。 See (autoconf)Particular Programs section `Particular Program Checks' in The Autoconf Manual.
ALL_LINGUAS
もしAutomakeがこの変数が`configure.in'で設定されていることを確認す ると、名付けられた`.po'ファイルが全て存在し、存在する`.po'ファ イルが全て名付けられていることを保証するために、`po'ディレクトリを 点検するだろう。
AM_C_PROTOTYPES
これは自動的な脱ANSI化を使うとき必要である。自動的な脱ANSI化を見なさい。
AM_GNU_GETTEXT
このマクロはGNU gettext(see section Gettext)を使うパッケージに必要とされる。 それはgettextと配布されている。もしAutomakeがこのマクロを見付けると、 パッケージがgettextに必要なものの一部を満たすことを保証する。
AM_MAINTAINER_MODE
このマクロはconfigure
に`--enable-maintainer-mode'オプション
を加える。これが使われれば、automake
は生成される
`Makefile.in'でデフォルトでは`管理者専用'規則を無効にするだろう。
このマクロは`Gnits'モード(see section --gnu
と--gnits
の影響)では禁止されている。
このマクロは`Makefile.am'で使うことのできる`MAINTAINER_MODE'
条件を定義する。
AC_SUBST
AC_CHECK_TOOL
AC_CHECK_PROG
AC_CHECK_PROGS
AC_PATH_PROG
AC_PATH_PROGS
これらのマクロのそれぞれに対し、最初の引数が自動的に生成される `Makefile.in'のそれぞれで変数として定義される。 See (autoconf)Setting Output Variables section `Setting Output Variables' in The Autoconf Manual, and (autoconf)Generic Programs section `Generic Program Checks' in The Autoconf Manual.
Automakeはあなたのパッケージで使用可能なたくさんのAutoconfマクロを含んで
いる。それらの一部は特定の状況で実際にAutomakeによって必要とされる。これ
らのマクロはあなたの`aclocal.m4'で定義されていなければならない。そ
うでないとautoconf
がそれらを発見できない。
aclocal
プログラムは`configure.in'の中身に基いて自動的に
`aclocal.m4'ファイルを生成する。これによって、探し回らずにAutomake
が提供するマクロを簡便に得ることができる。また、aclocal
の機構は他
のパッケージの利用に拡張可能である。
開始時に、aclocal
は見付けられる全ての`.m4'ファイルを検査し、
マクロ定義を探す。そして`configure.in'を検査する。最初の段階に見付
けたマクロの一つについて何らかの記述があれば、このマクロとそれがさらに必
要とするどのマクロも`aclocal.m4'に置かれる。
もしあれば、`acinclude.m4'の中身も`aclocal.m4'に自動的に入れら れる。これはローカルなマクロを`configure'に組み入れるのに便利である。
aclocal
は以下のオプションを受け取る。
--acdir=dir
マクロ・ファイルをインストールされたディレクトリではなくdirで探す。 これは典型的にはデバッグのために使われる。
--help
コマンドラインのオプションのまとめを出力し終了する。
-I dir
`.m4'ファイルを探すディレクトリのリストにディレクトリdirを加 える。
--output=file
出力を`aclocal.m4'ではなくfileに置かせる。
--print-ac-dir
aclocal
が`.m4'ファイルを見付けるために検索するディレクトリの
名前を出力する。このオプションが与えられると、通常の処理は抑制される。こ
のオプションはマクロ・ファイルをどこにインストールするかを決めるために、
パッケージによって使用されてもよい。
--verbose
調べるファイルの名前を出力する。
--version
Automakeのバージョン・ナンバーを出力し終了する。
AM_CONFIG_HEADER
Automakeは設定ヘッダを自動的に再生成するための規則を生成するだろう。もし このマクロを使うなら、あなたのソース・ディレクトリにファイル `stamp-h.in'を作成しなければならない。それは空で良い。
AM_ENABLE_MULTILIB
これは、"multilib" ライブラリが構築されるときに使用される。 multilibライブラリは複数回、ターゲットフラグの組合せ毎に1回、構築される ものである。これはライブラリがクロスコンパイルされると意図されたときにだけ 役に立つ。省略可能な最初の引数は生成される`Makefile'の名前である。 それは`Makefile'をデフォルトとする。省略可能な2番目の引数は最上位の ソースディレクトリを探すのに使われる。それは空の文字列をデフォルトとする。 (概して、これは内部(訳注:automakeの内部?)を良く知っていることなしに使わ れるべきではない)
AM_FUNC_STRTOD
もしstrtod
関数が利用できないか、(SunOS 5.4のもののように)上手く働
かないなら、`strtod.o'を出力変数LIBOBJS
に加える。
AM_FUNC_ERROR_AT_LINE
AM_FUNC_MKTIME
AM_FUNC_OBSTACK
AM_C_PROTOTYPES
関数プロトタイプがコンパイラによって理解されるかどうかを調べるために点検 する。もしそうなら、`PROTOTYPES'を定義し、出力変数`U'と `ANSI2KNR'を空文字列に設定する。そうでなければ、`U'を`_' に設定し、`ANSI2KNR'を`./ansi2knr'に設定する。Automakeは自動的 な脱ANSI化を実装するためにこれらの値を使用する。
AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
もしTIOCGWINSZ
の使用に`<sys/ioctl.h>'が必要なら、
GWINSZ_IN_SYS_IOCTL
を定義する。そうでなければ、TIOCGWINSZ
は`<termios.h>'で見付かる。
AM_INIT_AUTOMAKE
ほとんどの`configure.in'が必要とする多くのマクロを走らせる。このマ
クロは二つの必要な引数、パッケージとバージョン・ナンバーを持つ。デフォル
トでこのマクロは`PACKAGE'と`VERSION'をAC_DEFINE
する。こ
れは空でない三番目の引数を渡すことで避けられる。
AM_PATH_LISPDIR
プログラムemacs
を検索し、もしあれば、出力変数lispdir
を
Emacsのsite-lispディレクトリへの完全なパスに設定する。
AM_PROG_CC_STDC
もしCコンパイラがデフォルトでANSI Cモードでないなら、そうするように出力
変数CC
にオプションを付けようとする。このマクロはあるシステムで
ANSI Cを選択し、他ではそうでない、さまざまなオプションを試す。関数プロト
タイプを正しく処理すれば、そのコンパイラがANSI Cモードであると考える。
もしこのマクロを使うなら、それを呼んだ後にCコンパイラがANSI Cを受け入れ
ると設定されているかどうか点検すべきだ。もし駄目なら、シェル変数
am_cv_prog_cc_stdc
は`no'に設定される。もしあなたのソース・コー
ドをANSI Cで書いたなら、ansi2knr
オプション(see section 自動的な脱ANSI化)を使ってそ
れの脱ANSI化されたコピーを作ることができる。
AM_PROG_LEX
AC_DECL_YYTEXT
(see (autoconf)Particular Programs section `Particular Program Checks' in The Autoconf Manual)
付きのAC_PROG_LEX
に似ているが、lex
を持たない
システムでmissing
スクリプトを使用する。`HP-UX 10'はそのよう
なシステムの一つだ。
AM_SANITY_CHECK
これは構築ディレクトリで作られたファイルがソース・ディレクトリのファイル
より新しいことを確認するために点検する。これはクロックが間違えて設定され
ているシステムで失敗し得る。このマクロはAM_INIT_AUTOMAKE
から自動
的に走らされる。
AM_SYS_POSIX_TERMIOS
POSIX termiosヘッダや関数がそのシステムで利用できるかどうかを調べるため
に点検する。もしそうなら、シェル変数am_cv_sys_posix_termios
を
`yes'に設定する。そうでないなら、その変数を`no'に設定する。
AM_TYPE_PTRDIFF_T
型`ptrdiff_t'が`<stddef.h>'で定義されていれば `HAVE_PTRDIFF_T'を定義する。
AM_WITH_DMALLOC
dmalloc
パッケージのサポートを加える。もしそのユーザが
`--with-dmalloc'付きで設定すれば、WITH_DMALLOC
を定義し、
LIBS
に`-ldmalloc'を追加する。
AM_WITH_REGEX
configure
コマンドラインに`--with-regex'を加える。もし指定さ
れれば(デフォルト)、`regex'正規表現ライブラリが使われ、
`regex.o'が`LIBOBJS'に入れられ、`WITH_REGEX'が定義される。
もし`--without-regex'が与えられれば、`rx'正規表現ライブラリが
使われ、`rx.o'が`LIBOBJS'に入れられる。
aclocal
プログラムはどのマクロに関しても組み込みの知識を持っていな
いので、あなた自身のマクロで拡張するのは簡単だ。
これは主に他のプログラムに使われる、自分自身のAutoconfマクロを与えたいラ
イブラリで使用される。例えば、gettext
ライブラリはgettext
を
使用するパッケージによって使われるべきであるマクロAM_GNU_GETTEXT
を与えている。そのライブラリがインストールされるとき、aclocal
がそ
れを見付けられるようにこのマクロをインストールする。
マクロのファイルは一連のAC_DEFUN
であるべきだ。aclocal
プロ
グラムはまたAC_REQUIRE
を理解するので、別々のファイルにそれぞれの
マクロを置いても大丈夫だ。See (autoconf)Prerequisite Macros section `Prerequisite Macros' in The Autoconf Manual, and (autoconf)Macro Definitions section `Macro Definitions' in The Autoconf Manual.
マクロのファイル名は`.m4'で終端するべきだ。そのようなファイルは `$(datadir)/aclocal'にインストールされるべきだ。
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Akihiro Sagawa on June, 15 2005 using texi2html 1.70.