[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

5. `configure.in'の検査

Automakeはパッケージに関するある情報を決定するために、そのパッケージの `configure.in'を検査する。`configure.in'には、いくつかの autoconfマクロが必要とされ、いくつかの変数が定義されていなければ ならない。Automakeはまたその出力を将来調整するために`configure.in' からの情報を使用するだろう。

Automakeはまた管理を容易にするためにいくつかのAutoconfマクロを与 える。これらのマクロはaclocalプログラムを使って、あなたの `aclocal.m4'に自動的に配置することができる。


5.1 設定の必要なもの

Automakeに必要な基本的なものを満たす最も簡単な方法はマクロ AM_INIT_AUTOMAKE(see section Automakeと共に与えられるAutoconfのマクロ)を使うことだ。しかし好むなら、手 で必要な処置を行うことができる。

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によって削除されることである。


5.2 Automakeが認識する他のもの

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.


5.3 aclocal.m4の自動生成

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のバージョン・ナンバーを出力し終了する。


5.4 Automakeと共に与えられるAutoconfのマクロ

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

もし関数error_at_lineが見付からなければ、`error.o'を LIBOBJSに加える。

AM_FUNC_MKTIME

実用的なmktime関数を点検する。もし見付からなければ、 `mktime.o'を`LIBOBJS'に加える。

AM_FUNC_OBSTACK

GNU obstackのコードを点検する。もし見付からなければ、`obstack.o'を `LIBOBJS'に加える。

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'に入れられる。


5.5 あなた自身のaclocalマクロの記述

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.