\input texinfo   @c -*-texinfo-*-
@c %**start of header
@setfilename automake-ja.info
@settitle automake
@setchapternewpage off
@c %**end of header
@c @documentlanguage ja
@include automake-v.texi

@dircategory GNU programming tools
@direntry
* automake(ja): (automake-ja).		Making Makefile.in's
@end direntry

@dircategory Individual utilities
@direntry
* aclocal(ja): (automake-ja)Invoking aclocal.          Generating aclocal.m4
@end direntry

@ifinfo
@c This file documents GNU automake @value{VERSION}
@c 
このファイルでGNU automake @value{VERSION}を説明します．

Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
Free Software Foundation, Inc.

Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.

@ignore
Permission is granted to process this file through TeX and print the
results, provided the printed document carries copying permission
notice identical to this one except for the removal of this paragraph


@end ignore
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the entire
resulting derived work is distributed under the terms of a permission
notice identical to this one.

Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation approved
by the Foundation.
@end ifinfo


@titlepage
@title GNU Automake
@subtitle For version @value{VERSION}, @value{UPDATED}
@author David MacKenzie and Tom Tromey
@c 翻訳 西尾 太

@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1995, 1996, 2000, 2001, 2002 Free Software Foundation, Inc.
@sp 2
This is the first edition of the GNU Automake documentation,@*
and is consistent with GNU Automake @value{VERSION}.@*
@sp 2
Published by the Free Software Foundation @*
59 Temple Place - Suite 330, @*
Boston, MA 02111-1307 USA @*

Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.

Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the entire
resulting derived work is distributed under the terms of a permission
notice identical to this one.

Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation
approved by the Free Software Foundation.
@end titlepage

@c Define an index of configure output variables.
@defcodeindex ov
@c Define an index of configure variables.
@defcodeindex cv
@c Define an index of options.
@defcodeindex op
@c Define an index of targets.
@defcodeindex tr
@c Define an index of commands.
@defcodeindex cm

@c Put the macros and variables into their own index.
@c @syncodeindex fn cp
@syncodeindex ov vr
@syncodeindex cv vr
@syncodeindex fn vr

@c Put everything else into one index (arbitrarily chosen to be the concept index).
@syncodeindex op cp
@syncodeindex tr cp
@syncodeindex cm cp

@ifnottex
@node Top, Introduction, (dir), (dir)
@comment  node-name,  next,  previous,  up
@top GNU Automake

@c This file documents the GNU Automake package.  Automake is a program
@c which creates GNU standards-compliant Makefiles from template files.
@c This edition documents version @value{VERSION}.
@c 
このファイルでは，GNU Automakeパッケージを説明します．Automakeはテンプレー
トファイルからGNU標準に準拠したMakefileを作成するプログラムです．このエ
ディションは，バージョン@value{VERSION}を説明します．

@menu
* Introduction::                Automake's purpose
* Generalities::                General ideas
* Examples::                    Some example packages
* Invoking Automake::           Creating a Makefile.in
* configure::                   Scanning configure.ac or configure.in
* Top level::                   The top-level Makefile.am
* Alternative::                 An alternative approach to subdirectories
* Rebuilding::                  Automatic rebuilding of Makefile
* Programs::                    Building programs and libraries
* Other objects::               Other derived objects
* Other GNU Tools::             Other GNU Tools
* Documentation::               Building documentation
* Install::                     What gets installed
* Clean::                       What gets cleaned
* Dist::                        What goes in a distribution
* Tests::                       Support for test suites
* Options::                     Changing Automake's behavior
* Miscellaneous::               Miscellaneous rules
* Include::                     Including extra files in an Automake template.
* Conditionals::                Conditionals
* Gnits::                       The effect of @code{--gnu} and @code{--gnits}
* Cygnus::                      The effect of @code{--cygnus}
* Extending::                   Extending Automake
* Distributing::                Distributing the Makefile.in
* API versioning::              About compatibility between Automake versions
* Macro and Variable Index::
* General Index::
@end menu

@end ifnottex

@node Introduction, Generalities, Top, Top
@chapter はじめに

@c Automake is a tool for automatically generating @file{Makefile.in}s from
@c files called @file{Makefile.am}.  Each @file{Makefile.am} is basically a
@c series of @code{make} macro definitions (with rules being thrown in
@c occasionally).  The generated @file{Makefile.in}s are compliant with the
@c GNU Makefile standards.
@c 
Automakeは，@file{Makefile.am}と呼ばれるファイルから，@file{Makefile.in} 
を自動的に生成するツールです．それぞれの@file{Makefile.am}は，基本的には
一連の@code{make}(時折，規則が投入されている)マクロの定義になっています．
生成された@file{Makefile.in}はGNU Makefileの標準に従います．

@cindex GNU Makefile standards

@c The GNU Makefile Standards Document
@c (@pxref{Makefile Conventions, , , standards, The GNU Coding Standards})
@c is long, complicated, and subject to change.  The goal of Automake is to
@c remove the burden of Makefile maintenance from the back of the
@c individual GNU maintainer (and put it on the back of the Automake
@c maintainer).
@c 
GNU Makefile Standards Documentは(@pxref{Makefile Conventions, , ,
standards, The GNU Coding Standards})，長くて複雑で変更の原因にもなりま
す．Automakeの目的は，個別のGNU管理者の背中からMakefle管理の負担を取り除
く(そしてAutomake管理者に任せる)ことです．

@c The typical Automake input file is simply a series of macro definitions.
@c Each such file is processed to create a @file{Makefile.in}.  There
@c should generally be one @file{Makefile.am} per directory of a project.
@c 
一般的なAutomakeの入力ファイルは，単純な一連のマクロ定義です．それぞれの
ファイルは，@file{Makefile.in}を作成するために処理されます．通常，プロジェ
クト内のディレクトリごとに，１つの@file{Makefile.am}を配置します．

@cindex Constraints of Automake
@cindex Automake constraints

@c Automake does constrain a project in certain ways; for instance it
@c assumes that the project uses Autoconf (@pxref{Top, , Introduction,
@c autoconf, The Autoconf Manual}), and enforces certain restrictions on
@c the @file{configure.in} contents@footnote{Autoconf 2.50 promotes
@c @file{configure.ac} over @file{configure.in}.  The rest of this
@c documentation will refer to @file{configure.in} as this use is not yet
@c spread, but Automake supports @file{configure.ac} too.}.
@c 
Automakeは，ある方法でプロジェクトに制限を与えます．例えばプロジェクトで
Autoconf(@pxref{Top, , Introduction, autoconf, The Autoconf Manual})の使
用を仮定すると，@file{configure.in}の内容には，ある制限が発生します
@footnote{Autoconf 2.50 は，@file{configure.in}ではなく
@file{configure.ac}を推奨しています．このドキュメントの残りの部分では，
@file{configure.ac}の使用が広まっていないので，@file{configure.in}につい
て説明していますが，Automakeは@file{configure.ac}もサポートしています．}．

@cindex Automake requirements
@cindex Requirements, Automake

@c Automake requires @code{perl} in order to generate the
@c @file{Makefile.in}s.  However, the distributions created by Automake are
@c fully GNU standards-compliant, and do not require @code{perl} in order
@c to be built.
@c 
Automakeでは，@file{Makefile.in}を生成するために@code{perl}が必要になり
ます．しかし，Automakeで作成された配布物は完全にGNUの標準に従っていて，
ビルドするために@code{perl}は不要です．

@cindex BUGS, reporting
@cindex Reporting BUGS
@cindex E-mail, bug reports

@c Mail suggestions and bug reports for Automake to
@c @email{bug-automake@@gnu.org}.
@c 
@email{bug-automake@@gnu.org}宛にAutomakeの提案とバグレポートをメールし
てください．

@node Generalities, Examples, Introduction, Top
@chapter 一般的な考え

@c The following sections cover a few basic ideas that will help you
@c understand how Automake works.
@c 
以下のセクションで，Automakeが動作する方法を理解することに役立つ，基本的
な考えをいくつか述べます．

@menu
* General Operation::           General operation of Automake
* Strictness::                  Standards conformance checking
* Uniform::                     The Uniform Naming Scheme
* Canonicalization::            How derived variables are named
* User Variables::              Variables reserved for the user
* Auxiliary Programs::          Programs automake might require
@end menu


@node General Operation, Strictness, Generalities, Generalities
@section 一般的な操作

@c Automake works by reading a @file{Makefile.am} and generating a
@c @file{Makefile.in}.  Certain macros and targets defined in the
@c @file{Makefile.am} instruct Automake to generate more specialized code;
@c for instance, a @samp{bin_PROGRAMS} macro definition will cause targets
@c for compiling and linking programs to be generated.
@c 
Automakeは@file{Makefile.am}を読み込み，@file{Makefile.in}を生成する仕事
をします．@file{Makefile.am}で定義されているマクロとターゲットで，
Automakeは更に特殊なコードを生成します．例えば，@samp{bin_PROGRAMS}マク
ロ定義で，生成されるプログラムをコンパイルしてリンクするターゲットを生成
します．

@cindex Non-standard targets
@cindex cvs-dist, non-standard example
@trindex cvs-dist

@c The macro definitions and targets in the @file{Makefile.am} are copied
@c verbatim into the generated file.  This allows you to add arbitrary code
@c into the generated @file{Makefile.in}.  For instance the Automake
@c distribution includes a non-standard @code{cvs-dist} target, which the
@c Automake maintainer uses to make distributions from his source control
@c system.
@c 
@file{Makefile.am}のマクロ定義とターゲットは，そのまま生成されたファイル
にコピーされます．これにより，生成される@file{Makefile.in}に任意のコード
を加えることが可能になります．例えばAutomakeの配布物には，Automake管理者
がソースコントロールシステムから配布物を作成するときに使用する，非標準的
な@code{cvs-dist}ターゲットが含まれています．

@cindex GNU make extensions

@c Note that GNU make extensions are not recognized by Automake.  Using
@c such extensions in a @file{Makefile.am} will lead to errors or confusing
@c behavior.
@c 
GNU makeの拡張は，Automakeが理解しないことに注意してください．
@file{Makefile.am}でこのような拡張を使用すると，エラーが生じたり紛らわし
い動作をしたりします．

@c Automake tries to group comments with adjoining targets and macro
@c definitions in an intelligent way.
@c 
Automakeは賢い方法で，ターゲットとマクロ定義に隣接しているコメントの分類
を試みます．

@c FIXME: What does this imply practically?

@cindex Make targets, overriding
@cindex Overriding make targets

@c A target defined in @file{Makefile.am} generally overrides any such
@c target of a similar name that would be automatically generated by
@c @code{automake}.  Although this is a supported feature, it is generally
@c best to avoid making use of it, as sometimes the generated rules are
@c very particular.
@c 
一般に，@file{Makefile.am}で定義されているターゲットは，@code{automake} 
によって自動的に生成されるターゲットに似た名前を持つものに優先します．こ
れをサポートしてはいるのですが，一般的に，生成される規則は非常に特殊なこ
ともあるので，それを利用することは避けたほうがよいでしょう．

@cindex Macros, overriding
@cindex Overriding make macros

@c Similarly, a macro defined in @file{Makefile.am} or @code{AC_SUBST}'ed
@c from @file{configure.in} will override any definition of the macro that
@c @code{automake} would ordinarily create.  This feature is more often
@c useful than the ability to override a target definition.  Be warned that
@c many of the macros generated by @code{automake} are considered to be for
@c internal use only, and their names might change in future releases.
@c 
同様に，@file{Makefile.am}で定義されているマクロや@file{configure.in}で
@code{AC_SUBST}されているものも，@code{automake}が通常作成するあらゆるマ
クロの定義より優先されます．この機能は，ターゲット定義の優先より役に立つ
ことが多いでしょう．@code{automake}で生成されたマクロの多くは，内部で使
用することだけを考慮に入れていて，それらマクロ名が将来のリリースで変更さ
れる可能性があることに注意しておいてください．

@cindex Recursive operation of Automake
@cindex Automake, recursive operation
@cindex Example of recursive operation

@c When examining a macro definition, Automake will recursively examine
@c macros referenced in the definition.  For example, if Automake is
@c looking at the content of @code{foo_SOURCES} in this snippet
@c 
マクロ定義を調査しているとき，Automakeは定義で参照されているマクロを再帰
的に調査します．例えば，以下の断片的な@code{foo_SOURCES}の内容をAutomake 
が調査している状況を考えます．

@example
xs = a.c b.c
foo_SOURCES = c.c $(xs)
@end example

@c it would use the files @file{a.c}, @file{b.c}, and @file{c.c} as the
@c contents of @code{foo_SOURCES}.
@c 
それは，ファイル@file{a.c}，@file{b.c}，そして@file{c.c}を
@code{foo_SOURCES}の内容として使用します．

@cindex ## (special Automake comment)
@cindex Special Automake comment
@cindex Comment, special to Automake

@c Automake also allows a form of comment which is @emph{not} copied into
@c the output; all lines beginning with @samp{##} (leading spaces allowed)
@c are completely ignored by Automake.
@c 
Automakeでは，出力ファイルにコピー@emph{されない}コメントの形式も利用可
能です．Automakeは@samp{##}で始まる(スペースの前置は可能です)すべての行
を完全に無視します．

@c It is customary to make the first line of @file{Makefile.am} read:
@c 
読み込まれる@file{Makefile.am}の最初の行に，以下の行を書くのはいつものこ
とです．

@cindex Makefile.am, first line
@cindex First line of Makefile.am

@example
## Process this file with automake to produce Makefile.in
@end example

@c FIXME discuss putting a copyright into Makefile.am here?  I would but
@c I don't know quite what to say.

@c FIXME document customary ordering of Makefile.am here!


@node Strictness, Uniform, General Operation, Generalities
@section 厳密さ

@cindex Non-GNU packages

@c While Automake is intended to be used by maintainers of GNU packages, it
@c does make some effort to accommodate those who wish to use it, but do
@c not want to use all the GNU conventions.
@c 
Automakeは，GNUパッケージの管理者が使用することを目的としていますが，使
用したいけれども，すべてのGNU規約を使用したいわけではない人たちをも受け
入れる努力をしています．

@cindex Strictness, defined
@cindex Strictness, foreign
@cindex foreign strictness
@cindex Strictness, gnu
@cindex gnu strictness
@cindex Strictness, gnits
@cindex gnits strictness

@c To this end, Automake supports three levels of @dfn{strictness}---the
@c strictness indicating how stringently Automake should check standards
@c conformance.
@c 
このため，Automakeは３つの@dfn{厳密さ}のレベルをサポートします---厳密さ
とは，Automakeに調査させる標準への適合度を示すものです．

@c The valid strictness levels are:
@c 
有効な厳密さのレベルは以下のとおりです．

@table @samp
@item foreign
@c Automake will check for only those things which are absolutely
@c required for proper operations.  For instance, whereas GNU standards
@c dictate the existence of a @file{NEWS} file, it will not be required in
@c this mode.  The name comes from the fact that Automake is intended to be
@c used for GNU programs; these relaxed rules are not the standard mode of
@c operation.
@c 
Automakeは，適切な処理のため絶対に必要なものだけを調査します．例えば，
GNUの標準は@file{NEWS}ファイルが存在することを必要としますが，このモード
で必要ではありません．この名前(foreign)は，本来はGNUプログラムのために
Automakeを使用して欲しいのでこのように名付けられています．これらの緩い規
則は標準的な操作様式ではありません．

@item gnu
@c Automake will check---as much as possible---for compliance to the GNU
@c standards for packages.  This is the default.
@c 
Automakeは，パッケージがGNUの標準に準拠しているかどうか---可能な限り--- 
調査します．これはデフォルトです．

@item gnits
@c Automake will check for compliance to the as-yet-unwritten @dfn{Gnits
@c standards}.  These are based on the GNU standards, but are even more
@c detailed.  Unless you are a Gnits standards contributor, it is
@c recommended that you avoid this option until such time as the Gnits
@c standard is actually published (which may never happen).
@c 
Automakeは，まだ書かれていない@dfn{Gnits standards}に準拠しているかどう
かを調査します．これらはGNUの標準に基づいていますが，より詳しく記述され
ています．Gnits standardsの貢献者でない場合，Gnits standardsが実際に発表
されるときまで(発表されることはないかもしれませんが)，このオプションの使
用を避けるよう推奨します．
@end table

@c For more information on the precise implications of the strictness
@c level, see @ref{Gnits}.
@c 
厳密さのレベルの正確な意味についての詳細は，@ref{Gnits}を参照してくださ
い．

@c Automake also has a special ``cygnus'' mode which is similar to
@c strictness but handled differently.  This mode is useful for packages
@c which are put into a ``Cygnus'' style tree (e.g., the GCC tree).  For
@c more information on this mode, see @ref{Cygnus}.
@c 
Automakeには，厳密さ似にていますが異なる扱いを受ける，特殊な``cygnus''モー
ドもあります．このモードは，``Cygnus''形式のツリー(例えば，GCCツリー)に
配置するパッケージで役に立ちます．このモードの詳細は，@ref{Cygnus}を参照
してください．


@node Uniform, Canonicalization, Strictness, Generalities
@section 一様な命名法

@cindex Uniform naming scheme

@c Automake macros (from here on referred to as @emph{variables}) generally
@c follow a @dfn{uniform naming scheme} that makes it easy to decide how
@c programs (and other derived objects) are built, and how they are
@c installed.  This scheme also supports @code{configure} time
@c determination of what should be built.
@c 
(これ以降@emph{変数}として述べられる)Automakeマクロは，一般に次の@dfn{一
様な命名法}に従っていて，それは，プログラム(とその他のオブジェクト)のビ
ルド方法と，それらのインストール方法の決定を容易にします．この手法は，
@code{configure}時にビルドするものを決定することもサポートしています．

@cindex _PROGRAMS primary variable
@cindex PROGRAMS primary variable
@cindex Primary variable, PROGRAMS
@cindex Primary variable, defined

@c At @code{make} time, certain variables are used to determine which
@c objects are to be built.  The variable names are made of several pieces
@c which are concatenated together.
@c 
@code{make}時にビルドするオブジェクトを決定するため，特定の変数を使用し
ます．変数の名前は，いくつかのピースをお互いに連結したものからできていま
す．

@c The piece which tells automake what is being built is commonly called
@c the @dfn{primary}.  For instance, the primary @code{PROGRAMS} holds a
@c list of programs which are to be compiled and linked.
@c 
ビルドするものをautomakeに伝えるピースは，一般に@dfn{プライマリ}と呼ばれ
ています．例えば，プライマリの@code{PROGRAMS}は，コンパイルされリンクさ
れるプログラムのリストを保持しています．
@vindex PROGRAMS

@cindex pkglibdir, defined
@cindex pkgincludedir, defined
@cindex pkgdatadir, defined

@vindex pkglibdir
@vindex pkgincludedir
@vindex pkgdatadir

@c A different set of names is used to decide where the built objects
@c should be installed.  These names are prefixes to the primary which
@c indicate which standard directory should be used as the installation
@c directory.  The standard directory names are given in the GNU standards
@c (@pxref{Directory Variables, , , standards, The GNU Coding Standards}).
@c Automake extends this list with @code{pkglibdir}, @code{pkgincludedir},
@c and @code{pkgdatadir}; these are the same as the non-@samp{pkg}
@c versions, but with @samp{@@PACKAGE@@} appended.  For instance,
@c @code{pkglibdir} is defined as @code{$(libdir)/@@PACKAGE@@}.
@c 
ビルドしたオブジェクトをインストールする場所を決定するため，異なる名前の
組が使用されます．これらの名前はプライマリに前置されていて，それはインス
トールするディレクトリとして使用される標準的なディレクトリを示しています．
標準的なディレクトリ名はGNUの標準で与えられています(@pxref{Directory
Variables, , , standards, The GNU Coding Standards})．Automakeは，
@code{pkglibdir}，@code{pkgincludedir}，そして@code{pkgdatadir}を用いて，
このリストを拡張します．これらは非@samp{pkg}のバージョンと同じですが，
@samp{@@PACKAGE@@}が付加されます．例えば，@code{pkglibdir}は
@code{$(libdir)/@@PACKAGE@@}として定義されます．
@cvindex PACKAGE, directory

@cindex EXTRA_, prepending

@c For each primary, there is one additional variable named by prepending
@c @samp{EXTRA_} to the primary name.  This variable is used to list
@c objects which may or may not be built, depending on what
@c @code{configure} decides.  This variable is required because Automake
@c must statically know the entire list of objects that may be built in
@c order to generate a @file{Makefile.in} that will work in all cases.
@c 
それぞれのプライマリに対して，@samp{EXTRA_}をプライマリ名に前置して命名
された追加の変数があります．この変数は，ビルドされたりされなかったりする
可能性のあるオブジェクトのリストで使用され，それは，@code{configure}が決
定したものに依存します．Automakeは，すべての状況で動作する
@file{Makefile.in}を生成するために，ビルドされる可能性のあるオブジェクト
全体のリストをあらかじめ知っておく必要があるので，この変数が必要になりま
す．

@cindex EXTRA_PROGRAMS, defined
@cindex Example, EXTRA_PROGRAMS
@cindex cpio example

@c For instance, @code{cpio} decides at configure time which programs are
@c built.  Some of the programs are installed in @code{bindir}, and some
@c are installed in @code{sbindir}:
@c 
例えば，@code{cpio}はconfigure時にビルドするプログラムを決定します．
@code{bindir}にインストールされるプログラムもあれば，@code{sbindir}にイ
ンストールされるものもあります．

@example
EXTRA_PROGRAMS = mt rmt
bin_PROGRAMS = cpio pax
sbin_PROGRAMS = @@MORE_PROGRAMS@@
@end example

@c Defining a primary without a prefix as a variable, e.g.,
@c @code{PROGRAMS}, is an error.
@c 
接頭辞がないプライマリを変数として定義すること，例えば@code{PROGRAMS}は
エラーになります．

@c Note that the common @samp{dir} suffix is left off when constructing the
@c variable names; thus one writes @samp{bin_PROGRAMS} and not
@c @samp{bindir_PROGRAMS}.
@c 
一般的な@samp{dir}接尾辞は，変数名を作るときには捨てられることに注意して
下さい．このため，@samp{bindir_PROGRAMS}ではなく，@samp{bin_PROGRAMS}と
書きます．

@c Not every sort of object can be installed in every directory.  Automake
@c will flag those attempts it finds in error.
@c Automake will also diagnose obvious misspellings in directory names.
@c 
すべての種類のオブジェクトが，すべてのディレクトリにインストールされるわ
けではありません．Automakeはエラーを見つけたとき，フラグを付けようとしま
す．Automakeはディレクトリ名での明らかなスペルミスも診断します．

@cindex Extending list of installation directories
@cindex Installation directories, extending list

@c Sometimes the standard directories---even as augmented by Automake---
@c are not enough.  In particular it is sometimes useful, for clarity, to
@c install objects in a subdirectory of some predefined directory.  To this
@c end, Automake allows you to extend the list of possible installation
@c directories.  A given prefix (e.g. @samp{zar}) is valid if a variable of
@c the same name with @samp{dir} appended is defined (e.g. @code{zardir}).
@c 
標準ディレクトリは---Automakeによって強化されてはいますが---十分でない場
合もあります．特に，前もって定義されているディレクトリのサブディレクトリ
にオブジェクトをインストールすると役に立つこともあります．このため，
Automakeはインストール可能なディレクトリのリストを拡張することを可能にし
ます．与えられている接頭辞(例えば@samp{zar})は，同じ名前の変数に
@samp{dir}を付加した変数(例えば@code{zardir})が定義されている場合に有効
です．

@cindex HTML support, example

@c For instance, until HTML support is part of Automake, you could use this
@c to install raw HTML documentation:
@c 
例えば，Automakeの一部としてHTMLがサポートされるまで，以下のようにして生
のHTMLドキュメンテトをインストール可能でしょう．

@example
htmldir = $(prefix)/html
html_DATA = automake.html
@end example

@cindex noinst primary prefix, definition

@c The special prefix @samp{noinst} indicates that the objects in question
@c should be built but not installed at all.  This is usually used for
@c objects required to build the rest of your package, for instance static
@c libraries (@pxref{A Library}), or helper scripts.
@c 
特別な接頭辞@samp{noinst}は，該当するオブジェクトはビルドすべきですが決
してインストールされるべきではないことを示します．これは，パッケージ残り
のビルドで必要なオブジェクト，例えば，スタティックライブラリ(@pxref{A
Library})や，補助的なスクリプトに対して有効です．

@cindex check primary prefix, definition

@c The special prefix @samp{check} indicates that the objects in question
@c should not be built until the @code{make check} command is run.  Those
@c objects are not installed either.
@c 
特別な接頭辞@samp{check}は，該当するオブジェクトが@code{make check}コマ
ンドが実行されるまでビルドされないことを示します．これらのオブジェクトは
インストールもされません．

@c The current primary names are @samp{PROGRAMS}, @samp{LIBRARIES},
@c @samp{LISP}, @samp{PYTHON}, @samp{JAVA}, @samp{SCRIPTS}, @samp{DATA},
@c @samp{HEADERS}, @samp{MANS}, and @samp{TEXINFOS}.
@c 
現在のプライマリ名は，@samp{PROGRAMS}，@samp{LIBRARIES}，@samp{LISP}，
@samp{PYTHON}，@samp{JAVA}，@samp{SCRIPTS}，@samp{DATA}，@samp{HEADERS}，
@samp{MANS}，そして@samp{TEXINFOS}です．
@vindex PROGRAMS
@vindex LIBRARIES
@vindex LISP
@vindex PYTHON
@vindex JAVA
@vindex SCRIPTS
@vindex DATA
@vindex HEADERS
@vindex MANS
@vindex TEXINFOS

@c Some primaries also allow additional prefixes which control other
@c aspects of @code{automake}'s behavior.  The currently defined prefixes
@c are @samp{dist_}, @samp{nodist_}, and @samp{nobase_}.  These prefixes
@c are explained later (@pxref{Program and Library Variables}).
@c 
@code{automake}の動作の他の側面を制御する，追加の接頭辞が可能なプライマ
リもあります．現在定義されている接頭辞は，@samp{dist_}，@samp{nodist_}，
そして@samp{nobase_}です．これらの接頭辞は後で説明します(@pxref{Program
and Library Variables})．


@node Canonicalization, User Variables, Uniform, Generalities
@section 派生される変数の命名法

@cindex canonicalizing Automake macros

@c Sometimes a Makefile variable name is derived from some text the
@c maintainer supplies.  For instance, a program name listed in
@c @samp{_PROGRAMS} is rewritten into the name of a @samp{_SOURCES}
@c variable.  In cases like this, Automake canonicalizes the text, so that
@c program names and the like do not have to follow Makefile macro naming
@c rules.  All characters in the name except for letters, numbers, the
@c strudel (@@), and the underscore are turned into underscores when making
@c macro references.
@c 
Makefileの変数名は，管理者が提供するいくつかのテキストから派生することも
あります．例えば，@samp{_PROGRAMS}にリストアップされているプログラム名は，
@samp{_SOURCES}変数の名前にも再び書き込まれます．このような状況では，プ
ログラム名とそれに類似したものがMakefileマクロ命名規則に従う必要が無いよ
うに，Automakeはテキストを標準に従うものにします．名前の中の文字，数字，
アットマーク(@@)，そしてアンダースコア以外のすべての文字は，マクロで参照
されるときにアンダースコアに変換されます．

@c For example, if your program is named @code{sniff-glue}, the derived
@c variable name would be @code{sniff_glue_SOURCES}, not
@c @code{sniff-glue_SOURCES}.
@c 
例えば，プログラムを@code{sniff-glue}と命名する場合，派生する変数名は，
@code{sniff-glue_SOURCES}ではなく@code{sniff_glue_SOURCES}になります．

@c The strudel is an addition, to make the use of Autoconf substitutions in
@c macro names less obfuscating.
@c 
マクロ名の内部でAutoconfの置換を使用する際にできるだけ明瞭にするため，アッ
トマーク(strudel)が追加されています，


@node User Variables, Auxiliary Programs, Canonicalization, Generalities
@section ユーザに対して予約されている変数

@cindex variables, reserved for the user
@cindex user variables

@c Some @code{Makefile} variables are reserved by the GNU Coding Standards
@c for the use of the ``user'' -- the person building the package.  For
@c instance, @code{CFLAGS} is one such variable.
@c 
@code{Makefile}変数には，``user''が使用するためにGNU Coding Standardsで
予約されているものもあります -- それはパッケージを構築する人のためです．
例えば，@code{CFLAGS}はそのような変数の一つです．

@c Sometimes package developers are tempted to set user variables such as
@c @code{CFLAGS} because it appears to make their job easier -- they don't
@c have to introduce a second variable into every target.
@c 
パッケージ開発者は，明らかに仕事を簡単にするために，@code{CFLAGS}のよう
なユーザ変数の設定を試みるときもあります -- 彼らはすべてのターゲットに２
番目の変数を導入する必要はありません．

@c However, the package itself should never set a user variable,
@c particularly not to include switches which are required for proper
@c compilation of the package.  Since these variables are documented as
@c being for the package builder, that person rightfully expects to be able
@c to override any of these variables at build time.
@c 
しかし，パッケージ自身でユーザ変数を設定すべきではなく，特に，パッケージ
の適切なコンパイルに要求されるスイッチを含めるべきではありません．これら
の変数はパッケージの構築者に対して説明されているので，人々は，ビルド時に
これらの変数に優先させることが可能だと期待しています．
@c FIXME: maybe Automake could bark if a developer forces a user variable
@c from Makefile.am.

@c To get around this problem, automake introduces an automake-specific
@c shadow variable for each user flag variable.  (Shadow variables are not
@c introduced for variables like @code{CC}, where they would make no
@c sense.)  The shadow variable is named by prepending @samp{AM_} to the
@c user variable's name.  For instance, the shadow variable for
@c @code{YFLAGS} is @code{AM_YFLAGS}.
@c 
この問題を解決するため，automakeはそれぞれのユーザフラグ変数に対し，
automake特有の隠れた変数を導入しています．(隠れた変数は，@code{CC}のよう
な変数に対しては導入されておらず，それは意味が無いためです．)隠れた変数
は，ユーザ変数名に@samp{AM_}を前置して命名されています．例えば，
@code{YFLAGS}に対する隠れた変数は，@code{AM_YFLAGS}になります．


@node Auxiliary Programs,  , User Variables, Generalities
@section automakeが必要とする可能性があるプログラム

@cindex Programs, auxiliary
@cindex Auxiliary programs

@c Automake sometimes requires helper programs so that the generated
@c @file{Makefile} can do its work properly.  There are a fairly large
@c number of them, and we list them here.
@c 
生成された@file{Makefile}が適切に動作するように，automakeが補助的なプロ
グラムを必要とすることもあります．それらは数がかなり多いのですが，ここに
リストアップします．

@table @code
@item ansi2knr.c
@itemx ansi2knr.1
@c These two files are used by the automatic de-ANSI-fication support
@c (@pxref{ANSI}).
@c 
これらの二つのファイルは，自動的なde-ANSI-ficationのサポートで使用されま
す(@pxref{ANSI})．

@item compile
@c This is a wrapper for compilers which don't accept both @samp{-c} and
@c @samp{-o} at the same time.  It is only used when absolutely required.
@c Such compilers are rare.
@c 
これは，@samp{-c}と@samp{-o}の両方を同時に受け入れることができないコンパ
イラに対するラッパーです．それは実際に要求されたときだけ使用されます．そ
のようなコンパイラは滅多にありません．

@item config.guess
@itemx config.sub
@c These programs compute the canonical triplets for the given build, host,
@c or target architecture.  These programs are updated regulary to support
@c new architectures and fix probes broken by changes in new kernel
@c versions.  You are encouraged to fetch the latest versions of these
@c files from @url{ftp://ftp.gnu.org/gnu/config/} before making a release.
@c 
これらのプログラムは，与えられているビルド，ホスト，またはターゲットアー
キテクチャといった，３つの標準的なものを調べます．これらのプログラムは，
新しいアーキテクチャのサポートや新しいカーネルでの変更で検査の失敗を修正
するために定期的に更新されています．これらのファイルの最新バージョンを
@url{ftp://ftp.gnu.org/gnu/config/}から取得して，リリース物を作成する前
に確かめてください．

@item depcomp
@c This program understands how to run a compiler so that it will generate
@c not only the desired output but also dependency information which is
@c then used by the automatic dependency tracking feature.
@c 
要求された出力だけでなく，自動的な依存性の追跡機能で使用されている依存情
報も生成するために，このプログラムはコンパイラの実行方法を理解します．

@item elisp-comp
@c This program is used to byte-compile Emacs Lisp code.
@c 
このプログラムは，Emacs Lispコードをバイトコンパイルするために使用されま
す．

@item install-sh
@c This is a replacement for the @code{install} program which works on
@c platforms where @code{install} is unavailable or unusable.
@c 
これは，@code{install}プログラムの代わりのもので，@code{install}の利用や
使用が不可能なプラットフォームで動作します．

@item mdate-sh
@c This script is used to generate a @file{version.texi} file.  It examines
@c a file and prints some date information about it.
@c 
このスクリプトは，@file{version.texi}ファイルを生成します．それはファイ
ルを調査し，それに関する日付の情報を出力します．

@item missing
@c This wraps a number of programs which are typically only required by
@c maintainers.  If the program in question doesn't exist, @code{missing}
@c prints an informative warning and attempts to fix things so that the
@c build can continue.
@c 
これは，通常管理者だけが必要とするいくつかのプログラムのラッパーです．該
当のプログラムが存在しない場合，@code{missing}は情報を伝える警告を出力し，
ビルドを継続することが可能になるように修正を試みます．

@item mkinstalldirs
@c This works around the fact that @code{mkdir -p} is not portable.
@c 
これは，@code{mkdir -p}に移植性が無い問題を解決します．

@item py-compile
@c This is used to byte-compile Python scripts.
@c 
これは，Pythonスクリプトをバイトコンパイルするために使用されます．

@item texinfo.tex
@c Not a program, this file is required for @code{make dvi} to work when
@c Texinfo sources are in the package.
@c 
プログラムではなく，パッケージにTexinfoソースファイルがあるとき，このファ
イルは，@code{make dvi}を動作させるために必要とされます．

@item ylwrap
@c This program wraps @code{lex} and @code{yacc} and ensures that, for
@c instance, multiple @code{yacc} instances can be invoked in a single
@c directory in parallel.
@c 
このプログラムは，@code{lex}と@code{yacc}のラッパーで，例えば，複数の
@code{yacc}のインスタンスを単一のディレクトリで，並行して呼び出すことが
可能であることを確かめます．

@end table


@node Examples, Invoking Automake, Generalities, Top
@chapter いくつかのパッケージの例

@menu
* Complete::                    A simple example, start to finish
* Hello::                       A classic program
* etags::                       Building etags and ctags
@end menu


@node Complete, Hello, Examples, Examples
@section 簡単なサンプル例の最初から最後まで

@cindex Complete example

@c Let's suppose you just finished writing @code{zardoz}, a program to make
@c your head float from vortex to vortex.  You've been using Autoconf to
@c provide a portability framework, but your @file{Makefile.in}s have been
@c ad-hoc.  You want to make them bulletproof, so you turn to Automake.
@c 
さて，渦から渦まで頭を浮かせる(?)プログラムの@code{zardoz}を，たった今書
き終えたと仮定しましょう．移植性のフレームワークを提供するためにAutoconf 
を使用していましたが，@file{Makefile.in}は特別に作成しました．それらを堅
牢にしたいのでAutomakeに切替えてみましょう．

@cindex AM_INIT_AUTOMAKE, example use

@c The first step is to update your @file{configure.in} to include the
@c commands that @code{automake} needs.  The way to do this is to add an
@c @code{AM_INIT_AUTOMAKE} call just after @code{AC_INIT}:
@c 
第一歩は@code{automake}が必要とするコマンドを含めるため，
@file{configure.in}の更新を開始しましょう．こうする方法は，
@code{AC_INIT}の直後に@code{AM_INIT_AUTOMAKE}の呼び出しを加えることです．

@example
AC_INIT(zardoz, 1.0)
AM_INIT_AUTOMAKE
...
@end example

@c Since your program doesn't have any complicating factors (e.g., it
@c doesn't use @code{gettext}, it doesn't want to build a shared library),
@c you're done with this part.  That was easy!
@c 
プログラムには，(例えば，@code{gettext}を使用していないし，共有ライブラ
リもビルドしないし)複雑な要因が全くないので，この部分はおしまいです．な
んて簡単なんでしょう！

@cindex aclocal program, introduction
@cindex aclocal.m4, preexisting
@cindex acinclude.m4, defined

@c Now you must regenerate @file{configure}.  But to do that, you'll need
@c to tell @code{autoconf} how to find the new macro you've used.  The
@c easiest way to do this is to use the @code{aclocal} program to generate
@c your @file{aclocal.m4} for you.  But wait... maybe you already have an
@c @file{aclocal.m4}, because you had to write some hairy macros for your
@c program.  The @code{aclocal} program lets you put your own macros into
@c @file{acinclude.m4}, so simply rename and then run:
@c 
さて@file{configure}を再生成する必要があります．しかしこうするためには，
使用している新しいマクロを見つける方法を@code{autoconf}に伝える必要があ
ります．こうするための最も簡単な方法は，@file{aclocal.m4}を生成する
@code{aclocal}プログラムを使用することです．しかしちょっと待って下さい
@dots{}プログラムに対してちょっとマクロを書く必要があり，既に
@file{aclocal.m4}があるかもしれません．@code{aclocal}プログラムでは，マ
クロを@file{acinclude.m4}に書いておく必要があるので，単純に名前を変更し
て以下のように実行します．

@example
mv aclocal.m4 acinclude.m4
aclocal
autoconf
@end example

@cindex zardoz example

@c Now it is time to write your @file{Makefile.am} for @code{zardoz}.
@c Since @code{zardoz} is a user program, you want to install it where the
@c rest of the user programs go: @code{bindir}.  Additionally,
@c @code{zardoz} has some Texinfo documentation.  Your @file{configure.in}
@c script uses @code{AC_REPLACE_FUNCS}, so you need to link against
@c @samp{@@LIBOBJS@@}.  So here's what you'd write:
@c 
さて@code{zardoz}に対する@file{Makefile.am}を書く時間がやってきました．
@code{zardoz}はユーザプログラムなので，他のユーザプログラムがインストー
ルされる場所にインストールしたいと思います．@code{bindir}です．さらに，
@code{zardoz}にはTexinfoドキュメントもあります．@file{configure.in}スク
リプトでは@code{AC_REPLACE_FUNCS}を使用するので，@samp{@@LIBOBJS@@}をリ
ンクする必要があります．そのため以下のように書いたほうが良いでしょう．

@example
bin_PROGRAMS = zardoz
zardoz_SOURCES = main.c head.c float.c vortex9.c gun.c
zardoz_LDADD = @@LIBOBJS@@

info_TEXINFOS = zardoz.texi
@end example

@c Now you can run @code{automake --add-missing} to generate your
@c @file{Makefile.in} and grab any auxiliary files you might need, and
@c you're done!
@c 
さて，@file{Makefile.in}を生成するために@code{automake --add-missing}を
実行して，必要な補助ファイルを入手して，おしまいです！


@node Hello, etags, Complete, Examples
@section 古典的なプログラム

@cindex Example, GNU Hello
@cindex Hello example
@cindex GNU Hello, example

@c @uref{ftp://prep.ai.mit.edu/pub/gnu/hello-1.3.tar.gz, GNU hello} is
@c renowned for its classic simplicity and versatility.  This section shows
@c how Automake could be used with the GNU Hello package.  The examples
@c below are from the latest beta version of GNU Hello, but with all of the
@c maintainer-only code stripped out, as well as all copyright comments.
@c 
@uref{ftp://prep.ai.mit.edu/pub/gnu/hello-1.3.tar.gz, GNU hello}は，古典
的単純さと融通性で有名です．このセクションでは，AutomakeをGNU Helloパッ
ケージに使用する方法を示します．以下の例は，GNU Helloの最近のベータバー
ジョンからのものですが，著作権のコメント全体と同様に，管理者専用のすべて
のコードが取り除かれています．

@c Of course, GNU Hello is somewhat more featureful than your traditional
@c two-liner.  GNU Hello is internationalized, does option processing, and
@c has a manual and a test suite.
@c 
もちろん，GNU Helloは伝統的な２行より幾分長くなっています．GNU Helloは国
際化されていて，オプション処理をして，そしてマニュアルとテストスイートも
あります．

@cindex configure.in, from GNU Hello
@cindex GNU Hello, configure.in
@cindex Hello, configure.in

@c Here is the @file{configure.in} from GNU Hello:
@c 
GNU Helloの@file{configure.in}は以下のようになっています@footnote{訳注：
この例は古いので参考にしないでください．}．
@c FIXME: This definitively requires an update.

@example
dnl Process this file with autoconf to produce a configure script.
AC_INIT(src/hello.c)
AM_INIT_AUTOMAKE(hello, 1.3.11)
AM_CONFIG_HEADER(config.h)

dnl Set of available languages.
ALL_LINGUAS="de fr es ko nl no pl pt sl sv"

dnl Checks for programs.
AC_PROG_CC
AC_ISC_POSIX

dnl Checks for libraries.

dnl Checks for header files.
AC_STDC_HEADERS
AC_HAVE_HEADERS(string.h fcntl.h sys/file.h sys/param.h)

dnl Checks for library functions.
AC_FUNC_ALLOCA

dnl Check for st_blksize in struct stat
AC_ST_BLKSIZE

dnl internationalization macros
AM_GNU_GETTEXT
AC_OUTPUT([Makefile doc/Makefile intl/Makefile po/Makefile.in \
           src/Makefile tests/Makefile tests/hello],
   [chmod +x tests/hello])
@end example

@c The @samp{AM_} macros are provided by Automake (or the Gettext library);
@c the rest are standard Autoconf macros.
@c 
@samp{AM_}マクロは，Automake(あるいはGettextライブラリ)によって提供され
ています．残りは標準的なAutoconfマクロです．

@c The top-level @file{Makefile.am}:
@c 
トップレベルの@file{Makefile.am}は以下のようになっています．

@example
EXTRA_DIST = BUGS ChangeLog.O
SUBDIRS = doc intl po src tests
@end example

@c As you can see, all the work here is really done in subdirectories.
@c 
ごらんのように，ここでの仕事はすべてサブディレクトリで実際に実行されます．

@c The @file{po} and @file{intl} directories are automatically generated
@c using @code{gettextize}; they will not be discussed here.
@c 
@file{po}と@file{intl}ディレクトリは，@code{gettextize}を使用することで
自動的に生成されます．それらについてはここで述べません．

@cindex Texinfo file handling example
@cindex Example, handling Texinfo files

@c In @file{doc/Makefile.am} we see:
@c 
@file{doc/Makefile.am}は以下のようになっています．

@example
info_TEXINFOS = hello.texi
hello_TEXINFOS = gpl.texi
@end example

@c This is sufficient to build, install, and distribute the GNU Hello
@c manual.
@c 
これで，GNU Helloマニュアルをビルドして，インストールして，そして配布す
るには十分です．

@cindex Regression test example
@cindex Example, regression test

@c Here is @file{tests/Makefile.am}:
@c 
@file{tests/Makefile.am}は以下のようになっています．

@example
TESTS = hello
EXTRA_DIST = hello.in testdata
@end example

@c The script @file{hello} is generated by @code{configure}, and is the
@c only test case.  @code{make check} will run this test.
@c 
@file{hello}スクリプトは，@code{configure}により生成され，それはテストケー
スのみで生成されます．@code{make check}でこのテストを実行します．

@cindex INCLUDES, example usage

@c Last we have @file{src/Makefile.am}, where all the real work is done:
@c 
最後は@file{src／Makefile.am}で，実際にすべての仕事が行なわれる場所です
@footnote{訳注：ここの例も良くないみたいです．}．
@c FIXME: As all the Hello World excerpts in this manual, this
@c shows deprecated features (here: $(INCLUDES)).

@example
bin_PROGRAMS = hello
hello_SOURCES = hello.c version.c getopt.c getopt1.c getopt.h system.h
hello_LDADD = @@INTLLIBS@@ @@ALLOCA@@
localedir = $(datadir)/locale
INCLUDES = -I../intl -DLOCALEDIR=\"$(localedir)\"
@end example


@node etags,  , Hello, Examples
@section etagsとctagsのビルド

@cindex Example, ctags and etags
@cindex ctags Example
@cindex etags Example

@c Here is another, trickier example.  It shows how to generate two
@c programs (@code{ctags} and @code{etags}) from the same source file
@c (@file{etags.c}).  The difficult part is that each compilation of
@c @file{etags.c} requires different @code{cpp} flags.
@c 
ここにもう１つの，トリッキーな例があります．それは同じソースファイル
(@file{etags.c})から２つのプログラム(@code{ctags}と@code{etags})を生成す
る方法を示します．難しい部分は，それぞれの@file{etags.c}のコンパイルで，
異なる@code{cpp}フラグが必要になるということです．

@example
bin_PROGRAMS = etags ctags
ctags_SOURCES =
ctags_LDADD = ctags.o

etags.o: etags.c
        $(COMPILE) -DETAGS_REGEXPS -c etags.c

ctags.o: etags.c
        $(COMPILE) -DCTAGS -o ctags.o -c etags.c
@end example

@c Note that there is no @code{etags_SOURCES} definition.  Automake will
@c implicitly assume that there is a source file named @file{etags.c}, and
@c define rules to compile @file{etags.o} and link @file{etags}.  The
@c @code{etags.o: etags.c} rule supplied by the above @file{Makefile.am},
@c will override the Automake generated rule to build @file{etags.o}.
@c 
@code{etags_SOURCES}の定義が無いことに注意してください．Automake は，ソー
スファイル名@file{etags.c}が存在すると暗黙に仮定し，@file{etags.o}にコン
パイルし，@file{etags}にリンクする規則を定義します．上記の
@file{Makefile.am}で提供されている@code{etags.o: etags.c}の規則は，
Automakeが生成する@file{etags.o}をビルドするための規則に優先します．

@c @code{ctags_SOURCES} is defined to be empty---that way no implicit value
@c is substituted.  Because we have not listed the source of
@c @file{ctags}, we have to tell Automake how to link the program.  This is
@c the purpose of the @code{ctags_LDADD} line.  A @code{ctags_DEPENDENCIES}
@c variable, holding the dependencies of the @file{ctags} target will be
@c automatically generated by Automake from the contant of
@c @code{ctags_LDADD}.
@c 
@code{ctags_SOURCES}は空で定義されています---その方法では，暗黙の値で置
換されません．@file{ctags}のソースでリストアップしていないので，プログラ
ムをリンクする方法をAutomakeに伝える必要があります．これが
@code{ctags_LDADD}行の目的です．@code{ctags_DEPENDENCIES}変数は
@file{ctags}ターゲットの依存性を保持していて，@code{ctags_LDADD}の内容か
らAutomakeが自動的に生成されます．

@c The above rules won't work if your compiler doesn't accept both
@c @samp{-c} and @samp{-o}.  The simplest fix for this is to introduce a
@c bogus dependency (to avoid problems with a parallel @code{make}):
@c 
上記の規則は，コンパイラが@samp{-c}と@samp{-o}の両方を受け入れない場合は
動作しません．これを簡単に修正するため，(並行した@code{make}の問題を避け
るために)偽の依存性を導入します．

@example
etags.o: etags.c ctags.o
        $(COMPILE) -DETAGS_REGEXPS -c etags.c

ctags.o: etags.c
        $(COMPILE) -DCTAGS -c etags.c && mv etags.o ctags.o
@end example

@c Also, these explicit rules do not work if the de-ANSI-fication feature
@c is used (@pxref{ANSI}).  Supporting de-ANSI-fication requires a little
@c more work:
@c 
また，これらの明示的な規則は，de-ANSI-ficationが使用される場合は動作しま
せん(@pxref{ANSI})．de-ANSI-ficationをサポートするためには，もう少し多く
の仕事が必要です．

@example
etags._o: etags._c ctags.o
        $(COMPILE) -DETAGS_REGEXPS -c etags.c

ctags._o: etags._c
        $(COMPILE) -DCTAGS -c etags.c && mv etags._o ctags.o
@end example

@c As it turns out, there is also a much easier way to do this same task.
@c Some of the above techniques are useful enough that we've kept the
@c example in the manual.  However if you were to build @code{etags} and
@c @code{ctags} in real life, you would probably use per-program
@c compilation flags, like so:
@c 
分かってくるにしたがって，同じ作業を行なうため，よりいっそう簡単な方法も
あります．上記のテクニックには，マニュアルの例として残しておくには十分役
に立つものもあります．しかし，@code{etags}と@code{ctags}を現実的にビルド
する場合は，以下のように，おそらくプログラムごとにコンパイルのフラグを使
用することでしょう．

@example
bin_PROGRAMS = ctags etags

ctags_SOURCES = etags.c
ctags_CFLAGS = -DCTAGS

etags_SOURCES = etags.c
etags_CFLAGS = -DETAGS_REGEXPS
@end example

@c In this case Automake will cause @file{etags.c} to be compiled twice,
@c with different flags.  De-ANSI-fication will work automatically.  In
@c this instance, the names of the object files would be chosen by
@c automake; they would be @file{ctags-etags.o} and @file{etags-etags.o}.
@c (The name of the object files rarely matters.)
@c 
この状況では，Automakeによって，@file{etags.c}は異なるフラグで二度コンパ
イルされることになります．de-ANSI-ficationは自動的に動作します．この例で
は，オブジェクトファイルの名前はautomakeが選択します．それは
@file{ctags-etags.o}と@file{etags-etags.o}になるでしょう．(オブジェクト
ファイルの名前が問題となることは滅多にありません．)


@node Invoking Automake, configure, Examples, Top
@chapter @file{Makefile.in}の生成

@cindex Multiple configure.in files
@cindex Invoking Automake
@cindex Automake, invoking

@c To create all the @file{Makefile.in}s for a package, run the
@c @code{automake} program in the top level directory, with no arguments.
@c @code{automake} will automatically find each appropriate
@c @file{Makefile.am} (by scanning @file{configure.in}; @pxref{configure})
@c and generate the corresponding @file{Makefile.in}.  Note that
@c @code{automake} has a rather simplistic view of what constitutes a
@c package; it assumes that a package has only one @file{configure.in}, at
@c the top.  If your package has multiple @file{configure.in}s, then you
@c must run @code{automake} in each directory holding a
@c @file{configure.in}.  (Alteratively, you may rely on Autoconf's
@c @code{autoreconf}, which is able to recurse your package tree and run
@c @code{automake} where appropriate.)
@c 
パッケージに対するすべての@file{Makefile.in}を作成するため，
@code{automake}プログラムをトップレベルのディレクトリで，引数なしで実行
してください．@code{automake}は，(@file{configure.in}をスキャンながら 
@pxref{configure})，自動的にそれぞれ適切な@file{Makefile.am}を見つけ，対
応する@file{Makefile.in}を生成します．@code{automake}では，パッケージを
構成するものへの視野がかなり単純になっていることに注意してください．それ
は，１つのパッケージにはトップディレクトリにただ１つ@file{configure.in} 
があることを想定しています．パッケージに複数の@file{configure.in}がある
場合，@file{configure.in}があるそれぞれのディレクトリで@code{automake} 
を実行する必要があります．(代わりの方法として，パッケージツリーを巡回し
て，適切な場所で@code{automake}を実行することが可能な，Autoconfの
@code{autoreconf}をあてにしてもかまいません．)

@c You can optionally give @code{automake} an argument; @file{.am} is
@c appended to the argument and the result is used as the name of the input
@c file.  This feature is generally only used to automatically rebuild an
@c out-of-date @file{Makefile.in}.  Note that @code{automake} must always
@c be run from the topmost directory of a project, even if being used to
@c regenerate the @file{Makefile.in} in some subdirectory.  This is
@c necessary because @code{automake} must scan @file{configure.in}, and
@c because @code{automake} uses the knowledge that a @file{Makefile.in} is
@c in a subdirectory to change its behavior in some cases.
@c 
オプションとして@code{automake}に引数を与えることが可能です．@file{.am} 
が引数に後置され，その結果が入力ファイルの名前として使用されます．この機
能は，一般的に，時代遅れの@file{Makefile.in}を自動的にリビルドするためだ
けに使用します．いくつかのサブディレクトリで@file{Makefile.in}を再生成す
るために使用している場合でも，プロジェクトのトップディレクトリで
@code{automake}を実行する必要があることに注意してください．これは，
@code{automake}は@file{configure.in}をスキャンする必要があるため，そして，
@code{automake}が状況によってその動作を変更するため，@file{Makefile.in} 
がサブディレクトリに存在するという知識を使用するためです．

@cindex Automake options
@cindex Options, Automake
@cindex Strictness, command line

@c @code{automake} accepts the following options:
@c 
@code{automake}は以下のオプションを受け入れます．

@cindex Extra files distributed with Automake
@cindex Files distributed with Automake
@cindex config.guess

@table @samp
@item -a
@itemx --add-missing
@opindex -a
@opindex --add-missing
@c Automake requires certain common files to exist in certain situations;
@c for instance @file{config.guess} is required if @file{configure.in} runs
@c @code{AC_CANONICAL_HOST}.  Automake is distributed with several of these
@c files (@pxref{Auxiliary Programs}); this option will cause the missing
@c ones to be automatically added to the package, whenever possible.  In
@c general if Automake tells you a file is missing, try using this option.
@c By default Automake tries to make a symbolic link pointing to its own
@c copy of the missing file; this can be changed with @code{--copy}.
@c 
Automakeには，特定の共通ファイルが存在することを要求する状況もあります．
例えば，@file{configure.in}で@code{AC_CANONICAL_HOST}を実行する場合，
@file{config.guess}が必要です．Automakeはこれらのファイルのいくつかと一
緒に配布されています(@pxref{Auxiliary Programs})．このオプションは，可能
であれば，足りないものを自動的にパッケージに加えます．一般的に，Automake 
が足りないファイルがあることを告げる場合，このオプションを使用してみてく
ださい．デフォルトでAutomakeは，足りないファイルを指し示すシンボリックリ
ンクの作成を試みます．これは@code{--copy}で変更可能です．

@item --libdir=@var{dir}
@opindex --libdir
@c Look for Automake data files in directory @var{dir} instead of in the
@c installation directory.  This is typically used for debugging.
@c 
Automakeのデータファイルを，インストールされたディレクトリではなく
@var{dir}で探します．これは通常，デバッグで使用されます．

@item -c
@opindex -c
@itemx --copy
@opindex --copy
@c When used with @code{--add-missing}, causes installed files to be
@c copied.  The default is to make a symbolic link.
@c 
@code{--add-missing}と一緒に使用するとき，インストールされるファイルをコ
ピーします．デフォルトではシンボリックリンクを作成します．

@item --cygnus
@opindex --cygnus
@c Causes the generated @file{Makefile.in}s to follow Cygnus rules, instead
@c of GNU or Gnits rules.  For more information, see @ref{Cygnus}.
@c 
GNUやGnitsの規則の代わりに，Cygnusの規則に従う@file{Makefile.in}を生成し
ます．詳細は，@ref{Cygnus}を参照してください．

@item -f
@opindex -f
@itemx --force-missing
@opindex --force-missing
@c When used with @code{--add-missing}, causes standard files to be reinstalled
@c even if they already exist in the source tree.  This involves removing
@c the file from the source tree before creating the new symlink (or, with
@c @code{--copy}, copying the new file).
@c 
@code{--add-missing}とともに使用するとき，標準のファイルがソースツリーに
存在する場合でもそれらを再インストールします．これで，新しいシンボリック
リンクを作成する前に，ソースツリーからファイルを削除します(または，
@code{--copy}とともに使用すると，新しいファイルをコピーします)．

@item --foreign
@opindex --foreign
@c Set the global strictness to @samp{foreign}.  For more information, see
@c @ref{Strictness}.
@c 
グローバルな厳密さを@samp{foreign}にセットします．詳細は，
@ref{Strictness}を参照してください．

@item --gnits
@opindex --gnits
@c Set the global strictness to @samp{gnits}.  For more information, see
@c @ref{Gnits}.
@c 
グローバルな厳密さを@samp{gnits}にセットします．詳細は，@ref{Gnits}を参
照してください．

@item --gnu
@opindex --gnu
@c Set the global strictness to @samp{gnu}.  For more information, see
@c @ref{Gnits}.  This is the default strictness.
@c 
グローバルな厳密さを@samp{gnu}にセットします．詳細は，@ref{Gnits}を参照
してください．これはデフォルトの厳密さです．

@item --help
@opindex --help
@c Print a summary of the command line options and exit.
@c 
コマンドラインオプションの概要を出力して終了します．

@item -i
@itemx --ignore-deps
@opindex -i
@c This disables the dependency tracking feature in generated
@c @file{Makefile}s; see @ref{Dependencies}.
@c 
これは，生成される@file{Makefile}での依存性追跡の機能を使用不可能にしま
す．@ref{Dependencies}を参照してください．

@item --include-deps
@opindex --include-deps
@c This enables the dependency tracking feature.  This feature is enabled
@c by default.  This option is provided for historical reasons only and
@c probably should not be used.
@c 
依存性追跡の機能を使用可能にします．この機能は，デフォルトで使用可能です．
このオプションは歴史的な理由でのみ提供されていて，おそらく使用すべきでは
ありません．

@item --no-force
@opindex --no-force
@c Ordinarily @code{automake} creates all @file{Makefile.in}s mentioned in
@c @file{configure.in}.  This option causes it to only update those
@c @file{Makefile.in}s which are out of date with respect to one of their
@c dependents.
@c 
通常@code{automake}は，@file{configure.in}で記述されているすべての
@file{Makefile.in}を作成します．このオプションは，依存性の一つの側面を用
いて，時代遅れになっている@file{Makefile.in}だけを更新します．

@item -o @var{dir}
@itemx --output-dir=@var{dir}
@opindex -o
@opindex --output-dir
@c FIXME: This seems to be a left-over from Automake 1.4, unused today.
@c 
@c Put the generated @file{Makefile.in} in the directory @var{dir}.
@c Ordinarily each @file{Makefile.in} is created in the directory of the
@c corresponding @file{Makefile.am}.  This option is used when making
@c distributions.
@c 
生成された@file{Makefile.in}を@var{dir}に配置します．通常，それぞれの
@file{Makefile.in}は，@file{Makefile.am}に対応するディレクトリに作成され
ます．このオプションは，配布物を作成するときに使用します．

@item -v
@itemx --verbose
@opindex -v
@opindex --verbose
@c Cause Automake to print information about which files are being read or
@c created.
@c 
読み込まれたり作成されたりしているファイルの情報をAutomakeに出力させます．

@item --version
@opindex --version
@c Print the version number of Automake and exit.
@c 
Automakeのバージョンナンバーを出力して終了します．

@item --Werror
@itemx --Wno-error
@opindex --Werror
@opindex --Wno-error
@c @samp{--Werror} will cause all warnings issued by @code{automake} to
@c become errors.  Errors affect the exit status of @code{automake}, while
@c warnings do not.  @samp{--Wno-error}, the default, causes warnings to be
@c treated as warnings only.
@c 
@samp{--Werror}で，@code{automake}で出されるすべての警告をエラーにします．
エラーは@code{automake}の終了ステータスに影響しますが，警告は影響しませ
ん．@samp{--Wno-error}はデフォルトで，警告をそのまま警告としてのみ扱いま
す．
@end table


@node configure, Top level, Invoking Automake, Top
@chapter @file{configure.in}のスキャン

@cindex configure.in, scanning
@cindex Scanning configure.in

@c Automake scans the package's @file{configure.in} to determine certain
@c information about the package.  Some @code{autoconf} macros are required
@c and some variables must be defined in @file{configure.in}.  Automake
@c will also use information from @file{configure.in} to further tailor its
@c output.
@c 
Automakeは，パッケージに関する特定の情報を決定するために，パッケージの
@file{configure.in}をスキャンします．必要な@code{autoconf}マクロもあれば，
@file{configure.in}で定義する必要がある変数もあります．Automakeは，出力
物を調整するためにも，@file{configure.in}からの情報を使用します．

@c Automake also supplies some Autoconf macros to make the maintenance
@c easier.  These macros can automatically be put into your
@c @file{aclocal.m4} using the @code{aclocal} program.
@c 
Automakeは，メンテナンスをより容易にするためのAutoconfマクロも提供してい
ます．これらのマクロは，@code{aclocal}プログラムを使用して自動的に
@file{aclocal.m4}に書き込むことが可能です．

@menu
* Requirements::                Configuration requirements
* Optional::                    Other things Automake recognizes
* Invoking aclocal::            Auto-generating aclocal.m4
* Macros::                      Autoconf macros supplied with Automake
* Extending aclocal::           Writing your own aclocal macros
@end menu


@node Requirements, Optional, configure, configure
@section コンフィグレーションの必要条件

@cindex Automake requirements
@cindex Requirements of Automake

@c The one real requirement of Automake is that your @file{configure.in}
@c call @code{AM_INIT_AUTOMAKE}.  This macro does several things which are
@c required for proper Automake operation (@pxref{Macros}).
@c 
Automakeが本当に必要としていることは一つで，@file{configure.in}でマクロ
@code{AM_INIT_AUTOMAKE}を呼び出すことです．このマクロは，適切なAutomake 
の処理に必要なことをいくつか行ないます(@pxref{Macros})．
@cvindex AM_INIT_AUTOMAKE

@c Here are the other macros which Automake requires but which are not run
@c by @code{AM_INIT_AUTOMAKE}:
@c 
Automakeは必要としますが，@code{AM_INIT_AUTOMAKE}で実行されないマクロに
は，以下のものがあります．
@cindex AC_OUTPUT, scanning

@table @code
@item AC_CONFIG_FILES
@itemx AC_OUTPUT
@c Automake uses these to determine which files to create (@pxref{Output, ,
@c Creating Output Files, autoconf, The Autoconf Manual}).  A listed file
@c is considered to be an Automake generated @file{Makefile} if there
@c exists a file with the same name and the @file{.am} extension appended.
@c Typically, @code{AC_CONFIG_FILES([foo/Makefile])} will cause Automake to
@c generate @file{foo/Makefile.in} if @file{foo/Makefile.am} exists.
@c 
Automakeは，作成するファイルを決定するためにこれらを使用します
(@pxref{Output, , Creating Output Files, autoconf, The Autoconf Manual})．
同じ名前のファイルが@file{.am}拡張子が後置されている状態で存在している場
合，リストアップされているファイルは，Automakeが@file{Makefile}を生成す
るものと考慮します．通常，@code{AC_CONFIG_FILES([foo/Makefile])}で，
@file{foo/Makefile.am}が存在する場合は，Automakeが@file{foo/Makefile.in}
を生成します．

@c Other listed files are treated differently.  Currently the only
@c difference is that an Automake @file{Makefile} is removed by @code{make
@c distclean}, while other files are removed by @code{make clean}.
@c 
それ以外のリストアップされているファイルは扱い方が異なります．現在唯一の
違いは，@code{make distclean}で@file{Makefile}は削除されますが，他のファ
イルは@code{make clean}で削除されるということです．
@c FIXME: this is in violation of standards!
@cvindex AC_OUTPUT
@end table


@node Optional, Invoking aclocal, Requirements, configure
@section その他のAutomakeが理解すること

@cindex Macros Automake recognizes
@cindex Recognized macros by Automake

@c Automake will also recognize the use of certain macros and tailor the
@c generated @file{Makefile.in} appropriately.  Currently recognized macros
@c and their effects are:
@c 
Automakeは特定のマクロの使用も認識し，生成する@file{Makefile.in}を適切に
調整します．現在認識されるマクロとそれらの効果は，以下のようになっていま
す．

@table @code
@item AC_CONFIG_HEADER
@c Automake requires the use of @code{AM_CONFIG_HEADER} (@pxref{Macros}),
@c which is similar to @code{AC_CONFIG_HEADER} (@pxref{Configuration
@c Headers, , Configuration Header Files, autoconf, The Autoconf Manual}),
@c but does some useful Automake-specific work.
@c 
Automakeは@code{AM_CONFIG_HEADER}の使用を必要とし(@pxref{Macros})，それ
は@code{AC_CONFIG_HEADER}に似ています(@pxref{Configuration Headers, ,
Configuration Header Files, autoconf, The Autoconf Manual})が，Automake 
特有の有用な作業も行ないます．
@cvindex AC_CONFIG_HEADER

@item AC_CONFIG_AUX_DIR
@c Automake will look for various helper scripts, such as
@c @file{mkinstalldirs}, in the directory named in this macro invocation.
@c If not seen, the scripts are looked for in their @samp{standard}
@c locations (either the top source directory, or in the source directory
@c corresponding to the current @file{Makefile.am}, whichever is
@c appropriate).  @xref{Input, , Finding `configure' Input, autoconf, The
@c Autoconf Manual}.
@c 
Automakeは，@file{mkinstalldirs}のような様々なヘルパースクリプトを，この
マクロの呼び出しで指定されたディレクトリで探します．見つからない場合は，
@samp{standard}な位置(トップソースディレクトリか，現在の
@file{Makefile.am}に対応するソースディレクトリの適切な方)で探します． 
@xref{Input, , Finding `configure' Input, autoconf, The Autoconf
Manual}.
@cvindex AC_CONFIG_AUX_DIR
@c FIXME: give complete list of things looked for in this directory

@item AC_PATH_XTRA
@c Automake will insert definitions for the variables defined by
@c @code{AC_PATH_XTRA} into each @file{Makefile.in} that builds a C program
@c or library.  @xref{System Services, , System Services, autoconf, The
@c Autoconf Manual}.
@c 
Automakeは，@code{AC_PATH_XTRA}で定義された変数に対して，Cプログラムやラ
イブラリをビルドするそれぞれの@file{Makefile.in}に定義を挿入します．
@xref{System Services, , System Services, autoconf, The Autoconf
Autoconf Manual}.
@cvindex AC_PATH_XTRA

@item AC_CANONICAL_HOST
@c Automake will ensure that @file{config.guess} and @file{config.sub}
@c exist.  Also, the @file{Makefile} variables @samp{host_alias} and
@c @samp{host_triplet} are introduced.  See @ref{Canonicalizing, ,
@c Getting the Canonical System Type, autoconf, The Autoconf Manual}.
@c 
Automakeは，@file{config.guess}と@file{config.sub}が確実に存在するように
します．また，@file{Makefile}変数の@samp{host_alias}と
@samp{host_triplet}も導入します．@ref{Canonicalizing, , Getting the
Canonical System Type, autoconf, The Autoconf Manual}を参照してください．
@cvindex AC_CANONICAL_HOST
@vindex host_alias
@vindex host_triplet

@item AC_CANONICAL_SYSTEM
@c This is similar to @code{AC_CANONICAL_HOST}, but also defines the
@c @file{Makefile} variables @samp{build_alias} and @samp{target_alias}.
@c @xref{Canonicalizing, , Getting the Canonical System Type, autoconf, The
@c Autoconf Manual}.
@c 
これは@code{AC_CANONICAL_HOST}に似ていますが，@file{Makefile}変数の
@samp{build_alias}と@samp{target_alias}も定義します．
@xref{Canonicalizing, , Getting the Canonical System Type, autoconf, The
Autoconf Manual}.
@cvindex AC_CANONICAL_SYSTEM
@vindex build_alias
@vindex target_alias

@item  AC_FUNC_ALLOCA
@itemx AC_FUNC_ERROR_AT_LINE
@itemx AC_FUNC_FNMATCH
@itemx AC_FUNC_GETLOADAVG
@itemx AC_FUNC_MEMCMP
@itemx AC_FUNC_MKTIME
@itemx AC_FUNC_OBSTACK
@itemx AC_FUNC_STRTOD
@itemx AC_REPLACE_FUNCS
@itemx AC_REPLACE_GNU_GETOPT
@itemx AC_STRUCT_ST_BLOCKS
@itemx AM_WITH_REGEX
@c Automake will ensure that the appropriate dependencies are generated for
@c the objects corresponding to these macros.  Also, Automake will verify
@c that the appropriate source files are part of the distribution.  Note
@c that Automake does not come with any of the C sources required to use
@c these macros, so @code{automake -a} will not install the sources.
@c @xref{A Library}, for more information.  Also, see @ref{Particular
@c Functions, , Particular Function Checks, autoconf, The Autoconf Manual}.
@c 
Automakeは，これらのマクロに対応するオブジェクトに対して，適切な依存性を
確実に生成します．また，Automakeは適切なソースファイルが配布物の一部とし
て存在することも確かめます．Automakeは，これらのマクロを使用するために必
要なCソースをもたらさないので，@code{automake -a}ではソースがインストー
ルされません．詳細は@xref{A Library}.  また，@ref{Particular Functions,
, Particular Function Checks, autoconf, The Autoconf Manual}も参照してく
ださい．
@cvindex AC_FUNC_ALLOCA
@cvindex AC_FUNC_ERROR_AT_LINE
@cvindex AC_FUNC_FNMATCH
@cvindex AC_FUNC_GETLOADAVG
@cvindex AC_FUNC_MEMCMP
@cvindex AC_FUNC_MKTIME
@cvindex AC_FUNC_OBSTACK
@cvindex AC_FUNC_STRTOD
@cvindex AC_REPLACE_FUNCS
@cvindex AC_REPLACE_GNU_GETOPT
@cvindex AC_STRUCT_ST_BLOCKS
@cvindex AM_WITH_REGEX

@item AC_LIBOBJ
@itemx LIBOBJS
@itemx AC_LIBSOURCE
@itemx AC_LIBSOURCES
@c Automake will detect statements which put @file{.o} files into
@c @code{LIBOBJS}, or pass @file{.o} files to @code{AC_LIBOBJ}, and will
@c treat these additional files as if they were discovered via
@c @code{AC_REPLACE_FUNCS}.  Similarly, Automake will also distribute file
@c listed in @code{AC_LIBSOURCE} and @code{AC_LIBSOURCES}.
@c 
Automakeは，@code{LIBOBJS}内に@file{.o}ファイルを書き出す宣言を検出した
り，@code{AC_LIBOBJ}に@file{.o}ファイルを渡したりし，
@code{AC_REPLACE_FUNCS}でそれが見つかった場合，これらの追加のファイルを
処理します．同様に，Automakeは@code{AC_LIBSOURCE}と@code{AC_LIBSOURCES}
でリストアップされているファイルも配布します．


@c Note that assignments to @code{LIBOBJS} is a construct which is being
@c phased out; they will be ignored in a future release of Automake.  You
@c should call the @code{AC_LIBOBJ} macro instead.  @xref{Generic
@c Functions, , Generic Function Checks, autoconf, The Autoconf Manual}.
@c 
@code{LIBOBJS}への割り当てるものは徐々に無くなっていく構成物だということ
に注意してください．それらはAutomakeの将来のバージョンでは無視されるよう
になるでしょう．代わりに@code{AC_LIBOBJ}マクロを呼び出すべきです．
@xref{Generic Functions, , Generic Function Checks, autoconf, The
Autoconf Manual}.

@cvindex AC_LIBOBJ
@cvindex AC_LIBSOURCE
@cvindex AC_LIBSOURCES
@cvindex LIBOBJS

@item AC_PROG_RANLIB
@c This is required if any libraries are built in the package.
@c @xref{Particular Programs, , Particular Program Checks, autoconf, The
@c Autoconf Manual}.
@c 
これは，ライブラリをビルドするパッケージの場合に必要になります．
@xref{Particular Programs, , Particular Program Checks, autoconf, The
Autoconf Manual}.
@cvindex AC_PROG_RANLIB

@item AC_PROG_CXX
@c This is required if any C++ source is included.  @xref{Particular
@c Programs, , Particular Program Checks, autoconf, The Autoconf Manual}.
@c 
これは，C++ソースが含まれる場合に必要になります．@xref{Particular
Programs, , Particular Program Checks, autoconf, The Autoconf Manual}.
@cvindex AC_PROG_CXX

@item AC_PROG_F77
@c This is required if any Fortran 77 source is included.  This macro is
@c distributed with Autoconf version 2.13 and later.  @xref{Particular
@c Programs, , Particular Program Checks, autoconf, The Autoconf Manual}.
@c 
これは，Fortran77ソースが含まれる場合に必要になります．このマクロは
Autoconfのバージョン2.13以降で配布されます．@xref{Particular Programs, ,
Particular Program Checks, autoconf, The Autoconf Manual}.
@cvindex AC_PROG_F77

@item AC_F77_LIBRARY_LDFLAGS
@c This is required for programs and shared libraries that are a mixture of
@c languages that include Fortran 77 (@pxref{Mixing Fortran 77 With C and
@c C++}).  @xref{Macros, , Autoconf macros supplied with Automake}.
@c 
これはFortran77を含む言語が混在しているプログラムと共有ライブラリに対し
て必要になります(@pxref{Mixing Fortran 77 With C and C++})．
@xref{Macros, , Autoconf macros supplied with Automake}.
@cvindex AC_F77_LIBRARY_LDFLAGS

@item AC_PROG_LIBTOOL
@c Automake will turn on processing for @code{libtool} (@pxref{Top, ,
@c Introduction, libtool, The Libtool Manual}).
@c 
Automakeは@code{libtool}に対する処理を開始します(@pxref{Top, ,
Introduction, libtool, The Libtool Manual})．
@cvindex AC_PROG_LIBTOOL

@item AC_PROG_YACC
@c If a Yacc source file is seen, then you must either use this macro or
@c define the variable @samp{YACC} in @file{configure.in}.  The former is
@c preferred (@pxref{Particular Programs, , Particular Program Checks,
@c autoconf, The Autoconf Manual}).
@c 
Yaccソースファイルがある場合，このマクロを使用するか，
@file{configure.in}で変数@samp{YACC}を定義する必要があります．前者が好ま
れます(@pxref{Particular Programs, , Particular Program Checks,
autoconf, The Autoconf Manual})．
@cvindex AC_PROG_YACC
@cvindex YACC

@item AC_PROG_LEX
@c If a Lex source file is seen, then this macro must be used.
@c @xref{Particular Programs, , Particular Program Checks, autoconf, The
@c Autoconf Manual}.
@c 
Lexソースファイルがある場合，このマクロを使用する必要があります．
@xref{Particular Programs, , Particular Program Checks, autoconf, The
Autoconf Manual}.
@cvindex AC_PROG_LEX

@item AM_C_PROTOTYPES
@c This is required when using automatic de-ANSI-fication; see @ref{ANSI}.
@c 
これは，de-ANSI-ficationを自動的に使用するときに必要です．@ref{ANSI}を参
照してください．
@cvindex AM_C_PROTOTYPES

@item AM_GNU_GETTEXT
@c This macro is required for packages which use GNU gettext
@c (@pxref{gettext}).  It is distributed with gettext.  If Automake sees
@c this macro it ensures that the package meets some of gettext's
@c requirements.
@c 
このマクロはGNU gettextを使うパッケージに対して必要になります
(@pxref{gettext})．それはgettextとともに配布されます．Automakeがこのマク
ロを見つけた場合，このマクロはパッケージがgettextの必要条件のいくつかを
確実に満たすようにします．
@cvindex AM_GNU_GETTEXT

@item AM_MAINTAINER_MODE
@opindex --enable-maintainer-mode
@c This macro adds a @samp{--enable-maintainer-mode} option to
@c @code{configure}.  If this is used, @code{automake} will cause
@c @samp{maintainer-only} rules to be turned off by default in the
@c generated @file{Makefile.in}s.  This macro is disallowed in @samp{Gnits}
@c mode (@pxref{Gnits}).  This macro defines the @samp{MAINTAINER_MODE}
@c conditional, which you can use in your own @file{Makefile.am}.
@c 
このマクロは@code{configure}に@samp{--enable-maintainer-mode}オプション
を加えます．これが使用されている場合，@code{automake}は生成された
@file{Makefile.in}内の@samp{maintainer-only}規則をデフォルトで停止します．
このマクロは@samp{Gnits}モードでは許可されていません(@pxref{Gnits})．こ
のマクロは@samp{MAINTAINER_MODE}条件を定義し，自分の@file{Makefile.am}で
使用することが可能です．
@cvindex AM_MAINTAINER_MODE

@item AC_SUBST
@itemx AC_CHECK_TOOL
@itemx AC_CHECK_PROG
@itemx AC_CHECK_PROGS
@itemx AC_PATH_PROG
@itemx AC_PATH_PROGS
@c For each of these macros, the first argument is automatically defined as
@c a variable in each generated @file{Makefile.in}.  @xref{Setting Output
@c Variables, , Setting Output Variables, autoconf, The Autoconf Manual},
@c and @ref{Generic Programs, , Generic Program Checks, autoconf, The
@c Autoconf Manual}.
@c 
これらのそれぞれのマクロに対して，生成されるそれぞれの@file{Makefile.in} 
の変数として，最初の引数が自動的に定義されます．@xref{Setting Output
Variables, , Setting Output Variables, autoconf, The Autoconf Manual}. 
そして@ref{Generic Programs, , Generic Program Checks, autoconf, The
Autoconf Manual}を参照してください．
@cvindex AC_SUBST
@cvindex AC_CHECK_TOOL
@cvindex AC_CHECK_PROG
@cvindex AC_CHECK_PROGS
@cvindex AC_PATH_PROG
@cvindex AC_PATH_PROGS

@end table


@node Invoking aclocal, Macros, Optional, configure
@section aclocal.m4の自動生成

@cindex Invoking aclocal
@cindex aclocal, Invoking

@c Automake includes a number of Autoconf macros which can be used in your
@c package; some of them are actually required by Automake in certain
@c situations.  These macros must be defined in your @file{aclocal.m4};
@c otherwise they will not be seen by @code{autoconf}.
@c 
Automakeには，パッケージで使用可能な多くのAutoconfマクロがあります．状況
によってはAutomakeが実際に必要とするものもあります．これらのマクロは
@file{aclocal.m4}で定義する必要があります．さもなければ，それらは
@code{autoconf}では見つからないでしょう．

@c The @code{aclocal} program will automatically generate @file{aclocal.m4}
@c files based on the contents of @file{configure.in}.  This provides a
@c convenient way to get Automake-provided macros, without having to
@c search around.  Also, the @code{aclocal} mechanism allows other packages
@c to supply their own macros.
@c 
@code{aclocal}プログラムは，@file{configure.in}の内容に基づいて自動的に
@file{aclocal.m4}ファイルを生成します．これは，Automakeが提供するマクロ
を入手する便利な方法を提供し，それらを探し回る必要がないようになっていま
す．また，@code{aclocal}のメカニズムで，他のパッケージで使用するための独
自のマクロを供給することが可能になります．

@c At startup, @code{aclocal} scans all the @file{.m4} files it can find,
@c looking for macro definitions.  Then it scans @file{configure.in}.  Any
@c mention of one of the macros found in the first step causes that macro,
@c and any macros it in turn requires, to be put into @file{aclocal.m4}.
@c 
はじめに，@code{aclocal}はマクロ定義を探しながら見つかったすべての
@file{.m4}ファイルをスキャンします．それから@file{configure.in}をスキャ
ンします．最初のステップで見つかったマクロの記述によって，マクロとマクロ
が要求するファイルを@file{aclocal.m4}に書き込みます．

@c The contents of @file{acinclude.m4}, if it exists, are also
@c automatically included in @file{aclocal.m4}.  This is useful for
@c incorporating local macros into @file{configure}.
@c 
@file{acinclude.m4}の内容も，存在する場合は自動的に@file{aclocal.m4}に含
められます．これは@file{configure}にローカルなマクロを取り入れるときに役
に立ちます．

@c @code{aclocal} tries to be smart about looking for new @code{AC_DEFUN}s
@c in the files it scans.  It also
@c tries to copy the full text of the scanned file into @file{aclocal.m4},
@c including both @samp{#} and @samp{dnl} comments.  If you want to make a
@c comment which will be completely ignored by @code{aclocal}, use
@c @samp{##} as the comment leader.
@c 
@code{aclocal}は，スキャンしているファイルの新しい@code{AC_DEFUN}を賢い
方法で探します．また，スキャンしているファイルのすべての文章も
@file{aclocal.m4}に含めようとし，それには@samp{#}と@samp{dnl}のコメント
も含まれます．@code{aclocal}がコメントを完全に無視するようにしたい場合は，
コメントの最初に@samp{##}を使用して下さい．

@c @code{aclocal} accepts the following options:
@c 
@code{aclocal}は，以下のオプションを受け入れます．

@table @code
@item --acdir=@var{dir}
@opindex --acdir
@c Look for the macro files in @var{dir} instead of the installation
@c directory.  This is typically used for debugging.
@c 
インストールされたディレクトリの代わりに，@var{dir}でマクロファイルを探
します．これは，通常デバッグで使用します．

@item --help
@opindex --help
@c Print a summary of the command line options and exit.
@c 
コマンドラインオプションの概要を出力し，終了します．

@item -I @var{dir}
@opindex -I
@c Add the directory @var{dir} to the list of directories searched for
@c @file{.m4} files.
@c 
@file{.m4}ファイルを探すディレクトリのリストに，@var{dir}ディレクトリを
追加します．

@item --output=@var{file}
@opindex --output
@c Cause the output to be put into @var{file} instead of @file{aclocal.m4}.
@c 
@file{aclocal.m4}の代わりに，@var{file}に出力を書き込みます．

@item --print-ac-dir
@opindex --print-ac-dir
@c Prints the name of the directory which @code{aclocal} will search to
@c find third-party @file{.m4} files.  When this option is given, normal
@c processing is suppressed.  This option can be used by a package to
@c determine where to install a macro file.
@c 
サードパーティーの@file{.m4}ファイルを見つけるために@code{aclocal}が検索
するディレクトリの名前を出力します．このオプションが与えられているとき，
標準的な処理は行われません．このオプションは，パッケージがマクロファイル
をインストールする場所を決定するために使用することが可能です．

@item --verbose
@opindex --verbose
@c Print the names of the files it examines.
@c 
調査しているファイルの名前を出力します．

@item --version
@opindex --version
@c Print the version number of Automake and exit.
@c 
Automakeのバージョンナンバーを出力し，終了します．
@end table


@node Macros, Extending aclocal, Invoking aclocal, configure
@section Automakeが提供するAutoconfマクロ

@c Automake ships with several Autoconf macros that you can use from your
@c @file{configure.in}.  When you use one of them it will be included by
@c @code{aclocal} in @file{aclocal.m4}.
@c 
Automakeは，@file{configure.in}で使用可能ないくつかのAutoconfマクロとと
もに出荷されています．そのうちの一つを使用するとき，@code{aclocal}で
@file{aclocal.m4}に含められるでしょう．

@menu
* Public macros::               Macros that you can use.
* Private macros::              Macros that you should not use.
@end menu

@c consider generating the following subsections automatically from m4 files.

@node Public macros, Private macros, Macros, Macros
@subsection パブリックマクロ

@table @code
@item AM_CONFIG_HEADER
@c Automake will generate rules to automatically regenerate the config
@c header.
@c 
Automakeは，コンフィグヘッダを自動的に再生成する規則を生成します．
@cvindex AM_CONFIG_HEADER

@item AM_ENABLE_MULTILIB
@c This is used when a ``multilib'' library is being built.  The first
@c optional argument is the name of the @file{Makefile} being generated; it
@c defaults to @samp{Makefile}.  The second option argument is used to find
@c the top source directory; it defaults to the empty string (generally
@c this should not be used unless you are familiar with the internals).
@c @xref{Multilibs}.
@c 
これは，``multilib''ライブラリをビルドするときに使用します．最初のオプショ
ン引数は，生成される@file{Makefile}の名前です．デフォルトは
@samp{Makefile}です．二番目のオプション引数は，ソースディレクトリのトッ
プを見つけるために使用します．デフォルトは空の文字列です(内部を理解して
いない場合，通常はこれを使用しないほうが良いでしょう．)
@xref{Multilibs}.

@item AM_C_PROTOTYPES
@c Check to see if function prototypes are understood by the compiler.  If
@c so, define @samp{PROTOTYPES} and set the output variables @samp{U} and
@c @samp{ANSI2KNR} to the empty string.  Otherwise, set @samp{U} to
@c @samp{_} and @samp{ANSI2KNR} to @samp{./ansi2knr}.  Automake uses these
@c values to implement automatic de-ANSI-fication.
@c 
関数プロトタイプをコンパイラが理解するかどうかを調査します．その場合，
@samp{PROTOTYPES}を定義して，出力変数@samp{U}と@samp{ANSI2KNR}を空の文字
列に設定します．それ以外の場合，@samp{U}を@samp{_}に，@samp{ANSI2KNR}を
@samp{./ansi2knr}にします．Automakeはこれらの値を自動的な
de-ANSI-ficationを実装するために使用します．
@cvindex AM_C_PROTOTYPES

@item AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
@c If the use of @code{TIOCGWINSZ} requires @file{<sys/ioctl.h>}, then
@c define @code{GWINSZ_IN_SYS_IOCTL}.  Otherwise @code{TIOCGWINSZ} can be
@c found in @file{<termios.h>}.
@c 
@code{TIOCGWINSZ}を使用するときに@file{<sys/ioctl.h>}が必要な場合，
@code{GWINSZ_IN_SYS_IOCTL}を定義します．それ以外の場合，
@code{TIOCGWINSZ}は@file{<termios.h>}で見つかるはずです．
@cvindex AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL

@item AM_INIT_AUTOMAKE([OPTIONS])
@itemx AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
@c Runs many macros required for proper operation of the generated Makefiles.
@c 
生成されたMakefileが適切な処理を行なうために必要な多くのマクロを実行しま
す．

@c This macro has two forms, the second of which has two required
@c arguments: the package and the version number.  This latter form is
@c obsolete because the @var{package} and @var{version} can be obtained
@c from Autoconf's @code{AC_INIT} macro (which itself has an old and a new
@c form).
@c 
このマクロには2つの形式があり，2番めのものは2つの引数が必要です．パッケー
ジとバージョンナンバーです．この後者の形式は，@var{package}と
@var{version}がAutoconfの@code{AC_INIT}マクロ(それ自身も古い形式と新しい
形式があります)から得ることが可能なので時代遅れです．

@c If your @file{configure.in} has:
@c 
@file{configure.in}が以下の場合を考えます．
@example
AC_INIT(src/foo.c)
AM_INIT_AUTOMAKE(mumble, 1.5)
@end example
@c you can modernize it as follow:
@c 
以下のようにして新しいものにすることが可能です．
@example
AC_INIT(mumble, 1.5)
AC_CONFIG_SRCDIR(src/foo.c)
AM_INIT_AUTOMAKE
@end example

@c Note that if you're upgrading your @file{configure.in} from an earlier
@c version of Automake, it is not always correct to simply move the package
@c and version arguments from @code{AM_INIT_AUTOMAKE} directly to
@c @code{AC_INIT}, as in the example above.  The first argument of
@c @code{AC_INIT} is the name of your package (e.g. @samp{GNU Automake}),
@c not the tarball name (e.g. @samp{automake}) you used to pass to
@c @code{AM_INIT_AUTOMAKE}.  Autoconf's rule to derive a tarball name from
@c the package name should work for most but not all packages.  Especially,
@c if your tarball name is not all lower case, you will have to use the
@c four-argument form of @code{AC_INIT} (supported in Autoconf versions
@c greater than 2.52g).
@c 
@file{configure.in}を以前のバージョンのAutomakeから更新している場合，上
記の例のように，単純にパッケージバージョンの引数を，直接
@code{AM_INIT_AUTOMAKE}から@code{AC_INIT}へ移動することが常に正しいとは
限りません．@code{AC_INIT}の最初の引数はパッケージの名前(例えば@samp{GNU
Automake})ですが，@code{AM_INIT_AUTOMAKE}に渡すために使用しているtarball 
の名前(例えば@samp{automake})ではありません．パッケージ名からtarball名を
導き出すAutoconfの規則は，ほとんどのパッケージで動作しますが全てで動作す
るわけではないでしょう．特に，tarballの名前が全て小文字の場合，
@code{AC_INIT}の4つの引数を用いる形式を使用する必要があるでしょう
(Autoconfのバージョン2.52g以上からサポートされています)．

@c When @code{AM_INIT_AUTOMAKE} is called with a single argument, it is
@c interpreted as a space-separated list of Automake options which should
@c be applied to every @file{Makefile.am} in the tree.  The effect is as if
@c each option were listed in @code{AUTOMAKE_OPTIONS}.
@c 
@code{AM_INIT_AUTOMAKE}が単一の引数で呼び出されたとき，それはスペースで
分けられた，ツリーの全ての@file{Makefile.am}に適用されるAutomakeのオプショ
ンのリストとして解釈されます．その影響は，それぞれのオプションを
@code{AUTOMAKE_OPTIONS}でリストアップしているかのようになります．

@c By default this macro @code{AC_DEFINE}'s @samp{PACKAGE} and
@c @samp{VERSION}.  This can be avoided by passing the @samp{no-define}
@c option, as in:
@c 
デフォルトでこのマクロは@samp{PACKAGE}と@samp{VERSION}を@code{AC_DEFINE} 
します．以下のように@samp{no-define}オプションを渡すことでこれを避けるこ
とが可能です．
@example
AM_INIT_AUTOMAKE([gnits 1.5 no-define dist-bzip2])
@end example
@c or by passing a third non-empty argument to the obsolete form.
@c 
または時代遅れの形式に空の3番めに引数を渡すことで避けることが可能です．
@cvindex PACKAGE, prevent definition
@cvindex VERSION, prevent definition


@item AM_PATH_LISPDIR
@c Searches for the program @code{emacs}, and, if found, sets the output
@c variable @code{lispdir} to the full path to Emacs' site-lisp directory.
@c 
@code{emacs}プログラムを検索し，見つかった場合は，Emacsのsite-lispディレ
クトリへのフルパスを出力変数@code{lispdir}に設定します．

@c Note that this test assumes the @code{emacs} found to be a version that
@c supports Emacs Lisp (such as @sc{gnu} Emacs or XEmacs).  Other emacsen
@c can cause this test to hang (some, like old versions of MicroEmacs,
@c start up in interactive mode, requiring @samp{C-x C-c} to exit, which
@c is hardly obvious for a non-emacs user).  In most cases, however, you
@c should be able to use @samp{C-c} to kill the test.  In order to avoid
@c problems, you can set @code{EMACS} to ``no'' in the environment, or
@c use the @samp{--with-lispdir} option to @command{configure} to
@c explictly set the correct path (if you're sure you have an @code{emacs}
@c that supports Emacs Lisp.
@c 
このテストは(@sc{gnu} EmacsやXEmacsのような)Emacs Lispをサポートしている
バージョンの@code{emacs}が見つかることを想定しています．それ以外の
emacsenでは，このテストはハングアップします(古いバージョンのMicroEmacsの
ように，対話モードでセットアップされているものは，終了するために
@samp{C-x C-c}が必要で，emacsユーザでなければなかなか気付かないでしょう)．
しかし，ほとんどの状況で，テストを終了するために@samp{C-c}を使用すること
が可能でしょう．問題を避けるため，環境変数で@code{EMACS}を``no''に設定し
たり，(Emacs Lispをサポートしている@code{emacs}が確実にある場合は)正しい
パスを明示的に設定するために@command{configure}で@samp{--with-lispdir}を
使用することが可能です．
@cvindex AM_PATH_LISPDIR

@item AM_PROG_AS
@c Use this macro when you have assembly code in your project.  This will
@c choose the assembler for you (by default the C compiler) and set
@c @code{CCAS}, and will also set @code{CCASFLAGS} if required.
@c 
プロジェクトにアセンブラコードがあるときは，このマクロを使用して下さい．
これはアセンブラを選択し(デフォルトはCコンパイラ)，@code{CCAS}を設定し，
そして，必要な場合は@code{CCASFLAGS}も設定します．

@item AM_PROG_CC_C_O
@c This is like @code{AC_PROG_CC_C_O}, but it generates its results in the
@c manner required by automake.  You must use this instead of
@c @code{AC_PROG_CC_C_O} when you need this functionality.
@c 
これは@code{AC_PROG_CC_C_O}に似ていますが，それはautomakeが要求する形式
の結果を生成します．この機能が必要なときは，@code{AC_PROG_CC_C_O}の代わ
りにこれを使用して下さい．

@item AM_PROG_CC_STDC
@c If the C compiler is not in ANSI C mode by default, try to add an option
@c to output variable @code{CC} to make it so.  This macro tries various
@c options that select ANSI C on some system or another.  It considers the
@c compiler to be in ANSI C mode if it handles function prototypes correctly.
@c 
CコンパイラがデフォルトでANSI Cモードでない場合，それをANSI Cモードにす
るため，出力変数@code{CC}にオプションの追加を試みます．このマクロはシス
テムごとのANSI Cを選択する様々なオプションを試みます．関数プロトタイプを
正しく処理する場合，コンパイラがANSI Cモードであると考えます．

@c If you use this macro, you should check after calling it whether the C
@c compiler has been set to accept ANSI C; if not, the shell variable
@c @code{am_cv_prog_cc_stdc} is set to @samp{no}.  If you wrote your source
@c code in ANSI C, you can make an un-ANSIfied copy of it by using the
@c @code{ansi2knr} option (@pxref{ANSI}).
@c 
このマクロを使用する場合，それを呼び出した後で，CコンパイラをANSI Cに適
用させる設定があるかどうかを調査する必要があります．そうでない場合，シェ
ル変数の@code{am_cv_prog_cc_stdc}は@samp{no}に設定されます．ANSI Cでソー
スコードを書いた場合は，@code{ansi2knr}オプションを使用して，非ANSIfied 
のコピーを作成することが可能です(@pxref{ANSI})．

@item AM_PROG_LEX
@cindex HP-UX 10, lex problems
@cindex lex problems with HP-UX 10
@c Like @code{AC_PROG_LEX} (@pxref{Particular Programs, , Particular
@c Program Checks, autoconf, The Autoconf Manual}), but uses the
@c @code{missing} script on systems that do not have @code{lex}.
@c @samp{HP-UX 10} is one such system.
@c 
@code{AC_PROG_LEX}に似ていますが(@pxref{Particular Programs, ,
Particular Program Checks, autoconf, The Autoconf Manual})，@code{lex}が
無いシステムで@code{missing}スクリプトを使用します．@samp{HP-UX 10}はそ
のようなシステムの一つです．

@item AM_PROG_GCJ
@c This macro finds the @code{gcj} program or causes an error.  It sets
@c @samp{GCJ} and @samp{GCJFLAGS}.  @code{gcj} is the Java front-end to the
@c GNU Compiler Collection.
@c 
このマクロは，@code{gcj}プログラムを見つけるか，そうでなければエラーを発
生します．それは@samp{GCJ}と@samp{GCJFLAGS}を設定します．@code{gcj}は，
GNU Compiler CollectionのJavaフロントエンドです．
@cvindex AM_PROG_GCJ

@item AM_SYS_POSIX_TERMIOS
@cvindex am_cv_sys_posix_termios
@cindex POSIX termios headers
@cindex termios POSIX headers
@c Check to see if POSIX termios headers and functions are available on the
@c system.  If so, set the shell variable @code{am_cv_sys_posix_termios} to
@c @samp{yes}.  If not, set the variable to @samp{no}.
@c 
POSIX termiosヘッダと関数がシステムで利用可能かどうか調査します．その場
合，シェル変数@code{am_cv_sys_posix_termios}を@samp{yes}に設定します．そ
うでない場合，その変数を@samp{no}に設定します．

@item AM_WITH_DMALLOC
@cvindex WITH_DMALLOC
@cindex dmalloc, support for
@opindex --with-dmalloc
@c Add support for the
@c @uref{ftp://ftp.letters.com/src/dmalloc/dmalloc.tar.gz, dmalloc}
@c package.  If the user configures with @samp{--with-dmalloc}, then define
@c @code{WITH_DMALLOC} and add @samp{-ldmalloc} to @code{LIBS}.
@c 
@uref{ftp://ftp.letters.com/src/dmalloc/dmalloc.tar.gz, dmalloc}パッケー
ジに対するサポートを追加します．ユーザーが@samp{--with-demalloc}を用いて
コンフィグレーションする場合，@code{WITH_DMALLOC}を定義し，@code{LIBS}に
@samp{-ldmalloc}を加えます．

@item AM_WITH_REGEX
@cvindex WITH_REGEX
@opindex --with-regex
@cindex regex package
@cindex rx package
@c Adds @samp{--with-regex} to the @code{configure} command line.  If
@c specified (the default), then the @samp{regex} regular expression
@c library is used, @file{regex.o} is put into @samp{LIBOBJS}, and
@c @samp{WITH_REGEX} is defined.  If @samp{--without-regex} is given, then
@c the @samp{rx} regular expression library is used, and @file{rx.o} is put
@c into @samp{LIBOBJS}.
@c 
@code{configure}コマンドラインに@samp{--with-regex}を追加します．指定さ
れた(デフォルトの)場合，@samp{regex}の正規表現ライブラリが使用され，
@file{regex.o}が@samp{LIBOBJS}に書き込まれ，そして，@samp{WITH_REGEX}が
定義されます．@samp{--without-regex}が与えられる場合，@samp{rx}正規表現
ライブラリが使用され，@file{rx.o}が@samp{LIBOBJS}に書き込まれます．

@end table

@node Private macros,  , Public macros, Macros
@subsection プライベートマクロ

@c The following macros are private macros you should not call directly.
@c They are called by the other public macros when appropriate.  Do not
@c rely on them, as they might be changed in a future version.  Consider
@c them as implementation details; or better, do not consider them at all:
@c skip this section!
@c 
以下のマクロは，直接呼び出すべきではないプライベートマクロです．それらは
適切なときに他のパブリックマクロから呼び出されます．将来のバージョンで変
更される可能性があるので，それらを呼び出さないでください．それらは実装の
詳細を考察するものと考えてください．または，何も考え内容が良いかもしれま
せん．このセクションは読み飛ばしてください！

@table @code
@item _AM_DEPENDENCIES
@itemx AM_SET_DEPDIR
@itemx AM_DEP_TRACK
@itemx AM_OUTPUT_DEPENDENCY_COMMANDS
@c These macros are used to implement automake's automatic dependency
@c tracking scheme.  They are called automatically by automake when
@c required, and there should be no need to invoke them manually.
@c 
これらのマクロはautomakeの自動的な依存性の追跡手法を実装するために使用さ
れます．それらは，要求されたときautomakeから自動的に呼び出され，手動で呼
び出す必然性はありません．

@item AM_MAKE_INCLUDE
@c This macro is used to discover how the user's @code{make} handles
@c @code{include} statements.  This macro is automatically invoked when
@c needed; there should be no need to invoke it manually.
@c 
このマクロは，ユーザの@code{make}が@code{include}文を処理する方法を知る
ために使用されます．それらは，必要なとき自動的に呼び出されます．手動で呼
び出す必然性はありません．

@item AM_PROG_INSTALL_STRIP
@c This is used to find a version of @code{install} which can be used to
@c @code{strip} a program at installation time.  This macro is
@c automatically included when required.
@c 
これは，インストール時にプログラムを@code{strip}するために使用可能な
@code{install}のバージョンを知るために使用されます．このマクロは要求され
るとき自動的に含められます．

@item AM_SANITY_CHECK
@c This checks to make sure that a file created in the build directory is
@c newer than a file in the source directory.  This can fail on systems
@c where the clock is set incorrectly.  This macro is automatically run
@c from @code{AM_INIT_AUTOMAKE}.
@c 
これは，ビルドディレクトリに作成されるファイルがソースディレクトリのファ
イルより確実に新しいことを調査します．時計の設定が正しくないシステムで失
敗するはずです．このマクロは@code{AM_INIT_AUTOMAKE}から自動的に実行され
ます．

@end table



@node Extending aclocal,  , Macros, configure
@section 独自のaclocalマクロを書く

@cindex aclocal, extending
@cindex Extending aclocal

@c The @code{aclocal} program doesn't have any built-in knowledge of any
@c macros, so it is easy to extend it with your own macros.
@c 
@code{aclocal}プログラムには，マクロ組み込みの知識が全く無いので，独自の
マクロでそれを拡張することは容易です．

@c This is mostly used for libraries which want to supply their own
@c Autoconf macros for use by other programs.  For instance the
@c @code{gettext} library supplies a macro @code{AM_GNU_GETTEXT} which
@c should be used by any package using @code{gettext}.  When the library is
@c installed, it installs this macro so that @code{aclocal} will find it.
@c 
これは，他のプログラムで使用する独自のAutoconfマクロを供給したいライブラ
リに対して主に使用されます．例えば@code{gettext}ライブラリは，
@code{gettext}を使用しているあらゆるパッケージで使用されるように，
@code{AM_GNU_GETTEXT}マクロを供給しています．ライブラリがインストールさ
れるとき，@code{aclocal}で見つかるように，このマクロをインストールします．

@c A file of macros should be a series of @code{AC_DEFUN}'s.  The
@c @code{aclocal} programs also understands @code{AC_REQUIRE}, so it is
@c safe to put each macro in a separate file.  @xref{Prerequisite Macros, ,
@c , autoconf, The Autoconf Manual}, and @ref{Macro Definitions, , ,
@c autoconf, The Autoconf Manual}.
@c 
マクロのファイルは一連の@code{AC_DEFUN}で行います．@code{aclocal}プログ
ラムは@code{AC_REQUIRE}も理解するので，別々のファイルにそれぞれのマクロ
を書き込むと安全です．@xref{Prerequisite Macros, , , autoconf, The
Autoconf Manual}.そして，@ref{Macro Definitions, , , autoconf, The
Autoconf Manual}を参照してください．

@c A macro file's name should end in @file{.m4}.  Such files should be
@c installed in @code{`aclocal --print-ac-dir`} (which usually happens to
@c be @file{$(datadir)/aclocal}).
@c 
マクロファイルの名前は@file{.m4}で終わらせすべきです．そのようなファイル
は@code{`aclocal --print-ac-dir`} (偶然ですが，通常は
@file{$(datadir)/aclocal}になります)にインストールされます．


@node Top level, Alternative, configure, Top
@chapter トップレベルの@file{Makefile.am}

@cindex SUBDIRS, explained

@c In packages with subdirectories, the top level @file{Makefile.am} must
@c tell Automake which subdirectories are to be built.  This is done via
@c the @code{SUBDIRS} variable.
@c 
サブディレクトリがあるパッケージでは，トップレベルの@file{Makefile.am}で
ビルドするサブディレクトリをAutomakeに伝える必要があります．これは
@code{SUBDIRS}変数によってなされます．
@vindex SUBDIRS

@c The @code{SUBDIRS} macro holds a list of subdirectories in which
@c building of various sorts can occur.  Many targets (e.g. @code{all}) in
@c the generated @file{Makefile} will run both locally and in all specified
@c subdirectories.  Note that the directories listed in @code{SUBDIRS} are
@c not required to contain @file{Makefile.am}s; only @file{Makefile}s
@c (after configuration).  This allows inclusion of libraries from packages
@c which do not use Automake (such as @code{gettext}).  The directories
@c mentioned in @code{SUBDIRS} must be direct children of the current
@c directory.  For instance, you cannot put @samp{src/subdir} into
@c @code{SUBDIRS}.
@c 
@code{SUBDIRS}マクロは，さまざまな種類のビルドが行われるサブディレクトリ
のリストを保持しています．生成されている@file{Makefile}内の多くのターゲッ
ト(例えば@code{all})は，ローカルと指定されたすべてのサブディレクトリの両
方で実行されます．@code{SUBDIRS}でリストアップされているディレクトリには，
@file{Makefile.am}を含んでいる必要がないことに注意してください．(コンフィ
ギュレーションの後の)@file{Makefile}だけが必要です．こうすることで，
(@code{gettext}のような)Automakeを使用しないパッケージからライブラリを含
めることが可能になります．@code{SUBDIRS}に書かれたディレクトリは，現在の
ディレクトリの直下にする必要があります．例えば，@code{SUBDIRS}に
@samp{src/subdir}を書き込むことはできません．

@c In packages that use subdirectories, the top-level @file{Makefile.am} is
@c often very short.  For instance, here is the @file{Makefile.am} from the
@c GNU Hello distribution:
@c 
サブディレクトリを使用しているパッケージでは，トップレベルの
@file{Makefile.am}は非常に短いことが多くなっています．例えば，GNU Hello 
配布物の@file{Makefile.am}は以下のようになっています．
@c 
@example
EXTRA_DIST = BUGS ChangeLog.O README-alpha
SUBDIRS = doc intl po src tests
@end example

@cindex SUBDIRS, overriding
@cindex Overriding SUBDIRS

@c It is possible to override the @code{SUBDIRS} variable if, like in the
@c case of GNU @code{Inetutils}, you want to only build a subset of the
@c entire package.  In your @file{Makefile.am} include:
@c 
GNU @code{Inetutils}のように，パッケージ全体のサブセットをビルドしたいだ
けの場合，@code{SUBDIRS}変数を無効にすることが可能です．
@file{Makefile.am}に含めるものは以下のようになります．

@example
SUBDIRS = @@MY_SUBDIRS@@
@end example

@c Then in your @file{configure.in} you can specify:
@c 
そして，@file{configure.in}で以下ように指定することが可能です．

@example
MY_SUBDIRS="src doc lib po"
AC_SUBST(MY_SUBDIRS)
@end example

@c (Note that we don't use the variable name @code{SUBDIRS} in our
@c @file{configure.in}; that would cause Automake to believe that every
@c @file{Makefile.in} should recurse into the listed subdirectories.)
@c 
(我々が，@file{configure.in}で変数名@code{SUBDIRS}を使用していないことに
注意して下さい．そうすると，Automakeはすべての@file{Makefile.in}がリスト
アップされているサブディレクトリ内部で再帰的なっていると信じてしまいます．)

@c The upshot of this is that Automake is tricked into building the package
@c to take the subdirs, but doesn't actually bind that list until
@c @code{configure} is run.
@c 
この結果，サブディレクトリまでパッケージをビルドするようにAutomakeをだま
しますが，実際には，@code{configure}が実行されるまで，そのリストは結び付
けられません．

@c Although the @code{SUBDIRS} macro can contain configure substitutions
@c (e.g. @samp{@@DIRS@@}); Automake itself does not actually examine the
@c contents of this variable.
@c 
@code{SUBDIRS}マクロには，configureの置換式(例えば@samp{@@DIRS@@})を含め
ることが可能です．Automake自身がこの変数の中身を実際に調べるわけではあり
ません．

@c If @code{SUBDIRS} is defined, then your @file{configure.in} must include
@c @code{AC_PROG_MAKE_SET}.  When Automake invokes @code{make} in a
@c subdirectory, it uses the value of the @code{MAKE} variable.  It passes
@c the value of the variable @code{AM_MAKEFLAGS} to the @code{make}
@c invocation; this can be set in @file{Makefile.am} if there are flags you
@c must always pass to @code{make}.
@c 
@code{SUBDIRS}が定義されている場合，@file{configure.in}に
@code{AC_PROG_MAKE_SET}を含める必要があります．Automakeがサブディレクト
リで@code{make}を呼び出すとき，@code{MAKE}変数の値を使用します．それは，
変数@code{AM_MAKEFLAGS}の値を@code{make}の呼び出しに渡します．常に
@code{make}に渡す必要があるフラグがある場合，これを@file{Makefile.am}で
設定することが可能になります．
@vindex MAKE
@vindex MAKEFLAGS

@c The use of @code{SUBDIRS} is not restricted to just the top-level
@c @file{Makefile.am}.  Automake can be used to construct packages of
@c arbitrary depth.
@c 
@code{SUBDIRS}の使用は，トップレベルの@file{Makefile.am}だけに制限されて
いません．Automakeは任意の深さのパッケージを構築するために使用することが
可能です．

@c By default, Automake generates @file{Makefiles} which work depth-first
@c (@samp{postfix}).  However, it is possible to change this ordering.  You
@c can do this by putting @samp{.} into @code{SUBDIRS}.  For instance,
@c putting @samp{.}  first will cause a @samp{prefix} ordering of
@c directories.  All @samp{clean} targets are run in reverse order of build
@c targets.
@c 
デフォルトで，Automakeはdepth-first (@samp{postfix})で動作する
@file{Makefile}を生成します．しかし，この順番を変えることは可能です．
@code{SUBDIRS}に@samp{.}を書くことでそうすることが可能です．例えば，
@samp{.}を最初に書き込むことで，@samp{prefix}をディレクトリの順序にしま
す．全ての@samp{clean}ターゲットは，ターゲットがビルドされた反対の順番で
実行されます．

@c Sometimes, such as when running @code{make dist}, you want all possible
@c subdirectories to be examined.  In this case Automake will use
@c @code{DIST_SUBDIRS}, instead of @code{SUBDIRS}, to determine where to
@c recurse.  This variable will also be used when the user runs
@c @code{distclean} or @code{maintainer-clean}.  It should be set to the
@c full list of subdirectories in the project.  If this macro is not set,
@c Automake will attempt to set it for you.
@c 
@code{make dist}を実行するときのように，可能な限りすべてのサブディレクト
リを調査したいときもあります．この状況では，再帰する場所を決定するため，
Automakeは@code{SUBDIRS}の代わりに@code{DIST_SUBDIRS}を使用します．この
変数は，ユーザが@code{distclean}や@code{maintainer-clean}を実行するとき
にも使用されます．プロジェクトのサブディレクトリの完全なリストを設定した
ほうが良いでしょう．Automakeはそれを設定するように伝えるでしょう．


@node Alternative, Rebuilding, Top level, Top
@chapter サブディレクトリに代わるアプローチ

@c If you've ever read Peter Miller's excellent paper,
@c @uref{http://www.pcug.org.au/~millerp/rmch/recu-make-cons-harm.html,
@c Recursive Make Considered Harmful}, the preceding section on the use of
@c subdirectories will probably come as unwelcome advice.  For those who
@c haven't read the paper, Miller's main thesis is that recursive
@c @code{make} invocations are both slow and error-prone.
@c 
Peter Millerの優れた論文をすでに読んでいる場合
@uref{http://www.pcug.org.au/~millerp/rmch/recu-make-cons-harm.html,
Recursive Make Considered Harmful}，サブディレクトリを使用する前のセクショ
ンは，おそらくありがたくない助言になるでしょう．論文を読んでいない人のた
めに，Millerの主題は，再帰的な@code{make}の呼び出しは，遅くてエラーを発
生しやすいということです．

@c Automake provides sufficient cross-directory support @footnote{We
@c believe.  This work is new and there are probably warts.
@c @xref{Introduction}, for information on reporting bugs.} to enable you
@c to write a single @file{Makefile.am} for a complex multi-directory
@c package.
@c 
複雑な複数のディレクトリがあるパッケージに対して，単一の
@file{Makefile.am}だけを書くことを可能にする，ディレクトリを跨るための優
れたサポート@footnote{我々は信じています．この動作は新しく，問題がある可
能性があります．バグレポートの情報は，@xref{Introduction}.}を，Automake 
は提供しています．

@c By default an installable file specified in a subdirectory will have its
@c directory name stripped before installation.  For instance, in this
@c example, the header file will be installed as
@c @file{$(includedir)/stdio.h}:
@c 
デフォルトで，サブディレクトリで指定されているインストール可能なファイル
は，インストールする前にそのディレクトリ名が切り取られています．例えば以
下の例では，ヘッダファイルが@file{$(includedir)/stdio.h}にインストールさ
れるでしょう．

@example
include_HEADERS = inc/stdio.h
@end example

@cindex nobase_
@cindex Path stripping, avoiding
@cindex Avoiding path stripping

@c However, the @samp{nobase_} prefix can be used to circumvent this path
@c stripping.  In this example, the header file will be installed as
@c @file{$(includedir)/sys/types.h}:
@c 
しかし，@samp{nobase_}を前置することで，このパスを切り取りを回避すること
が可能になります．以下の例では，ヘッダファイルは
@file{$(includedir)/sys/types.h}にインストールされるでしょう．

@example
nobase_include_HEADERS = sys/types.h
@end example

@cindex nobase_ and dist_ or nodist_
@cindex dist_ and nobase_
@cindex nodist_ and nobase_

@c @samp{nobase_} should be specified first when used in conjonction with
@c either @samp{dist_} or @samp{nodist_} (@pxref{Dist}).  For instance:
@c 
@samp{nobase_}は，@samp{dist_}や@samp{nodist_}(@pxref{Dist})のいずれかと
組合わせて使用するとき，最初に指定するべきです．例えば以下のようにします．

@example
nobase_dist_pkgdata_DATA = images/vortex.pgm
@end example

@node Rebuilding, Programs, Alternative, Top
@chapter Makefileのリビルド

@c Automake generates rules to automatically rebuild @file{Makefile}s,
@c @file{configure}, and other derived files like @file{Makefile.in}.
@c 
Automakeは，@file{Makefile}，@file{configure}，そして@file{Makefile.in} 
のようなその他の派生するファイルを，自動的にリビルドする規則を生成します．

@c If you are using @code{AM_MAINTAINER_MODE} in @file{configure.in}, then
@c these automatic rebuilding rules are only enabled in maintainer mode.
@c 
@file{configure.in}で@code{AM_MAINTAINER_MODE}を使用している場合，これら
の自動的なリビルドの規則は，管理者モードでのみ利用可能になります．

@c Sometimes you need to run @code{aclocal} with an argument like @code{-I}
@c to tell it where to find @file{.m4} files.  Since sometimes @code{make}
@c will automatically run @code{aclocal}, you need a way to specify these
@c arguments.  You can do this by defining @code{ACLOCAL_AMFLAGS}; this
@c holds arguments which are passed verbatim to @code{aclocal}.  This macro
@c is only useful in the top-level @file{Makefile.am}.
@c 
@file{.m4}ファイルを探す場所を伝えるために，@code{-I}のような引数を用い
て@code{aclocal}実行する必要があることもあります．@code{make}が自動的に
@code{aclocal}を実行するときもあるので，これらの引数を指定する方法が必要
になります．@code{ACLOCAL_AMFLAGS}を定義することで，こうすることが可能に
なります．これは，@code{aclocal}に渡す引数をそのまま保持しています．この
マクロは，トップレベルの@file{Makefile.am}でのみ役に立ちます．
@vindex ACLOCAL_AMFLAGS


@node Programs, Other objects, Rebuilding, Top
@chapter プログラムとライブラリのビルド

@c A large part of Automake's functionality is dedicated to making it easy
@c to build programs and libraries.
@c 
Automakeの機能の大半は，プログラムとライブラリのビルドを容易にすることに
費やされています．

@menu
* A Program::                   Building a program
* A Library::                   Building a library
* A Shared Library::            Building a Libtool library
* Program and Library Variables::  Variables controlling program and
                                library builds
* LIBOBJS::                     Special handling for LIBOBJS and ALLOCA
* Program variables::           Variables used when building a program
* Yacc and Lex::                Yacc and Lex support
* C++ Support::
* Assembly Support::
* Fortran 77 Support::
* Java Support::
* Support for Other Languages::
* ANSI::                        Automatic de-ANSI-fication
* Dependencies::                Automatic dependency tracking
* EXEEXT::                      Support for executable extensions
@end menu


@node A Program, A Library, Programs, Programs
@section プログラムのビルド

@subsection 無駄話ではじめます

@cindex PROGRAMS, bindir
@vindex bin_PROGRAMS
@vindex sbin_PROGRAMS
@vindex libexec_PROGRAMS
@vindex pkglib_PROGRAMS
@vindex noinst_PROGRAMS
@vindex check_PROGRAMS

@c In a directory containing source that gets built into a program (as
@c opposed to a library or a script), the @samp{PROGRAMS} primary is used.
@c Programs can be installed in @code{bindir}, @code{sbindir},
@c @code{libexecdir}, @code{pkglibdir}, or not at all (@samp{noinst}).
@c They can also be built only for @code{make check}, in which case the
@c prefix is @samp{check}.
@c 
(ライブラリやスクリプトと比較して)プログラムにビルドされるソースを含んで
いるディレクトリには，@samp{PROGRAMS}プライマリが使用されます．プログラ
ムを，@code{bindir}，@code{sbindir}，@code{libexecdir}，@code{pkglibdir} 
にインストールしたり，または全くインストールしない(@code{noinst})ことが
可能です．@code{make check}に対してのみビルドさせることも可能で，そのと
きは接頭辞は@samp{check}になります．

@c For instance:
@c 
例えば以下のようにします．

@example
bin_PROGRAMS = hello
@end example

@c In this simple case, the resulting @file{Makefile.in} will contain code
@c to generate a program named @code{hello}.
@c 
この単純な状況では，結果として生成される@file{Makefile.in}に，
@code{hello}という名前のプログラムを生成するコードが含まれるでしょう．

@c Associated with each program are several assisting variables which are
@c named after the program.  These variables are all optional, and have
@c reasonable defaults.  Each variable, its use, and default is spelled out
@c below; we use the ``hello'' example throughout.
@c 
それぞれのプログラムに関連して，プログラムの後に命名される補助変数もあり
ます．これらの変数はすべてオプションで，妥当なデフォルト値を持ちます．そ
れぞれの変数，その使用，そしてデフォルトについては以下で記述します．我々
は，``hello''の例を終始使用します．

@c The variable @code{hello_SOURCES} is used to specify which source files
@c get built into an executable:
@c 
変数@code{hello_SOURCES}は，実行形式にビルドされるソースファイルを指定す
るために使用されます．

@example
hello_SOURCES = hello.c version.c getopt.c getopt1.c getopt.h system.h
@end example

@c This causes each mentioned @samp{.c} file to be compiled into the
@c corresponding @samp{.o}.  Then all are linked to produce @file{hello}.
@c 
これにより，上記のそれぞれの@samp{.c}ファイルを，対応する@samp{.o}にコン
パイルします．そして，すべては@file{hello}を生成するためにリンクされます．

@cindex _SOURCES primary, defined
@cindex SOURCES primary, defined
@cindex Primary variable, SOURCES

@c If @samp{hello_SOURCES} is not specified, then it defaults to the single
@c file @file{hello.c}; that is, the default is to compile a single C file
@c whose base name is the name of the program itself.  (This is a terrible
@c default but we are stuck with it for historical reasons.)
@c 
@samp{hello_SOURCES}が指定されていない場合，そのデフォルトは一つのファイ
ル@file{hello.c}になります．すなわちデフォルトとは，ベースとなる名前がプ
ログラム自身の名前になっている，単一のCファイルをコンパイルするというこ
とです．(これは危険なデフォルトですが，我々は歴史的な理由で行き詰まって
います．)
@vindex _SOURCES
@vindex SOURCES

@c Multiple programs can be built in a single directory.  Multiple programs
@c can share a single source file, which must be listed in each
@c @samp{_SOURCES} definition.
@c 
複数のプログラムを一つのディレクトリでビルドすることが可能です．複数のプ
ログラムで単一のソースファイルを共有することが可能で，それぞれの
@samp{_SOURCES}定義でリストアップする必要があります．

@cindex Header files in _SOURCES
@cindex _SOURCES and header files

@c Header files listed in a @samp{_SOURCES} definition will be included in
@c the distribution but otherwise ignored.  In case it isn't obvious, you
@c should not include the header file generated by @file{configure} in a
@c @samp{_SOURCES} variable; this file should not be distributed.  Lex
@c (@samp{.l}) and Yacc (@samp{.y}) files can also be listed; see @ref{Yacc
@c and Lex}.
@c 
@samp{_SOURCES}定義にリストアップされているヘッダファイルは配布物に含ま
れますが，それ以外のものは無視されます．明らかではないときは，
@file{configure}で生成されるヘッダファイルを@samp{_SOURCES}変数に含める
べきではありません．このファイルは配布すべきではありません．
Lex(@samp{.l})とYacc(@samp{.y})のファイルもリストアップすることが可能で
す．@ref{Yacc and Lex}を参照して下さい．

@subsection 条件コンパイル

@c You can't put a configure substitution (e.g., @samp{@@FOO@@}) into a
@c @samp{_SOURCES} variable.  The reason for this is a bit hard to explain,
@c but suffice to say that it simply won't work.  Automake will give an
@c error if you try to do this.
@c 
configureの置換式(例えば，@samp{@@FOO@@})を@samp{_SOURCES} 変数に書き込
むことはできません．この理由を説明するのは少し難しいのですが，単純に言っ
て動作しないということで十分でしょう．これを試みた場合，Automakeはエラー
を発します．

@cindex EXTRA_prog_SOURCES, defined

@c Automake must know all the source files that could possibly go into a
@c program, even if not all the files are built in every circumstance.
@c Any files which are only conditionally built should be listed in the
@c appropriate @samp{EXTRA_} variable.  For instance, if
@c @file{hello-linux.c} were conditionally included in @code{hello}, the
@c @file{Makefile.am} would contain:
@c 
Automakeは，すべてのファイルが全ての状況でビルドされない場合でも，プログ
ラムに組み込まれる可能性があるソースファイルをすべて知っている必要があり
ます．条件によってのみビルドされるファイルは，適切な@samp{EXTRA_}変数で
リストアップすべきです．例えば，条件によって@file{hello-linux.c}を
@code{hello}に組み込む場合，@file{Makefile.am}に以下のものを含めます．

@example
EXTRA_hello_SOURCES = hello-linux.c
@end example

@c In this case, @file{hello-linux.o} would be added, via a
@c @file{configure} substitution, to @code{hello_LDADD} in order to cause
@c it to be built and linked in.
@c 
この場合は，@file{configure}置換式によって，ビルドしリンクするために，
@file{hello-linux.o}が@code{hello_LDADD}に追加されます．

@c An often simpler way to compile source files conditionally is to use
@c Automake conditionals.  For instance, you could use this construct to
@c conditionally use @file{hello-linux.c} or @file{hello-generic.c} as the
@c basis for your program @file{hello}:
@c 
条件によってソースファイルをコンパイルするためのより簡単な方法としては，
Automakeの条件式を使用することが多くなっています．例えば，プログラム
@file{hello}のベースとして，@file{hello-linux.c}または
@file{hello-generic.c}を使用する条件に以下のような定数を使用することが可
能でしょう．

@example
if LINUX
hello_SOURCES = hello-linux.c
else
hello_SOURCES = hello-generic.c
endif
@end example

@c When using conditionals like this you don't need to use the
@c @samp{EXTRA_} variable, because Automake will examine the contents of
@c each variable to construct the complete list of source files.
@c 
Automakeは，ソースファイルの完全なリストを構成するためにそれぞれの変数の
内容を調査するので，このような条件を使用するときは，@samp{EXTRA_}変数を
使用する必要はありません．

@c Sometimes it is useful to determine the programs that are to be built at
@c configure time.  For instance, GNU @code{cpio} only builds @code{mt} and
@c @code{rmt} under special circumstances.
@c 
ビルドされるプログラムをconfigure時に決定することが役に立つときもありま
す．例えば，GNU @code{cpio}は特別な状況のときだけ@code{mt}と@code{rmt}を
ビルドします．

@cindex EXTRA_PROGRAMS, defined

@c In this case, you must notify Automake of all the programs that can
@c possibly be built, but at the same time cause the generated
@c @file{Makefile.in} to use the programs specified by @code{configure}.
@c This is done by having @code{configure} substitute values into each
@c @samp{_PROGRAMS} definition, while listing all optionally built programs
@c in @code{EXTRA_PROGRAMS}.
@c 
この場合は，ビルドされる可能性のあるすべてのプログラムをAutomakeに知らせ
る必要がありますが，同時に，@code{configure}で指定されるプログラムを使用
するように@file{Makefile.in}を生成させる必要もあります．このことは，それ
ぞれの@samp{_PROGRAMS}定義に@code{configure}での置換式の値を持たせること
で行なわれますが，一方では，@code{EXTRA_PROGRAMS}でオプションとしてビル
ドされるプログラムがすべてリストアップされています．
@vindex EXTRA_PROGRAMS

@c Of course you can use Automake conditionals to determine the programs to
@c be built.
@c 
もちろん，ビルドするプログラムを定義するために，Automakeの条件式を使用す
ることも可能です．

@subsection プログラムのリンク

@c If you need to link against libraries that are not found by
@c @code{configure}, you can use @code{LDADD} to do so.  This variable is
@c used to specify additional objects or libraries to link with; it is
@c inappropriate for specifying specific linker flags, you should use
@c @code{AM_LDFLAGS} for this purpose.
@c 
@code{configure}で見つからないライブラリに対してリンクする必要がある場合，
そうするために@code{LDADD}を使用することが可能です．この変数は，リンクす
る追加のオブジェクトやライブラリを指定するために使用されます．それは，特
定のリンカフラグを指定するには不適切で，この目的では@code{AM_LDFLAGS}を
使用すべきです．
@vindex LDADD
@vindex AM_LDFLAGS

@cindex prog_LDADD, defined

@c Sometimes, multiple programs are built in one directory but do not share
@c the same link-time requirements.  In this case, you can use the
@c @samp{@var{prog}_LDADD} variable (where @var{prog} is the name of the
@c program as it appears in some @samp{_PROGRAMS} variable, and usually
@c written in lowercase) to override the global @code{LDADD}.  If this
@c variable exists for a given program, then that program is not linked
@c using @code{LDADD}.
@c 
複数のプログラムが１つのディレクトリで構築されていても，リンク時に同じ条
件を共有しないときもあります．この場合は，グローバルな@code{LDADD}に優先
させるため，@samp{@var{prog}_LDADD}変数(ここでの@var{prog}はプログラムの
名前で，それは@samp{_PROGRAMS}変数にあって，通常は小文字で書かれています) 
を使用することが可能です．この変数が所定のプログラムのために存在する場合，
そのプログラムは@code{LDADD}を使用してリンクされません．
@vindex _LDADD

@c For instance, in GNU cpio, @code{pax}, @code{cpio} and @code{mt} are
@c linked against the library @file{libcpio.a}.  However, @code{rmt} is
@c built in the same directory, and has no such link requirement.  Also,
@c @code{mt} and @code{rmt} are only built on certain architectures.  Here
@c is what cpio's @file{src/Makefile.am} looks like (abridged):
@c 
例えば，GNU cpioでは，@code{pax}，@code{cpio}，そして@code{mt}は，
@file{libcpio.a}ライブラリにリンクされます．しかし，@code{rmt}は同じディ
レクトリでビルドされますが，そのようなリンクは必要ありません．また，
@code{mt}と@code{rmt}は特定のアーキテクチャでのみビルドされます．以下は，
cpioの@file{src/Makefile.am}に似たものです(省略されています)．

@example
bin_PROGRAMS = cpio pax @@MT@@
libexec_PROGRAMS = @@RMT@@
EXTRA_PROGRAMS = mt rmt

LDADD = ../lib/libcpio.a @@INTLLIBS@@
rmt_LDADD =

cpio_SOURCES = @dots{}
pax_SOURCES = @dots{}
mt_SOURCES = @dots{}
rmt_SOURCES = @dots{}
@end example

@cindex _LDFLAGS, defined

@c @samp{@var{prog}_LDADD} is inappropriate for passing program-specific
@c linker flags (except for @samp{-l}, @samp{-L}, @samp{-dlopen} and
@c @samp{-dlpreopen}).  So, use the @samp{@var{prog}_LDFLAGS} variable for
@c this purpose.
@c 
@samp{@var{prog}_LDADD}でプログラム独自のリンカフラグ(@samp{-l}，
@samp{-L}，@samp{-dlopen}そして@samp{-dlpreopen}を除く)を渡すことは不適
当です．そのため，この目的に対しては@samp{@var{prog}_LDFLAGS}変数を使用
してください．
@vindex _LDFLAGS

@cindex _DEPENDENCIES, defined

@c It is also occasionally useful to have a program depend on some other
@c target which is not actually part of that program.  This can be done
@c using the @samp{@var{prog}_DEPENDENCIES} variable.  Each program depends
@c on the contents of such a variable, but no further interpretation is
@c done.
@c 
実際にはプログラムの一部でない他のターゲットに依存するプログラムを持つこ
とが役に立つこともあります．これは@samp{@var{prog}_DEPENDENCIES}変数を使
用することで可能になります．それぞれのプログラムはこの変数の内容に依存し
ますが，それ以上の解釈はされません．

@c If @samp{@var{prog}_DEPENDENCIES} is not supplied, it is computed by
@c Automake.  The automatically-assigned value is the contents of
@c @samp{@var{prog}_LDADD}, with most configure substitutions, @samp{-l},
@c @samp{-L}, @samp{-dlopen} and @samp{-dlpreopen} options removed.  The
@c configure substitutions that are left in are only @samp{@@LIBOBJS@@} and
@c @samp{@@ALLOCA@@}; these are left because it is known that they will not
@c cause an invalid value for @samp{@var{prog}_DEPENDENCIES} to be
@c generated.
@c 
@samp{@var{prog}_DEPENDENCIES}が提供されていない場合，Automakeが考えます．
自動的に割り当てられる値は@samp{@var{prog}_LDADD}の内容で，ほとんどの
configureの置換式，@samp{-l}，@samp{-L}，@samp{-dlopen}，そして
@samp{-dlpreopen}オプションは削除されます．残っているconfigureの置換式は，
@samp{@@LIBOBJS@@}と@samp{@@ALLOCA@@}だけです．これらは，生成される
@samp{@var{prog}_DEPENDENCIES}に無効な値を与えないことが知られているので
残されています．


@node A Library, A Shared Library, A Program, Programs
@section ライブラリのビルド

@cindex _LIBRARIES primary, defined
@cindex LIBRARIES primary, defined
@cindex Primary variable, LIBRARIES

@vindex lib_LIBRARIES
@vindex pkglib_LIBRARIES
@vindex noinst_LIBRARIES

@c Building a library is much like building a program.  In this case, the
@c name of the primary is @samp{LIBRARIES}.  Libraries can be installed in
@c @code{libdir} or @code{pkglibdir}.
@c 
ライブラリをビルドすることは，プログラムをビルドすることによく似ています．
この場合は，プライマリの名前は@samp{LIBRARIES}です．ライブラリは
@code{libdir}や@code{pkglibdir}にインストールされます．

@c @xref{A Shared Library}, for information on how to build shared
@c libraries using Libtool and the @samp{LTLIBRARIES} primary.
@c 
Libtoolと@samp{LTLIBRARIES}プライマリを使用して共有ライブラリをビルドす
る方法についての詳細は，@xref{A Shared Library}.

@c Each @samp{_LIBRARIES} variable is a list of the libraries to be built.
@c For instance to create a library named @file{libcpio.a}, but not install
@c it, you would write:
@c 
それぞれの@samp{_LIBRARIES}変数は，ビルドされるライブラリのリストです．
例えば，@file{libcpio.a}という名前のライブラリを作成し，それをインストー
ルしないため，以下のように書きます．

@example
noinst_LIBRARIES = libcpio.a
@end example

@c The sources that go into a library are determined exactly as they are
@c for programs, via the @samp{_SOURCES} variables.  Note that the library
@c name is canonicalized (@pxref{Canonicalization}), so the @samp{_SOURCES}
@c variable corresponding to @file{liblob.a} is @samp{liblob_a_SOURCES},
@c not @samp{liblob.a_SOURCES}.
@c 
ライブラリに組み込まれるソースは，プログラムのときのように，
@samp{_SOURCES}変数によって正しく決定されます．ライブラリ名は標準的にさ
れるので(@pxref{Canonicalization})，@samp{liblob.a}に対応する
@samp{_SOURCES}変数は@samp{liblob.a_SOURCES}ではなく
@samp{liblob_a_SOURCES}になることに注意してください．

@cindex _LIBADD primary, defined
@cindex LIBADD primary, defined
@cindex Primary variable, LIBADD

@c Extra objects can be added to a library using the
@c @samp{@var{library}_LIBADD} variable.  This should be used for objects
@c determined by @code{configure}.  Again from @code{cpio}:
@c 
追加のオブジェクトは，@samp{@var{library}_LIBADD}変数を使用してライブラ
リに追加することが可能です．これは@code{configure}で決定されるオブジェク
トに対して使用されるべきです．再び@code{cpio}からの引用です．
@vindex _LIBADD
@vindex LIBADD

@example
libcpio_a_LIBADD = @@LIBOBJS@@ @@ALLOCA@@
@end example

@c In addition, sources for extra objects that will not exist until
@c configure-time must be added to the @code{BUILT_SOURCES} variable
@c (@pxref{Sources}).
@c 
さらに，configure時まで存在しない追加のオブジェクトに対するソースは，
@code{BUILT_SOURCES}変数に追加する必要があります(@pxref{Sources})．


@node A Shared Library, Program and Library Variables, A Library, Programs
@section 共有ライブラリのビルド

@cindex Shared libraries, support for

@c Building shared libraries is a relatively complex matter.  For this
@c reason, GNU Libtool (@pxref{Top, , Introduction, libtool, The
@c Libtool Manual}) was created to help build shared libraries in a
@c platform-independent way.
@c 
共有ライブラリをビルドすることは比較的複雑な問題です．このために，GNU
Libtoolは(@pxref{Top, , Introduction, libtool, The Libtool Manual})プラッ
トホームに依存しない方法で共有ライブラリをビルドする補助を行なうために作
成されました．

@cindex _LTLIBRARIES primary, defined
@cindex LTLIBRARIES primary, defined
@cindex Primary variable, LTLIBRARIES
@cindex Example of shared libraries

@cindex suffix .la, defined

@c Automake uses Libtool to build libraries declared with the
@c @samp{LTLIBRARIES} primary.  Each @samp{_LTLIBRARIES} variable is a list
@c of shared libraries to build.  For instance, to create a library named
@c @file{libgettext.a} and its corresponding shared libraries, and install
@c them in @samp{libdir}, write:
@c 
Automakeは，@samp{LTLIBRARIES}プライマリで宣言されたライブラリをビルドす
るためにLibtoolを使用します．それぞれの@samp{_LTLIBRARIES}変数はビルドす
る共有ライブラリのリストです．例えば，@file{libgettext.a}という名前のラ
イブラリとそれに対応する共有ライブラリを作成し，@samp{libdir}にインストー
ルするために，以下のように書いてください．

@example
lib_LTLIBRARIES = libgettext.la
@end example

@vindex lib_LTLIBRARIES
@vindex pkglib_LTLIBRARIES
@vindex noinst_LTLIBRARIES
@vindex check_LTLIBRARIES

@cindex check_LTLIBRARIES, not allowed

@c Note that shared libraries @emph{must} be installed in order to work
@c properly, so @code{check_LTLIBRARIES} is not allowed.  However,
@c @code{noinst_LTLIBRARIES} is allowed.  This feature should be used for
@c libtool ``convenience libraries''.
@c 
共有ライブラリが正しく動作するようにインストールする@emph{必要がある}の
で，@code{check_LTLIBRARIES}が使用不可能だということに注意してください．
しかし，@code{noinst_LTLIBRARIES}は使用可能です．この機能はlibtoolの
``convinience library''で使用されます．

@cindex suffix .lo, defined

@c For each library, the @samp{@var{library}_LIBADD} variable contains the
@c names of extra libtool objects (@file{.lo} files) to add to the shared
@c library.  The @samp{@var{library}_LDFLAGS} variable contains any
@c additional libtool flags, such as @samp{-version-info} or
@c @samp{-static}.
@c 
それぞれのライブラリに対して，@samp{@var{library}_LIBADD}変数は，共有ラ
イブラリに加える追加のlibtoolオブジェクト(@file{.lo}ファイル)の名前を含
んでいます．@samp{@var{library}_LDFLAGS}変数は，@samp{-version-info}や
@samp{-static}といった，付加的なlibtoolフラグも含んでいます．

@cindex @@LTLIBOBJS@@, special handling

@c Where an ordinary library might include @code{@@LIBOBJS@@}, a libtool
@c library must use @code{@@LTLIBOBJS@@}.  This is required because the
@c object files that libtool operates on do not necessarily end in
@c @file{.o}.  The libtool manual contains more details on this topic.
@c 
普通のライブラリが@code{@@LIBOBJS@@}を使用するところで，libtoolライブラ
リは@code{@@LTLIBOBJS@@}を使用する必要があります．libtoolが処理するオブ
ジェクトファイルは必ずしも@file{.o}で終わらないので，これが必要になりま
す．libtoolマニュアルには，このトピックに関する詳細が書かれています．

@c For libraries installed in some directory, Automake will automatically
@c supply the appropriate @samp{-rpath} option.  However, for libraries
@c determined at configure time (and thus mentioned in
@c @code{EXTRA_LTLIBRARIES}), Automake does not know the eventual
@c installation directory; for such libraries you must add the
@c @samp{-rpath} option to the appropriate @samp{_LDFLAGS} variable by
@c hand.
@c 
いくつかのディレクトリにインストールされるライブラリに対して，Automakeは
自動的に適切な@samp{-rpath}オプションを供給します．しかし，configure時
(と@code{EXTRA_LTLIBRARIES}に書いたとき)に決定されるライブラリに対して，
Automakeは最終的なインストールディレクトリを知りません．このようなライブ
ラリに対しては，適切な@samp{_LDFLAGX}変数に@samp{-rpath} オプションを手
書きで加える必要があります．

@c Ordinarily, Automake requires that a shared library's name start with
@c @samp{lib}.  However, if you are building a dynamically loadable module
@c then you might wish to use a "nonstandard" name.  In this case, put
@c @code{-module} into the @samp{_LDFLAGS} variable.
@c 
通常，Automakeは共有ライブラリの名前が@samp{lib}で始まることを要求します．
しかし，動的にロードされるモジュールをビルドしている場合，"標準的でない" 
名前を使用したいかもしれません．この場合は，@code{-module}を
@samp{_LDFLAGS}変数に書き込んでください．

@c @xref{Using Automake, Using Automake with Libtool, The Libtool Manual,
@c libtool, The Libtool Manual}, for more information.
@c 
詳細は@xref{Using Automake, Using Automake with Libtool, The Libtool
Manual, libtool, The Libtool Manual}.


@node Program and Library Variables, LIBOBJS, A Shared Library, Programs
@section プログラムとライブラリの変数

@c Associated with each program are a collection of variables which can be
@c used to modify how that program is built.  There is a similar list of
@c such variables for each library.  The canonical name of the program (or
@c library) is used as a base for naming these variables.
@c 
それぞれのプログラムに関連して，プログラムのビルドの方法を修正するために
使用可能な，変数の集合があります．それぞれのライブラリに対しても，それに
似たような変数のリストがあります．プログラム(やライブラリ)の標準的な名前
が，これらの変数の命名に対してベースとして使用されます．

@c In the list below, we use the name ``maude'' to refer to the program or
@c library.  In your @file{Makefile.am} you would replace this with the
@c canonical name of your program.  This list also refers to ``maude'' as a
@c program, but in general the same rules apply for both static and dynamic
@c libraries; the documentation below notes situations where programs and
@c libraries differ.
@c 
以下のリストでは，名前``maude''をプログラムやライブラリを示すものとして
使用しています．@file{Makefile.am}で，これをプログラムの標準的な名前に置
換してください．このリストは，``maude''をプログラムを示すものとしていま
すが，一般的に同じ規則を，スタティックライブラリやダイナミックライブラリ
に適用します．以下の文章では，プログラムとライブラリで異なる状況をコメン
トしています．

@table @samp
@item maude_SOURCES
@c This variable, if it exists, lists all the source files which are
@c compiled to build the program.  These files are added to the
@c distribution by default.  When building the program, Automake will cause
@c each source file to be compiled to a single @file{.o} file (or
@c @file{.lo} when using libtool).  Normally these object files are named
@c after the source file, but other factors can change this.  If a file in
@c the @samp{_SOURCES} variable has an unrecognized extension, Automake
@c will do one of two things with it.  If a suffix rule exists for turning
@c files with the unrecognized extension into @file{.o} files, then
@c automake will treat this file as it will any other source file
@c (@pxref{Support for Other Languages}).  Otherwise, the file will be
@c ignored as though it were a header file.
@c 
存在する場合，この変数は，プログラムをビルドするためにコンパイルされる，
すべてのソースファイルをリストアップします．プログラムをビルドしていると
き，Automakeはそれぞれのソースファイルを単一の@file{.o}ファイル(や
libtoolを使用しているときは@file{.lo})にコンパイルさせます．通常これらの
オブジェクトファイルはソースファイルの後に命名されますが，他の要因で変更
することが可能です．@samp{_SOURCES}変数のファイルに認識できない拡張子が
ある場合，Automakeは二つのうちの一つを実行します．認識できない拡張子を持
つファイルを@file{.o}に変換するためのサフィックス規則が存在する場合，
automakeはこのファイルを，その他の(言語の)ソースファイルとして扱います
(@pxref{Support for Other Languages})．それ以外では，ファイルがヘッダファ
イルと考えて無視されます．

@c The prefixes @samp{dist_} and @samp{nodist_} can be used to control
@c whether files listed in a @samp{_SOURCES} variable are distributed.
@c @samp{dist_} is redundant, as sources are distributed by default, but it
@c can be specified for clarity if desired.
@c 
接頭辞の@samp{dist_}と@samp{nodist_}で，@samp{_SOURCES}にリストアップさ
れているファイルを配布するかどうか制御するために使用することが可能です．
ソースはデフォルトで配布されるので，@samp{dist_}は冗長ですが，必要があれ
ば明確にするために指定可能です．

@c It is possible to have both @samp{dist_} and @samp{nodist_} variants of
@c a given @samp{_SOURCES} variable at once; this lets you easily
@c distribute some files and not others, for instance:
@c 
@samp{_SOURCES}変数に与えるものとして@samp{dist_}と@samp{nodist_}の両方
を一度に用いることが可能です．これによって，配布するファイルとしないもの
に簡単に分類することができ，例えば以下のようにします．

@example
nodist_maude_SOURCES = nodist.c
dist_maude_SOURCES = dist-me.c
@end example

@c By default the output file (on Unix systems, the @file{.o} file) will be
@c put into the current build directory.  However, if the option
@c @code{subdir-objects} is in effect in the current directory then the
@c @file{.o} file will be put into the subdirectory named after the source
@c file.  For instance, with @code{subdir-objects} enabled,
@c @file{sub/dir/file.c} will be compiled to @file{sub/dir/file.o}.  Some
@c people prefer this mode of operation.  You can specify
@c @code{subdir-objects} in @code{AUTOMAKE_OPTIONS} (@pxref{Options}).
@c 
デフォルトで，出力ファイル(Unixシステム上では@file{.o}ファイル)は，現在
のビルドディレクトリに書き込まれます．しかし，現在のディレクトリに対して
オプションの@code{subdir-objects}の影響がある場合，@file{.o}ファイルはソー
スファイルの後で指名されるサブディレクトリに書き込まれます．例えば，
@code{subdir-objects}が利用可能な場合，@file{sub/dir/file.c}は
@file{sub/dir/file.o}にコンパイルされます．この処理モードを好む人もいま
す．@code{subdir-objects}を@code{AUTOMAKE_OPTIONS}で指定することが可能で
す(@pxref{Options})．
@cindex Subdirectory, objects in
@cindex Objects in subdirectory


@item EXTRA_maude_SOURCES
@c Automake needs to know the list of files you intend to compile
@c @emph{statically}.  For one thing, this is the only way Automake has of
@c knowing what sort of language support a given @file{Makefile.in}
@c requires.  @footnote{There are other, more obscure reasons reasons for
@c this limitation as well.}  This means that, for example, you can't put a
@c configure substitution like @samp{@@my_sources@@} into a @samp{_SOURCES}
@c variable.  If you intend to conditionally compile source files and use
@c @file{configure} to substitute the appropriate object names into, e.g.,
@c @samp{_LDADD} (see below), then you should list the corresponding source
@c files in the @samp{EXTRA_} variable.
@c 
Automakeは，コンパイルしたいファイルのリストを@emph{静的に}知っている必
要があります．一つには，該当する@file{Makefile.in}が要求する言語のサポー
トの種類をAutomakeが知るための唯一の方法だということがあげられます．
@footnote{それ以外にも，この制限に対してあまり知られていない理由が同じよ
うに存在します．} 例えばこれには，@samp{@@my_sources@@}のようなconfigure 
の置換式を@samp{_SOURCES}に書き込むことができないという意味があります．
ソースファイルの条件コンパイルを行ない，例えば@samp{_LDADD}(以下を参照し
てください)のオブジェクト名を適切に置換するために@file{configure}を使用
したい場合，対応するソースファイルを@samp{EXTRA_}にリストアップした方が
良いでしょう．

@c This variable also supports @samp{dist_} and @samp{nodist_} prefixes,
@c e.g., @samp{nodist_EXTRA_maude_SOURCES}.
@c 
この変数は，例えば@samp{nodist_EXTRA_maude_SOURCES}のように，
@samp{dist_}と@samp{nodist_}もサポートします．

@item maude_AR
@c A static library is created by default by invoking @code{$(AR) cru}
@c followed by the name of the library and then the objects being put into
@c the library.  You can override this by setting the @samp{_AR} variable.
@c This is usually used with C++; some C++ compilers require a special
@c invocation in order to instantiate all the templates which should go
@c into a library.  For instance, the SGI C++ compiler likes this macro set
@c like so:
@c 
スタティックライブラリは，デフォルトで，@code{$(AR) cru}にライブラリ名と
ライブラリに書き込むオブジェクトを続けて呼び出すことで作成されます．
@samp{_AR}変数でこれに優先することが可能です．これは，通常C++で使用され
ます．C++コンパイラには，ライブラリに組み込むすべてのテンプレートを
instantiateするために，特殊な呼び出しが必要なものもあります．例えば，SGI
C++コンパイラは，このマクロを以下のように設定します．
@example
libmaude_a_AR = $(CXX) -ar -o
@end example

@item maude_LIBADD
@c Extra objects can be added to a static library using the @samp{_LIBADD}
@c variable.  This should be used for objects determined by
@c @code{configure}.  Note that @samp{_LIBADD} is not used for shared
@c libraries; there you must use @samp{_LDADD}.
@c 
@samp{_LIBADD}変数を使用することで，追加のオブジェクトをスタティックライ
ブラリに加えることが可能です．これは，@code{configure}で決定されるオブジェ
クトに対して使用すべきです．@samp{_LIBADD}は，共有ライブラリに対して使用
しないことに注意してください．その場合は，@samp{_LDADD}を使用する必要が
あります．

@item maude_LDADD
@c Extra objects can be added to a shared library or a program by listing
@c them in the @samp{_LDADD} variable.  This should be used for objects
@c determined by @code{configure}.
@c 
@samp{_LDADD}変数に追加のオブジェクトをリストアップすることで，共有ライ
ブラリやプログラムに加えることが可能です．これは，@code{configure}で決定
されるオブジェクトに対して使用すべきです．

@c @samp{_LDADD} and @samp{_LIBADD} are inappropriate for passing
@c program-specific linker flags (except for @samp{-l}, @samp{-L},
@c @samp{-dlopen} and @samp{-dlpreopen}).  Use the @samp{_LDFLAGS} variable
@c for this purpose.
@c 
(@samp{-l}，@samp{-L}，@samp{-dlopen}，そして@samp{-dlpreopen}以外の)プ
ログラム特有のリンカフラグを渡すために@samp{_LDADD}と@samp{_LIBADD}を使
用することは不適切です．この目的に対しては，@samp{_LDFLAGS}変数を使用し
てください．

@c For instance, if your @file{configure.in} uses @code{AC_PATH_XTRA}, you
@c could link your program against the X libraries like so:
@c 
例えば，@file{configure.in}で@code{AC_PATH_XTRA}を使用している場合，Xの
ライブラリに対してプログラムをリンクするため，以下のようにすることが可能
でしょう．

@example
maude_LDADD = $(X_PRE_LIBS) $(X_LIBS) $(X_EXTRA_LIBS)
@end example

@item maude_LDFLAGS
@c This variable is used to pass extra flags to the link step of a program
@c or a shared library.
@c 
これは，プログラムや共有ライブラリのリンク段階に特別なフラグを渡すために
使用する変数です．

@item maude_LINK
@c You can override the linker on a per-program basis.  By default the
@c linker is chosen according to the languages used by the program.  For
@c instance, a program that includes C++ source code would use the C++
@c compiler to link.  The @samp{_LINK} variable must hold the name of a
@c command which can be passed all the @file{.o} file names as arguments.
@c Note that the name of the underlying program is @emph{not} passed to
@c @samp{_LINK}; typically one uses @samp{$@@}:
@c 
プログラムごとを基本として，(デフォルトの)リンカに優先することが可能です．
デフォルトで，プログラムで使用されている言語によってリンカは選択されます．
例えば，C++のソースコードを含むプログラムでは，C++コンパイラがリンクに使
用されます．@samp{_LINK}変数は，すべての@file{.o}ファイル名を引数として
渡すことが可能なコマンドの名前を含んでいる必要があります．基礎となるプロ
グラム名は，@samp{_LINK}に渡され@emph{ない}ことに注意してください．通常
は@samp{$@@}を使用します．

@example
maude_LINK = $(CCLD) -magic -o $@@
@end example

@item maude_CFLAGS
@c Automake allows you to set compilation flags on a per-program (or
@c per-library) basis.  A single source file can be included in several
@c programs, and it will potentially be compiled with different flags for
@c each program.  This works for any language directly supported by
@c Automake.  The flags are @samp{_CFLAGS}, @samp{_CXXFLAGS},
@c @samp{_OBJCFLAGS}, @samp{_YFLAGS}, @samp{_CCASFLAGS}, @samp{_FFLAGS},
@c @samp{_RFLAGS}, and @samp{_GCJFLAGS}.
@c 
Automakeでは，プログラムごと(またはライブラリごと)を基本として，コンパイ
ルフラグを設定することが可能です．単一のソースファイルを複数のプログラム
に含めることが可能で，それぞれのプログラムに対して異なるフラグでコンパイ
ルされる可能性もあります．これは，あらゆる言語に対し，直接Automakeがサポー
トすることで動作します．フラグは，@samp{_CFLAGS}，@samp{_CXXFLAGS}，
@samp{_OBJCFLAGS}，@samp{_YFLAGS}，@samp{_CCASFLAGS}，@samp{_FFLAGS}，
@samp{_RFLAGS}，そして@samp{_GCJFLAGS}です．

@c When using a per-program compilation flag, Automake will choose a
@c different name for the intermediate object files.  Ordinarily a file
@c like @file{sample.c} will be compiled to produce @file{sample.o}.
@c However, if the program's @samp{_CFLAGS} variable is set, then the
@c object file will be named, for instance, @file{maude-sample.o}.
@c 
プログラムごとにコンパイルフラグを使用するとき，Automakeは，中間的なオブ
ジェクトファイルに対して異なる名前を選択します．通常，@file{sample.c}の
ようなファイルは，コンパイルされて@file{sample.o}が生成されます．しかし，
プログラムの@samp{_CFLAGS}変数を設定した場合，オブジェクトファイルは，例
えば@file{maude-sample.o}のように命名されます．

@c In compilations with per-program flags, the ordinary @samp{AM_} form of
@c the flags variable is @emph{not} automatically included in the
@c compilation (however, the user form of the variable @emph{is} included).
@c So for instance, if you want the hypothetical @file{maude} compilations
@c to also use the value of @samp{AM_CFLAGS}, you would need to write:
@c 
プログラムごとにフラグを用いてコンパイルする際は，通常の@samp{AM_}形式の
フラグ変数は自動的にコンパイルに組み込まれ@emph{ません}(しかし，ユーザ形
式の変数は組み込まれ@emph{ます})．そのため，例えば，@samp{AM_CFLAGS}の変
数も使用して@file{maude}のコンパイルを行なうと仮定すると，以下のように書
く必要があります．

@example
maude_CFLAGS = ... your flags ... $(AM_CFLAGS)
@end example

@item maude_DEPENDENCIES
@c It is also occasionally useful to have a program depend on some other
@c target which is not actually part of that program.  This can be done
@c using the @samp{_DEPENDENCIES} variable.  Each program depends on the
@c contents of such a variable, but no further interpretation is done.
@c 
実際には，プログラムの一部にはならない他のターゲットに依存するプログラム
があることが，役に立つ場合もあります．これは，@samp{_DEPENDENCIES}変数を
使用することで可能になります．それぞれのプログラムは，その変数の内容に依
存しますが，それ以上の解釈はなされません．

@c If @samp{_DEPENDENCIES} is not supplied, it is computed by Automake.
@c The automatically-assigned value is the contents of @samp{_LDADD} or
@c @samp{_LIBADD}, with most configure substitutions, @samp{-l}, @samp{-L},
@c @samp{-dlopen} and @samp{-dlpreopen} options removed.  The configure
@c substitutions that are left in are only @samp{@@LIBOBJS@@} and
@c @samp{@@ALLOCA@@}; these are left because it is known that they will not
@c cause an invalid value for @samp{_DEPENDENCIES} to be generated.
@c 
@samp{_DEPENDENCIES}が提供されていない場合，それはAutomakeが考慮します．
自動的に割り当てられる値は@samp{_LDADD}や@samp{_LIBADD}の内容で，ほとん
どのconfigure置換式，@samp{-l}，@samp{-L}，@samp{-dlopen}，そして
@samp{-dlpreopen}は削除されています．残っているconfigureの置換式は，
@samp{@@LIBOBJS@@}と@samp{@@ALLOCA@@}です．これらは，生成される
@samp{_DEPENDENCIES}に対して無効な値を生成しないことが分かっているので残
されます．

@item maude_SHORTNAME
@c On some platforms the allowable file names are very short.  In order to
@c support these systems and per-program compilation flags at the same
@c time, Automake allows you to set a ``short name'' which will influence
@c how intermediate object files are named.  For instance, if you set
@c @samp{maude_SHORTNAME} to @samp{m}, then in the above per-program
@c compilation flag example the object file would be named
@c @file{m-sample.o} rather than @file{maude-sample.o}.  This facility is
@c rarely needed in practice, and we recommend avoiding it until you find
@c it is required.
@c 
利用可能なファイル名が非常に短いプラットフォームもあります．これらのシス
テムと，プログラムごとのコンパイルフラグを同時にサポートするために，
Automakeでは，中間的なオブジェクトファイルの命名方法に影響する``短い名前'' 
を設定することが可能です．例えば，@samp{maude_SHORTNAME}を@samp{m}に設定
する場合，上記のプログラムごとのコンパイルフラグの例では，オブジェクトファ
イルは@file{maude-sample.o}ではなく@file{m-sample.o}と命名されます．この
機能は，実行上滅多に必要になりませんし，要求されていることが分かるまで使
用を避けることを推奨します．
@end table


@node LIBOBJS, Program variables, Program and Library Variables, Programs
@section LIBOBJSとALLOCAに対する特別扱い

@cindex @@LIBOBJS@@, special handling
@cindex @@ALLOCA@@, special handling

@c Automake explicitly recognizes the use of @code{@@LIBOBJS@@} and
@c @code{@@ALLOCA@@}, and uses this information, plus the list of
@c @code{LIBOBJS} files derived from @file{configure.in} to automatically
@c include the appropriate source files in the distribution (@pxref{Dist}).
@c These source files are also automatically handled in the
@c dependency-tracking scheme; see @xref{Dependencies}.
@c 
Automakeは，@code{@@LIBOBJS@@}と@code{@@ALLOCA@@}を使用していることを明
示的に認識し，そしてこの情報を使用し，配布物に適切なソースファイルを自動
的に含めるため(@pxref{Dist})，@file{configure.in}から派生される
@code{LIBOBJS}ファイルのリストに追加します．これらのソースファイルは，依
存性追跡でも自動的に処理されます．@xref{Dependencies}.

@c @code{@@LIBOBJS@@} and @code{@@ALLOCA@@} are specially recognized in any
@c @samp{_LDADD} or @samp{_LIBADD} variable.
@c 
@code{@@LIBOBJS@@}と@code{@@ALLOCA@@}は，あらゆる@samp{_LDADD}や
@samp{_LIBADD}で特別に認識されます．


@node Program variables, Yacc and Lex, LIBOBJS, Programs
@section プログラムビルド時に使用される変数

@c Occasionally it is useful to know which @file{Makefile} variables
@c Automake uses for compilations; for instance you might need to do your
@c own compilation in some special cases.
@c 
Automakeがコンパイルに使用する@file{Makefile}変数を知ることが役に立ちつ
こともあります．例えば，特別な状況では，自分でコンパイルをする必要がある
かもしれません．

@c Some variables are inherited from Autoconf; these are @code{CC},
@c @code{CFLAGS}, @code{CPPFLAGS}, @code{DEFS}, @code{LDFLAGS}, and
@c @code{LIBS}.
@c 
Autoconfから継承される変数もあります．これらは@code{CC}，@code{CFLAGS}，
@code{CPPFLAGS}，@code{DEFS}，@code{LDFLAGS}，そして@code{LIBS}です．
@vindex CC
@vindex CFLAGS
@vindex CPPFLAGS
@vindex DEFS
@vindex LDFLAGS
@vindex LIBS

@c There are some additional variables which Automake itself defines:
@c 
Automake自身が定義する追加の変数もあります．

@vtable @code
@item AM_CPPFLAGS
@c The contents of this macro are passed to every compilation which invokes
@c the C preprocessor; it is a list of arguments to the preprocessor.  For
@c instance, @samp{-I} and @samp{-D} options should be listed here.
@c 
このマクロの内容は，Cプリプロセッサを呼び出すコンパイルで毎回渡されます．
それはプリプロセッサへの引数リストです．例えば，@samp{-I}と@samp{-D}オプ
ションは，ここにリストアップすべきです．

@c Automake already provides some @samp{-I} options automatically.  In
@c particular it generates @samp{-I$(srcdir)}, @samp{-I.}, and a @samp{-I}
@c pointing to the directory holding @file{config.h} (if you've used
@c @code{AC_CONFIG_HEADER} or @code{AM_CONFIG_HEADER}).  You can disable
@c the default @samp{-I} options using the @samp{nostdinc} option.
@c 
Automakeは，すでに@samp{-I}オプションを自動的に提供しています．特に，
@samp{-I$(srcdir)}，@samp{-I.}，そして(@code{AC_CONFIG_HEADER}や
@code{AM_CONFIG_HEADER}を使用している場合は)@file{config.h}があるディレ
クトリを示す@samp{-I}を生成します．@samp{nostdinc}オプションを使用するこ
とで，デフォルトの@samp{-I}オプションを利用不可能にすることが可能です．

@item INCLUDES
@c This does the same job as @samp{AM_CPPFLAGS}.  It is an older name for
@c the same functionality.  This macro is deprecated; we suggest using
@c @samp{AM_CPPFLAGS} instead.
@c 
これは，@samp{AM_CPPFLAGS}と同じ仕事をします．それは同じ機能に対する古い
名前です．このマクロは止めた方が良いでしょう．代わりに@samp{AM_CPPFLAGS}
の使用を勧めます．

@item AM_CFLAGS
@c This is the variable which the @file{Makefile.am} author can use to pass
@c in additional C compiler flags.  It is more fully documented elsewhere.
@c In some situations, this is not used, in preference to the
@c per-executable (or per-library) @code{_CFLAGS}.
@c 
これは，@file{Makefile.am}の著者が，追加のCコンパイラフラグを渡すために
使用することが可能な変数です．その完全な説明はどこかにあるでしょう．状況
によっては，実行形式ごと(またはライブラリごと)の@code{_CFLAGS}が優先され，
これは使用されません．

@item COMPILE
@c This is the command used to actually compile a C source file.  The
@c filename is appended to form the complete command line.
@c 
これはCソースファイルをコンパイルするために実際に使用されるコマンドです．
完全なコマンドラインを構成するために，ファイル名が追加されます．

@item AM_LDFLAGS
@c This is the variable which the @file{Makefile.am} author can use to pass
@c in additional linker flags.  In some situations, this is not used, in
@c preference to the per-executable (or per-library) @code{_LDFLAGS}.
@c 
これは，@file{Makefile.am}の著者が，追加のリンカフラグを渡すために使用す
ることが可能な変数です．状況によっては，実行形式ごと(またはライブラリご
と)の@code{_LDFLAGS}が優先され，これは使用されません．

@item LINK
@c This is the command used to actually link a C program.  It already
@c includes @samp{-o $@@} and the usual variable references (for instance,
@c @code{CFLAGS}); it takes as ``arguments'' the names of the object files
@c and libraries to link in.
@c 
これはCプログラムをリンクするために実際に使用されるコマンドです．それに
はすでに，@samp{-o $@@}と通常参照される変数(例えば，@code{CFLAGS})が含ま
れています．それは，リンクされるオブジェクトファイルとライブラリの名前を
``引数''として受けとります．
@end vtable


@node Yacc and Lex, C++ Support, Program variables, Programs
@section YaccとLexのサポート

@c Automake has somewhat idiosyncratic support for Yacc and Lex.
@c 
AutomakeはYaccとLexに対して幾分特異なサポートを行ないます．

@c Automake assumes that the @file{.c} file generated by @code{yacc} (or
@c @code{lex}) should be named using the basename of the input file.  That
@c is, for a yacc source file @file{foo.y}, Automake will cause the
@c intermediate file to be named @file{foo.c} (as opposed to
@c @file{y.tab.c}, which is more traditional).
@c 
Automakeは，@code{yacc}(あるいは@code{lex})によって生成された@file{.c}ファ
イルが，入力ファイルのベース名を使用して命名されていると仮定します．すな
わち，yaccソースファイル@file{foo.y}に対して，Automakeは中間ファイルを
(より伝統的な@file{y.tab.c}ではなく)@file{foo.c}と命名します．

@c The extension of a yacc source file is used to determine the extension
@c of the resulting @samp{C} or @samp{C++} file.  Files with the extension
@c @samp{.y} will be turned into @samp{.c} files; likewise, @samp{.yy} will
@c become @samp{.cc}; @samp{.y++}, @samp{c++}; and @samp{.yxx},
@c @samp{.cxx}.
@c 
yaccソースファイルの拡張子は，結果として生じる@samp{C}あるいは@samp{C++} 
ファイルの拡張子を決定するために使用されます．ファイルの拡張子が
@samp{.y}の場合は@samp{.c}になります．同様に@samp{.yy}は@samp{.cc}に，
@samp{.y++}は@samp{c++}に，そして@samp{.yxx}は@samp{.cxx}になります．

@c Likewise, lex source files can be used to generate @samp{C} or
@c @samp{C++}; the extensions @samp{.l}, @samp{.ll}, @samp{.l++}, and
@c @samp{.lxx} are recognized.
@c 
同様に，lexソースファイルは，@samp{C}や@samp{C++}を生成するために使用す
ることが可能です．拡張子の@samp{.l}，@samp{.ll}，@samp{.l++}，そして
@samp{.lxx}が認識されます．

@c You should never explicitly mention the intermediate (@samp{C} or
@c @samp{C++}) file in any @samp{SOURCES} variable; only list the source
@c file.
@c 
あらゆる@samp{SOURCES}変数に，(@samp{C}や@samp{C++}の)中間的なファイルを
明示的に書いてはいけません．ソースファイルだけをリストアップします．

@c The intermediate files generated by @code{yacc} (or @code{lex}) will be
@c included in any distribution that is made.  That way the user doesn't
@c need to have @code{yacc} or @code{lex}.
@c 
@code{yacc}(あるいは@code{lex})によって生成さる中間的なファイルは，作成
されるすべての配布物に含められます．そのためユーザが@code{yacc}や
@code{lex}を持っている必要がありません．

@c If a @code{yacc} source file is seen, then your @file{configure.in} must
@c define the variable @samp{YACC}.  This is most easily done by invoking
@c the macro @samp{AC_PROG_YACC} (@pxref{Particular Programs, , Particular
@c Program Checks, autoconf, The Autoconf Manual}).
@c 
@code{yacc}ソースファイルが見つかった場合，@file{configure.in}で変数
@samp{YACC}を定義する必要があります．これは，マクロ@samp{AC_PROG_YACC}を
呼び出すことで最も容易に行なえます(@pxref{Particular Programs, ,
Particular Program Checks, autoconf, The Autoconf Manual})．

@c When @code{yacc} is invoked, it is passed @samp{YFLAGS} and
@c @samp{AM_YFLAGS}.  The former is a user variable and the latter is
@c intended for the @file{Makefile.am} author.
@c 
@code{yacc}が呼び出された時，@samp{YFLAGS}と@samp{AM_YFLAGS}フラグが渡さ
れます．前者はユーザ変数で，後者は@file{Makefile.am}の著者のためのもので
す．

@c Similarly, if a @code{lex} source file is seen, then your
@c @file{configure.in} must define the variable @samp{LEX}.  You can use
@c @samp{AC_PROG_LEX} to do this (@pxref{Particular Programs, , Particular
@c Program Checks, autoconf, The Autoconf Manual}), but using
@c @code{AM_PROG_LEX} macro (@pxref{Macros}) is recommended.
@c 
同様に，@code{lex}ソースファイルがある場合，@file{configure.in}で変数
@samp{LEX}を定義する必要があります．こうするために@samp{AC_PROG_LEX}を使
用することが可能ですが(@pxref{Particular Programs, , Particular Program
Checks, autoconf, The Autoconf Manual})，@code{AM_PROG_LEX}マクロ
(@pxref{Macros})の使用を推奨します．

@c When @code{lex} is invoked, it is passed @samp{LFLAGS} and
@c @samp{AM_LFLAGS}.  The former is a user variable and the latter is
@c intended for the @file{Makefile.am} author.
@c 
@code{lex}が呼び出されたとき，@samp{LFLAGS}と@samp{AM_LFLAGS}フラグが渡
されます．前者はユーザ変数で，後者は@file{Makefile.am}の著者のためのもの
です．


@cindex ylwrap
@cindex yacc, multiple parsers
@cindex Multiple yacc parsers
@cindex Multiple lex lexers
@cindex lex, multiple lexers


@c Automake makes it possible to include multiple @code{yacc} (or
@c @code{lex}) source files in a single program.  Automake uses a small
@c program called @code{ylwrap} to run @code{yacc} (or @code{lex}) in a
@c subdirectory.  This is necessary because yacc's output filename is
@c fixed, and a parallel make could conceivably invoke more than one
@c instance of @code{yacc} simultaneously.  The @code{ylwrap} program is
@c distributed with Automake.  It should appear in the directory specified
@c by @samp{AC_CONFIG_AUX_DIR} (@pxref{Input, , Finding `configure' Input,
@c autoconf, The Autoconf Manual}), or the current directory if that macro
@c is not used in @file{configure.in}.
@c 
Automakeで，一つのプログラムに複数の@code{yacc}(または@code{lex})ソース
ファイルを含めることが可能になります．Automakeは，サブディレクトリで
@code{yacc}(または@code{lex})を実行するために，@code{ylwrap}と呼ばれる小
さいプログラムを使用します．これが必要になるのは，yaccの出力ファイル名が
固定されていて，並列的なmakeで@code{yacc}の１以上のインスタンスを同時に
呼び出す可能性があるためです．@code{ylwrap}プログラムは，Automakeと一緒
に配布されます．それは@samp{AC_CONFIG_AUX_DIR}が指定するディレクトリ 
(@pxref{Input, , Finding `configure' Input, autoconf, The Autoconf
Manual})，または，そのマクロが@file{configure.in}で使用されていない場合
はカレントディレクトリにあります．

@c For @code{yacc}, simply managing locking is insufficient.  The output of
@c @code{yacc} always uses the same symbol names internally, so it isn't
@c possible to link two @code{yacc} parsers into the same executable.
@c 
@code{yacc}に対しては，簡単なロックでの管理は不十分です．@code{yacc}の出
力は，内部で常に同じシンボル名を使うので，同じ実行形式の中に２つの
@code{yacc}パーサーをリンクするは不可能です．

@c We recommend using the following renaming hack used in @code{gdb}:
@c 
@code{gdb}では，使用する名前を以下のように変更してください．
@example
#define	yymaxdepth c_maxdepth
#define	yyparse	c_parse
#define	yylex	c_lex
#define	yyerror	c_error
#define	yylval	c_lval
#define	yychar	c_char
#define	yydebug	c_debug
#define	yypact	c_pact
#define	yyr1	c_r1
#define	yyr2	c_r2
#define	yydef	c_def
#define	yychk	c_chk
#define	yypgo	c_pgo
#define	yyact	c_act
#define	yyexca	c_exca
#define yyerrflag c_errflag
#define yynerrs	c_nerrs
#define	yyps	c_ps
#define	yypv	c_pv
#define	yys	c_s
#define	yy_yys	c_yys
#define	yystate	c_state
#define	yytmp	c_tmp
#define	yyv	c_v
#define	yy_yyv	c_yyv
#define	yyval	c_val
#define	yylloc	c_lloc
#define yyreds	c_reds
#define yytoks	c_toks
#define yylhs	c_yylhs
#define yylen	c_yylen
#define yydefred c_yydefred
#define yydgoto	c_yydgoto
#define yysindex c_yysindex
#define yyrindex c_yyrindex
#define yygindex c_yygindex
#define yytable	 c_yytable
#define yycheck	 c_yycheck
#define yyname   c_yyname
#define yyrule   c_yyrule
@end example

@c For each define, replace the @samp{c_} prefix with whatever you like.
@c These defines work for @code{bison}, @code{byacc}, and traditional
@c @code{yacc}s.  If you find a parser generator that uses a symbol not
@c covered here, please report the new name so it can be added to the list.
@c 
それぞれの定義に対して，@samp{c_}接頭辞は好みのものに置き換えて下さい．
これらは，@code{bison}，@code{byacc}，そして伝統的な@code{yacc}に対する
動作を定義します．パーサジェネレータが，ここでカバーされていないシンボル
を使用していることが分かった場合，リストに加えることができるように，新し
い名前を報告してください．

@node C++ Support, Assembly Support, Yacc and Lex, Programs
@section C++のサポート

@cindex C++ support
@cindex Support for C++

@c Automake includes full support for C++.
@c 
Automakeには，C++に対する完全なサポートが含まれています．

@c Any package including C++ code must define the output variable
@c @samp{CXX} in @file{configure.in}; the simplest way to do this is to use
@c the @code{AC_PROG_CXX} macro (@pxref{Particular Programs, , Particular
@c Program Checks, autoconf, The Autoconf Manual}).
@c 
C++コードを含んでいるすべてのパッケージでは，@file{configure.in}で出力変
数@samp{CXX}を定義する必要があります．これを行う最も単純な方法は，
@code{AC_PROG_CXX}マクロを使用することです(@pxref{Particular Programs, ,
Particular Program Checks, autoconf, The Autoconf Manual})．

@c A few additional variables are defined when a C++ source file is seen:
@c 
C++ソースファイルがあるとき，２，３の追加変数が定義されます．

@vtable @code
@item CXX
@c The name of the C++ compiler.
@c 
C++コンパイラの名前です．

@item CXXFLAGS
@c Any flags to pass to the C++ compiler.
@c 
C++コンパイラに渡すすべてのフラグです．

@item AM_CXXFLAGS
@c The maintainer's variant of @code{CXXFLAGS}.
@c 
管理者のための@code{CXXFLAGS}です．

@item CXXCOMPILE
@c The command used to actually compile a C++ source file.  The file name
@c is appended to form the complete command line.
@c 
C++ソースファイルを実際にコンパイルするために使用されるコマンドです．完
全なコマンドラインを構成するためにファイル名が追加されます．

@item CXXLINK
@c The command used to actually link a C++ program.
@c 
実際にC++プログラムをリンクするコマンドです．
@end vtable


@node Assembly Support, Fortran 77 Support, C++ Support, Programs
@section アセンブラのサポート

@c Automake includes some support for assembly code.
@c 
Automakeは，アセンブラコードに対するサポートも含んでいます．

@c The variable @code{CCAS} holds the name of the compiler used to build
@c assembly code.  This compiler must work a bit like a C compiler; in
@c particular it must accept @samp{-c} and @samp{-o}.  The value of
@c @code{CCASFLAGS} is passed to the compilation.
@c 
変数@code{CCAS}には，アセンブラコードをビルドするために使用するコンパイ
ラ名が保持されています．このコンパイラは，Cコンパイラにちょっと似ている
動作をする必要があります．特に，それは@samp{-c}と@samp{-o}を受け入れる必
要があります．@code{CCASFLAGS}の値はコンパイラに渡されます．
@vindex CCAS
@vindex CCASFLAGS

@c You are required to set @code{CCAS} and @code{CCASFLAGS} via
@c @file{configure.in}.  The autoconf macro @code{AM_PROG_AS} will do this
@c for you.  Unless they are already set, it simply sets @code{CCAS} to the
@c C compiler and @code{CCASFLAGS} to the C compiler flags.
@c 
@file{configure.in}で@code{CCAS}と@code{CCASFLAGS}を設定する必要がありま
す．autoconfマクロの@code{AM_PROG_AS}でこれを行ないます．前もって設定さ
れていない場合は，@code{CCAS}をCコンパイラに， @code{CCASFLAGS}をCコンパ
イラフラグに，単純に設定します．

@c Only the suffixes @samp{.s} and @samp{.S} are recognized by
@c @code{automake} as being files containing assembly code.
@c 
接尾子の@samp{.s}と@samp{.S}だけがアセンブリコードを含んでいるファイルだ
と@code{automake}で認識されます．


@node Fortran 77 Support, Java Support, Assembly Support, Programs
@comment  node-name,  next,  previous,  up
@section Fortran 77のサポート

@cindex Fortran 77 support
@cindex Support for Fortran 77

@c Automake includes full support for Fortran 77.
@c 
Automakeには，Fortran 77に対する完全なサポートが含まれています．

@c Any package including Fortran 77 code must define the output variable
@c @samp{F77} in @file{configure.in}; the simplest way to do this is to use
@c the @code{AC_PROG_F77} macro (@pxref{Particular Programs, , Particular
@c Program Checks, autoconf, The Autoconf Manual}).  @xref{Fortran 77 and
@c Autoconf}.
@c 
Fortran 77コードを含むパッケージでは，@file{configure.in}で出力変数
@samp{F77}を定義する必要があります．こうするための最も簡単な方法は
@code{AC_PROG_F77}マクロを使用することです(@pxref{Particular Programs, ,
Particular Program Checks, autoconf, The Autoconf Manual})．
@xref{Fortran 77 and Autoconf}.

@c A few additional variables are defined when a Fortran 77 source file is
@c seen:
@c 
Fortran 77ソースファイルが見つかるときは，追加変数がいくつか定義されます．
@vtable @code

@item F77
@c The name of the Fortran 77 compiler.
@c 
Fortran 77コンパイラの名前です．

@item FFLAGS
@c Any flags to pass to the Fortran 77 compiler.
@c 
Fortran 77コンパイラに渡すすべてのフラグです．

@item AM_FFLAGS
@c The maintainer's variant of @code{FFLAGS}.
@c 
管理者のための@code{FFLAGS}です．

@item RFLAGS
@c Any flags to pass to the Ratfor compiler.
@c 
Ratforコンパイラに渡すすべてのフラグです．

@item AM_RFLAGS
@c The maintainer's variant of @code{RFLAGS}.
@c 
管理者のための@code{RFLAGS}です．

@item F77COMPILE
@c The command used to actually compile a Fortran 77 source file.  The file
@c name is appended to form the complete command line.
@c 
実際にFortran 77ソースファイルをコンパイルするコマンドです．完全なコマン
ドラインを構成するために，ファイル名が追加されます．

@item FLINK
@c The command used to actually link a pure Fortran 77 program or shared
@c library.
@c 
実際に純粋なFortran 77プログラムあるいは共有ライブラリをリンクするコマン
ドです．

@end vtable

@c Automake can handle preprocessing Fortran 77 and Ratfor source files in
@c addition to compiling them@footnote{Much, if not most, of the
@c information in the following sections pertaining to preprocessing
@c Fortran 77 programs was taken almost verbatim from @ref{Catalogue of
@c Rules, , Catalogue of Rules, make, The GNU Make Manual}.}.  Automake
@c also contains some support for creating programs and shared libraries
@c that are a mixture of Fortran 77 and other languages (@pxref{Mixing
@c Fortran 77 With C and C++}).
@c 
さらにAutomakeは，コンパイルするためにFortran 77とRatforソースファイルの
プリプロセス処理を行なうことが可能です@footnote{以下のセクションにある
Fortran 77プログラムのプリプロセスに関する情報については，大部分でないが，
多くのものを@ref{Catalogue of Rules, , Catalogue of Rules, make, The GNU
Make Manual}からほとんどそのまま持ってきています．}．Automakeには，
Fortran 77と他の言葉が混合しているプログラムと共有ライブラリを作成するた
めのサポートも含まれています(@pxref{Mixing Fortran 77 With C and C++})．

@c These issues are covered in the following sections.
@c 
これらの問題は次のセクションで述べます．

@menu
* Preprocessing Fortran 77::
* Compiling Fortran 77 Files::
* Mixing Fortran 77 With C and C++::
* Fortran 77 and Autoconf::
@end menu


@node Preprocessing Fortran 77, Compiling Fortran 77 Files, Fortran 77 Support, Fortran 77 Support
@comment  node-name,  next,  previous,  up
@subsection Fortran 77のプリプロセス

@cindex Preprocessing Fortran 77
@cindex Fortran 77, Preprocessing
@cindex Ratfor programs

@c @file{N.f} is made automatically from @file{N.F} or @file{N.r}.  This
@c rule runs just the preprocessor to convert a preprocessable Fortran 77
@c or Ratfor source file into a strict Fortran 77 source file.  The precise
@c command used is as follows:
@c 
@file{N.f}は自動的に@file{N.F}あるいは@file{N.r}から作成されます．この規
則は，プリプロセス可能なFortran 77やRatforソースファイルを，厳密な
Fortran 77ソースファイルに変換するためだけにプリプロセッサを走らせます．
使用される正確なコマンドは以下のようになります．

@table @file

@item .F
@code{$(F77) -F $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS)}

@item .r
@code{$(F77) -F $(AM_FFLAGS) $(FFLAGS) $(AM_RFLAGS) $(RFLAGS)}

@end table


@node Compiling Fortran 77 Files, Mixing Fortran 77 With C and C++, Preprocessing Fortran 77, Fortran 77 Support
@comment  node-name,  next,  previous,  up
@subsection Fortran 77ファイルのコンパイル

@c @file{N.o} is made automatically from @file{N.f}, @file{N.F} or
@c @file{N.r} by running the Fortran 77 compiler.  The precise command used
@c is as follows:
@c 
@file{N.o}は，Fortran 77を実行することによって@file{N.f}，@file{N.F}や
@file{N.r}から自動的に作成されます．使用される正確なコマンドは以下のよう
になります．

@table @file

@item .f
@code{$(F77) -c $(AM_FFLAGS) $(FFLAGS)}

@item .F
@code{$(F77) -c $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS)}

@item .r
@code{$(F77) -c $(AM_FFLAGS) $(FFLAGS) $(AM_RFLAGS) $(RFLAGS)}

@end table


@node Mixing Fortran 77 With C and C++, Fortran 77 and Autoconf, Compiling Fortran 77 Files, Fortran 77 Support
@comment  node-name,  next,  previous,  up
@subsection CとC++と，Fortran 77の混在

@cindex Fortran 77, mixing with C and C++
@cindex Mixing Fortran 77 with C and C++
@cindex Linking Fortran 77 with C and C++
@cindex cfortran
@cindex Mixing Fortran 77 with C and/or C++

@c Automake currently provides @emph{limited} support for creating programs
@c and shared libraries that are a mixture of Fortran 77 and C and/or C++.
@c However, there are many other issues related to mixing Fortran 77 with
@c other languages that are @emph{not} (currently) handled by Automake, but
@c that are handled by other packages@footnote{For example,
@c @uref{http://www-zeus.desy.de/~burow/cfortran/, the cfortran package}
@c addresses all of these inter-language issues, and runs under nearly all
@c Fortran 77, C and C++ compilers on nearly all platforms.  However,
@c @code{cfortran} is not yet Free Software, but it will be in the next
@c major release.}.
@c 
Automakeは現在，Fortran 77とCそして/またはC++が混在しているプログラムと
共有ライブラリを作成するため，@emph{限定された}サポートを提供しています．
しかし，(現在は)Automakeによって処理され@emph{ません}が，他のパッケージ
@footnote{例えば，@uref{http://www-zeus.desy.de/~burow/cfortran/, the
cfortran package}は，これらすべての言語間の問題を扱い，ほとんどすべての
プラットホームの，ほとんどすべてのFortran 77，C，そしてC++コンパイラで動
作します．しかしながら，@code{cfortran}はまだフリーソフトウェアではあり
ませんが，次のメジャーリリースでそうなるでしょう．}で処理される，Fortran
77と他の言葉との混在に関連して，多くの問題が発生しています．

@page
@c Automake can help in two ways:
@c 
Automakeは２つの方法でそれを助けることが可能です．

@enumerate
@item
@c Automatic selection of the linker depending on which combinations of
@c source code.
@c 
ソースコードの組み合わせに依存したリンカの自動的な選択．

@item
@c Automatic selection of the appropriate linker flags (e.g. @samp{-L} and
@c @samp{-l}) to pass to the automatically selected linker in order to link
@c in the appropriate Fortran 77 intrinsic and run-time libraries.
@c 
適切なFortran 77のイントリンシックとランタイムライブラリにリンクするため
に，自動的に選択されたリンカに渡す適切なリンカフラグ(例えば@samp{-L}と
@samp{-l})の自動的な選択．

@cindex FLIBS, defined
@c These extra Fortran 77 linker flags are supplied in the output variable
@c @code{FLIBS} by the @code{AC_F77_LIBRARY_LDFLAGS} Autoconf macro
@c supplied with newer versions of Autoconf (Autoconf version 2.13 and
@c later).  @xref{Fortran 77 Compiler Characteristics, , , autoconf, The
@c Autoconf}.
@c 
これらの追加されたFortran 77リンカフラグは，Autoconf(Autoconfバージョン
2.13やそれ以降)の新しいバージョンで供給された，
@code{AC_F77_LIBRARY_LDFLAGS}というAutoconfマクロでの出力変数
@code{FLIBS}で提供されます．@xref{Fortran 77 Compiler Characteristics, ,
, autoconf, The Autoconf}.
@end enumerate

@c If Automake detects that a program or shared library (as mentioned in
@c some @code{_PROGRAMS} or @code{_LTLIBRARIES} primary) contains source
@c code that is a mixture of Fortran 77 and C and/or C++, then it requires
@c that the macro @code{AC_F77_LIBRARY_LDFLAGS} be called in
@c @file{configure.in}, and that either @code{$(FLIBS)} or @code{@@FLIBS@@}
@c appear in the appropriate @code{_LDADD} (for programs) or @code{_LIBADD}
@c (for shared libraries) variables.  It is the responsibility of the
@c person writing the @file{Makefile.am} to make sure that @code{$(FLIBS)}
@c or @code{@@FLIBS@@} appears in the appropriate @code{_LDADD} or
@c @code{_LIBADD} variable.
@c 
(@code{_PROGRAMS}や@code{_LTLIBRARIES}プライマリで記述されているような) 
プログラムや共有ライブラリが，Fortran 77と，Cそして/またはC++が混合する
ソースコードを含んでいることをAutomakeが検出した場合，
@code{AC_F77_LIBRARY_LDFLAGS}マクロを@file{configure.in}で呼び出し，
@code{$(FLIBS)}または@code{@@FLIBS@@}のどちらかで，適切な(プログラムに対
する)@code{_LDADD}や，(共有ライブラリに対する)@code{_LIBADD}変数が書かれ
ていることを要求します．@code{$(FLIBS)}や@code{@@FLIBS@@}が適切な
@code{_LDADD}や@code{_LIBADD}変数に書かれていることを確かめるのは，
@file{Makefile.am}を書いている人の責任です．

@cindex Mixed language example
@cindex Example, mixed language

@c For example, consider the following @file{Makefile.am}:
@c 
例えば，次の@file{Makefile.am}を考えます．

@example
bin_PROGRAMS = foo
foo_SOURCES  = main.cc foo.f
foo_LDADD    = libfoo.la @@FLIBS@@

pkglib_LTLIBRARIES = libfoo.la
libfoo_la_SOURCES  = bar.f baz.c zardoz.cc
libfoo_la_LIBADD   = $(FLIBS)
@end example

@c In this case, Automake will insist that @code{AC_F77_LIBRARY_LDFLAGS}
@c is mentioned in @file{configure.in}.  Also, if @code{@@FLIBS@@} hadn't
@c been mentioned in @code{foo_LDADD} and @code{libfoo_la_LIBADD}, then
@c Automake would have issued a warning.
@c 
この場合は，Automakeは，@code{AC_F77_LIBRARY_LDFLAGS}が
@file{configure.in}で記述されることを強く要求します．また，
@code{@@FLIBS@@}が@code{foo_LDADD}と@code{libfoo_la_LIBADD}で記述されて
いない場合も，Automakeは警告を出します．


@page
@menu
* How the Linker is Chosen::
@end menu

@node How the Linker is Chosen,  , Mixing Fortran 77 With C and C++, Mixing Fortran 77 With C and C++
@comment  node-name,  next,  previous,  up
@subsubsection リンカの選択方法

@cindex Automatic linker selection
@cindex Selecting the linker automatically

@c The following diagram demonstrates under what conditions a particular
@c linker is chosen by Automake.
@c 
Automakeによって特定のリンカが選択される条件を以下のの図で明示します．

@c For example, if Fortran 77, C and C++ source code were to be compiled
@c into a program, then the C++ linker will be used.  In this case, if the
@c C or Fortran 77 linkers required any special libraries that weren't
@c included by the C++ linker, then they must be manually added to an
@c @code{_LDADD} or @code{_LIBADD} variable by the user writing the
@c @file{Makefile.am}.
@c 
例えば，Fortran 77，C，そしてC++ソースコードがプログラムにコンパイルされ
る場合，C++リンカが使用されます．この場合，CあるいはFortran 77リンカが，
C++リンカに含まれていない特別なライブラリを必要とした場合，
@file{Makefile.am}を書いているユーザーが，@code{_LDADD}や@code{_LIBADD}
変数を手作業で付け加える必要があります．

@example
                     \              Linker
          source      \
           code        \     C        C++     Fortran
     -----------------  +---------+---------+---------+
                        |         |         |         |
     C                  |    x    |         |         |
                        |         |         |         |
                        +---------+---------+---------+
                        |         |         |         |
         C++            |         |    x    |         |
                        |         |         |         |
                        +---------+---------+---------+
                        |         |         |         |
               Fortran  |         |         |    x    |
                        |         |         |         |
                        +---------+---------+---------+
                        |         |         |         |
     C + C++            |         |    x    |         |
                        |         |         |         |
                        +---------+---------+---------+
                        |         |         |         |
     C +       Fortran  |         |         |    x    |
                        |         |         |         |
                        +---------+---------+---------+
                        |         |         |         |
         C++ + Fortran  |         |    x    |         |
                        |         |         |         |
                        +---------+---------+---------+
                        |         |         |         |
     C + C++ + Fortran  |         |    x    |         |
                        |         |         |         |
                        +---------+---------+---------+
@end example


@node Fortran 77 and Autoconf,  , Mixing Fortran 77 With C and C++, Fortran 77 Support
@comment  node-name,  next,  previous,  up
@subsection Fortran 77とAutoconf

@c The current Automake support for Fortran 77 requires a recent enough
@c version of Autoconf that also includes support for Fortran 77.  Full
@c Fortran 77 support was added to Autoconf 2.13, so you will want to use
@c that version of Autoconf or later.
@c 
Fortran 77に対する現在のAutomakeサポートは，Fortran 77に対するサポートが
含まれている最近のバージョンのAutoconfも必要になります．Fortran 77の完全
なサポートがAutoconf2.13で加えられたので，それかそれ以降のバージョンの
Autoconfを使用したいと思うことでしょう．


@node Java Support, Support for Other Languages, Fortran 77 Support, Programs
@comment  node-name,  next,  previous,  up
@section Javaのサポート

@cindex Java support
@cindex Support for Java

@c Automake includes support for compiled Java, using @code{gcj}, the Java
@c front end to the GNU Compiler Collection.
@c 
Automakeには，GNU Compiler CollectionのJavaフロントエンドである
@code{gcj}を使用してコンパイルされるJavaに対するサポートも含まれています．

@c Any package including Java code to be compiled must define the output
@c variable @samp{GCJ} in @file{configure.in}; the variable @samp{GCJFLAGS}
@c must also be defined somehow (either in @file{configure.in} or
@c @file{Makefile.am}).  The simplest way to do this is to use the
@c @code{AM_PROG_GCJ} macro.
@c 
Javaコードを含んでいるパッケージのコンパイルには，@file{configure.in}で
出力変数@samp{GCJ}の定義する必要があります．変数@samp{GCJFLAGS}も，
(@file{configure.in}や@file{Makefile.am}で)なんとかして定義する必要があ
ります．こうするための最も簡単な方法は，@code{AM_PROG_GCJ}マクロを使用す
ることです．

@vindex GCJFLAGS

@c By default, programs including Java source files are linked with
@c @code{gcj}.
@c 
デフォルトで，Javaソースファイルを含んでいるプログラムは，@code{gcj}でリ
ンクされます．

@c As always, the contents of @samp{AM_GCJFLAGS} are passed to every
@c compilation invoking @code{gcj} (in its role as an ahead-of-time
@c compiler -- when invoking it to create @file{.class} files,
@c @samp{AM_JAVACFLAGS} is used instead).  If it is necessary to pass
@c options to @code{gcj} from @file{Makefile.am}, this macro, and not the
@c user macro @samp{GCJFLAGS}, should be used.
@c 
通常通り，@samp{AM_GCJFLAGS}の内容は，@code{gcj}が呼び出されるコンパイル
ごとに渡されます(コンパイル前でのその役割を果たすもの---@file{.class}ファ
イルを作成するためにそれを呼び出すとき，@samp{AM_JAVACFLAGS}が代わりに使
用されます)．@file{Makefile.am}から@code{gcj}にオプションを渡す必要があ
る場合，このマクロとユーザマクロでない@samp{GCJFLAGS}を使用すべきでしょ
う．

@vindex AM_GCJFLAGS

@c @code{gcj} can be used to compile @file{.java}, @file{.class},
@c @file{.zip}, or @file{.jar} files.
@c 
@code{gcj}は，@file{.java}，@file{.class}，@file{.zip}，または
@file{.jar}ファイルをコンパイルするために使用することが可能です．


@node Support for Other Languages, ANSI, Java Support, Programs
@comment  node-name,  next,  previous,  up
@section 他の言語のサポート

@c Automake currently only includes full support for C, C++ (@pxref{C++
@c Support}), Fortran 77 (@pxref{Fortran 77 Support}), and Java
@c (@pxref{Java Support}).  There is only rudimentary support for other
@c languages, support for which will be improved based on user demand.
@c 
Automakeには現在，C，C++(@pxref{C++ Support})，Fortran 77(@pxref{Fortran
77 Support})，そしてJava(@pxref{Java Support})のみの完全なサポートが含ま
れています．他の言葉に対しては，基本的なサポートとユーザーの需要に基づい
て改善されるサポートしかありません．

@c Some limited support for adding your own languages is available via the
@c suffix rule handling; see @ref{Suffixes}.
@c 
独自の言語を加えるため幾分制限されているサポートは，サフィックスルールの
処理によって利用可能になっています．@ref{Suffixes}を参照してください．


@node ANSI, Dependencies, Support for Other Languages, Programs
@section 自動的なde-ANSI-fication

@cindex de-ANSI-fication, defined

@c Although the GNU standards allow the use of ANSI C, this can have the
@c effect of limiting portability of a package to some older compilers
@c (notably the SunOS C compiler).
@c 
GNU standardsはANSI Cの使用を許可していますが，これはもっと古いコンパイ
ラ(特にSunOS C コンパイラ)へのパッケージの移植性を制限することになるはず
です．

@c Automake allows you to work around this problem on such machines by
@c @dfn{de-ANSI-fying} each source file before the actual compilation takes
@c place.
@c 
実際にコンパイルされる前に@dfn{de-ANSI-fyng}したそれぞれのファイルによっ
て，Automakeではそのようなマシン上でのこの問題を解決することが可能になり
ます．

@vindex AUTOMAKE_OPTIONS
@opindex ansi2knr

@c If the @file{Makefile.am} variable @code{AUTOMAKE_OPTIONS}
@c (@pxref{Options}) contains the option @code{ansi2knr} then code to
@c handle de-ANSI-fication is inserted into the generated
@c @file{Makefile.in}.
@c 
@file{Makefile.am}の変数@code{AUTOMAKE_OPTIONS}(@pxref{Options})がオプショ
ン@code{ansi2knr}を含んでいる場合，de-ANSI-ficationを処理するためのコー
ドが生成された@file{Makefile.in}に挿入されます．

@c This causes each C source file in the directory to be treated as ANSI C.
@c If an ANSI C compiler is available, it is used.  If no ANSI C compiler
@c is available, the @code{ansi2knr} program is used to convert the source
@c files into K&R C, which is then compiled.
@c 
これによって，ディレクトリ内のそれぞれのCソースファイルをANSI Cとして扱
います．ANSI Cコンパイラが利用可能な場合，それが使用されます．ANSI C コ
ンパイラが利用可能でない場合，@code{ansi2knr}プログラムがソースファイル
をK&R Cに変換するために使用され，そしてコンパイルされます．

@c The @code{ansi2knr} program is simple-minded.  It assumes the source
@c code will be formatted in a particular way; see the @code{ansi2knr} man
@c page for details.
@c 
@code{ansi2knr}プログラムは単純です．それはソースコードが特定の方法で書
式化されると仮定します．詳細は@code{ansi2knr}のmanページを参照してくださ
い．

@c Support for de-ANSI-fication requires the source files @file{ansi2knr.c}
@c and @file{ansi2knr.1} to be in the same package as the ANSI C source;
@c these files are distributed with Automake.  Also, the package
@c @file{configure.in} must call the macro @code{AM_C_PROTOTYPES}
@c (@pxref{Macros}).
@c 
de-ANSI-ficationに対するサポートでは，ソースファイル@file{ansi2knr.c}と
@file{ansi2knr.1}がANSI Cソースと同じパッケージにある必要があります．こ
れらのファイルはAutomakeと一緒に配布されます．また，パッケージ
@file{configure.in}では，@code{AM_C_PROTOTYPES}マクロを呼び出す必要もあ
ります(@pxref{Macros})．
@cvindex AM_C_PROTOTYPES

@c Automake also handles finding the @code{ansi2knr} support files in some
@c other directory in the current package.  This is done by prepending the
@c relative path to the appropriate directory to the @code{ansi2knr}
@c option.  For instance, suppose the package has ANSI C code in the
@c @file{src} and @file{lib} subdirs.  The files @file{ansi2knr.c} and
@c @file{ansi2knr.1} appear in @file{lib}.  Then this could appear in
@c @file{src/Makefile.am}:
@c 
Automakeは，現在のパッケージの他のディレクトリで@code{ansi2knr}サポート
ファイルを見つけることもできます．これは，@code{ansi2knr}オプションへ適
切なディレクトリへの相対的なパスを前置することで行なわれます．例えば，パッ
ケージの@file{src}と@file{lib}サブディレクトリにANSI Cコードがあると仮定
します．ファイル@file{ansi2knr.c}と@file{ansi2knr.1}は@file{lib}にありま
す．この場合，@file{src/Makefile.am}は以下のように書くことが可能でしょう．

@example
AUTOMAKE_OPTIONS = ../lib/ansi2knr
@end example

@c If no directory prefix is given, the files are assumed to be in the
@c current directory.
@c 
ディレクトリの接頭辞が与えられてない場合，ファイルはカレントディレクトリ
にあると仮定されます．

@c Files mentioned in @code{LIBOBJS} which need de-ANSI-fication will not
@c be automatically handled.  That's because @code{configure} will generate
@c an object name like @file{regex.o}, while @code{make} will be looking
@c for @file{regex_.o} (when de-ANSI-fying).  Eventually this problem will
@c be fixed via @code{autoconf} magic, but for now you must put this code
@c into your @file{configure.in}, just before the @code{AC_OUTPUT} call:
@c 
de-ANSI-ficationを必要とする@code{LIBOBJS}に書かれているファイルは，自動
的に処理されません．その理由は，@code{configure}が@file{regex.o}のような
オブジェクト名を生成しますが，@code{make}は(de-ANSI-fyingの時)，
@file{regex_.o}を探すためです．最終的に，この問題は@code{autoconf}によっ
て修正されますが，しばらくは@code{AC_OUTPUT}を呼び出す直前に，
@file{configure.in}に以下のコードを書き込む必要があります．

@example
# This is necessary so that .o files in LIBOBJS are also built via
# the ANSI2KNR-filtering rules.
LIBOBJS=`echo $LIBOBJS|sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'`
@end example
@c FIXME: Ask Akim how this should be handled in the upcoming Autoconf.

@c Note that automatic de-ANSI-fication will not work when the package is
@c being built for a different host architecture.  That is because automake
@c currently has no way to build @code{ansi2knr} for the build machine.
@c 
自動的なde-ANSI-ficationは，パッケージが異なるホストアーキテクチャに対す
るビルドでは動作しないことに注意してください．それは，ビルドマシンに対し
て@code{ansi2knr}をビルドする方法が，現在のautomakeには無いためです．


@node Dependencies, EXEEXT, ANSI, Programs
@section 自動的な依存性追跡

@c As a developer it is often painful to continually update the
@c @file{Makefile.in} whenever the include-file dependencies change in a
@c project.  Automake supplies a way to automatically track dependency
@c changes.
@c 
プロジェクトで，インクルードファイルの依存性が変化するときはいつでも，絶
えず@file{Makefile.in}を更新することは開発者として辛いことも多いものです．
Automakeは自動的に依存性の変更を追跡する方法を提供しています．

@cindex Dependency tracking
@cindex Automatic dependency tracking

@c Automake always uses complete dependencies for a compilation, including
@c system headers.  Automake's model is that dependency computation should
@c be a side effect of the build.  To this end, dependencies are computed
@c by running all compilations through a special wrapper program called
@c @code{depcomp}.  @code{depcomp} understands how to coax many different C
@c and C++ compilers into generating dependency information in the format
@c it requires.  @code{automake -a} will install @code{depcomp} into your
@c source tree for you.  If @code{depcomp} can't figure out how to properly
@c invoke your compiler, dependency tracking will simply be disabled for
@c your build.
@c 
Automakeは常に，システムヘッダを含むコンパイルに対する完全な依存性を使用
します．Automakeのモデルは，依存性の評価がビルドの副作用になるというもの
です．つまり依存性は，@code{depcomp}と呼ばれる特別なラッパプログラムを通
じてすべてのコンパイルを実行することで求められます．@code{depcomp}は，多
くの異なるCとC++コンパイラで，それが要求する書式で依存情報の生成させるよ
うに上手に扱う方法を理解してます．@code{automake -a}で，@code{depcomp} 
をソースツリーにインストールします．@code{depcomp}がコンパイラの正しい呼
び出し方が分からない場合，依存性の追跡はビルドで利用不可能になるだけです．

@cindex depcomp

@c Experience with earlier versions of Automake @footnote{See
@c @uref{http://sources.redhat.com/automake/dependencies.html} for more
@c information on the history and experiences with automatic dependency
@c tracking in Automake} taught us that it is not reliable to generate
@c dependencies only on the maintainer's system, as configurations vary too
@c much.  So instead Automake implements dependency tracking at build time.
@c 
これまでのバージョンのAutomakeの経験上@footnote{Automakeでの自動的な依存
性の追跡に関する歴史と経験についての情報は，
@uref{http://sources.redhat.com/automake/dependencies.html}を参照してく
ださい．}，コンフィグレーションが多くなるにつれ，管理者のシステムでのみ
生成される依存性が信頼できないことを我々に教えてくれました．そのため，
Automakeはビルド時に依存性を追跡することをその代わりに実装しました．

@c Automatic dependency tracking can be suppressed by putting
@c @code{no-dependencies} in the variable @code{AUTOMAKE_OPTIONS}, or
@c passing @code{no-dependencies} as an argument to @code{AM_INIT_AUTOMAKE}
@c (this should be the prefered way).  Or, you can invoke @code{automake}
@c with the @code{-i} option.  Dependency tracking is enabled by default.
@c 
自動的な依存性の追跡で，変数@code{AUTOMAKE_OPTIONS}に
@code{no-dependencies}を書くことや，@code{AM_INIT_AUTOMAKE}への引数とし
て@code{no-dependencies}を渡すこと(これは推奨されるべき方法です)が無くな
るはずです．そうしない場合は，@code{automake}を@code{-i}オプションを用い
て呼び出してください．依存性の追跡はデフォルトで利用可能です．

@vindex AUTOMAKE_OPTIONS
@opindex no-dependencies

@c The person building your package also can choose to disable dependency
@c tracking by configuring with @code{--disable-dependency-tracking}.
@c 
パッケージを構築している人々も，@code{--disable-dependency-tracking}を用
いてコンフィグレーションすることで，依存性の追跡を利用不可能にすることを
選択することが可能です．

@cindex Disabling dependency tracking
@cindex Dependency tracking, disabling


@node EXEEXT,  , Dependencies, Programs
@section 実行形式の拡張子のサポート

@cindex Executable extension
@cindex Extension, executable
@cindex Windows

@c On some platforms, such as Windows, executables are expected to have an
@c extension such as @samp{.exe}.  On these platforms, some compilers (GCC
@c among them) will automatically generate @file{foo.exe} when asked to
@c generate @file{foo}.
@c 
プラットフォームによっては，Windowsのように実行形式が@samp{.exe}のような
拡張子を持つことを期待するものもあります．これらのプラットフォームでは，
(GCCを含む)コンパイラは，@file{foo}を生成するように依頼されるとき，自動
的に@file{foo.exe}を生成します．

@c Automake provides mostly-transparent support for this.  Unfortunately
@c @emph{mostly} doesn't yet mean @emph{fully}.  Until the English
@c dictionary is revised, you will have to assist Automake if your package
@c must support those platforms.
@c 
Automakeは，これに対するほとんどの変換でサポートを提供します．残念ながら
@emph{ほとんど}とは完全では無いということです．英語の辞書では反対になり
ますが，パッケージをこれらのプラットフォームでサポートされるようにしたい
場合，Automakeを補助する必要があります．

@c One thing you must be aware of is that, internally, Automake rewrites
@c something like this:
@c 
気付いていると思われることの一つは，Automakeが以下のような内容に内部で書
き直すことです．

@example
bin_PROGRAMS = liver
@end example

@c to this:
@c 
これを以下のようにします．

@example
bin_PROGRAMS = liver$(EXEEXT)
@end example

@c The targets Automake generates are likewise given the @samp{$(EXEEXT)}
@c extension.  @code{EXEEXT}
@c 
Automakeが生成するターゲットは，@samp{$(EXEEXT)}拡張子が与えられたものに
なります．@code{EXEEXT}

@c However, Automake cannot apply this rewriting to @code{configure}
@c substitutions.  This means that if you are conditionally building a
@c program using such a substitution, then your @file{configure.in} must
@c take care to add @samp{$(EXEEXT)} when constructing the output variable.
@c 
しかし，Automakeがこの書き換えを@code{configure}の置換式に適用することは
不可能です．そのような置換式を使用しているプログラムを条件付きでビルドし
ている場合，出力変数を作成しているときに@file{configure.in}に
@samp{$(EXEEXT)}を注意して加えるようにする必要があるということを，これは
意味します．

@c With Autoconf 2.13 and earlier, you must explicitly use @code{AC_EXEEXT}
@c to get this support.  With Autoconf 2.50, @code{AC_EXEEXT} is run
@c automatically if you configure a compiler (say, through
@c @code{AC_PROG_CC}).
@c 
Autoconf 2.13とそれ以前のものを用いると，このサポートを得るために，明示
的に@code{AC_EXEEXT}を使用する必要があります．Autoconf 2.50を用いると，
コンパイラをコンフィグレーションする際に(すなわち@code{AC_PROG_CC}を通じ
て)，@code{AC_EXEEXT}が自動的に実行されます．

@c Sometimes maintainers like to write an explicit link rule for their
@c program.  Without executable extension support, this is easy---you
@c simply write a target with the same name as the program.  However, when
@c executable extension support is enabled, you must instead add the
@c @samp{$(EXEEXT)} suffix.
@c 
それらのプログラムに対し，管理者が明示的にリンク規則を書きたいときもあり
ます．実行形式の拡張子サポートを用いなければ，これは簡単です---ターゲッ
トをプログラムと同じ名前にするだけです．しかし，実行形式の拡張子のサポー
トが利用可能な時は，代わりに@samp{$(EXEEXT)}接尾辞を加える必要があります．

@c Unfortunately, due to the change in Autoconf 2.50, this means you must
@c always add this extension.  However, this is a problem for maintainers
@c who know their package will never run on a platform that has executable
@c extensions.  For those maintainers, the @code{no-exeext} option
@c (@pxref{Options}) will disable this feature.  This works in a fairly
@c ugly way; if @code{no-exeext} is seen, then the presence of a target
@c named @code{foo} in @file{Makefile.am} will override an
@c automake-generated target of the form @code{foo$(EXEEXT)}.  Without the
@c @code{no-exeext} option, this use will give an error.
@c 
残念ながら，Autoconf 2.50の変更のため，常にこの拡張子を加える必要がある
ことを，これは意味しています．しかし，パッケージが実行形式の拡張子を持つ
プラットフォームで実行されるはずがないことを知っている管理者にとって，こ
のことは問題になります．これらの管理者に対しては，@code{no-exeext}オプショ
ン(@pxref{Options})でこの機能が利用不可能になります．これは，かなり醜い
方法で動作します．@code{no-exeext}が見つかった場合，@file{Makefile.am}の
@code{foo}という名前のターゲットが存在すると，automekeが生成する
@code{foo$(EXEEXT)}形式のターゲットで上書きされます．@code{no-exeext}オ
プションが用いなければ，これでエラーが生じます．


@node Other objects, Other GNU Tools, Programs, Top
@chapter その他の派生されるオブジェクト

@c Automake can handle derived objects which are not C programs.  Sometimes
@c the support for actually building such objects must be explicitly
@c supplied, but Automake will still automatically handle installation and
@c distribution.
@c 
AutomakeはCプログラムではない派生されるオブジェクトを扱うことが可能です．
このようなオブジェクトを実際にビルドするサポートを明示的に供給する必要が
あることもありますが，Automakeは自動的にインストールと配布物を扱います．

@menu
* Scripts::                     Executable scripts
* Headers::                     Header files
* Data::                        Architecture-independent data files
* Sources::                     Derived sources
@end menu


@node Scripts, Headers, Other objects, Other objects
@section 実行可能なスクリプト

@cindex _SCRIPTS primary, defined
@cindex SCRIPTS primary, defined
@cindex Primary variable, SCRIPTS

@c It is possible to define and install programs which are scripts.  Such
@c programs are listed using the @samp{SCRIPTS} primary name.  Automake
@c doesn't define any dependencies for scripts; the @file{Makefile.am}
@c should include the appropriate rules.
@c 
スクリプトのプログラムを定義しインストールすることが可能です．そのような
プログラムは，@samp{SCRIPTS}プライマリを使用してリストアップします．
Automakeは，スクリプトに対する依存性の定義を全く行ないません．
@file{Makefile.am}に適切な規則を含ませるべきでしょう．
@vindex SCRIPTS

@c Automake does not assume that scripts are derived objects; such objects
@c must be deleted by hand (@pxref{Clean}).
@c 
Automakeはスクリプトがオブジェクトからの派生物であると想定しません．その
ようなオブジェクトは手動で削除する必要があります(@pxref{Clean})．

@c The @code{automake} program itself is a Perl script that is generated at
@c configure time from @file{automake.in}.  Here is how this is handled:
@c 
@code{automake}プログラム自身は，@file{automake.in}からconfigure時に生成
されるPerlスクリプトです．これを処理する方法は以下のようになります．

@example
bin_SCRIPTS = automake
@end example

@c Since @code{automake} appears in the @code{AC_OUTPUT} macro, a target
@c for it is automatically generated, and it is also automatically cleaned
@c (despite the fact it's a script).
@c 
@code{automake}が@code{AC_OUTPUT}マクロにあるので，それに対するターゲッ
トは自動的に生成され，(それがスクリプトであるという事実にもかかわらず)自
動的にクリーンもされます．

@cindex SCRIPTS, installation directories
@cindex Installing scripts

@vindex bin_SCRIPTS
@vindex sbin_SCRIPTS
@vindex libexec_SCRIPTS
@vindex pkgdata_SCRIPTS
@vindex noinst_SCRIPTS
@vindex check_SCRIPTS

@c Script objects can be installed in @code{bindir}, @code{sbindir},
@c @code{libexecdir}, or @code{pkgdatadir}.
@c 
スクリプトオブジェクトは@code{bindir}，@code{sbindir}，@code{libexecdir}，
または@code{pkgdatadir}にインストールすることが可能です．

@c Scripts that need not being installed can be listed in
@c @code{noinst_SCRIPTS}, and among them, those which are needed only by
@c @code{make check} should go in @code{check_SCRIPTS}.
@c 
インストールする必要が無いスクリプトは@code{noinst_SCRIPTS}にリストアッ
プすることが可能で，その中で@code{make check}だけで必要なものは
@code{check_SCRIPTS}に書くべきです．


@node Headers, Data, Scripts, Other objects
@section ヘッダファイル

@cindex _HEADERS primary, defined
@cindex HEADERS primary, defined
@cindex Primary variable, HEADERS

@vindex noinst_HEADERS

@c Header files are specified by the @samp{HEADERS} family of variables.
@c Generally header files are not installed, so the @code{noinst_HEADERS}
@c variable will be the most used.  @footnote{However, for the case of a
@c non-installed header file that is actually used by a particular program,
@c we recommend listing it in the program's @samp{_SOURCES} variable
@c instead of in @code{noinst_HEADERS}.  We believe this is more clear.}
@c 
ヘッダファイルは，@samp{HEADERS}等の変数で指定します．ヘッダファイルは通
常インストールされないので，@code{noinst_HEADERS}変数が最も多く使用され
ます．@footnote{しかし，実際に特定のプログラムで使用されるがインストール
されないヘッダファイルに対しては，@code{noinst_HEADERS}の代わりに，プロ
グラムの@samp{_SOURCES}変数でリストアップすることを推奨します．これがよ
り明白だと信じています．}
@vindex HEADERS

@c All header files must be listed somewhere; missing ones will not appear
@c in the distribution.  Often it is clearest to list uninstalled headers
@c with the rest of the sources for a program.  @xref{A Program}.  Headers
@c listed in a @samp{_SOURCES} variable need not be listed in any
@c @samp{_HEADERS} variable.
@c 
すべてのヘッダファイルは，どこかにリストアップする必要があります．行方不
明のものは配布物に含まれません．プログラムのソースの残りにインストールし
ないヘッダをリストアップすることが，最も分かり易くなることが多いです．
@xref{A Program}.  @samp{_SOURCES}変数でリストアップされているヘッダを，
@samp{_HEADERS}変数でリストアップする必要はありません．

@cindex HEADERS, installation directories
@cindex Installing headers

@vindex include_HEADERS
@vindex oldinclude_HEADERS
@vindex pkginclude_HEADERS

@c Headers can be installed in @code{includedir}, @code{oldincludedir}, or
@c @code{pkgincludedir}.
@c 
ヘッダは@code{includedir}，@code{oldincludedir}，または
@code{pkgincludedir}にインストールすることが可能です．


@node Data, Sources, Headers, Other objects
@section アーキテクチャ非依存のデータファイル

@cindex _DATA primary, defined
@cindex DATA primary, defined
@cindex Primary variable, DATA

@c Automake supports the installation of miscellaneous data files using the
@c @samp{DATA} family of variables.
@c 
Automakeは，@samp{DATA}等の変数を使用して様々なデータファイルのインストー
ルをサポートします．
@vindex DATA

@vindex data_DATA
@vindex sysconf_DATA
@vindex sharedstate_DATA
@vindex localstate_DATA
@vindex pkgdata_DATA

@c Such data can be installed in the directories @code{datadir},
@c @code{sysconfdir}, @code{sharedstatedir}, @code{localstatedir}, or
@c @code{pkgdatadir}.
@c 
そのようなデータは，ディレクトリ@code{datadir}，@code{sysconfdir}，
@code{sharedstatedir}，@code{localstatedir}，または@code{pkgdatadir}にイ
ンストールすること可能です．

@c By default, data files are @emph{not} included in a distribution.  Of
@c course, you can use the @samp{dist_} prefix to change this on a
@c per-variable basis.
@c 
デフォルトで，データファイルは配布物に含まれ@emph{ません}．もちろん，
@samp{dist_}接頭辞を使用することで，変数毎にこの(デフォルト動作)を変更す
ることが可能です．

@c Here is how Automake declares its auxiliary data files:
@c 
Automakeでその補助データファイルを宣言する方法は，以下のとおりです．

@example
dist_pkgdata_DATA = clean-kr.am clean.am @dots{}
@end example


@node Sources,  , Data, Other objects
@section ビルドされているソース

@cindex BUILT_SOURCES, defined

@c Occasionally a file which would otherwise be called @samp{source}
@c (e.g. a C @samp{.h} file) is actually derived from some other file.
@c Such files should be listed in the @code{BUILT_SOURCES} variable.
@c 
@samp{source}と呼ばれるファイル(例えばCの@samp{.h}ファイル)は，実際に何
か他のファイルから派生する場合もあります．そのようなファイルは
@code{BUILT_SOURCES}変数でリストアップすべきです．
@vindex BUILT_SOURCES

@c @code{BUILT_SOURCES} is actually a bit of a misnomer, as any file which
@c must be created early in the build process can be listed in this
@c variable.
@c 
ビルドプロセスの初期に作成する必要があるファイルは，この変数でリストアッ
プすることが可能なので，@code{BUILT_SOURCES}は実際にはちょっと誤った名称
です．

@c A source file listed in @code{BUILT_SOURCES} is created before the other
@c @code{all} targets are made.  However, such a source file is not
@c compiled unless explicitly requested by mentioning it in some other
@c @samp{_SOURCES} variable.
@c 
@code{BUILT_SOURCES}にリストアップされているソースファイルは，他の
@code{all}ターゲットが作成される前に作成されます．しかし，そのようなソー
スファイルは，他の@samp{_SOURCES}変数に記述して明示的に要求されていない
限りコンパイルされません．

@c So, for instance, if you had header files which were created by a script
@c run at build time, then you would list these headers in
@c @code{BUILT_SOURCES}, to ensure that they would be built before any
@c other compilations (perhaps ones using these headers) were started.
@c 
そのため，例えば，ビルド時に実行されるスクリプトで作成されるヘッダファイ
ルがある場合，他のすべての(おそらくこれらのヘッダを使用するものがある)コ
ンパイルの前にそれらのビルドを開始することを確実にするため，これらのヘッ
ダを@code{BUILT_SOURCES}に記述すべきでしょう．


@node Other GNU Tools, Documentation, Other objects, Top
@chapter その他のGNUツール

@c Since Automake is primarily intended to generate @file{Makefile.in}s for
@c use in GNU programs, it tries hard to interoperate with other GNU tools.
@c 
Automakeは，GNUプログラムで使用する@file{Makefile.in}を生成することを主
目的にしているので，他のGNUツールとの相互作用を試みます．

@menu
* Emacs Lisp::                  Emacs Lisp
* gettext::                     Gettext
* Libtool::                     Libtool
* Java::                        Java
* Python::                      Python
@end menu


@node Emacs Lisp, gettext, Other GNU Tools, Other GNU Tools
@section Emacs Lisp

@cindex _LISP primary, defined
@cindex LISP primary, defined
@cindex Primary variable, LISP

@vindex LISP
@vindex lisp_LISP
@vindex noinst_LISP

@c Automake provides some support for Emacs Lisp.  The @samp{LISP} primary
@c is used to hold a list of @file{.el} files.  Possible prefixes for this
@c primary are @samp{lisp_} and @samp{noinst_}.  Note that if
@c @code{lisp_LISP} is defined, then @file{configure.in} must run
@c @code{AM_PATH_LISPDIR} (@pxref{Macros}).
@c 
Automakeは，Emacs Lispに対するサポートも供給します．@samp{LISP}プライマ
リは@file{.el}ファイルのリストを保持するために使用されます．このプライマ
リに対して利用可能な接頭辞は@samp{lisp_}と@samp{noinst_}です．
@code{lisp_LISP}が定義されている場合，@file{configure.in}で
@code{AM_PATH_LISPDIR}を実行する必要があります(@pxref{Macros})．

@vindex ELCFILES

@c By default Automake will byte-compile all Emacs Lisp source files using
@c the Emacs found by @code{AM_PATH_LISPDIR}.  If you wish to avoid
@c byte-compiling, simply define the variable @code{ELCFILES} to be empty.
@c Byte-compiled Emacs Lisp files are not portable among all versions of
@c Emacs, so it makes sense to turn this off if you expect sites to have
@c more than one version of Emacs installed.  Furthermore, many packages
@c don't actually benefit from byte-compilation.  Still, we recommend that
@c you leave it enabled by default.  It is probably better for sites with
@c strange setups to cope for themselves than to make the installation less
@c nice for everybody else.
@c 
デフォルトでAutomakeは，@code{AM_PATH_LISPDIR}で見つかったEmacsを使用し
ながら，すべてのEmacs Lispソースファイルをバイトコンパイルします．バイト
コンパイルしたくない場合，変数@code{ELCFILES}を空のまま定義してください．
バイトコンパイルされたEmacs Lispファイルは，すべてのEmacsのバージョンの
間で移植性があるわけではないので，１種類以上のEmacsバージョンをインストー
ルしているサイトがあることが予想される場合，これを止めることに意味があり
ます．さらに，実際にはバイトコンパイルの利点がないパッケージも多くありま
す．しかし，我々はデフォルトでバイトコンパイルを使用可能なままにしておく
ことを勧めます．恐らく，他の全員がインストールしなくてすむことより，それ
ぞれに対して対処するためにそれぞれ設定した方が良いでしょう．


@node gettext, Libtool, Emacs Lisp, Other GNU Tools
@section Gettext

@cindex GNU Gettext support
@cindex Gettext support
@cindex Support for GNU Gettext

@c If @code{AM_GNU_GETTEXT} is seen in @file{configure.in}, then Automake
@c turns on support for GNU gettext, a message catalog system for
@c internationalization
@c (@pxref{GNU Gettext, , , gettext, GNU gettext utilities}).
@c 
@code{AM_GNU_GETTEXT}が@file{configure.in}にある場合，Automakeは，国際化
のためのメッセージカタログシステム，GNU gettextに対するサポートを開始し
ます(@pxref{GNU Gettext, , , gettext, GNU gettext utilities})．

@c The @code{gettext} support in Automake requires the addition of two
@c subdirectories to the package, @file{intl} and @file{po}.  Automake
@c insures that these directories exist and are mentioned in
@c @code{SUBDIRS}.
@c 
Automakeでの@code{gettext}サポートには，パッケージに@file{intl}と
@file{po}の２つのサブディレクトリの追加が必要です．Automakeは，これらの
ディレクトリが存在して@code{SUBDIRS}に書かれていることを保証します．


@node Libtool, Java, gettext, Other GNU Tools
@section Libtool

@c Automake provides support for GNU Libtool (@pxref{Top, , Introduction,
@c libtool, The Libtool Manual}) with the @samp{LTLIBRARIES} primary.
@c @xref{A Shared Library}.
@c 
Automakeは，@samp{LTLIBRARIES}プライマリを用いることで，GNU
Libtool(@pxref{Top, , Introduction, libtool, The Libtool Manual})に対す
るサポートを提供します．@xref{A Shared Library}.


@node Java, Python, Libtool, Other GNU Tools
@section Java

@cindex _JAVA primary, defined
@cindex JAVA primary, defined
@cindex Primary variable, JAVA

@c Automake provides some minimal support for Java compilation with the
@c @samp{JAVA} primary.
@c 
Automakeは@samp{JAVA}プライマリを用いることで，Javaコンパイルに対する最
低限のサポートも提供します．

@c Any @file{.java} files listed in a @samp{_JAVA} variable will be
@c compiled with @code{JAVAC} at build time.  By default, @file{.class}
@c files are not included in the distribution.
@c 
@samp{_JAVA}変数でリストアップされているすべての@file{.java}ファイルは，
ビルド時に@code{JAVAC}でコンパイルされます．デフォルトで，@file{.class} 
ファイルは配布物に含められません．

@cindex JAVA restrictions
@cindex Restrictions for JAVA

@c Currently Automake enforces the restriction that only one @samp{_JAVA}
@c primary can be used in a given @file{Makefile.am}.  The reason for this
@c restriction is that, in general, it isn't possible to know which
@c @file{.class} files were generated from which @file{.java} files -- so
@c it would be impossible to know which files to install where.  For
@c instance, a @file{.java} file can define multiple classes; the resulting
@c @file{.class} file names cannot be predicted without parsing the
@c @file{.java} file.
@c 
現在のAutomakeには，@samp{_JAVA}プライマリを@file{Makefile.am}で一つだけ
しか使用できないという制限があります．この制限の理由は，どの@file{.java} 
ファイルからどの@file{.class}ファイルが生成されるのかが通常は分からない
ためです -- そのため，どこにどのファイルをインストールするのか分かりませ
ん．例えば，@file{.java}ファイルで複数のクラスを定義することが可能です．
結果として得られる@file{.class}ファイル名は，@file{.java}ファイルをパー
スしない限り特定不可能です．

@c There are a few variables which are used when compiling Java sources:
@c 
Javaソースをコンパイルする時に使用される変数がいくつかあります．

@vtable @code
@item JAVAC
@c The name of the Java compiler.  This defaults to @samp{javac}.
@c 
Javaコンパイラの名前です．デフォルトは，@samp{javac}です．

@item JAVACFLAGS
@c The flags to pass to the compiler.  This is considered to be a user
@c variable (@pxref{User Variables}).
@c 
コンパイラに渡すフラグです．これは，ユーザ変数として考慮されます
(@pxref{User Variables})．

@item AM_JAVACFLAGS
@c More flags to pass to the Java compiler.  This, and not
@c @code{JAVACFLAGS}, should be used when it is necessary to put Java
@c compiler flags into @file{Makefile.am}.
@c 
Javaコンパイラに渡す追加フラグです．@code{JAVACFLAGS}とは異なり，
@file{Makefile.am}にJavaコンパイラフラグを書く必要があるとき，これを使用
すべきではありません．

@item JAVAROOT
@c The value of this variable is passed to the @samp{-d} option to
@c @code{javac}.  It defaults to @samp{$(top_builddir)}.
@c 
この変数の値は，@code{javac}に渡す@samp{-d}オプションです．デフォルトは，
@samp{$(top_builddir)}です．

@item CLASSPATH_ENV
@c This variable is an @code{sh} expression which is used to set the
@c @code{CLASSPATH} environment variable on the @code{javac} command line.
@c (In the future we will probably handle class path setting differently.)
@c 
この変数は，@code{javac}コマンドラインで@code{CLASSPATH}環境変数に設定す
るために使用される@code{sh}式です．(将来，クラスパスの設定を異なる方法で
扱うようにする予定です．)
@end vtable


@node Python,  , Java, Other GNU Tools
@section Python

@cindex _PYTHON primary, defined
@cindex PYTHON primary, defined
@cindex Primary variable, PYTHON


@c Automake provides support for Python compilation with the @samp{PYTHON}
@c primary.
@c 
Automakeは，@samp{PYTHON}プライマリを用いることで，Pythonのコンパイルに
対するサポートを提供します．

@c Any files listed in a @samp{_PYTHON} variable will be byte-compiled with
@c @code{py-compile} at install time.  @code{py-compile} actually creates
@c both standard (@file{.pyc}) and byte-compiled (@file{.pyo}) versions of
@c the source files.  Note that because byte-compilation occurs at install
@c time, any files listed in @samp{noinst_PYTHON} will not be compiled.
@c Python source files are included in the distribution by default.
@c 
@samp{_PYTHON}変数でリストアップされているすべてのファイルは，インストー
ル時に@code{py-compile}でバイトコンパイルされます．@code{py-compile}は，
実際にはソースファイルの標準的なバージョン(@file{.pyc})とバイトコンパイ
ルされたバージョン(@file{.pyo})の両方を作成します．バイトコンパイルはイ
ンストール時に行なわれるので，@samp{noinst_PYTHON}にリストアップされてい
るファイルはコンパイルされないことに注意してください．Pythonのソースファ
イルは，デフォルトで配布物に含められます．

@c Automake ships with an Autoconf macro called @code{AM_PATH_PYTHON} which
@c will determine some Python-related directory variables (see below).  If
@c have called @code{AM_PATH_PYTHON} from you @file{configure.in}, then you
@c may use the following variables to list you Python source files in your
@c variables: @samp{python_PYTHON}, @samp{pkgpython_PYTHON},
@c @samp{pkgpython_PYTHON}, @samp{pyexecdir_PYTHON},
@c @samp{pkgpyexecdir_PYTHON}, depending where you want your files
@c installed.
@c 
Automakeは，Pythonに関連するディレクトリ変数(以下を参照してください)を決
定する@code{AM_PATH_PYTHON}と呼ばれるAutoconfとともに出荷されています．
@file{configure.in}で@code{AM_PATH_PYTHON}が呼び出す場合，Pythonソースファ
イルをリストアップするために以下の変数を変数内に使用してもかまいません．
@samp{python_PYTHON}，@samp{pkgpython_PYTHON}，@samp{pkgpython_PYTHON}，
@samp{pyexecdir_PYTHON}，@samp{pkgpyexecdir_PYTHON}はファイルをインストー
ルしたい場所に依存します．

@c @code{AM_PATH_PYTHON} takes a single optional argument.  This argument,
@c if present, is the minimum version of Python which can be used for this
@c package.  If the version of Python found on the system is older than the
@c required version, then @code{AM_PATH_PYTHON} will cause an error.
@c 
@code{AM_PATH_PYTHON}は，単一のオプション引数を受けとります．この引数が
存在する場合，このパッケージで使用可能なPythonの最小バージョンになります．
システムで見つかったPythonのバージョンが要求されたバージョンより古い場合，
@code{AM_PATH_PYTHON}はエラーを発生します．

@c @code{AM_PATH_PYTHON} creates several output variables based on the
@c Python installation found during configuration.
@c 
@code{AM_PATH_PYTHON}は，コンフィグレーションで分かったPythonのインストー
ル状況を基に，いくつかの出力変数を生成します．

@vtable @code
@item PYTHON
@c The name of the Python executable.
@c 
Pythonの実行形式の名前です．

@item PYTHON_VERSION
@c The Python version number, in the form @var{major}.@var{minor}
@c (e.g. @samp{1.5}).  This is currently the value of
@c @code{sys.version[:3]}.
@c 
@var{major}.@var{minor}形式(例えば，@samp{1.5})の，Pythonのバージョンナ
ンバーです．これは，現在@code{sys.version[:3]}の値です．

@item PYTHON_PREFIX
@c The string @code{$prefix}.  This term may be used in future work
@c which needs the contents of Python's @code{sys.prefix}, but general
@c consensus is to always use the value from configure.
@c 
文字列@code{$prefix}です．この単語は，Pythonの@code{sys.prefix}の内容が
必要となる将来の動作で使用されるかもしれませんが，一般的な同意事項として
@code{configure}からの値が常に使用されます．

@item PYTHON_EXEC_PREFIX
@c The string @code{$exec_prefix}.  This term may be used in future work
@c which needs the contents of Python's @code{sys.exec_prefix}, but general
@c consensus is to always use the value from configure.
@c 
文字列@code{$exec_prefix}です．この単語は，Pythonの
@code{sys.exec_prefix}の内容が必要となる将来の動作で使用されるかもしれま
せんが，一般的な同意事項として@code{configure}からの値が常に使用されます．

@item PYTHON_PLATFORM
@c The canonical name used by Python to describe the operating system, as
@c given by @code{sys.platform}.  This value is sometimes needed when
@c building Python extensions.
@c 
Pythonがオペレーティングシステムを記述するために使用する標準的な名前で，
@code{sys.platform}で与えられます．この値は，Pythonの拡張をビルドする時，
必要となるときもあります．

@item pythondir
@c The directory name for the @file{site-packages} subdirectory of the
@c standard Python install tree.
@c 
標準的にPythonがインストールされるツリーの，@file{site-packages}サブディ
レクトリのディレクトリの名前です．

@item pkgpythondir
@c This is is the directory under @code{pythondir} which is named after the
@c package.  That is, it is @samp{$(pythondir)/$(PACKAGE)}.  It is provided
@c as a convenience.
@c 
これは，パッケージの後で命名される@code{pythondir}以下のディレクトリです．
すなわち，それは@samp{$(pythondir)/$(PACKAGE)}です．それは便宜上提供され
ます．

@item pyexecdir
@c This is the directory where Python extension modules (shared libraries)
@c should be installed.
@c 
これは，Pythonの拡張モジュール(共有ライブラリ)がインストールされるディレ
クトリです．

@item pkgpyexecdir
@c This is a convenience variable which is defined as
@c @samp{$(pyexecdir)/$(PACKAGE)}.
@c 
これは，@samp{$(pyexecdir)/$(PACKAGE)}として定義されている，便宜上の変数
です．
@end vtable


@node Documentation, Install, Other GNU Tools, Top
@chapter ドキュメントのビルド

@c Currently Automake provides support for Texinfo and man pages.
@c 
現在Automakeは，Texinfoとman pageに対するサポートを提供します．

@menu
* Texinfo::                     Texinfo
* Man pages::                   Man pages
@end menu


@node Texinfo, Man pages, Documentation, Documentation
@section Texinfo

@cindex _TEXINFOS primary, defined
@cindex TEXINFOS primary, defined
@cindex Primary variable, TEXINFOS

@c If the current directory contains Texinfo source, you must declare it
@c with the @samp{TEXINFOS} primary.  Generally Texinfo files are converted
@c into info, and thus the @code{info_TEXINFOS} macro is most commonly used
@c here.  Any Texinfo source file must end in the @file{.texi},
@c @file{.txi}, or @file{.texinfo} extension.  We recommend @file{.texi}
@c for new manuals.
@c 
カレントディレクトリにTexinfoソースを含んでいる場合，@samp{TEXINFOS}プラ
イマリでそれを宣言する必要があります．通常，Texinfoファイルはinfoに変換
されるので，@code{info_TEXINFOS}マクロが最も一般的に使用されます．すべて
のTexinfoソースファイルは，@file{.texi}，@file{.txi}，または
@file{.texinfo}の拡張子で終える必要があります．新しいマニュアルには，
@file{.texi}を推奨します．
@vindex TEXINFOS
@vindex info_TEXINFOS

@cindex Texinfo macro, VERSION
@cindex Texinfo macro, UPDATED
@cindex Texinfo macro, EDITION
@cindex Texinfo macro, UPDATED-MONTH

@cindex VERSION Texinfo macro
@cindex UPDATED Texinfo macro
@cindex EDITION Texinfo macro
@cindex UPDATED-MONTH Texinfo macro

@cindex mdate-sh

@c If the @file{.texi} file @code{@@include}s @file{version.texi}, then
@c that file will be automatically generated.  The file @file{version.texi}
@c defines four Texinfo macros you can reference:
@c 
@file{.texi}ファイルが@file{version.texi}を@code{@@include}している場合，
そのファイルが自動的に生成されます．ファイル@file{version.texi}は，参照
可能な４つのTexinfoマクロを定義します．

@table @code
@item EDITION
@itemx VERSION
@c Both of these macros hold the version number of your program.  They are
@c kept separate for clarity.
@c 
これらのマクロは両方とも，プログラムのバージョンナンバーです．それらは明
確さのために別にしています．

@item UPDATED
@c This holds the date the primary @file{.texi} file was last modified.
@c 
これは，主要な@file{.texi}ファイルが最後に修正された日付を保持します．

@item UPDATED-MONTH
@c This holds the name of the month in which the primary @file{.texi} file
@c was last modified.
@c 
これは，主要な@file{.texi}ファイルが最後に修正された月名を保持します．
@end table

@c The @file{version.texi} support requires the @code{mdate-sh} program;
@c this program is supplied with Automake and automatically included when
@c @code{automake} is invoked with the @code{--add-missing} option.
@c 
@file{version.texi}サポートには，@code{mdate-sh}プログラムが必要です．こ
のプログラムはAutomakeと一緒に供給されていて，@code{automake}が
@code{--add-missing}オプションで呼び出されるとき，自動的に含まれます．

@c If you have multiple Texinfo files, and you want to use the
@c @file{version.texi} feature, then you have to have a separate version
@c file for each Texinfo file.  Automake will treat any include in a
@c Texinfo file that matches @samp{vers*.texi} just as an automatically
@c generated version file.
@c 
複数のTexinfoファイルがあり，@file{version.texi}の機能を使用したい場合，
それぞれのTexinfoファイルに対し個別のバージョンファイルを持たせる必要が
あります．Automakeは@samp{vers*.texi}に一致したTexinfoファイル内に含まれ
るものを，単純に自動的に生成されたバージョンファイルとして扱います．

@c When an info file is rebuilt, the program named by the @code{MAKEINFO}
@c variable is used to invoke it.  If the @code{makeinfo} program is found
@c on the system then it will be used by default; otherwise @code{missing}
@c will be used instead.  The flags in the variables @code{MAKEINFOFLAGS}
@c and @code{AM_MAKEINFOFLAGS} will be passed to the @code{makeinfo}
@c invocation; the first of these is intended for use by the user
@c (@pxref{User Variables}) and the second by the @file{Makefile.am}
@c writer.
@c 
infoファイルが再びビルドされるとき，@code{MAKEINFO}変数で指名されたプロ
グラムが，その呼び出しで使用されます．システムで@code{makeinfo}が見つかっ
た場合，それがデフォルトで使用されます．それ以外の場合，@code{missing}が
代わりに使用されます．変数@code{MAKEINFOFLAGS}と@code{AM_MAKEINFOFLAGS} 
にあるフラグは，@code{makeinfo}の呼び出しに渡されます．最初のものは，ユー
ザが使用する(@pxref{User Variables})目的で，二番目のもの
@file{Makefile.am}の著者が使用する目的です．
@vindex MAKEINFO
@vindex MAKEINFOFLAGS
@vindex AM_MAKEINFOFLAGS

@c Sometimes an info file actually depends on more than one @file{.texi}
@c file.  For instance, in GNU Hello, @file{hello.texi} includes the file
@c @file{gpl.texi}.  You can tell Automake about these dependencies using
@c the @code{@var{texi}_TEXINFOS} variable.  Here is how GNU Hello does it:
@c 
infoファイルが，実際には１つ以上の@file{.texi}ファイルに依存する場合もあ
ります．例えば，GNU Helloでは，@file{hello.texi}は@file{gpl.texi}ファイ
ルを含んでいます．@code{@var{texi}_TEXINFOS}変数を使用することでこれらの
依存性をAutomakeに伝えることが可能です．GNU Helloで用いた方法は，以下の
ようになっています．
@vindex TEXINFOS
@vindex _TEXINFOS

@example
info_TEXINFOS = hello.texi
hello_TEXINFOS = gpl.texi
@end example

@cindex texinfo.tex

@c By default, Automake requires the file @file{texinfo.tex} to appear in
@c the same directory as the Texinfo source.  However, if you used
@c @code{AC_CONFIG_AUX_DIR} in @file{configure.in} (@pxref{Input, , Finding
@c `configure' Input, autoconf, The Autoconf Manual}), then
@c @file{texinfo.tex} is looked for there.  Automake supplies
@c @file{texinfo.tex} if @samp{--add-missing} is given.
@c 
デフォルトでAutomakeは，ファイル@file{texinfo.tex}がTexinfoソースと同じ
ディレクトリに存在することを要求します．しかし，@file{configure.in}で
@code{AC_CONFIG_AUX_DIR}を使用した場合(@pxref{Input, , Finding
`configure' Input, autoconf, The Autoconf Manual})，@file{texinfo.tex}は
そこで探されます．Automakeは，@samp{--add-missing}が与えられている場合，
@file{texinfo.tex}を供給します．

@vindex TEXINFO_TEX

@c If your package has Texinfo files in many directories, you can use the
@c variable @code{TEXINFO_TEX} to tell Automake where to find the canonical
@c @file{texinfo.tex} for your package.  The value of this variable should
@c be the relative path from the current @file{Makefile.am} to
@c @file{texinfo.tex}:
@c 
多くのディレクトリにTexinfoファイルがあるパッケージの場合，パッケージに
対する標準的な@file{texinfo.tex}が見つかる場所をAutomakeに伝えるため，変
数@code{TEXINFO_TEX}を使用することが可能です．この変数の値は，現在の
@file{Makefile.am}から@file{texinfo.tex}への相対的なパスにすべきです．

@example
TEXINFO_TEX = ../doc/texinfo.tex
@end example

@opindex no-texinfo.tex

@c The option @samp{no-texinfo.tex} can be used to eliminate the
@c requirement for @file{texinfo.tex}.  Use of the variable
@c @code{TEXINFO_TEX} is preferable, however, because that allows the
@c @code{dvi} target to still work.
@c 
オプション@samp{no-texinfo.tex}を，@file{texinfo.tex}を要求することを止
めるために使用することが可能です．しかし，変数@code{TEXINFO_TEX}の使用は
望ましく，それでも@code{dvi}ターゲットを動作することが可能だからです．

@cindex Target, install-info
@cindex Target, noinstall-info
@cindex install-info target
@cindex noinstall-info target

@opindex no-installinfo
@trindex install-info

@c Automake generates an @code{install-info} target; some people apparently
@c use this.  By default, info pages are installed by @samp{make install}.
@c This can be prevented via the @code{no-installinfo} option.
@c 
Automakeは@code{install-info}ターゲットを生成します．これを明示的に使用
する人もいます．デフォルトで，infoページは@samp{make install}でインストー
ルされます．これは@code{no-installinfo}オプションによって止めることが可
能です．


@node Man pages,  , Texinfo, Documentation
@section manページ

@cindex _MANS primary, defined
@cindex MANS primary, defined
@cindex Primary variable, MANS

@c A package can also include man pages (but see the GNU standards on this
@c matter, @ref{Man Pages, , , standards, The GNU Coding Standards}.)  Man
@c pages are declared using the @samp{MANS} primary.  Generally the
@c @code{man_MANS} macro is used.  Man pages are automatically installed in
@c the correct subdirectory of @code{mandir}, based on the file extension.
@c 
パッケージにmanページを含めることも可能です(しかし，この件に関しては，
@ref{Man Pages, , , standards, The GNU Coding Standards}を参照してくださ
い)．manページは@samp{MANS}プライマリを使用して宣言します．一般に 
@code{man_MANS}マクロを使用します．manページは，@code{mandir}の正しいサ
ブディレクトリに，ファイル拡張子に基づいて自動的にインストールされます．
@vindex MANS
@vindex man_MANS

@c File extensions such as @samp{.1c} are handled by looking for the valid
@c part of the extension and using that to determine the correct
@c subdirectory of @code{mandir}.  Valid section names are the digits
@c @samp{0} through @samp{9}, and the letters @samp{l} and @samp{n}.
@c 
@samp{.1c}のようなファイルの拡張子は，有効な拡張子を探すために処理され，
@code{mandir}の正しいサブディレクトリを決定するために使用されます．有効
なセクション名は，10進数の@samp{0}から@samp{9}と，文字の@samp{l}と
@samp{n}です．

@c Sometimes developers prefer to name a man page something like
@c @file{foo.man} in the source, and then rename it to have the correct
@c suffix, e.g. @file{foo.1}, when installing the file.  Automake also
@c supports this mode.  For a valid section named @var{SECTION}, there is a
@c corresponding directory named @samp{man@var{SECTION}dir}, and a
@c corresponding @samp{_MANS} variable.  Files listed in such a variable
@c are installed in the indicated section.  If the file already has a
@c valid suffix, then it is installed as-is; otherwise the file suffix is
@c changed to match the section.
@c 
開発者によっては，ソースファイルで@file{foo.man}のようなファイル名でman 
ページを命名し，ファイルをインストールするときに，例えば@file{foo.1}のよ
うな正しい接尾子を持つものに名前を変更したい時もあります．Automakeはこの
モードもサポートします．有効なセクションに命名された@var{SECTION}に対し
て，@samp{man@var{SECTION}dir}と命名されている対応するディレクトリと，対
応する@samp{_MANS}変数があります．そのような変数でリストアップされている
ファイルは，示されているセクションにインストールされます．ファイルに有効
な接尾子が既についている場合，それはそのままインストールされます．それ以
外の場合，ファイルの接尾子はセクションに一致するように変更されます．

@c For instance, consider this example:
@c 
例えば，以下のような例を考えます．
@example
man1_MANS = rename.man thesame.1 alsothesame.1c
@end example

@c In this case, @file{rename.man} will be renamed to @file{rename.1} when
@c installed, but the other files will keep their names.
@c 
この場合は，@file{rename.man}はインストールする時に@file{rename.1}に名前
を変更され，他のファイルはその名前のままになります．

@cindex Target, install-man
@cindex Target, noinstall-man
@cindex install-man target
@cindex noinstall-man target

@c Use @samp{make install} per documentation: (texi)code.

@c By default, man pages are installed by @samp{make install}.  However,
@c since the GNU project does not require man pages, many maintainers do
@c not expend effort to keep the man pages up to date.  In these cases, the
@c @code{no-installman} option will prevent the man pages from being
@c installed by default.  The user can still explicitly install them via
@c @samp{make install-man}.
@c 
デフォルトで，manページは@samp{make install}でインストールされます．しか
し，GNUプロジェクトはmanページを必要としないので，多くの管理者はmanペー
ジを最新にしておきません．この場合，@code{no-installman}オプションでman 
ページをデフォルトでインストールしないようにします．ユーザは@samp{make
install-man}によって，明示的にそれらをインストールすることができます．
@opindex no-installman
@trindex install-man

@c Here is how the man pages are handled in GNU @code{cpio} (which includes
@c both Texinfo documentation and man pages):
@c 
(Texinfoドキュメントとmanページの両方を含んでいる)GNU@code{cpio}では，ド
キュメントを以下のようにして処理しています．

@example
man_MANS = cpio.1 mt.1
EXTRA_DIST = $(man_MANS)
@end example

@c Man pages are not currently considered to be source, because it is not
@c uncommon for man pages to be automatically generated.  Therefore they
@c are not automatically included in the distribution.  However, this can
@c be changed by use of the @samp{dist_} prefix.
@c 
manページは，現在ソースであると考慮されておらず，そのわけはmanページが自
動的に生成されることが珍しくないからです．このため，それらは自動的に配布
物に含められません．しかし，これは@samp{dist_}接頭辞を使用することで変更
可能です．

@c The @samp{nobase_} prefix is meaningless for man pages and is
@c disallowed.
@c 
@samp{nobase_}接頭辞はmanページに対しては意味が無く利用できません．


@node Install, Clean, Documentation, Top
@chapter インストールされるもの

@cindex Installation support
@cindex make install support

@section 基本的なインストール

@c Naturally, Automake handles the details of actually installing your
@c program once it has been built.  All files named by the various
@c primaries are automatically installed in the appropriate places when the
@c user runs @code{make install}.
@c 
当然，Automakeは，一旦ビルドされたプログラムを実際のインストールの細部ま
での処理を行ないます．様々なプライマリで指名されているすべてのファイルは，
ユーザが@code{make install}を実行する時に，適切な場所に自動的にインストー
ルされます．

@c A file named in a primary is installed by copying the built file into
@c the appropriate directory.  The base name of the file is used when
@c installing.
@c 
プライマリで指名されているファイルは，ビルドされたファイルを適切なディレ
クトリにコピーすることでインストールされます．ファイルのベース名はインス
トール時に使用されます．

@example
bin_PROGRAMS = hello subdir/goodbye
@end example

@c In this example, both @samp{hello} and @samp{goodbye} will be installed
@c in @code{$(bindir)}.
@c 
この例では，@samp{hello}と@samp{goodbye}の両方が@code{$(bindir)}にインス
トールされます．

@c Sometimes it is useful to avoid the basename step at install time.  For
@c instance, you might have a number of header files in subdirectories of
@c the source tree which are laid out precisely how you want to install
@c them.  In this situation you can use the @samp{nobase_} prefix to
@c suppress the base name step.  For example:
@c 
インストール時にベース名のステップを避けた方が役に立つこともあるでしょう．
例えば，ソースツリーのサブディレクトリに，インストール時にインストールし
たい方法で正確に配置したいヘッダファイルがいくつかあるかもしれません．こ
の場合，ベース名のステップを停止するために，@samp{nobase_}接頭辞を使用す
ることが可能です．例えば以下のようにします．

@example
nobase_include_HEADERS = stdio.h sys/types.h
@end example

@c Will install @file{stdio.h} in @code{$(includedir)} and @file{types.h}
@c in @code{$(includedir)/sys}.
@c 
これで，@file{stdio.h}は@code{$(includedir)}に，そして@file{types.h}は
@code{$(includedir)/sys}にインストールされます．

@section インストールの2つの部分

@c Automake generates separate @code{install-data} and @code{install-exec}
@c targets, in case the installer is installing on multiple machines which
@c share directory structure---these targets allow the machine-independent
@c parts to be installed only once.  @code{install-exec} installs
@c platform-dependent files, and @code{install-data} installs
@c platform-independent files.  The @code{install} target depends on both
@c of these targets.  While Automake tries to automatically segregate
@c objects into the correct category, the @file{Makefile.am} author is, in
@c the end, responsible for making sure this is done correctly.
@c 
インストーラーが共有ディレクトリ構造を持っている複数のマシンにインストー
ルする場合，Automakeは@code{install-data}と@code{install-exec}ターゲット
を分けて生成します---これらのターゲットで，マシンに依存しない部分を一度
にインストールすることができます．@code{install-exec}はプラットフォーム
に依存するファイルをインストールし，@code{install-data}はプラットフォー
ムに依存しないファイルをインストールします．@code{install}ターゲットはこ
れらのターゲットの両方に依存します．Automakeは，オブジェクトを正しいカテ
ゴリに自動的に区別するよう試みますが，@file{Makefile.am}の作者は，これが
正しく行なわれていることを確かめる責任があります．
@trindex install-data
@trindex install-exec
@trindex install
@cindex Install, two parts of

@c Variables using the standard directory prefixes @samp{data},
@c @samp{info}, @samp{man}, @samp{include}, @samp{oldinclude},
@c @samp{pkgdata}, or @samp{pkginclude} (e.g. @samp{data_DATA}) are
@c installed by @samp{install-data}.
@c 
@samp{data}，@samp{info}，@samp{man}，@samp{include}，@samp{oldinclude}，
@samp{pkgdata}，または@samp{pkginclude}(例えば @samp{data_DATA})といった
標準ディレクトリの接頭辞を使用している変数は，@samp{install-data}でイン
ストールされます．

@c Variables using the standard directory prefixes @samp{bin}, @samp{sbin},
@c @samp{libexec}, @samp{sysconf}, @samp{localstate}, @samp{lib}, or
@c @samp{pkglib} (e.g. @samp{bin_PROGRAMS}) are installed by
@c @samp{install-exec}.
@c 
@samp{bin}，@samp{sbin}，@samp{libexec}，@samp{sysconf}，
@samp{localstate}，@samp{lib}，または@samp{pkglib}(例えば 
@samp{bin_PROGRAMS})といった標準ディレクトリの接頭辞を使用している変数は， 
@samp{install-exec}でインストールされます．

@c Any variable using a user-defined directory prefix with @samp{exec} in
@c the name (e.g. @samp{myexecbin_PROGRAMS} is installed by
@c @samp{install-exec}.  All other user-defined prefixes are installed by
@c @samp{install-data}.
@c 
ユーザーが定義した名前で，名前に@samp{exec}を含むディレクトリ接頭辞を使
用している変数は(例えば@samp{myexecbin_PROGRAMS})，@samp{install-exec}で
インストールされます．ユーザーによって定義されたそれ以外のすべての接頭辞
は，@samp{install-data}でインストールされます．

@section インストールの拡張

@c It is possible to extend this mechanism by defining an
@c @code{install-exec-local} or @code{install-data-local} target.  If these
@c targets exist, they will be run at @samp{make install} time.  These
@c rules can do almost anything; care is required.
@c 
@code{install-exec-local}や@code{install-data-local}ターゲットを定義する
ことで，このメカニズムを拡張することが可能です．これらのターゲットが存在
する場合，それらは@samp{make install}時に実行されます．これらの規則でほ
とんどすべてのことが可能になります．注意が必要です．
@trindex install-exec-local
@trindex install-data-local

@c Automake also supports two install hooks, @code{install-exec-hook} and
@c @code{install-data-hook}.  These hooks are run after all other install
@c rules of the appropriate type, exec or data, have completed.  So, for
@c instance, it is possible to perform post-installation modifications
@c using an install hook.
@c 
Automakeは， @code{install-exec-hook}と@code{install-data-hook}の，2つの
インストールのフックもサポートしています．これらのフックは，適切な形式，
execやdataといった，他のすべてのインストール規則が完了した後で実行されま
す．そのため，例えば，インストールのフックを使用して，インストール後の変
更を実施することが可能です
@cindex Install hook

@section インストールの実行

@vindex DESTDIR
@c Automake generates support for the @samp{DESTDIR} variable in all
@c install rules.  @samp{DESTDIR} is used during the @samp{make install}
@c step to relocate install objects into a staging area.  Each object and
@c path is prefixed with the value of @samp{DESTDIR} before being copied
@c into the install area.  Here is an example of typical DESTDIR usage:
@c 
Automakeは，すべてのインストール規則で，@samp{DESTDIR}変数に対するサポー
トを生成します．@samp{DESTDIR}は，インストールオブジェクトを実行領域に再
配置する@samp{make install}の段階で使用されます．それぞれのオブジェクト
とパスは，インストール領域にコピーされる前に，@samp{DESTDIR}の値が前置さ
れます．典型的な@samp{DESTDIR}使用法の例は，以下のようになります．

@example
make DESTDIR=/tmp/staging install
@end example

@c This places install objects in a directory tree built under
@c @file{/tmp/staging}.  If @file{/gnu/bin/foo} and
@c @file{/gnu/share/aclocal/foo.m4} are to be installed, the above command
@c would install @file{/tmp/staging/gnu/bin/foo} and
@c @file{/tmp/staging/gnu/share/aclocal/foo.m4}.
@c 
これで，インストールオブジェクトを@file{/tmp/staging}の下に構築されてい
るディレクトリツリーに配置します．@file{/gnu/bin/foo}と
@file{/gnu/share/aclocal/foo.m4}がインストールされる場合，上のコマンドで
は，@file{/tmp/staging/gnu/bin/foo}と
@file{/tmp/staging/gnu/share/aclocal/foo.m4}にインストールされます．

@c This feature is commonly used to build install images and packages.  For
@c more information, see @ref{Makefile Conventions, , , standards, The GNU
@c Coding Standards}.
@c 
この機能は，インストールイメージとパッケージをビルドするために，通常使用
されます．詳細は，@ref{Makefile Conventions, , , standards, The GNU
Coding Standards}を参照してください．

@c Support for @samp{DESTDIR} is implemented by coding it directly into the
@c install rules.  If your @file{Makefile.am} uses a local install rule
@c (e.g., @code{install-exec-local}) or an install hook, then you must
@c write that code to respect @samp{DESTDIR}.
@c 
@samp{DESTDIR}に対するサポートは，インストール規則に直接コーディングする
ことで実装されています．@file{Makefile.am}でローカルインストール規則(例
えば，@code{install-exec-local})やインストールフックを使用している場合，
@samp{DESTDIR}に対応するコードを書く必要があります．

@section ユーザのための規則

@c Automake also generates an @code{uninstall} target, an
@c @code{installdirs} target, and an @code{install-strip} target.
@c 
Automakeは，@code{uninstall}ターゲット，@code{installdirs}ターゲット，そ
して@code{install-strip}ターゲットも生成します．
@trindex uninstall
@trindex installdirs
@trindex install-strip

@c Automake supports @code{uninstall-local} and @code{uninstall-hook}.
@c There is no notion of separate uninstalls for ``exec'' and ``data'', as
@c these features would not provide additional functionality.
@c 
Automakeは，@code{uninstall-local}と@code{uninstall-hook}をサポートして
います．これらの機能は，機能の追加のために提供されているわけでないので，
``exec''と``data''に対してアンインストールを分ける必要はないでしょう．

@c Note that @code{uninstall} is not meant as a replacement for a real
@c packaging tool.
@c 
@code{uninstall}には，実際のパッケージツールを置換する意味が無いことに注
意してください．


@node Clean, Dist, Install, Top
@chapter クリーンされるもの

@cindex make clean support

@c The GNU Makefile Standards specify a number of different clean rules.
@c See @xref{Standard Targets, , Standard Targets for Users, standards,
@c The GNU Coding Standards}.
@c 
GNU Makefile Standardsは多くの異なったクリーンの規則を指定します．
@xref{Standard Targets, , Standard Targets for Users, standards, The GNU
Coding Standards}.

@c Generally the files that can be cleaned are determined automatically by
@c Automake.  Of course, Automake also recognizes some variables that can
@c be defined to specify additional files to clean.  These variables are
@c @code{MOSTLYCLEANFILES}, @code{CLEANFILES}, @code{DISTCLEANFILES}, and
@c @code{MAINTAINERCLEANFILES}.
@c 
一般に，クリーンされるファイルはAutomakeが自動的に決定します．もちろん，
Automakeはクリーンするファイルを追加で指定するために定義することが可能な
変数も認識します．これらの変数は@code{MOSTLYCLEANFILES}，
@code{CLEANFILES}，@code{DISTCLEANFILES}，そして
@code{MAINTAINERCLEANFILES}です．
@vindex MOSTLYCLEANFILES
@vindex CLEANFILES
@vindex DISTCLEANFILES
@vindex MAINTAINERCLEANFILES

@c As the GNU Standards aren't always explicit as to which files should be
@c removed by which target, we've adopted a heuristic which we believe was
@c first formulated by Fran@,{c}ois Pinard:
@c 
ターゲットによって削除されるファイルは，GNU Standardsで常に明示されてい
るというわけではないので，我々は，Fran@,{c}ois Pinardが最初に公式化した
ものを信じて，発見的手法で適用してきました．

@itemize @bullet
@item
@c If @code{make} built it, and it is commonly something that one would
@c want to rebuild (for instance, a @file{.o} file), then
@c @code{mostlyclean} should delete it.
@c 
@code{make}がビルドするもので，通常それをリビルドしたいときがあるもの(例
えば，@file{.o}ファイル)は@code{mostlyclean}でそれを削除します．

@item
@c Otherwise, if @code{make} built it, then @code{clean} should delete it.
@c 
それ以外で，@code{make}がビルドするものは@code{clean}で削除します．

@item
@c If @code{configure} built it, then @code{distclean} should delete it
@c 
@code{configure}でビルドするものは，@code{distclean}で削除します．

@item
@c If the maintainer built it, then @code{maintainer-clean} should
@c delete it.
@c 
管理者がビルドするものは，@code{maintainer-clean}で削除します．
@end itemize

@c We recommend that you follow this same set of heuristics in your
@c @file{Makefile.am}.
@c 
我々は，皆さんの@file{Makefile.am}で発見的に同じように設定するよう，この
ことに従って欲しいと思っています．


@node Dist, Tests, Clean, Top
@chapter 配布物に含まれるもの

@section 基本的な配布物

@cindex make dist

@c The @code{dist} target in the generated @file{Makefile.in} can be used
@c to generate a gzip'd @code{tar} file and other flavors of archive for
@c distribution.  The files is named based on the @samp{PACKAGE} and
@c @samp{VERSION} variables defined by @code{AM_INIT_AUTOMAKE}
@c (@pxref{Macros}); more precisely the gzip'd @code{tar} file is named
@c @samp{@var{package}-@var{version}.tar.gz}.
@c 
@file{Makefile.in}で生成された@code{dist}ターゲットは，配布物に対して
gzipされた@code{tar}ファイルやそれ以外の特色を持ったものを生成するために
使用することが可能です．ファイルは，@code{AM_INIT_AUTOMAKE}
(@pxref{Macros})で定義される@samp{PACKAGE}と@samp{VERSION}変数に基づいて
命名されます．より正確には，gzipされた@code{tar}ファイルは
@samp{@var{package}-@var{version}.tar.gz}と命名されます．
@cvindex PACKAGE
@cvindex VERSION
@trindex dist
@c You can use the @code{make} variable @samp{GZIP_ENV} to control how gzip
@c is run.  The default setting is @samp{--best}.
@c 
gzipを実行する方法を制御するために，@code{make}の@samp{GZIP_ENV}変数を使
用することが可能です．デフォルト設定は@samp{--best}です．

@c For the most part, the files to distribute are automatically found by
@c Automake: all source files are automatically included in a distribution,
@c as are all @file{Makefile.am}s and @file{Makefile.in}s.  Automake also
@c has a built-in list of commonly used files which are automatically
@c included if they are found in the current directory (either physically,
@c or as the target of a @file{Makefile.am} rule).  This list is printed by
@c @samp{automake --help}.  Also, files which are read by @code{configure}
@c (i.e. the source files corresponding to the files specified in various
@c Autoconf macros such as @code{AC_CONFIG_FILES} and siblings) are
@c automatically distributed.
@c 
ほとんどの部分で，配布するファイルは自動的にAutomakeが見つけます．ソース
ファイルはすべて自動的に配布物に含まれ，すべての@file{Makefile.am}と
@file{Makefile.in}も同様に扱われます．Automakeには，カレントディレクトリ
で(物理的にまたは@file{Makefile.am}規則のターゲットとして)見つかる場合，
自動的に含まれる一般的に使用されるファイルの組み込みリストがあります．こ
のリストは@samp{automake --help}で出力されます．@code{configure}で読み込
まれるファイルも(すなわち，@code{AC_CONFIG_FILES}とその仲間のような様々
なAutoconfマクロで指定されているファイルに対応しているソースファイル)，
自動的に配布されます．

@c Still, sometimes there are files which must be distributed, but which
@c are not covered in the automatic rules.  These files should be listed in
@c the @code{EXTRA_DIST} variable.  You can mention files from
@c subdirectories in @code{EXTRA_DIST}.
@c 
配布する必要がありながら自動的な規則でカバーされていないファイルがあるこ
とも，まだあります．これらのファイルは，@code{EXTRA_DIST}変数でリストアッ
プします．@code{EXTRA_DIST}では，サブディレクトリのファイルを記述するこ
とが可能です．

@c You can also mention a directory in @code{EXTRA_DIST}; in this case the
@c entire directory will be recursively copied into the distribution.
@c Please note that this will also copy @emph{everything} in the directory,
@c including CVS/RCS version control files.  We recommend against using
@c this feature.
@c 
@code{EXTRA_DIST}ではディレクトリを記述することも可能です．この場合は，
ディレクトリ全体が再帰的に配布物にコピーされます．これはディレクトリの
@emph{すべてのもの}をコピーし，CVS/RCSのバージョンコントロールファイルも
含まれることに注意してください．我々は，この機能を使用しないことを推奨し
ます．

@vindex EXTRA_DIST

@section きめ細かな配布物の制御

@c Sometimes you need tighter control over what does @emph{not} go into the
@c distribution; for instance you might have source files which are
@c generated and which you do not want to distribute.  In this case
@c Automake gives fine-grained control using the @samp{dist} and
@c @samp{nodist} prefixes.  Any primary or @samp{_SOURCES} variable can be
@c prefixed with @samp{dist_} to add the listed files to the distribution.
@c Similarly, @samp{nodist_} can be used to omit the files from the
@c distribution.
@c 
配布物に含め@emph{ない}ものを細かく制御する必要があるときもあります．例
えば，生成されたソースファイルと配布したくないソースファイルがあると仮定
します．この場合は，Automakeは@samp{dist}と@samp{nodist}接頭辞を使用した
きめ細かな制御を提供します．すべてのプライマリや@samp{_SOURCES}変数は，
リストアップされているファイルを配布物に追加するため，@samp{dist_}を前置
することが可能です．同様に，ファイルを配布物から除去するために，
@samp{nodist_}を使用することが可能です．
@vindex dist_
@vindex nodist_

@c As an example, here is how you would cause some data to be distributed
@c while leaving some source code out of the distribution:
@c 
例えば，配布するデータがあり配布しないソースコードもあるようにする方法は，
以下のようになります．

@example
dist_data_DATA = distribute-this
bin_PROGRAMS = foo
nodist_foo_SOURCES = do-not-distribute.c
@end example

@section distフック

@c Another way to to use this is for removing unnecessary files that get
@c recursively included by specifying a directory in EXTRA_DIST:
@c 
これを使用するもう一つの方法は，EXTRA_DISTでディレクトリを指定することで，
再帰的に含まれる不必要なファイルを削除するために存在します．

@example
EXTRA_DIST = doc

dist-hook:
	rm -rf `find $(distdir)/doc -name CVS`
@end example

@c If you define @code{SUBDIRS}, Automake will recursively include the
@c subdirectories in the distribution.  If @code{SUBDIRS} is defined
@c conditionally (@pxref{Conditionals}), Automake will normally include all
@c directories that could possibly appear in @code{SUBDIRS} in the
@c distribution.  If you need to specify the set of directories
@c conditionally, you can set the variable @code{DIST_SUBDIRS} to the exact
@c list of subdirectories to include in the distribution.
@c 
@code{SUBDIRS}を定義している場合，Automakeはサブディレクトリを再帰的に配
布物に含めます．@code{SUBDIRS}を条件つきで定義している場合
(@pxref{Conditionals})，Automakeは通常，@code{SUBDIRS}にあるすべてのディ
レクトリをできる限り配布物に含めます．条件つきでディレクトリの組を指定す
る必要がある場合，配布物に含めるサブディレクトリの正確なリストを変数
@code{DIST_SUBDIRS}に設定することで可能となります．
@vindex DIST_SUBDIRS

@trindex dist-hook

@c Occasionally it is useful to be able to change the distribution before
@c it is packaged up.  If the @code{dist-hook} target exists, it is run
@c after the distribution directory is filled, but before the actual tar
@c (or shar) file is created.  One way to use this is for distributing
@c files in subdirectories for which a new @file{Makefile.am} is overkill:
@c 
パッケージ化する前に，配布物の変更を可能にすことが有効な時もあります．
@code{dist-hook}ターゲットが存在する場合，配布ディレクトリが満たされた後
で，実際のtar(あるいはshar)ファイルが作成される前に，それが実行されます．
これを利用する方法の一つには，新しい@file{Makefile.am}を作るまでもないサ
ブディレクトリのファイルを配布するためにあります．

@example
dist-hook:
        mkdir $(distdir)/random
        cp -p $(srcdir)/random/a1 $(srcdir)/random/a2 $(distdir)/random
@end example

@section 配布物の調査

@cindex make distcheck
@cindex make distcleancheck
@vindex distcleancheck_listfiles

@c Automake also generates a @code{distcheck} target which can be of help
@c to ensure that a given distribution will actually work.
@c @code{distcheck} makes a distribution, then tries to do a @code{VPATH}
@c build, run the testsuite, and finally make another tarfile to ensure the
@c distribution is self-contained.
@c 
Automakeは，与えられた配布物が実際に動作することの保証に役立つ
@code{distcheck}ターゲットを生成します．@code{distcheck}は実際に配布物を
作成し，@code{VPATH}のビルドを試み，テストスイートを実行し，そして配布物
自身が含まれることを確認するため，最終的に別のtarファイルを作成します．
@trindex distcheck

@c Building the package involves running @code{./configure}.  If you need
@c to supply additional flags to @code{configure}, define them in the
@c @code{DISTCHECK_CONFIGURE_FLAGS} variable, either in your top-level
@c @file{Makefile.am}, or on the commande line when invoking @code{make}.
@c 
パッケージのビルドは@code{./configure}の実行も含まれます．
@code{configure}に追加フラグを供給する必要がある場合は，トップレベルの
@file{Makefile.am}，または@code{make}の呼出時のコマンドラインで
@code{DISTCHECK_CONFIGURE_FLAGS}変数で定義する必要があります．
@vindex DISTCHECK_CONFIGURE_FLAGS

@c If the target @code{distcheck-hook} is defined in your
@c @file{Makefile.am}, then it will be invoked by @code{distcheck} after
@c the new distribution has been unpacked, but before the unpacked copy is
@c configured and built.  Your @code{distcheck-hook} can do almost
@c anything, though as always caution is advised.  Generally this hook is
@c used to check for potential distribution errors not caught by the
@c standard mechanism.
@c 
ターゲット@code{distcheck-hook}が@file{Makefile.am}で定義されている場合，
新しい配布物が展開された後，展開されたコピーがコンフィグレーションされて
ビルドされる前に，@code{distcheck}で呼び出されます．いつも通りの注意とア
ドバイスはありますが，@code{distcheck-hook}でほとんどすべてのことが可能
です．通常このフックは，配布物のエラーが標準的なメカニズムで発生する可能
性を調査するために使用されます．

@c Speaking about potential distribution errors, @code{distcheck} will also
@c ensure that the @code{distclean} target actually removes all built
@c files.  This is done by running @code{make distcleancheck} at the end of
@c the @code{VPATH} build.  By default, @code{distcleancheck} will run
@c @code{distclean} and then make sure the build tree has been emptied by
@c running @code{$(distcleancheck_listfiles)}.  Usually this check will
@c find generated files that you forgot to add to the @code{DISTCLEANFILES}
@c variable (@pxref{Clean}).
@c 
配布物エラーの可能性について述べると，@code{distcheck}は@code{distclean} 
ターゲットが実際に全てのビルドファイルも確実に削除するということです．こ
れは，@code{VPATH}のビルドの終りに@code{make distcleancheck}を実行するこ
とでなされます．デフォルトで，@code{distcleancheck}は@code{distclean}を
実行し，@code{$(distcleancheck_listfiles)}を実行することでビルドツリーが
空になることを確かめます．通常この調査は，@code{DISTCLEANFILES}変数
(@pxref{Clean})に追加し忘れた，生成されるファイルを検出します．
@trindex distcleancheck

@c The @code{distcleancheck} behaviour should be ok for most packages,
@c otherwise you have the possibility to override the definitition of
@c either the @code{distcleancheck} target, or the
@c @code{$(distcleancheck_listfiles)} variable.  For instance to disable
@c @code{distcleancheck} completely, add the following rule to your
@c top-level @file{Makefile.am}:
@c 
@code{distcleancheck}の動作は，ほとんどのパッケージでOKにすべきで，そう
でない場合は，@code{distcleancheck}ターゲットや
@code{$(distcleancheck_listfiles)}変数の定義を優先している可能性がありま
す．@code{distcleancheck}が完全にできないものに対して，トップレベルの
@file{Makefile.am}に以下の規則を追加してください．
@vindex distcleancheck_listfiles

@example
distcleancheck:
        @@:
@end example

@c If you want @code{distcleancheck} to ignore built files which have not
@c been cleaned because they are also part of the distribution, add the
@c following definition instead:
@c 
配布物の一部にもなるためクリーンしたくないビルドされたファイルを
@code{distcleancheck}で無視したい場合，代わりに以下の定義を追加してくだ
さい．

@example
distcleancheck_listfiles = \
  find -type f -exec sh -c 'test -f $(scrdir)/@{@} || echo @{@}'
@end example

@c The above definition is not the default because it's usually an error if
@c your Makefiles cause some distributed files to be rebuilt when the user
@c build the package.  (Think about the user missing the tool required to
@c build the file; or if the required tool is built by your package,
@c consider the cross-compilation case where it can't be run.)
@c 
ユーザがパッケージをビルドするときMakefileが配布されたファイルをリビルド
するものもあるので，通常エラーとなるので，上記の定義はデフォルトではあり
ません．(ファイルをビルドするために必要なユーザに足りないツールを考えて
みてください．または，要求されたツールがパッケージでビルドされる場合，実
行不可能なクロスコンパイルの状況を考慮してください．)

@section 配布物の形式

@trindex dist-gzip
@c Automake generates a @samp{.tar.gz} file when asked to create a
@c distribution and other archives formats, @ref{Options}.  The target
@c @code{dist-gzip} generates the @samp{.tar.gz} file only.
@c 
Automakeは，配布物を生成する要求があったとき，@samp{.tar.gz}ファイルと，
その他のアーカイブ形式を生成します，@ref{Options}．ターゲット
@code{dist-gzip}は@samp{.tar.gz}ファイルのみを生成します．


@node Tests, Options, Dist, Top
@chapter テストスイートのサポート

@cindex Test suites
@cindex make check

@c Automake supports two forms of test suites.
@c 
Automakeは２つの形式のテストスイートをサポートします．

@section 単純なテスト

@c If the variable @code{TESTS} is defined, its value is taken to be a list
@c of programs to run in order to do the testing.  The programs can either
@c be derived objects or source objects; the generated rule will look both
@c in @code{srcdir} and @file{.}.  Programs needing data files should look
@c for them in @code{srcdir} (which is both an environment variable and a
@c make variable) so they work when building in a separate directory
@c (@pxref{Build Directories, , Build Directories , autoconf, The Autoconf
@c Manual}), and in particular for the @code{distcheck} target
@c (@pxref{Dist}).
@c 
変数@code{TESTS}が定義されている場合，その値はテストを行なうために実行す
るプログラムのリストになります．プログラムは，派生するオブジェクトあるい
はソースオブジェクトです．生成される規則は@code{srcdir}と@file{.}の両方
で探します．データファイルを必要としているプログラムは，(環境変数とmake 
変数の両方の)@code{srcdir}でそれらを探すので，それらは，別々のディレクト
リでビルドするとき(@pxref{Build Directories, , Build Directories ,
autoconf, The Autoconf Manual})，特に@code{distcheck}ターゲットに対して
動作します(@pxref{Dist})．

@cindex Exit status 77, special interpretation

@c The number of failures will be printed at the end of the run.  If a
@c given test program exits with a status of 77, then its result is ignored
@c in the final count.  This feature allows non-portable tests to be
@c ignored in environments where they don't make sense.
@c 
失敗の数は実行後に出力されます．所定のテストプログラムが77のステータスで
終了する場合，その結果は最終的なカウントで無視されます．この機能で，非移
植性のテストが意味をなさない環境で無視することができます．

@c The variable @code{TESTS_ENVIRONMENT} can be used to set environment
@c variables for the test run; the environment variable @code{srcdir} is
@c set in the rule.  If all your test programs are scripts, you can also
@c set @code{TESTS_ENVIRONMENT} to an invocation of the shell (e.g.
@c @samp{$(SHELL) -x}); this can be useful for debugging the tests.
@c 
変数@code{TESTS_ENVIRONMENT}は，テストの実行に対して環境変数を設定するた
めに使用することが可能です．環境変数@code{srcdir}は，規則内に設定されま
す．すべてのテストプログラムがスクリプトの場合，@code{TESTS_ENVIRONMENT} 
をシェルの呼び出しに設定することが可能です(例えば@samp{$(SHELL) -x})．こ
れはテストをデバッグするときに役立つはずです．
@vindex TESTS
@vindex TESTS_ENVIRONMENT

@cindex Tests, expected failure
@cindex Expected test failure

@c You may define the variable @code{XFAIL_TESTS} to a list of tests
@c (usually a subset of @code{TESTS}) that are expected to fail.  This will
@c reverse the result of those tests.
@c 
変数@code{XFAIL_TESTS}を，失敗を期待するテストのリスト(通常は
@code{TESTS}のサブセット)に定義してもかまいません．これは，それらのテス
トの結果を反転します．
@vindex XFAIL_TESTS

@c Automake ensures that each program listed in @code{TESTS} is built
@c before any tests are run; you can list both source and derived programs
@c in @code{TESTS}.  For instance, you might want to run a C program as a
@c test.  To do this you would list its name in @code{TESTS} and also in
@c @code{check_PROGRAMS}, and then specify it as you would any other
@c program.
@c 
Automakeは，@code{TESTS}でリストアップされているそれぞれのプログラムが，
テストを実行する前にビルドされることを確実にします．ソースと派生するプロ
グラムを@code{TESTS}にリストアップすることが可能です．例えば，テストとし
てCプログラムを実行したいかもしれません．こうするためには，その名前を
@code{TESTS}と@code{check_PROGRAMS}にもリストアップし，それを他のプログ
ラムとして指定します．

@section DejaGNUのテスト

@c If @uref{ftp://prep.ai.mit.edu/pub/gnu/dejagnu-1.3.tar.gz,
@c @samp{dejagnu}} appears in @code{AUTOMAKE_OPTIONS}, then a
@c @code{dejagnu}-based test suite is assumed.  The variable
@c @code{DEJATOOL} is a list of names which are passed, one at a time, as
@c the @code{--tool} argument to @code{runtest} invocations; it defaults to
@c the name of the package.
@c 
@uref{ftp://prep.ai.mit.edu/pub/gnu/dejagnu-1.3.tar.gz,@samp{dejagnu}}が
@code{AUTOMAKE_OPTIONS}にある場合，@code{dejagnu}ベースのテストスイート
が想定されます．変数@code{DEJATOOL}は，@code{runtest}の呼び出しに
@code{--tool}引数として，一度に渡される名前のリストです．それはパッケー
ジの名前をデフォルトとします．

@c The variable @code{RUNTESTDEFAULTFLAGS} holds the @code{--tool} and
@c @code{--srcdir} flags that are passed to dejagnu by default; this can be
@c overridden if necessary.
@c 
変数@code{RUNTESTDEFAULTFLAGS}は，デフォルトでdejagnuに渡される
@code{--tool}と@code{--srcdir}フラグを保持します．必要な場合は，これで優
先することが可能です．
@vindex RUNTESTDEFAULTFLAGS

@c The variables @code{EXPECT} and @code{RUNTEST} can
@c also be overridden to provide project-specific values.  For instance,
@c you will need to do this if you are testing a compiler toolchain,
@c because the default values do not take into account host and target
@c names.
@c 
変数@code{EXPECT}と@code{RUNTEST}で，プロジェクト特有の値を提供するため
に優先することが可能です．例えば，コンパイラツールチェインをテストする場
合，デフォルト値はホストとターゲットの名前を考慮しないので，こうする必要
があります．
@opindex dejagnu
@vindex DEJATOOL
@vindex EXPECT
@vindex RUNTEST

@c The contents of the variable @code{RUNTESTFLAGS} are passed to the
@c @code{runtest} invocation.  This is considered a ``user variable''
@c (@pxref{User Variables}).  If you need to set @code{runtest} flags in
@c @file{Makefile.am}, you can use @code{AM_RUNTESTFLAGS} instead.
@c 
変数@code{RUNTESTFLAGS}の内容は，@code{runtest}の呼び出しに渡されます．
これは，``ユーザ変数''(@pxref{User Variables})として扱われます．
@file{Makefile.am}に@code{runtest}フラグを設定する必要がある場合，代わり
に@code{AM_RUNTESTFLAGS}を使用することが可能です．
@vindex RUNTESTFLAGS
@vindex AM_RUNTESTFLAGS
@c FIXME xref dejagnu

@c In either case, the testing is done via @samp{make check}.
@c 
どちらの状況でも，テストは@samp{make check}で実行されます．

@section インストールテスト

@c The @code{installcheck} target is available to the user as a way to run
@c any tests after the package has been installed.  You can add tests to
@c this by writing an @code{installcheck-local} target.
@c 
@code{installcheck}ターゲットは，パッケージがインストールされた後でテス
トを実行する方法をユーザが利用可能にします．@code{installcheck-local}ター
ゲットを書くことで，これをテストに追加することが可能です．


@node Options, Miscellaneous, Tests, Top
@chapter Automakeの動作の変更

@c Various features of Automake can be controlled by options in the
@c @file{Makefile.am}.  Such options are applied on a per-@file{Makefile}
@c basis when listed in a special @file{Makefile} variable named
@c @code{AUTOMAKE_OPTIONS}.  They are applied globally to all processed
@c @file{Makefiles} when listed in the first argument of
@c @code{AM_INIT_AUTOMAKE} in @file{configure.in}.  Currently understood
@c options are:
@c 
Automakeの様々な機能は，@file{Makefile.am}のオプションで制御可能です．こ
のようなオプションは，@code{AUTOMAKE_OPTIONS}という名前の特別な
@file{Makefile}変数にリストアップすることで，@file{Makefile}ごとを基本に
適用されます．@file{configure.in}の@code{AM_INIT_AUTOMAKE}の最初の引数に
リストアップすることで，処理されるすべての@file{Makefiles}に大域的に適用
されます．現在理解されるオプションは以下のとおりです．
@vindex AUTOMAKE_OPTIONS

@table @asis
@item @code{gnits}
@itemx @code{gnu}
@itemx @code{foreign}
@itemx @code{cygnus}
@cindex Option, gnits
@cindex Option, gnu
@cindex Option, foreign
@cindex Option, cygnus

@c Set the strictness as appropriate.  The @code{gnits} option also implies
@c @code{readme-alpha} and @code{check-news}.
@c 
適切に厳密さを設定します．@code{gnits}オプションは，@code{readme-alpha} 
と@code{check-news}も暗黙に指定します．

@item @code{ansi2knr}
@itemx @code{@var{path}/ansi2knr}
@cindex Option, ansi2knr
@c Turn on automatic de-ANSI-fication.  @xref{ANSI}.  If preceded by a
@c path, the generated @file{Makefile.in} will look in the specified
@c directory to find the @file{ansi2knr} program.  The path should be a
@c relative path to another directory in the same distribution (Automake
@c currently does not check this).
@c 
自動的なde-ANSI-ficationを開始します．@xref{ANSI}. パスが前置されている
場合，生成される@file{Makefile.in}は，@file{ansi2knr}プログラムを見つけ
るために指定されたディレクトリを探します．パスは(Automakeは現在これを調
査しませんが)，同じ配布物内の他のディレクトリへの相対的なパスにすべきで
す．

@item @code{check-news}
@cindex Option, check-news
@c Cause @code{make dist} to fail unless the current version number appears
@c in the first few lines of the @file{NEWS} file.
@c 
現在のバージョンナンバーが@file{NEWS}ファイルの最初の数行に無い場合，
@code{make dist}は失敗します．

@item @code{dejagnu}
@cindex Option, dejagnu
@c Cause @code{dejagnu}-specific rules to be generated.  @xref{Tests}.
@c 
@code{dejagnu}特有の規則を生成します．@xref{Tests}.

@item @code{dist-bzip2}
@cindex Option, dist-bzip2
@c Generate a @code{dist-bzip2} target, creating a bzip2 tar archive of the
@c distribution.  @code{dist} will create it in addition to the other
@c formats.  bzip2 archives are frequently smaller than gzipped archives.
@c 
配布物のbzip2されたtarアーカイブを作成する@code{dist-bzip2}ターゲットを
生成します．@code{dist}は他の形式への追加としてそれを作成します．bzip2アー
カイブは，gzipされたアーカイブより小さくなることが多くなっています．
@trindex dist-bzip2

@item @code{dist-shar}
@cindex Option, dist-shar
@c Generate a @code{dist-shar} target, creating a shar archive of the
@c distribution.  @code{dist} will create it in addition to the other
@c formats.
@c 
配布物のsharアーカイブを作成する@code{dist-shar}ターゲットを生成します．
@code{dist}は他の形式への追加としてそれを作成します．
@trindex dist-shar

@item @code{dist-zip}
@cindex Option, dist-zip
@c Generate a @code{dist-zip} target, creating a zip archive of the
@c distribution.  @code{dist} will create it in addition to the other
@c formats.
@c 
配布物のzipアーカイブを作成する@code{dist-zip}ターゲットを生成します．
@code{dist}は他の形式への追加としてそれを作成します．
@trindex dist-zip

@item @code{dist-tarZ}
@cindex Option, dist-tarZ
@c Generate a @code{dist-tarZ} target, creating a compressed tar archive of
@c the distribution.  @code{dist} will create it in addition to the other
@c formats.
@c 
配布物の圧縮されたtarアーカイブを作成する@code{dist-tarZ}ターゲットを生
成します．@code{dist}は他の形式への追加としてそれを作成します．
@trindex dist-tarZ

@item @code{no-define}
@cindex Option, no-define
@c This options is meaningful only when passed as an argument to
@c AM_INIT_AUTOMAKE.  It will prevent the @code{PACKAGE} and @code{VERSION}
@c variable to be @code{AC_DEFINE}d.
@c 
このオプションは，AM_INIT_AUTOMAKEへの引数として渡すときだけ意味がありま
す．それは@code{PACKAGE}と@code{VERSION}変数が@code{AC_DEFINE}されること
を妨げます．

@item @code{no-dependencies}
@cindex Option, no-dependencies
@c This is similar to using @samp{--include-deps} on the command line, but
@c is useful for those situations where you don't have the necessary bits
@c to make automatic dependency tracking work @xref{Dependencies}.  In this
@c case the effect is to effectively disable automatic dependency tracking.
@c 
これは，コマンドラインで@samp{--include-deps}を使用することに似ています
が，自動的な依存追跡の仕事をするために必要なビットが無い状況で役に立ちま
す．@xref{Dependencies}. この場合は，効率的な自動的な依存追跡に障害を与
えます．

@item @code{no-exeext}
@cindex Option, no-exeext
@c If your @file{Makefile.am} defines a target @samp{foo}, it will override
@c a target named @samp{foo$(EXEEXT)}.  This is necessary when
@c @code{EXEEXT} is found to be empty.  However, by default automake will
@c generate an error for this use.  The @code{no-exeext} option will
@c disable this error.  This is intended for use only where it is known in
@c advance that the package will not be ported to Windows, or any other
@c operating system using extensions on executables.
@c 
@file{Makefile.am}でターゲット@samp{foo}を定義している場合，
@samp{foo$(EXEEXT)}と指名されているターゲットに優先します．@code{EXEEXT} 
が空のとき，これが必要です．しかし，デフォルトで，automakeではこれの使用
に対してエラーを発生します．@code{no-exeext}オプションで，このエラーが発
生しないようにします．これは，Windowsや実行形式の拡張子を使用しているそ
れ以外のすべてのオペレーティングシステムに移植する予定の無いパッケージだ
と分かっている場合のみ使用するものです．

@item @code{no-installinfo}
@cindex Option, no-installinfo
@c The generated @file{Makefile.in} will not cause info pages to be built
@c or installed by default.  However, @code{info} and @code{install-info}
@c targets will still be available.  This option is disallowed at
@c @samp{GNU} strictness and above.
@c 
生成された@file{Makefile.in}はデフォルトで，infoページをビルドしたりイン
ストールしたりしません．しかし，@code{info}と@code{install-info}ターゲッ
トは利用可能です．このオプションは@samp{GNU}の厳密さでは拒絶されます．
@trindex info
@trindex install-info

@item @code{no-installman}
@cindex Option, no-installman
@c The generated @file{Makefile.in} will not cause man pages to be
@c installed by default.  However, an @code{install-man} target will still
@c be available for optional installation.  This option is disallowed at
@c @samp{GNU} strictness and above.
@c 
生成された@file{Makefile.in}はデフォルトでman pageをインストールしません．
しかし，@code{install-man}ターゲットはオプショナルインストールで利用可能
です．このオプションは@samp{GNU}の厳密さで使用不可能です．
@trindex install-man

@item @code{nostdinc}
@cindex Option, nostdinc
@c This option can be used to disable the standard @samp{-I} options which
@c are ordinarily automatically provided by Automake.
@c 
このオプションは，通常Automakeが自動的に供給する標準的な@samp{-I}オプショ
ンを利用不可能にするために使用可能です．

@item @code{no-texinfo.tex}
@cindex Option, no-texinfo
@c Don't require @file{texinfo.tex}, even if there are texinfo files in
@c this directory.
@c 
このディレクトリにTexinfoファイルがあっても，@file{texinfo.tex}を必要と
しません．

@item @code{readme-alpha}
@cindex Option, readme-alpha
@c If this release is an alpha release, and the file @file{README-alpha}
@c exists, then it will be added to the distribution.  If this option is
@c given, version numbers are expected to follow one of two forms.  The
@c first form is @samp{@var{MAJOR}.@var{MINOR}.@var{ALPHA}}, where each
@c element is a number; the final period and number should be left off for
@c non-alpha releases.  The second form is
@c @samp{@var{MAJOR}.@var{MINOR}@var{ALPHA}}, where @var{ALPHA} is a
@c letter; it should be omitted for non-alpha releases.
@c 
このリリースがアルファリリースで，ファイル@file{README-alpha}が存在する
場合，それは配布物に加えられます．このオプションが与えられている場合，バー
ジョンナンバーは次の２つの形式のうちの１つだと期待されます．最初の形式は
@samp{@var{MAJOR}.@var{MINOR}.@var{ALPHA}}で，それぞれの要素が数字です．
最後のピリオドと数字は非アルファのリリースのときに捨てられます．２番目の
形式は@samp{@var{MAJOR}.@var{MINOR}@var{ALPHA}}で，@var{ALPHA}は文字列で
す．それは非アルファのリリースのときに取り除かれます．

@item @code{subdir-objects}
@c If this option is specified, then objects are placed into the
@c subdirectory of the build directory corresponding to the subdirectory of
@c the source file.  For instance if the source file is
@c @file{subdir/file.cxx}, then the output file would be
@c @file{subdir/file.o}.
@c 
このオプションが指定されている場合，オブジェクトはソースファイルのサブディ
レクトリに対応する，ビルドディレクトリのサブディレクトリに配置されます．
例えば，ソースファイルが@file{subdir/file.cxx}の場合，出力ファイルは
@file{subdir/file.o}になります．

@item @var{version}
@cindex Option, version
@c A version number (e.g. @samp{0.30}) can be specified.  If Automake is not
@c newer than the version specified, creation of the @file{Makefile.in}
@c will be suppressed.
@c 
バージョンナンバー(例えば@samp{0.30})が指定可能です．Automakeが，指定さ
れているバージョンより新しくない場合，@file{Makefile.in}の作成は行なわれ
ません．
@end table

@c Unrecognized options are diagnosed by @code{automake}.
@c 
認識できないオプションは@code{automake}が判断します．

@c If you want an option to apply to all the files in the tree, you can use
@c the @code{AM_AUTOMAKE_OPTIONS} macro in @file{configure.in}.
@c @xref{Macros}.
@c 
ツリーの全てのファイルにオプションを適用したい場合，@file{configure.in}
の@code{AM_AUTOMAKE_OPTIONS}を使用することが可能です．@xref{Macros}.


@node Miscellaneous, Include, Options, Top
@chapter 雑多な規則

@c There are a few rules and variables that didn't fit anywhere else.
@c 
他のどこにも適さない少数の規則と変数があります．

@menu
* Tags::                        Interfacing to etags and mkid
* Suffixes::                    Handling new file extensions
* Multilibs::                   Support for multilibbing.
@end menu


@node Tags, Suffixes, Miscellaneous, Miscellaneous
@section @code{etags}のインターフェース

@cindex TAGS support

@c Automake will generate rules to generate @file{TAGS} files for use with
@c GNU Emacs under some circumstances.
@c 
Automakeは，GNU Emacsで使用する@file{TAGS}ファイルを生成するための規則を
生成する場合もあります．

@c If any C, C++ or Fortran 77 source code or headers are present, then
@c @code{tags} and @code{TAGS} targets will be generated for the directory.
@c 
C，C++，またはFortran 77のソースコードやヘッダが存在している場合，
@code{tags}と@code{TAGS}ターゲットがディレクトリに対して生成されます．
@trindex tags

@c At the topmost directory of a multi-directory package, a @code{tags}
@c target file will be generated which, when run, will generate a
@c @file{TAGS} file that includes by reference all @file{TAGS} files from
@c subdirectories.
@c 
複数のディレクトリがあるパッケージのトップディレクトリで，@code{tags}ター
ゲットファイルは実行時に生成され，それは実行時に，サブディレクトリにある
すべての@file{TAGS}の参照を含んでいる@file{TAGS}ファイルを生成します．

@c The @code{tags} target will also be generated if the variable
@c @code{ETAGS_ARGS} is defined.  This variable is intended for use in
@c directories which contain taggable source that @code{etags} does not
@c understand.  The user can use the @code{ETAGSFLAGS} to pass additional
@c flags to @code{etags}; @code{AM_ETAGSFLAGS} is also available for use in
@c @file{Makefile.am}.
@c 
変数@code{ETAGS_ARGS}が定義されている場合，@code{tags}ターゲットも生成さ
れます．この変数は，@code{etags}が理解しないタグを使用しているソースを含
んでいるディレクトリでの使用を考慮しています．ユーザは@code{etags}に追加
のフラグを渡すために@code{ETAGSFLAGS}を使用することが可能です．
@file{Makefile.am}で@code{AM_ETAGSFLAGS}を利用することもできます．
@vindex ETAGS_ARGS
@vindex ETAGSFLAGS
@vindex AM_ETAGSFLAGS

@c Here is how Automake generates tags for its source, and for nodes in its
@c Texinfo file:
@c 
ソースとTexinfoファイルのノードに対するタグをAutomakeで生成する方法は以
下のようになります．

@example
ETAGS_ARGS = automake.in --lang=none \
 --regex='/^@@node[ \t]+\([^,]+\)/\1/' automake.texi
@end example

@c If you add filenames to @samp{ETAGS_ARGS}, you will probably also
@c want to set @samp{TAGS_DEPENDENCIES}.  The contents of this variable
@c are added directly to the dependencies for the @code{tags} target.
@c 
@samp{ETAGS_ARGS}にファイル名を加える場合，おそらく
@samp{TAGS_DEPENDENCIES}も設定したいでしょう．この変数の中身は
@code{tags}ターゲット対する依存性に直接追加されます．
@vindex TAGS_DEPENDENCIES

@c Automake will also generate an @code{ID} target which will run
@c @code{mkid} on the source.  This is only supported on a
@c directory-by-directory basis.
@c 
Automakeは，@code{mkid}をソース上で実行する@code{ID}ターゲットも生成しま
す．これはディレクトリ単位に基づくサポートだけです．
@trindex id

@c Automake also supports the @uref{http://www.gnu.org/software/global/,
@c GNU Global Tags program}.  The @code{GTAGS} target runs Global Tags
@c automatically and puts the result in the top build directory.  The
@c variable @code{GTAGS_ARGS} holds arguments which are passed to
@c @code{gtags}.
@c 
Automakeは@uref{http://www.gnu.org/software/global/, GNU Global Tags
program}もサポートします．@code{GTAGS}ターゲットは，自動的にGlobal Tagを
実行し，結果をビルドディレクトリに書き込みます．変数@code{GTAGS_ARGS}は，
@code{gtags}に渡す引数を保持しています．
@vindex GTAGS_ARGS


@node Suffixes, Multilibs, Tags, Miscellaneous
@section 新しいファイル拡張子の取り扱い

@cindex Adding new SUFFIXES
@cindex SUFFIXES, adding
@vindex SUFFIXES

@c It is sometimes useful to introduce a new implicit rule to handle a file
@c type that Automake does not know about.
@c 
Automakeが知らないファイル形式を処理するために，新しい暗黙の規則を導入す
ることが役に立つこともあります．

@c For instance, suppose you had a compiler which could compile @samp{.foo}
@c files to @samp{.o} files.  You would simply define an suffix rule for
@c your language:
@c 
例えば，@samp{.foo}ファイルを@samp{.o}ファイルにコンパイルするコンパイラ
があると仮定します．その言語に対する接尾子規則を単純に定義するでしょう．

@example
.foo.o:
        foocc -c -o $@@ $<
@end example

@c Then you could directly use a @samp{.foo} file in a @samp{_SOURCES}
@c variable and expect the correct results:
@c 
そして，@samp{_SOURCES}変数で@samp{.foo}ファイルを直接使用し，正しい結果
が期待されるでしょう．

@example
bin_PROGRAMS = doit
doit_SOURCES = doit.foo
@end example

@c This was the simpler and more common case.  In other cases, you will
@c have to help Automake to figure which extensions you are defining your
@c suffix rule for.  This usually happens when your extensions does not
@c start with a dot.  Then, all you have to do is to put a list of new
@c suffixes in the @code{SUFFIXES} variable @strong{before} you define your
@c implicit rule.
@c 
これはより簡単で，より一般的な状況です．それ以外の状況では，定義している
サフィックス規則を，Automakeが理解する手助けが必要です．通常これは，拡張
子がドットで始まらないときに生じます．そのときにしなければならないことは，
暗黙の規則を定義する@strong{前に}，新しい接尾子のリストを@code{SUFFIXES}
変数に書き込むことです．

@c For instance the following definition prevents Automake to misinterpret
@c @samp{.idlC.cpp:} as an attemp to transform @samp{.idlC} into
@c @samp{.cpp}.
@c 
例えば，以下の定義で，Automakeが@samp{.idlC.cpp:}が@samp{.idlC}を
@samp{.cpp}に変換してみるという誤解をしないようにします．

@example
SUFFIXES = .idl C.cpp
.idlC.cpp:
        # whatever
@end example

@c As you may have noted, the @code{SUFFIXES} macro behaves like the
@c @code{.SUFFIXES} special target of @code{make}.  You should not touch
@c @code{.SUFFIXES} yourself, but use @code{SUFFIXES} instead and let
@c Automake generate the suffix list for @code{.SUFFIXES}.  Any given
@c @code{SUFFIXES} go at the start of the generated suffixes list, followed
@c by Automake generated suffixes not already in the list.
@c 
注意事項のように，@code{SUFFIXES}マクロは@code{make}の@code{.SUFFIXES}特
殊ターゲットのように動作します．@code{.SUFFIXES}を独自にいじくるべきでは
なく，その代わりに@code{SUFFIXES}を使用しAutomakeが@code{.SUFFIXES}に対
する接尾子リストを生成するようにすべきです．与えられた全ての
@code{SUFFIXES}は生成された接尾子リストの最初に書かれ，Automakeが生成す
るまだリストに無い接尾子が続きます．

@node Multilibs,  , Suffixes, Miscellaneous
@section Multilibのサポート

@c Automake has support for an obscure feature called multilibs.  A
@c @dfn{multilib} is a library which is built for multiple different ABIs
@c at a single time; each time the library is built with a different target
@c flag combination.  This is only useful when the library is intended to
@c be cross-compiled, and it is almost exclusively used for compiler
@c support libraries.
@c 
Automakeには，multilibと呼ばれているあまり知られていない機能のサポートが
あります．@dfn{multilib}は，一度に複数の異なるABIに対してビルドされるラ
イブラリです．毎回，ライブラリが異なるターゲットフラグの組み合わせでビル
ドされます．これは，ライブラリがクロスコンパイルを目的としていて，コンパ
イラがサポートしているライブラリに対して，ほとんど排他的に使用されるとき
だけ役に立ちます．

@c The multilib support is still experimental.  Only use it if you are
@c familiar with multilibs and can debug problems you might encounter.
@c 
multilibのサポートはまだ実験中です．multilibを理解していて，遭遇した問題
をデバッグすることが可能な場合のみ，それを使用してください．


@node Include, Conditionals, Miscellaneous, Top
@chapter インクルード

@cmindex include
@cindex Including Makefile fragment
@cindex Makefile fragment, including

@c Automake supports an @code{include} directive which can be used to
@c include other @file{Makefile} fragments when @code{automake} is run.
@c Note that these fragments are read and interpreted by @code{automake},
@c not by @code{make}.  As with conditionals, @code{make} has no idea that
@c @code{include} is in use.
@c 
Automakeは，@code{automake}が実行されるときに，他の断片的な
@file{Makefile}をインクルードするために使用可能な，@code{include}指示語
をサポートします．これらの断片は，@code{make}ではなく@code{automake}で読
み込まれ解釈されることに注意してください．条件文同様，@code{make}には
@code{include}を使用する能力はありません．

@c There are two forms of @code{include}:
@c 
@code{include}には，2つの書式があります．

@table @code
@item include $(srcdir)/file
@c Include a fragment which is found relative to the current source
@c directory.
@c 
現在のソースディレクトリに相対的なところで見つかった断片をインクルードし
ます．

@item include $(top_srcdir)/file
@c Include a fragment which is found relative to the top source directory.
@c 
トップソースディレクトリに相対的なところで見つかった断片をインクルードし
ます．
@end table

@c Note that if a fragment is included inside a conditional, then the
@c condition applies to the entire contents of that fragment.
@c 
断片が条件文を含む場合，条件文は断片の内容全体に適用されることに注意して
ください．


@node Conditionals, Gnits, Include, Top
@chapter 条件文

@cindex Conditionals

@c Automake supports a simple type of conditionals.
@c 
Automakeは単純な形式の条件文をサポートします．

@cvindex AM_CONDITIONAL
@c Before using a conditional, you must define it by using
@c @code{AM_CONDITIONAL} in the @code{configure.in} file (@pxref{Macros}).
@c 
条件文を使用する前に，@code{configure.in}ファイルで@code{AM_CONDITIONAL} 
を使用してそれを定義する必要があります(@pxref{Macros})．

@defmac AM_CONDITIONAL (@var{conditional}, @var{condition})
@c The conditional name, @var{conditional}, should be a simple string
@c starting with a letter and containing only letters, digits, and
@c underscores.  It must be different from @samp{TRUE} and @samp{FALSE}
@c which are reserved by Automake.
@c 
条件名@var{conditional}は，文字で始まり，文字，数字，そしてアンダースコ
アのみを含む単純な文字列です．Automakeが@samp{TRUE}と@samp{FALSE}のどち
らを保持しているかで異なっているはずです．

@c The shell @var{condition} (suitable for use in a shell @code{if}
@c statement) is evaluated when @code{configure} is run.  Note that you
@c must arrange for @emph{every} @code{AM_CONDITIONAL} to be invoked every
@c time @code{configure} is run -- if @code{AM_CONDITIONAL} is run
@c conditionally (e.g., in a shell @code{if} statement), then the result
@c will confuse automake.
@c 
シェルの@var{condition}(シェルの@code{if}文で使用されるのに適切なもの)は，
@code{configure}が実行されるときに評価されます．@emph{すべての}
@code{AM_CONDITIONAL}が毎回@code{configure}の実行で呼び出されるように調
整する必要があります -- @code{AM_CONDITIONAL}が条件つき(例えば，シェルの
@code{if}文)で実行される場合，結果としてautomakeが混乱します．
@end defmac

@cindex --enable-debug, example
@cindex Example conditional --enable-debug
@cindex Conditional example,  --enable-debug

@c Conditionals typically depend upon options which the user provides to
@c the @code{configure} script.  Here is an example of how to write a
@c conditional which is true if the user uses the @samp{--enable-debug}
@c option.
@c 
条件文は一般的に，@code{configure}スクリプトでユーザが提供するオプション
に依存します．ユーザが@samp{--enable-debug}オプションを使用する場合，真
の条件を書く方法の例は以下のようになります．

@example
AC_ARG_ENABLE(debug,
[  --enable-debug    Turn on debugging],
[case "$@{enableval@}" in
  yes) debug=true ;;
  no)  debug=false ;;
  *) AC_MSG_ERROR(bad value $@{enableval@} for --enable-debug) ;;
esac],[debug=false])
AM_CONDITIONAL(DEBUG, test x$debug = xtrue)
@end example

@c Here is an example of how to use that conditional in @file{Makefile.am}:
@c 
@file{Makefile.am}でその条件文を使用する方法の例は以下のようになります．

@cmindex if
@cmindex endif
@cmindex else

@example
if DEBUG
DBG = debug
else
DBG =
endif
noinst_PROGRAMS = $(DBG)
@end example

@c This trivial example could also be handled using EXTRA_PROGRAMS
@c (@pxref{A Program}).
@c 
この簡単な例は，EXTRA_PROGRAMSを使用しているものを扱うことも可能でしょう
(@pxref{A Program})．

@c You may only test a single variable in an @code{if} statement, possibly
@c negated using @samp{!}.  The @code{else} statement may be omitted.
@c Conditionals may be nested to any depth.  You may specify an argument to
@c @code{else} in which case it must be the negation of the condition used
@c for the current @code{if}.  Similarly you may specify the condition
@c which is closed by an @code{end}:
@c 
@code{if}文で，@samp{!}を使用した否定も可能な，単一の変数のみを調査した
いかもしれません．@code{else}文は省略可能です．条件文は任意の深さにネス
ト可能です．@code{else}に引数を指定することも可能ですが，いずれの場合で
も，現在の@code{if}に対して使用される条件の否定となっている必要がありま
す．同様に，@code{end}で閉じられた条件を指定することも可能です．

@example
if DEBUG
DBG = debug
else !DEBUG
DBG =
endif !DEBUG
@end example

@noindent
@c Unbalanced conditions are errors.
@c 
非対称の条件文はエラーとなります．

@c Note that conditionals in Automake are not the same as conditionals in
@c GNU Make.  Automake conditionals are checked at configure time by the
@c @file{configure} script, and affect the translation from
@c @file{Makefile.in} to @file{Makefile}.  They are based on options passed
@c to @file{configure} and on results that @file{configure} has discovered
@c about the host system.  GNU Make conditionals are checked at @code{make}
@c time, and are based on variables passed to the make program or defined
@c in the @file{Makefile}.
@c 
Automakeの条件文はGNU Makeの条件文とは同じでないことに注意してください．
Automakeの条件文は，configure時に@file{configure}スクリプトでチェックさ
れ，@file{Makefile.in}から@file{Makefile}への変換に影響を与えます．それ
らは，@file{configure}に渡すオプションと，@file{configure}がホストシステ
ムについて発見した結果に基づきます．GNU Makeの条件文は，@code{make}時に
調査され，makeプログラムに渡された，あるいは@file{Makefile}で定義された
変数に基づいています．

@c Automake conditionals will work with any make program.
@c 
Automakeの条件文は，どんなmakeプログラムでも動作します．


@node Gnits, Cygnus, Conditionals, Top
@chapter @code{--gnu}と@code{--gnits}の効果

@cindex --gnu, required files
@cindex --gnu, complete description

@c The @samp{--gnu} option (or @samp{gnu} in the @samp{AUTOMAKE_OPTIONS}
@c variable) causes @code{automake} to check the following:
@c 
@samp{--gnu}オプション(あるいは@samp{AUTOMAKE_OPTIONS}変数での
@samp{gnu})で，@code{automake}は以下のことを調査します．

@itemize @bullet
@item
@c The files @file{INSTALL}, @file{NEWS}, @file{README}, @file{COPYING},
@c @file{AUTHORS}, and @file{ChangeLog} are required at the topmost
@c directory of the package.
@c 
@file{INSTALL}，@file{NEWS}，@file{README}，@file{COPYING}，
@file{AUTHORS}，そして@file{ChangeLog}というファイルがパッケージのトップ
ディレクトリにあることが必要です．

@item
@c The options @samp{no-installman} and @samp{no-installinfo} are
@c prohibited.
@c 
@samp{no-installman}と@samp{no-installinfo}オプションは使用できません．
@end itemize

@c Note that this option will be extended in the future to do even more
@c checking; it is advisable to be familiar with the precise requirements
@c of the GNU standards.  Also, @samp{--gnu} can require certain
@c non-standard GNU programs to exist for use by various maintainer-only
@c targets; for instance in the future @code{pathchk} might be required for
@c @samp{make dist}.
@c 
このオプションは，それ以上の調査を行なうため将来拡張されることでしょう．
GNU標準の正確な必要条件に精通することを勧めます．また，@samp{--gnu}は，
様々な管理者専用のターゲットで使用するために存在する，特定のGNU非標準の
プログラムを要求するはずです．例えば将来は，@code{pathchk}が@samp{make
dist}に対して要求されるかもしれません．

@cindex --gnits, complete description

@c The @samp{--gnits} option does everything that @samp{--gnu} does, and
@c checks the following as well:
@c 
@samp{--gnits}オプションは，@samp{--gnu}が行なうすべての調査に加え以下の
ことも調査します．

@itemize @bullet
@item
@c @samp{make dist} will check to make sure the @file{NEWS} file has been
@c updated to the current version.
@c 
@samp{make dist}を，@file{NEWS}ファイルが現在のバージョンに更新されたこ
とを確認するために調査します．

@item
@c @samp{VERSION} is checked to make sure its format complies with Gnits
@c standards.
@c 
@samp{VERSION}は，その書式ががGnits standardに従っていることを確認するた
めに調査されます．
@c FIXME xref when standards are finished

@item
@cindex README-alpha
@c If @samp{VERSION} indicates that this is an alpha release, and the file
@c @file{README-alpha} appears in the topmost directory of a package, then
@c it is included in the distribution.  This is done in @samp{--gnits}
@c mode, and no other, because this mode is the only one where version
@c number formats are constrained, and hence the only mode where Automake
@c can automatically determine whether @file{README-alpha} should be
@c included.
@c 
これがアルファリリースだということを@samp{VERSION}が示していて，ファイル
@file{README-alpha}がパッケージのトップディレクトリにある場合，それは配
布物に含められます．@samp{--gnits}モードはバージョンナンバーの書式に制限
がある唯一のものであり，そのためAutomakeが自動的に@file{README-alpha}を
含めることを決定することが可能な唯一のモードなので，これは@samp{--gnits} 
モードでなされますが他ではなされません．

@item
@c The file @file{THANKS} is required.
@c 
ファイル@file{THANKS}が必要です．
@end itemize


@node Cygnus, Extending, Gnits, Top
@chapter @code{--cygnus}の効果

@cindex Cygnus strictness

@c Some packages, notably GNU GCC and GNU gdb, have a build environment
@c originally written at Cygnus Support (subsequently renamed Cygnus
@c Solutions, and then later purchased by Red Hat).  Packages with this
@c ancestry are sometimes referred to as ``Cygnus'' trees.
@c 
特にGNU GCCとGNU gdbのようなパッケージには，Cygnus Support(その後，
Cygnus Solutionsに名前が変更され，その後で Red Hat に買収されました)で通
常書かれているビルド環境変数があります．この系統のパッケージは，
``Cygnus''ツリーとして述べられるときもあります．

@c A Cygnus tree has slightly different rules for how a @file{Makefile.in}
@c is to be constructed.  Passing @samp{--cygnus} to @code{automake} will
@c cause any generated @file{Makefile.in} to comply with Cygnus rules.
@c 
Cygnusツリーには，@file{Makefile.in}を構築する方法に対して，わずかに異なっ
た規則があります．@code{automake}へ@samp{--cygnus}を渡すことで，生成され
るすべての@file{Makefile.in}はCygnus規則に従います．

@c Here are the precise effects of @samp{--cygnus}:
@c 
@samp{--cygnus}の正確な効果は以下のようになっています．

@itemize @bullet
@item
@c Info files are always created in the build directory, and not in the
@c source directory.
@c 
infoファイルは，ソースディレクトリでではなく，常にビルドディレクトリで作
成されます．

@item
@c @file{texinfo.tex} is not required if a Texinfo source file is
@c specified.  The assumption is that the file will be supplied, but in a
@c place that Automake cannot find.  This assumption is an artifact of how
@c Cygnus packages are typically bundled.
@c 
@file{texinfo.tex}は，Texinfoソースファイルが指定されている場合でも，要
求されません．ファイルは提供されているのですが，Automakeが見つけられない
場所にあると仮定します．この仮定は，一般的にCygnusパッケージをバンドルす
る方法のartifact(欠点)です．

@item
@c @samp{make dist} is not supported, and the rules for it are not
@c generated.  Cygnus-style trees use their own distribution mechanism.
@c 
@samp{make dist}はサポートされておらず，その規則は生成されません．Cygnus 
形式のツリーでは独自の配布メカニズムを使用します．

@item
@c Certain tools will be searched for in the build tree as well as in the
@c user's @samp{PATH}.  These tools are @code{runtest}, @code{expect},
@c @code{makeinfo} and @code{texi2dvi}.
@c 
ユーザの@samp{PATH}同様にビルドツリーでも特定のツールを捜します．これら
のツールは，@code{runtest}，@code{expect}，@code{makeinfo}，そして
@code{texi2dvi}です．

@item
@c @code{--foreign} is implied.
@c 
@code{--foreign}を暗黙に指定します．

@item
@c The options @samp{no-installinfo} and @samp{no-dependencies} are
@c implied.
@c 
オプション@samp{no-installinfo}と@samp{no-dependencies}を暗黙に指定しま
す．

@item
@c The macros @samp{AM_MAINTAINER_MODE} and @samp{AM_CYGWIN32} are
@c required.
@c 
マクロ@samp{AM_MAINTAINER_MODE}と@samp{AM_CYGWIN32}が要求されます．

@item
@c The @code{check} target doesn't depend on @code{all}.
@c 
@code{check}ターゲットは@code{all}に依存しません．
@end itemize

@c GNU maintainers are advised to use @samp{gnu} strictness in preference
@c to the special Cygnus mode.  Some day, perhaps, the differences between
@c Cygnus trees and GNU trees will disappear (for instance, as GCC is made
@c more standards compliant).  At that time the special Cygnus mode will be
@c removed.
@c 
GNU管理者は，特別なCygnusモードではなく@samp{gnu}の厳密さを使用してくだ
さい．いつかはおそらく，CygnusツリーとGNUツリーの間の差が(例えば，GCCが
より標準に準拠するように)なくなることでしょう．そのときは，特殊なCygnus
モードは削除されるでしょう．


@node Extending, Distributing, Cygnus, Top
@chapter Automakeが不十分なとき

@c Automake's implicit copying semantics means that many problems can be
@c worked around by simply adding some @code{make} targets and rules to
@c @file{Makefile.in}.  Automake will ignore these additions.
@c 
Automakeの暗黙のコピーの意味は，単純にいくつかの@code{make}ターゲットと
@file{Makefile.in}の規則を加えることで，多くの問題が解決可能だということ
を意味します．Automakeはこれらの追加を無視します．

@cindex -local targets
@cindex local targets

@c There are some caveats to doing this.  Although you can overload a
@c target already used by Automake, it is often inadvisable, particularly
@c in the topmost directory of a package with subdirectories.  However,
@c various useful targets have a @samp{-local} version you can specify in
@c your @file{Makefile.in}.  Automake will supplement the standard target
@c with these user-supplied targets.
@c 
これを行なうときにはいくつか注意することがあります．すでにAutomakeで使用
されているターゲットをオーバーロードすることが可能ですが，特にサブディレ
クトリのあるパッケージのトップディレクトリでは，あまり勧められません．し
かし，様々な有用なターゲットには，@file{Makefile.in}で指定可能な，
@samp{-local}バージョンがあります．Automakeはこれらのユーザが提供するター
ゲットを用いて標準ターゲットを補足します．

@trindex  all-local
@trindex  info-local
@trindex  dvi-local
@trindex  check-local
@trindex  install-data-local
@trindex  install-exec-local
@trindex  uninstall-local
@trindex  mostlyclean-local
@trindex  clean-local
@trindex  distclean-local
@trindex  installdirs-local
@trindex  installcheck-local

@c The targets that support a local version are @code{all}, @code{info},
@c @code{dvi}, @code{check}, @code{install-data}, @code{install-exec},
@c @code{uninstall}, @code{installdirs}, @code{installcheck} and the
@c various @code{clean} targets (@code{mostlyclean}, @code{clean},
@c @code{distclean}, and @code{maintainer-clean}).  Note that there are no
@c @code{uninstall-exec-local} or @code{uninstall-data-local} targets; just
@c use @code{uninstall-local}.  It doesn't make sense to uninstall just
@c data or just executables.
@c 
ローカルバージョンをサポートするターゲットは，@code{all}，@code{info}，
@code{dvi}，@code{check}，@code{install-data}， @code{install-exec}，
@code{uninstall}，@code{installdirs}，@code{installcheck}，そして様々な
@code{clean}ターゲット(@code{mostlyclean}，@code{clean}，
@code{distclean}，そして@code{maintainer-clean})です．
@code{uninstall-exec-local}や@code{uninstall-data-local}ターゲットが無い
ことに注意してください．@code{uninstall-local}だけを使用してください．デー
タだけ，あるいは実行可能プログラムだけをアンインストールすることには意味
がありません．
@trindex all
@trindex info
@trindex dvi
@trindex check
@trindex install-data
@trindex install-exec
@trindex uninstall

@c For instance, here is one way to install a file in @file{/etc}:
@c 
例えば，ファイルを@file{/etc}にインストールする一つの方法は，以下のよう
になります．

@example
install-data-local:
        $(INSTALL_DATA) $(srcdir)/afile $(DESTDIR)/etc/afile
@end example

@cindex -hook targets
@cindex hook targets

@c Some targets also have a way to run another target, called a @dfn{hook},
@c after their work is done.  The hook is named after the principal target,
@c with @samp{-hook} appended.  The targets allowing hooks are
@c @code{install-data}, @code{install-exec}, @code{uninstall}, @code{dist},
@c and @code{distcheck}.
@c 
ターゲットには，@dfn{hook}と呼ばれる，その仕事が終った後にもう１つのター
ゲットを実行する方法もあります．フックは，主要なターゲットに@samp{-hook} 
を追加して命名します．フックが可能なターゲットは，@code{install-data}，
@code{install-exec}，@code{uninstall}，@code{dist}，そして
@code{distcheck}です．
@trindex install-data-hook
@trindex install-exec-hook
@trindex uninstall-hook
@trindex dist-hook

@c For instance, here is how to create a hard link to an installed program:
@c 
例えば，インストールしたプログラムにハードリンクを作成する方法は，以下の
ようになります．

@example
install-exec-hook:
        ln $(DESTDIR)$(bindir)/program $(DESTDIR)$(bindir)/proglink
@end example

@c FIXME should include discussion of variables you can use in these
@c rules

@node Distributing, API versioning, Extending, Top
@chapter @file{Makefile.in}の配布

@c Automake places no restrictions on the distribution of the resulting
@c @file{Makefile.in}s.  We still encourage software authors to distribute
@c their work under terms like those of the GPL, but doing so is not
@c required to use Automake.
@c 
Automakeは，結果として生じる@file{Makefile.in}の配布に制限を置きません．
我々は，ソフトウェアの著者にGPLのような用語の下でその仕事を流通させるこ
とを奨励しますが，そうすることはAutomakeを使用することにで要求されません．

@c Some of the files that can be automatically installed via the
@c @code{--add-missing} switch do fall under the GPL.  However, these also
@c have a special exception allowing you to distribute them with your
@c package, regardless of the licensing you choose.
@c 
@code{--add-missing}スイッチによって自動的にインストールすることが可能な
ファイルにはGPLに従うものもあります．しかし，選択したライセンスを気にせ
ず，パッケージとともに配布することができるよう，これらにも特別な例外があ
ります．


@node API versioning, Macro and Variable Index, Distributing, Top
@chapter AutomakeのAPIのバージョン管理

@c New Automake releases usually include bug fixes and new features.
@c Unfortunately they may also introduce new bugs and incompatibilities.
@c This make four reasons why a package may require a particular Automake
@c version.
@c 
通常，新しいAutomakeのリリースにはバグの修正と新しい機能が含まれています．
残念ながら，それらは新しいバグと非互換性ももたらす可能性があります．この
ことは，パッケージがAutomakeの特定のバージョンを要求する可能性となる4つ
の原因となります．

@c Things get worse when maintaining a large tree of packages, each one
@c requiring a different version of Automake.  In the past, this meant that
@c any developer (and sometime users) had to install several versions of
@c Automake in different places, and switch @samp{$PATH} appropriately for
@c each package.
@c 
大きなツリーのパッケージを管理するとき，それぞれが異なるバージョンの
Automakeを要求することが問題になります．過去には，開発者(と時にはユーザ
が)異なるバージョンのAutomakeを異なる場所にインストールし，それぞれのパッ
ケージに対して適切な@samp{$PATH}に切替える必要があったという意味です．

@c Starting with version 1.6, Automake installs versioned binaries.  This
@c means you can install several versions of Automake in the same
@c @samp{$prefix}, and can select an arbitrary Automake version by running
@c @samp{automake-1.6} or @samp{automake-1.7} without juggling with
@c @samp{$PATH}.  Furthermore, @file{Makefile}'s generated by Automake 1.6
@c will use @samp{automake-1.6} explicitely in their rebuild rules.
@c 
バージョン1.6で開始していますが，Automakeはバージョン管理されたバイナリ
をインストールします．これは同じ@samp{$prefix}で複数のバージョンの
Automakeをインストールすることが可能で，@samp{$PATH}で誤魔化すこと無く
@samp{automake-1.6}や@samp{automake-1.7}を実行することで任意のバージョン
のAutomakeを選択することが可能だということを意味します．さらに，Automake
1.6で生成された@file{Makefile}は，リビルドの規則で明示的に
@samp{automake-1.6}を使用します．

@c Note that @samp{1.6} in @samp{automake-1.6} is Automake's API version,
@c not Automake's version.  If a bug fix release is made, for instance
@c Automake 1.6.1, the API version will remain 1.6.  This means that a
@c package which work with Automake 1.6 should also work with 1.6.1; after
@c all, this is what people expect from bug fix releases.
@c 
@samp{automake-1.6}の@samp{1.6}は，AutomakeのバージョンではなくAutomake 
のAPIのバージョンだということに注意してください．バグの修正版が作成され
た場合，例えばAutomake 1.6.1になりますが，APIのバージョンは1.6のままです．
これは，Automake 1.6で動作するパッケージは1.6.1でも動作することを意味し
ます．結局，これは人々がバグの修正版に期待するものになります．

@c Note that if your package relies on a feature or a bug fix introduced in
@c a release, you can pass this version as an option to Automake to ensure
@c older releases will not be used.  For instance, use this in your
@c @file{configure.in}:
@c 
パッケージがリリースで導入された機能やバグの修正に依存している場合，古い
リリースを使用しないことを確実にするため，Automakeへのオプションとしてこ
のバージョンを渡すことが可能です．例えば，@file{configure.in}で以下の内
容を使用してください．

@example
  AM_INIT_AUTOMAKE(1.6.1)    dnl Require Automake 1.6.1 or better.
@end example
@noindent
@c or, in a particular @file{Makefile.am}:
@c 
または特定の@file{Makefile.am}で以下の内容を使用してください．

@example
  AUTOMAKE_OPTIONS = 1.6.1   # Require Automake 1.6.1 or better.
@end example
@noindent
@c Automake will print an error message if its version is
@c older than the requested version.
@c 
Automakeのバージョンが要求されたバージョンより古い場合，Automakeはエラー
メッセージを出力します．


@heading APIの中身

@c Automake's programing interface is not easy to define.  Basically it
@c should include at least all @strong{documented} variables and targets
@c that a @samp{Makefile.am} authors can use, the behaviours associated to
@c them (e.g. the places where @samp{-hook}'s are run), the command line
@c interface of @samp{automake} and @samp{aclocal}, ...
@c 
Automakeのプログラミングインターフェースは簡単に定義できません．基本的に，
全ての@strong{ドキュメント化されている}変数と@samp{Makefile.am}の著者が
利用可能なターゲットを少なくとも含めるべきで，動作はそれらに関連していて
(例えば，@samp{-hook}が実行される場所)，@samp{automake}と@samp{aclocal} 
のコマンドラインインターフェースがあって，@dots{}

@heading APIには無いもの

@c Every undocumented variable, target, or command line option, is not part
@c of the API.  You should avoid using them, as they could change from one
@c version to the other (even in bug fix releases, if this helps to fix a
@c bug).
@c 
ドキュメント化されていない変数，ターゲット，またはコマンドラインオプショ
ンは全て，APIの一部ではありません．バージョンが変われば(バグの修正に役立
つ場合は，バグの修正版でも) 変更されるかもしれないので，それらを使用する
ことは避けるべきです．

@c If it turns out you need to use such a undocumented feature, contact
@c @email{automake@@gnu.org} and try to get it documented and exercised by
@c the test-suite.
@c 
そのようなドキュメント化されていない機能を使用する必要があると判明した場
合，@email{automake@@gnu.org}でコンタクトを取り，ドキュメントを書きテス
トスイートで試してみてください．

@page
@node Macro and Variable Index, General Index, API versioning, Top
@unnumbered マクロと変数の索引

@printindex vr


@page
@node General Index,  , Macro and Variable Index, Top
@unnumbered 概念の索引

@printindex cp


@page
@contents
@bye
