File:  [Local Repository] / gnujdoc / automake-1.7 / automake-ja.texi
Revision 1.3: download - view: text, annotated - select for diffs
Sat Jun 11 07:02:48 2005 UTC (15 years, 4 months ago) by futoshi
Branches: MAIN
CVS tags: HEAD
Format html with makeinfo.
Some "@ininfo"s (for @menu and @top) replace to "@ifnottex"s.

    1: \input texinfo   @c -*-texinfo-*-
    2: @c %**start of header
    3: @setfilename automake-ja.info
    4: @settitle automake
    5: @setchapternewpage off
    6: @c %**end of header
    7: 
    8: @c @documentlanguage ja
    9: 
   10: @include automake-v.texi
   11: 
   12: @dircategory GNU programming tools
   13: @direntry
   14: * automake(ja): (automake-ja).		Making Makefile.in's
   15: @end direntry
   16: 
   17: @dircategory Individual utilities
   18: @direntry
   19: * aclocal(ja): (automake-ja)Invoking aclocal.          Generating aclocal.m4
   20: @end direntry
   21: 
   22: @ifinfo
   23: @c This file documents GNU automake @value{VERSION}
   24: @c 
   25: このファイルでGNU automake @value{VERSION}を説明します.
   26: 
   27: Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
   28: Free Software Foundation, Inc.
   29: 
   30: Permission is granted to make and distribute verbatim copies of
   31: this manual provided the copyright notice and this permission notice
   32: are preserved on all copies.
   33: 
   34: @ignore
   35: Permission is granted to process this file through TeX and print the
   36: results, provided the printed document carries copying permission
   37: notice identical to this one except for the removal of this paragraph
   38: 
   39: 
   40: @end ignore
   41: Permission is granted to copy and distribute modified versions of this
   42: manual under the conditions for verbatim copying, provided that the entire
   43: resulting derived work is distributed under the terms of a permission
   44: notice identical to this one.
   45: 
   46: Permission is granted to copy and distribute translations of this manual
   47: into another language, under the above conditions for modified versions,
   48: except that this permission notice may be stated in a translation approved
   49: by the Foundation.
   50: @end ifinfo
   51: 
   52: 
   53: @titlepage
   54: @title GNU Automake
   55: @subtitle For version @value{VERSION}, @value{UPDATED}
   56: @author David MacKenzie and Tom Tromey
   57: @c 翻訳 西尾 太
   58: 
   59: @page
   60: @vskip 0pt plus 1filll
   61: Copyright @copyright{} 1995, 1996, 2000, 2001, 2002 Free Software Foundation, Inc.
   62: @sp 2
   63: This is the first edition of the GNU Automake documentation,@*
   64: and is consistent with GNU Automake @value{VERSION}.@*
   65: @sp 2
   66: Published by the Free Software Foundation @*
   67: 59 Temple Place - Suite 330, @*
   68: Boston, MA 02111-1307 USA @*
   69: 
   70: Permission is granted to make and distribute verbatim copies of
   71: this manual provided the copyright notice and this permission notice
   72: are preserved on all copies.
   73: 
   74: Permission is granted to copy and distribute modified versions of this
   75: manual under the conditions for verbatim copying, provided that the entire
   76: resulting derived work is distributed under the terms of a permission
   77: notice identical to this one.
   78: 
   79: Permission is granted to copy and distribute translations of this manual
   80: into another language, under the above conditions for modified versions,
   81: except that this permission notice may be stated in a translation
   82: approved by the Free Software Foundation.
   83: @end titlepage
   84: 
   85: @c Define an index of configure output variables.
   86: @defcodeindex ov
   87: @c Define an index of configure variables.
   88: @defcodeindex cv
   89: @c Define an index of options.
   90: @defcodeindex op
   91: @c Define an index of targets.
   92: @defcodeindex tr
   93: @c Define an index of commands.
   94: @defcodeindex cm
   95: 
   96: @c Put the macros and variables into their own index.
   97: @c @syncodeindex fn cp
   98: @syncodeindex ov vr
   99: @syncodeindex cv vr
  100: @syncodeindex fn vr
  101: 
  102: @c Put everything else into one index (arbitrarily chosen to be the concept index).
  103: @syncodeindex op cp
  104: @syncodeindex tr cp
  105: @syncodeindex cm cp
  106: 
  107: @ifnottex
  108: @node Top, Introduction, (dir), (dir)
  109: @comment  node-name,  next,  previous,  up
  110: @top GNU Automake
  111: 
  112: @c This file documents the GNU Automake package.  Automake is a program
  113: @c which creates GNU standards-compliant Makefiles from template files.
  114: @c This edition documents version @value{VERSION}.
  115: @c 
  116: このファイルでは,GNU Automakeパッケージを説明します.Automakeはテンプレー
  117: トファイルからGNU標準に準拠したMakefileを作成するプログラムです.このエ
  118: ディションは,バージョン@value{VERSION}を説明します.
  119: 
  120: @menu
  121: * Introduction::                Automake's purpose
  122: * Generalities::                General ideas
  123: * Examples::                    Some example packages
  124: * Invoking Automake::           Creating a Makefile.in
  125: * configure::                   Scanning configure.ac or configure.in
  126: * Top level::                   The top-level Makefile.am
  127: * Alternative::                 An alternative approach to subdirectories
  128: * Rebuilding::                  Automatic rebuilding of Makefile
  129: * Programs::                    Building programs and libraries
  130: * Other objects::               Other derived objects
  131: * Other GNU Tools::             Other GNU Tools
  132: * Documentation::               Building documentation
  133: * Install::                     What gets installed
  134: * Clean::                       What gets cleaned
  135: * Dist::                        What goes in a distribution
  136: * Tests::                       Support for test suites
  137: * Options::                     Changing Automake's behavior
  138: * Miscellaneous::               Miscellaneous rules
  139: * Include::                     Including extra files in an Automake template.
  140: * Conditionals::                Conditionals
  141: * Gnits::                       The effect of @code{--gnu} and @code{--gnits}
  142: * Cygnus::                      The effect of @code{--cygnus}
  143: * Extending::                   Extending Automake
  144: * Distributing::                Distributing the Makefile.in
  145: * API versioning::              About compatibility between Automake versions
  146: * Macro and Variable Index::
  147: * General Index::
  148: @end menu
  149: 
  150: @end ifnottex
  151: 
  152: 
  153: @node Introduction, Generalities, Top, Top
  154: @c @chapter Introduction
  155: @chapter はじめに
  156: 
  157: @c Automake is a tool for automatically generating @file{Makefile.in}s from
  158: @c files called @file{Makefile.am}.  Each @file{Makefile.am} is basically a
  159: @c series of @code{make} variable definitions@footnote{These variables are
  160: @c also called @dfn{make macros} in Make terminology, however in this
  161: @c manual we reserve the term @dfn{macro} for Autoconf's macros.}, with
  162: @c rules being thrown in occasionally.  The generated @file{Makefile.in}s
  163: @c are compliant with the GNU Makefile standards.
  164: @c 
  165: Automakeは,@file{Makefile.am}と呼ばれるファイルから,@file{Makefile.in} 
  166: を自動的に生成するツールです.それぞれの@file{Makefile.am}は,基本的には
  167: 一連の@code{make}変数の定義@footnote{これらの変数は,Makeの用語では
  168: @dfn{makeのマクロ(make macros)}とも呼ばれていますが,このマニュアルでは,
  169: @dfn{マクロ(macro)}はAutoconfのマクロの予約語になっています.}になってい
  170: て,規則が時折投入されています.生成された@file{Makefile.in}はGNU
  171: Makefileの標準に従います.
  172: 
  173: @cindex GNU Makefile standards
  174: 
  175: @c The GNU Makefile Standards Document
  176: @c (@pxref{Makefile Conventions, , , standards, The GNU Coding Standards})
  177: @c is long, complicated, and subject to change.  The goal of Automake is to
  178: @c remove the burden of Makefile maintenance from the back of the
  179: @c individual GNU maintainer (and put it on the back of the Automake
  180: @c maintainer).
  181: @c 
  182: GNU Makefile Standards Documentは(@pxref{Makefile Conventions, , ,
  183: standards, The GNU Coding Standards}),長くて複雑で変更の原因にもなりま
  184: す.Automakeの目的は,個別のGNU管理者の背中からMakefle管理の負担を取り除
  185: く(そしてAutomake管理者に任せる)ことです.
  186: 
  187: @c The typical Automake input file is simply a series of variable definitions.
  188: @c Each such file is processed to create a @file{Makefile.in}.  There
  189: @c should generally be one @file{Makefile.am} per directory of a project.
  190: @c 
  191: 一般的なAutomakeの入力ファイルは,単純な一連の変数定義です.それぞれのファ
  192: イルは,@file{Makefile.in}を作成するために処理されます.通常,プロジェク
  193: ト内のディレクトリごとに,一つの@file{Makefile.am}を配置します.
  194: 
  195: @cindex Constraints of Automake
  196: @cindex Automake constraints
  197: 
  198: @c Automake does constrain a project in certain ways; for instance it
  199: @c assumes that the project uses Autoconf (@pxref{Top, , Introduction,
  200: @c autoconf, The Autoconf Manual}), and enforces certain restrictions on
  201: @c the @file{configure.in} contents@footnote{Autoconf 2.50 promotes
  202: @c @file{configure.ac} over @file{configure.in}.  The rest of this
  203: @c documentation will refer to @file{configure.in} as this use is not yet
  204: @c spread, but Automake supports @file{configure.ac} too.}.
  205: @c 
  206: Automakeは,ある方法でプロジェクトに制限を与えます.例えばプロジェクトで
  207: Autoconf(@pxref{Top, , Introduction, autoconf, The Autoconf Manual})の使
  208: 用を仮定すると,@file{configure.in}の内容には,ある制限が発生します
  209: @footnote{Autoconf 2.50 は,@file{configure.in}ではなく
  210: @file{configure.ac}を推奨しています.このドキュメントの残りの部分では,
  211: @file{configure.ac}の使用が広まっていないので,@file{configure.in}につい
  212: て説明していますが,Automakeは@file{configure.ac}もサポートしています.}.
  213: 
  214: @cindex Automake requirements
  215: @cindex Requirements, Automake
  216: 
  217: @c Automake requires @code{perl} in order to generate the
  218: @c @file{Makefile.in}s.  However, the distributions created by Automake are
  219: @c fully GNU standards-compliant, and do not require @code{perl} in order
  220: @c to be built.
  221: @c 
  222: Automakeでは,@file{Makefile.in}を生成するために@code{perl}が必要になり
  223: ます.しかし,Automakeで作成された配布物は完全にGNUの標準に従っていて,
  224: ビルドするために@code{perl}は不要です.
  225: 
  226: @cindex BUGS, reporting
  227: @cindex Reporting BUGS
  228: @cindex E-mail, bug reports
  229: 
  230: @c Mail suggestions and bug reports for Automake to
  231: @c @email{bug-automake@@gnu.org}.
  232: @c 
  233: @email{bug-automake@@gnu.org}宛にAutomakeの提案とバグレポートをメールし
  234: てください.
  235: 
  236: 
  237: @node Generalities, Examples, Introduction, Top
  238: @c @chapter General ideas
  239: @chapter 一般的な考え
  240: 
  241: @c The following sections cover a few basic ideas that will help you
  242: @c understand how Automake works.
  243: @c 
  244: 以下のセクションで,Automakeが動作する方法を理解することに役立つ,基本的
  245: な考えをいくつか述べます.
  246: 
  247: @menu
  248: * General Operation::           General operation of Automake
  249: * Strictness::                  Standards conformance checking
  250: * Uniform::                     The Uniform Naming Scheme
  251: * Canonicalization::            How derived variables are named
  252: * User Variables::              Variables reserved for the user
  253: * Auxiliary Programs::          Programs automake might require
  254: @end menu
  255: 
  256: 
  257: @node General Operation, Strictness, Generalities, Generalities
  258: @c @section General Operation
  259: @section 一般的な操作
  260: 
  261: @c Automake works by reading a @file{Makefile.am} and generating a
  262: @c @file{Makefile.in}.  Certain variables and targets defined in the
  263: @c @file{Makefile.am} instruct Automake to generate more specialized code;
  264: @c for instance, a @samp{bin_PROGRAMS} variable definition will cause targets
  265: @c for compiling and linking programs to be generated.
  266: @c 
  267: Automakeは@file{Makefile.am}を読み込み,@file{Makefile.in}を生成する仕事
  268: をします.@file{Makefile.am}で定義されている変数とターゲットで,Automake 
  269: は更に特殊なコードを生成します.例えば,@samp{bin_PROGRAMS}変数定義で,
  270: 生成されるプログラムをコンパイルしてリンクするターゲットを生成します.
  271: 
  272: @cindex Non-standard targets
  273: @cindex cvs-dist, non-standard example
  274: @trindex cvs-dist
  275: 
  276: @c The variable definitions and targets in the @file{Makefile.am} are copied
  277: @c verbatim into the generated file.  This allows you to add arbitrary code
  278: @c into the generated @file{Makefile.in}.  For instance the Automake
  279: @c distribution includes a non-standard @code{cvs-dist} target, which the
  280: @c Automake maintainer uses to make distributions from his source control
  281: @c system.
  282: @c 
  283: @file{Makefile.am}の変数定義とターゲットは,そのまま生成されたファイルに
  284: コピーされます.これにより,生成される@file{Makefile.in}に任意のコードを
  285: 加えることが可能になります.例えばAutomakeの配布物には,Automake管理者が
  286: ソースコントロールシステムから配布物を作成するときに使用する,非標準的な
  287: @code{cvs-dist}ターゲットが含まれています.
  288: 
  289: @cindex GNU make extensions
  290: 
  291: @c Note that most GNU make extensions are not recognized by Automake.  Using
  292: @c such extensions in a @file{Makefile.am} will lead to errors or confusing
  293: @c behavior.
  294: @c 
  295: ほとんどのGNU makeの拡張は,Automakeが理解しないことに注意してください.
  296: @file{Makefile.am}でこのような拡張を使用すると,エラーが生じたり紛らわし
  297: い動作をしたりします.
  298: 
  299: @cindex Append operator
  300: @c A special exception is that the GNU make append operator, @samp{+=}, is
  301: @c supported.  This operator appends its right hand argument to the variable
  302: @c specified on the left.  Automake will translate the operator into
  303: @c an ordinary @samp{=} operator; @samp{+=} will thus work with any make program.
  304: @c 
  305: 特別な例外として,GNU makeの追加オペレータの@samp{+=}はサポートされてい
  306: ます.このオペレータは,その右辺の引数を左辺で指定された変数に追加します.
  307: Automakeはそのオペレータを通常の@samp{=}オペレータに変換します.このため
  308: @samp{+=}は,あらゆるmakeプログラムでうまく動作します.
  309: 
  310: @c Automake tries to keep comments grouped with any adjoining targets or
  311: @c variable definitions.
  312: @c 
  313: Automakeは賢い方法で,ターゲットと変数定義に隣接しているグループ化された
  314: コメントの保持を試みます.
  315: 
  316: @cindex Make targets, overriding
  317: @cindex Overriding make targets
  318: 
  319: @c A target defined in @file{Makefile.am} generally overrides any such
  320: @c target of a similar name that would be automatically generated by
  321: @c @code{automake}.  Although this is a supported feature, it is generally
  322: @c best to avoid making use of it, as sometimes the generated rules are
  323: @c very particular.
  324: @c 
  325: 一般に,@file{Makefile.am}で定義されているターゲットは,@code{automake} 
  326: によって自動的に生成されるターゲットに似た名前を持つものに優先します.こ
  327: れをサポートしてはいるのですが,一般的に,生成される規則は非常に特殊なこ
  328: ともあるので,それを利用することは避けたほうがよいでしょう.
  329: 
  330: @cindex Variables, overriding
  331: @cindex Overriding make variables
  332: 
  333: @c Similarly, a variable defined in @file{Makefile.am} or @code{AC_SUBST}'ed
  334: @c from @file{configure.in} will override any definition of the variable that
  335: @c @code{automake} would ordinarily create.  This feature is more often
  336: @c useful than the ability to override a target definition.  Be warned that
  337: @c many of the variables generated by @code{automake} are considered to be for
  338: @c internal use only, and their names might change in future releases.
  339: @c 
  340: 同様に,@file{Makefile.am}で定義されている変数や@file{configure.in}で
  341: @code{AC_SUBST}されているものも,@code{automake}が通常作成するあらゆる変
  342: 数定義より優先されます.この機能は,ターゲット定義の優先より役に立つこと
  343: が多いでしょう.@code{automake}で生成されたマクロの多くは,内部で使用す
  344: ることだけを考慮に入れていて,それらマクロ名が将来のリリースで変更される
  345: 可能性があることに注意しておいてください.
  346: 
  347: @cindex Recursive operation of Automake
  348: @cindex Automake, recursive operation
  349: @cindex Example of recursive operation
  350: 
  351: @c When examining a variable definition, Automake will recursively examine
  352: @c variables referenced in the definition.  For example, if Automake is
  353: @c looking at the content of @code{foo_SOURCES} in this snippet
  354: @c 
  355: 変数定義を調査しているとき,Automakeは定義で参照されている変数を再帰的に
  356: 調査します.例えば,以下の断片的な@code{foo_SOURCES}の内容をAutomake が
  357: 調査している状況を考えます.
  358: 
  359: @example
  360: xs = a.c b.c
  361: foo_SOURCES = c.c $(xs)
  362: @end example
  363: 
  364: @c it would use the files @file{a.c}, @file{b.c}, and @file{c.c} as the
  365: @c contents of @code{foo_SOURCES}.
  366: @c 
  367: それは,ファイル@file{a.c},@file{b.c},そして@file{c.c}を
  368: @code{foo_SOURCES}の内容として使用します.
  369: 
  370: @cindex ## (special Automake comment)
  371: @cindex Special Automake comment
  372: @cindex Comment, special to Automake
  373: 
  374: @c Automake also allows a form of comment which is @emph{not} copied into
  375: @c the output; all lines beginning with @samp{##} (leading spaces allowed)
  376: @c are completely ignored by Automake.
  377: @c 
  378: Automakeでは,出力ファイルにコピー@emph{されない}コメントの形式も利用可
  379: 能です.Automakeは@samp{##}で始まる(スペースの前置は可能です)すべての行
  380: を完全に無視します.
  381: 
  382: @c It is customary to make the first line of @file{Makefile.am} read:
  383: @c 
  384: 読み込まれる@file{Makefile.am}の最初の行に,以下の行を書くのはいつものこ
  385: とです.
  386: 
  387: @cindex Makefile.am, first line
  388: @cindex First line of Makefile.am
  389: 
  390: @example
  391: ## Process this file with automake to produce Makefile.in
  392: @end example
  393: 
  394: @c FIXME discuss putting a copyright into Makefile.am here?  I would but
  395: @c I don't know quite what to say.
  396: 
  397: @c FIXME document customary ordering of Makefile.am here!
  398: 
  399: 
  400: @node Strictness, Uniform, General Operation, Generalities
  401: @c @section Strictness
  402: @section 厳密さ
  403: 
  404: @cindex Non-GNU packages
  405: 
  406: @c While Automake is intended to be used by maintainers of GNU packages, it
  407: @c does make some effort to accommodate those who wish to use it, but do
  408: @c not want to use all the GNU conventions.
  409: @c 
  410: Automakeは,GNUパッケージの管理者が使用することを目的としていますが,使
  411: 用したいけれども,すべてのGNU規約を使用したいわけではない人たちをも受け
  412: 入れる努力をしています.
  413: 
  414: @cindex Strictness, defined
  415: @cindex Strictness, foreign
  416: @cindex foreign strictness
  417: @cindex Strictness, gnu
  418: @cindex gnu strictness
  419: @cindex Strictness, gnits
  420: @cindex gnits strictness
  421: 
  422: @c To this end, Automake supports three levels of @dfn{strictness}---the
  423: @c strictness indicating how stringently Automake should check standards
  424: @c conformance.
  425: @c 
  426: このため,Automakeは三つの@dfn{厳密さ}のレベルをサポートします --- 厳密
  427: さとは,Automakeに調査させる標準への適合度を示すものです.
  428: 
  429: @c The valid strictness levels are:
  430: @c 
  431: 有効な厳密さのレベルは以下のとおりです.
  432: 
  433: @table @samp
  434: @item foreign
  435: @c Automake will check for only those things which are absolutely
  436: @c required for proper operations.  For instance, whereas GNU standards
  437: @c dictate the existence of a @file{NEWS} file, it will not be required in
  438: @c this mode.  The name comes from the fact that Automake is intended to be
  439: @c used for GNU programs; these relaxed rules are not the standard mode of
  440: @c operation.
  441: @c 
  442: Automakeは,適切な処理のため絶対に必要なものだけを調査します.例えば,
  443: GNUの標準は@file{NEWS}ファイルが存在することを必要としますが,このモード
  444: で必要ではありません.この名前(foreign)は,本来はGNUプログラムのために
  445: Automakeを使用して欲しいのでこのように名付けられています.これらの緩い規
  446: 則は標準的な操作様式ではありません.
  447: 
  448: @item gnu
  449: @c Automake will check---as much as possible---for compliance to the GNU
  450: @c standards for packages.  This is the default.
  451: @c 
  452: Automakeは,パッケージがGNUの標準に準拠しているかどうか ---可 能な限り 
  453: --- 調査します.これはデフォルトです.
  454: 
  455: @item gnits
  456: @c Automake will check for compliance to the as-yet-unwritten @dfn{Gnits
  457: @c standards}.  These are based on the GNU standards, but are even more
  458: @c detailed.  Unless you are a Gnits standards contributor, it is
  459: @c recommended that you avoid this option until such time as the Gnits
  460: @c standard is actually published (which may never happen).
  461: @c 
  462: Automakeは,まだ書かれていない@dfn{Gnits standards}に準拠しているかどう
  463: かを調査します.これらはGNUの標準に基づいていますが,より詳しく記述され
  464: ています.Gnits standardsの貢献者でない場合,Gnits standardsが実際に発表
  465: されるときまで(発表されることはないかもしれませんが),このオプションの使
  466: 用を避けるよう推奨します.
  467: @end table
  468: 
  469: @c For more information on the precise implications of the strictness
  470: @c level, see @ref{Gnits}.
  471: @c 
  472: 厳密さのレベルの正確な意味についての詳細は,@ref{Gnits}を参照してくださ
  473: い.
  474: 
  475: @c Automake also has a special ``cygnus'' mode which is similar to
  476: @c strictness but handled differently.  This mode is useful for packages
  477: @c which are put into a ``Cygnus'' style tree (e.g., the GCC tree).  For
  478: @c more information on this mode, see @ref{Cygnus}.
  479: @c 
  480: Automakeには,厳密さ似にていますが異なる扱いを受ける,特殊な``cygnus''モー
  481: ドもあります.このモードは,``Cygnus''形式のツリー(例えば,GCCツリー)に
  482: 配置するパッケージで役に立ちます.このモードの詳細は,@ref{Cygnus}を参照
  483: してください.
  484: 
  485: 
  486: @node Uniform, Canonicalization, Strictness, Generalities
  487: @c @section The Uniform Naming Scheme
  488: @section 一様な命名法
  489: 
  490: @cindex Uniform naming scheme
  491: 
  492: @c Automake variables generally follow a @dfn{uniform naming scheme} that
  493: @c makes it easy to decide how programs (and other derived objects) are
  494: @c built, and how they are installed.  This scheme also supports
  495: @c @code{configure} time determination of what should be built.
  496: @c 
  497: Automake変数は,一般に以下の@dfn{一様な命名法(uniform naming scheme)}に
  498: 従っていて,それは,プログラム(とその他の派生されるオブジェクト)のビルド
  499: 方法と,それらのインストール方法の決定を容易にします.この手法は,
  500: @code{configure}時にビルドするものを決定することもサポートしています.
  501: 
  502: @cindex _PROGRAMS primary variable
  503: @cindex PROGRAMS primary variable
  504: @cindex Primary variable, PROGRAMS
  505: @cindex Primary variable, defined
  506: 
  507: @c At @code{make} time, certain variables are used to determine which
  508: @c objects are to be built.  The variable names are made of several pieces
  509: @c which are concatenated together.
  510: @c 
  511: @code{make}時にビルドするオブジェクトを決定するため,特定の変数を使用し
  512: ます.変数の名前は,いくつかのピースをお互いに連結したものからできていま
  513: す.
  514: 
  515: @c The piece which tells automake what is being built is commonly called
  516: @c the @dfn{primary}.  For instance, the primary @code{PROGRAMS} holds a
  517: @c list of programs which are to be compiled and linked.
  518: @c 
  519: ビルドするものをautomakeに伝える部品は,一般に@dfn{プライマリ}と呼ばれて
  520: います.例えば,プライマリの@code{PROGRAMS}は,コンパイルされリンクされ
  521: るプログラムのリストを保持しています.
  522: @vindex PROGRAMS
  523: 
  524: @cindex pkglibdir, defined
  525: @cindex pkgincludedir, defined
  526: @cindex pkgdatadir, defined
  527: 
  528: @vindex pkglibdir
  529: @vindex pkgincludedir
  530: @vindex pkgdatadir
  531: 
  532: @c A different set of names is used to decide where the built objects
  533: @c should be installed.  These names are prefixes to the primary which
  534: @c indicate which standard directory should be used as the installation
  535: @c directory.  The standard directory names are given in the GNU standards
  536: @c (@pxref{Directory Variables, , , standards, The GNU Coding Standards}).
  537: @c Automake extends this list with @code{pkglibdir}, @code{pkgincludedir},
  538: @c and @code{pkgdatadir}; these are the same as the non-@samp{pkg}
  539: @c versions, but with @samp{@@PACKAGE@@} appended.  For instance,
  540: @c @code{pkglibdir} is defined as @code{$(libdir)/@@PACKAGE@@}.
  541: @c 
  542: ビルドしたオブジェクトをインストールする場所を決定するため,異なる名前の
  543: 組が使用されます.これらの名前はプライマリに前置されていて,それはインス
  544: トールするディレクトリとして使用される標準的なディレクトリを示しています.
  545: 標準的なディレクトリ名はGNUの標準で与えられています(@pxref{Directory
  546: Variables, , , standards, The GNU Coding Standards}).Automakeは,
  547: @code{pkglibdir},@code{pkgincludedir},そして@code{pkgdatadir}を用いて,
  548: このリストを拡張します.これらは非@samp{pkg}のバージョンと同じですが,
  549: @samp{@@PACKAGE@@}が付加されます.例えば,@code{pkglibdir}は
  550: @code{$(libdir)/@@PACKAGE@@}として定義されます.
  551: @cvindex PACKAGE, directory
  552: 
  553: @cindex EXTRA_, prepending
  554: 
  555: @c For each primary, there is one additional variable named by prepending
  556: @c @samp{EXTRA_} to the primary name.  This variable is used to list
  557: @c objects which may or may not be built, depending on what
  558: @c @code{configure} decides.  This variable is required because Automake
  559: @c must statically know the entire list of objects that may be built in
  560: @c order to generate a @file{Makefile.in} that will work in all cases.
  561: @c 
  562: それぞれのプライマリに対して,@samp{EXTRA_}をプライマリ名に前置して命名
  563: された追加の変数があります.この変数は,ビルドされたりされなかったりする
  564: 可能性のあるオブジェクトのリストで使用され,それは,@code{configure}が決
  565: 定したものに依存します.Automakeは,すべての状況で動作する
  566: @file{Makefile.in}を生成するために,ビルドされる可能性のあるオブジェクト
  567: 全体のリストをあらかじめ知っておく必要があるので,この変数が必要になりま
  568: す.
  569: 
  570: @cindex EXTRA_PROGRAMS, defined
  571: @cindex Example, EXTRA_PROGRAMS
  572: @cindex cpio example
  573: 
  574: @c For instance, @code{cpio} decides at configure time which programs are
  575: @c built.  Some of the programs are installed in @code{bindir}, and some
  576: @c are installed in @code{sbindir}:
  577: @c 
  578: 例えば,@code{cpio}はconfigure時にビルドするプログラムを決定します.
  579: @code{bindir}にインストールされるプログラムもあれば,@code{sbindir}にイ
  580: ンストールされるものもあります.
  581: 
  582: @example
  583: EXTRA_PROGRAMS = mt rmt
  584: bin_PROGRAMS = cpio pax
  585: sbin_PROGRAMS = @@MORE_PROGRAMS@@
  586: @end example
  587: 
  588: @c Defining a primary without a prefix as a variable, e.g.,
  589: @c @code{PROGRAMS}, is an error.
  590: @c 
  591: 接頭辞がないプライマリを変数として定義すること,例えば@code{PROGRAMS}は
  592: エラーになります.
  593: 
  594: @c Note that the common @samp{dir} suffix is left off when constructing the
  595: @c variable names; thus one writes @samp{bin_PROGRAMS} and not
  596: @c @samp{bindir_PROGRAMS}.
  597: @c 
  598: 一般的な@samp{dir}接尾辞は,変数名を作るときには捨てられることに注意して
  599: 下さい.このため,@samp{bindir_PROGRAMS}ではなく,@samp{bin_PROGRAMS}と
  600: 書きます.
  601: 
  602: @c Not every sort of object can be installed in every directory.  Automake
  603: @c will flag those attempts it finds in error.
  604: @c Automake will also diagnose obvious misspellings in directory names.
  605: @c 
  606: すべての種類のオブジェクトが,すべてのディレクトリにインストールされるわ
  607: けではありません.Automakeはエラーを見つけたとき,フラグを付けようとしま
  608: す.Automakeはディレクトリ名での明らかなスペルミスも診断します.
  609: 
  610: @cindex Extending list of installation directories
  611: @cindex Installation directories, extending list
  612: 
  613: @c Sometimes the standard directories---even as augmented by Automake---
  614: @c are not enough.  In particular it is sometimes useful, for clarity, to
  615: @c install objects in a subdirectory of some predefined directory.  To this
  616: @c end, Automake allows you to extend the list of possible installation
  617: @c directories.  A given prefix (e.g. @samp{zar}) is valid if a variable of
  618: @c the same name with @samp{dir} appended is defined (e.g. @code{zardir}).
  619: @c 
  620: 標準ディレクトリは---Automakeによって強化されてはいますが---十分でない場
  621: 合もあります.特に,前もって定義されているディレクトリのサブディレクトリ
  622: にオブジェクトをインストールすると役に立つこともあります.このため,
  623: Automakeはインストール可能なディレクトリのリストを拡張することを可能にし
  624: ます.与えられている接頭辞(例えば@samp{zar})は,同じ名前の変数に
  625: @samp{dir}を付加した変数(例えば@code{zardir})が定義されている場合に有効
  626: です.
  627: 
  628: @cindex HTML support, example
  629: 
  630: @c For instance, until HTML support is part of Automake, you could use this
  631: @c to install raw HTML documentation:
  632: @c 
  633: 例えば,Automakeの一部としてHTMLがサポートされるまで,以下のようにして生
  634: のHTMLドキュメンテトをインストール可能でしょう.
  635: 
  636: @example
  637: htmldir = $(prefix)/html
  638: html_DATA = automake.html
  639: @end example
  640: 
  641: @cindex noinst primary prefix, definition
  642: 
  643: @c The special prefix @samp{noinst} indicates that the objects in question
  644: @c should be built but not installed at all.  This is usually used for
  645: @c objects required to build the rest of your package, for instance static
  646: @c libraries (@pxref{A Library}), or helper scripts.
  647: @c 
  648: 特別な接頭辞@samp{noinst}は,該当するオブジェクトはビルドすべきですが決
  649: してインストールされるべきではないことを示します.これは,パッケージ残り
  650: のビルドで必要なオブジェクト,例えば,スタティックライブラリ(@pxref{A
  651: Library})や,補助的なスクリプトに対して有効です.
  652: 
  653: @cindex check primary prefix, definition
  654: 
  655: @c The special prefix @samp{check} indicates that the objects in question
  656: @c should not be built until the @code{make check} command is run.  Those
  657: @c objects are not installed either.
  658: @c 
  659: 特別な接頭辞@samp{check}は,該当するオブジェクトが@code{make check}コマ
  660: ンドが実行されるまでビルドされないことを示します.これらのオブジェクトは
  661: インストールもされません.
  662: 
  663: @c The current primary names are @samp{PROGRAMS}, @samp{LIBRARIES},
  664: @c @samp{LISP}, @samp{PYTHON}, @samp{JAVA}, @samp{SCRIPTS}, @samp{DATA},
  665: @c @samp{HEADERS}, @samp{MANS}, and @samp{TEXINFOS}.
  666: @c 
  667: 現在のプライマリ名は,@samp{PROGRAMS},@samp{LIBRARIES},@samp{LISP},
  668: @samp{PYTHON},@samp{JAVA},@samp{SCRIPTS},@samp{DATA},@samp{HEADERS},
  669: @samp{MANS},そして@samp{TEXINFOS}です.
  670: @vindex PROGRAMS
  671: @vindex LIBRARIES
  672: @vindex LISP
  673: @vindex PYTHON
  674: @vindex JAVA
  675: @vindex SCRIPTS
  676: @vindex DATA
  677: @vindex HEADERS
  678: @vindex MANS
  679: @vindex TEXINFOS
  680: 
  681: @c Some primaries also allow additional prefixes which control other
  682: @c aspects of @code{automake}'s behavior.  The currently defined prefixes
  683: @c are @samp{dist_}, @samp{nodist_}, and @samp{nobase_}.  These prefixes
  684: @c are explained later (@pxref{Program and Library Variables}).
  685: @c 
  686: @code{automake}の動作の他の側面を制御する,追加の接頭辞が可能なプライマ
  687: リもあります.現在定義されている接頭辞は,@samp{dist_},@samp{nodist_},
  688: そして@samp{nobase_}です.これらの接頭辞は後で説明します(@pxref{Program
  689: and Library Variables}).
  690: 
  691: 
  692: @node Canonicalization, User Variables, Uniform, Generalities
  693: @c @section How derived variables are named
  694: @section 派生される変数と命名法
  695: 
  696: @cindex canonicalizing Automake variables
  697: 
  698: @c Sometimes a Makefile variable name is derived from some text the
  699: @c maintainer supplies.  For instance, a program name listed in
  700: @c @samp{_PROGRAMS} is rewritten into the name of a @samp{_SOURCES}
  701: @c variable.  In cases like this, Automake canonicalizes the text, so that
  702: @c program names and the like do not have to follow Makefile variable naming
  703: @c rules.  All characters in the name except for letters, numbers, the
  704: @c strudel (@@), and the underscore are turned into underscores when making
  705: @c variable references.
  706: @c 
  707: Makefileの変数名は,管理者が提供するいくつかのテキストから派生することも
  708: あります.例えば,@samp{_PROGRAMS}にリストアップされているプログラム名は,
  709: @samp{_SOURCES}変数の名前にも再び書き込まれます.このような状況では,プ
  710: ログラム名とそれに類似したものがMakefileの変数命名規則に従う必要が無いよ
  711: うに,Automakeはテキストを標準に従うものにします.名前の中の文字,数字,
  712: アットマーク(@@),そしてアンダースコア以外のすべての文字は,変数で参照さ
  713: れるときにアンダースコアに変換されます.
  714: 
  715: @c For example, if your program is named @code{sniff-glue}, the derived
  716: @c variable name would be @code{sniff_glue_SOURCES}, not
  717: @c @code{sniff-glue_SOURCES}.  Similarly the sources for a library named
  718: @c @code{libmumble++.a} should be listed in the
  719: @c @code{libmumble___a_SOURCES} variable.
  720: @c 
  721: 例えば,プログラムを@code{sniff-glue}と命名する場合,派生する変数名は,
  722: @code{sniff-glue_SOURCES}ではなく@code{sniff_glue_SOURCES}になります.同
  723: 様に,@code{libmumble++.a}と命名されるライブラリのソースは,
  724: @code{libmumble___a_SOURCES}変数にリストアップすべきです.
  725: 
  726: @c The strudel is an addition, to make the use of Autoconf substitutions in
  727: @c variable names less obfuscating.
  728: @c 
  729: 変数名の内部でAutoconfの置換を使用する際にできるだけ明瞭にするため,アッ
  730: トマーク(strudel)が追加されています.
  731: 
  732: 
  733: @node User Variables, Auxiliary Programs, Canonicalization, Generalities
  734: @c @section Variables reserved for the user
  735: @section ユーザに対して予約されている変数
  736: 
  737: @cindex variables, reserved for the user
  738: @cindex user variables
  739: 
  740: @c Some @code{Makefile} variables are reserved by the GNU Coding Standards
  741: @c for the use of the ``user'' -- the person building the package.  For
  742: @c instance, @code{CFLAGS} is one such variable.
  743: @c 
  744: @code{Makefile}変数には,``user''が使用するためにGNU Coding Standardsで
  745: 予約されているものもあります -- それはパッケージを構築する人のためです.
  746: 例えば,@code{CFLAGS}はそのような変数の一つです.
  747: 
  748: @c Sometimes package developers are tempted to set user variables such as
  749: @c @code{CFLAGS} because it appears to make their job easier -- they don't
  750: @c have to introduce a second variable into every target.
  751: @c 
  752: パッケージ開発者は,明らかに仕事を簡単にするために,@code{CFLAGS}のよう
  753: なユーザ変数の設定を試みるときもあります -- 彼らはすべてのターゲットに二
  754: 番目の変数を導入する必要はありません.
  755: 
  756: @c However, the package itself should never set a user variable,
  757: @c particularly not to include switches which are required for proper
  758: @c compilation of the package.  Since these variables are documented as
  759: @c being for the package builder, that person rightfully expects to be able
  760: @c to override any of these variables at build time.
  761: @c 
  762: しかし,パッケージ自身でユーザ変数を設定すべきではなく,特に,パッケージ
  763: の適切なコンパイルに要求されるスイッチを含めるべきではありません.これら
  764: の変数はパッケージの構築者に対して説明されているので,人々は,ビルド時に
  765: これらの変数に優先させることが可能だと期待しています.
  766: 
  767: @c To get around this problem, automake introduces an automake-specific
  768: @c shadow variable for each user flag variable.  (Shadow variables are not
  769: @c introduced for variables like @code{CC}, where they would make no
  770: @c sense.)  The shadow variable is named by prepending @samp{AM_} to the
  771: @c user variable's name.  For instance, the shadow variable for
  772: @c @code{YFLAGS} is @code{AM_YFLAGS}.
  773: @c 
  774: この問題を解決するため,automakeはそれぞれのユーザフラグ変数に対し,
  775: automake特有の隠れた変数を導入しています.(隠れた変数は,@code{CC}のよう
  776: な変数に対しては導入されておらず,それは意味が無いためです.)隠れた変数
  777: は,ユーザ変数名に@samp{AM_}を前置して命名されています.例えば,
  778: @code{YFLAGS}に対する隠れた変数は,@code{AM_YFLAGS}になります.
  779: 
  780: 
  781: @node Auxiliary Programs,  , User Variables, Generalities
  782: @c @section Programs automake might require
  783: @section automakeが必要とする可能性があるプログラム
  784: 
  785: @cindex Programs, auxiliary
  786: @cindex Auxiliary programs
  787: 
  788: @c Automake sometimes requires helper programs so that the generated
  789: @c @file{Makefile} can do its work properly.  There are a fairly large
  790: @c number of them, and we list them here.
  791: @c 
  792: 生成された@file{Makefile}が適切に動作するように,automakeが補助的なプロ
  793: グラムを必要とすることもあります.それらは数がかなり多いのですが,ここに
  794: リストアップします.
  795: 
  796: @table @code
  797: @item ansi2knr.c
  798: @itemx ansi2knr.1
  799: @c These two files are used by the automatic de-ANSI-fication support
  800: @c (@pxref{ANSI}).
  801: @c 
  802: これらの二つのファイルは,自動的なde-ANSI-ficationのサポートで使用されま
  803: す(@pxref{ANSI}).
  804: 
  805: @item compile
  806: @c This is a wrapper for compilers which don't accept both @samp{-c} and
  807: @c @samp{-o} at the same time.  It is only used when absolutely required.
  808: @c Such compilers are rare.
  809: @c 
  810: これは,@samp{-c}と@samp{-o}の両方を同時に受け入れることができないコンパ
  811: イラに対するラッパーです.それは実際に要求されたときだけ使用されます.そ
  812: のようなコンパイラは滅多にありません.
  813: 
  814: @item config.guess
  815: @itemx config.sub
  816: @c These programs compute the canonical triplets for the given build, host,
  817: @c or target architecture.  These programs are updated regulary to support
  818: @c new architectures and fix probes broken by changes in new kernel
  819: @c versions.  You are encouraged to fetch the latest versions of these
  820: @c files from @url{ftp://ftp.gnu.org/gnu/config/} before making a release.
  821: @c 
  822: これらのプログラムは,与えられているビルド,ホスト,またはターゲットアー
  823: キテクチャといった,三つの標準的なものを調べます.これらのプログラムは,
  824: 新しいアーキテクチャのサポートや新しいカーネルでの変更で検査の失敗を修正
  825: するために定期的に更新されています.これらのファイルの最新バージョンを
  826: @url{ftp://ftp.gnu.org/gnu/config/}から取得して,リリース物を作成する前
  827: に確かめてください.
  828: 
  829: @item depcomp
  830: @c This program understands how to run a compiler so that it will generate
  831: @c not only the desired output but also dependency information which is
  832: @c then used by the automatic dependency tracking feature.
  833: @c 
  834: 要求された出力だけでなく,自動的な依存性の追跡機能で使用されている依存情
  835: 報も生成するために,このプログラムはコンパイラの実行方法を理解します.
  836: 
  837: @item elisp-comp
  838: @c This program is used to byte-compile Emacs Lisp code.
  839: @c 
  840: このプログラムは,Emacs Lispコードをバイトコンパイルするために使用されま
  841: す.
  842: 
  843: @item install-sh
  844: @c This is a replacement for the @code{install} program which works on
  845: @c platforms where @code{install} is unavailable or unusable.
  846: @c 
  847: これは,@code{install}プログラムの代わりのもので,@code{install}の利用や
  848: 使用が不可能なプラットフォームで動作します.
  849: 
  850: @item mdate-sh
  851: @c This script is used to generate a @file{version.texi} file.  It examines
  852: @c a file and prints some date information about it.
  853: @c 
  854: このスクリプトは,@file{version.texi}ファイルを生成します.それはファイ
  855: ルを調査し,それに関する日付の情報を出力します.
  856: 
  857: @item missing
  858: @c This wraps a number of programs which are typically only required by
  859: @c maintainers.  If the program in question doesn't exist, @code{missing}
  860: @c prints an informative warning and attempts to fix things so that the
  861: @c build can continue.
  862: @c 
  863: これは,通常管理者だけが必要とするいくつかのプログラムのラッパーです.該
  864: 当のプログラムが存在しない場合,@code{missing}は情報を伝える警告を出力し,
  865: ビルドを継続することが可能になるように修正を試みます.
  866: 
  867: @item mkinstalldirs
  868: @c This works around the fact that @code{mkdir -p} is not portable.
  869: @c 
  870: これは,@code{mkdir -p}に移植性が無い問題を解決します.
  871: 
  872: @item py-compile
  873: @c This is used to byte-compile Python scripts.
  874: @c 
  875: これは,Pythonスクリプトをバイトコンパイルするために使用されます.
  876: 
  877: @item texinfo.tex
  878: @c Not a program, this file is required for @code{make dvi}, @code{make ps}
  879: @c and @code{make pdf} to work when Texinfo sources are in the package.
  880: @c 
  881: プログラムではなく,パッケージにTexinfoソースファイルがあるとき,このファ
  882: イルは,@code{make dvi},@code{make ps},そして@code{make pdf}を動作させ
  883: るために必要になります.
  884: 
  885: @item ylwrap
  886: @c This program wraps @code{lex} and @code{yacc} and ensures that, for
  887: @c instance, multiple @code{yacc} instances can be invoked in a single
  888: @c directory in parallel.
  889: @c 
  890: このプログラムは,@code{lex}と@code{yacc}のラッパーで,例えば,複数の
  891: @code{yacc}のインスタンスを単一のディレクトリで,並行して呼び出すことが
  892: 可能であることを確かめます.
  893: 
  894: @end table
  895: 
  896: 
  897: @node Examples, Invoking Automake, Generalities, Top
  898: @c @chapter Some example packages
  899: @chapter いくつかのパッケージの例
  900: 
  901: @menu
  902: * Complete::                    A simple example, start to finish
  903: * Hello::                       A classic program
  904: * true::                        Building true and false
  905: @end menu
  906: 
  907: 
  908: @node Complete, Hello, Examples, Examples
  909: @c @section A simple example, start to finish
  910: @section 簡単なサンプル例の最初から最後まで
  911: 
  912: @cindex Complete example
  913: 
  914: @c Let's suppose you just finished writing @code{zardoz}, a program to make
  915: @c your head float from vortex to vortex.  You've been using Autoconf to
  916: @c provide a portability framework, but your @file{Makefile.in}s have been
  917: @c ad-hoc.  You want to make them bulletproof, so you turn to Automake.
  918: @c 
  919: さて,渦から渦まで頭を浮かせる(?)プログラムの@code{zardoz}を,たった今書
  920: き終えたと仮定しましょう.移植性のフレームワークを提供するためにAutoconf 
  921: を使用していましたが,@file{Makefile.in}は特別に作成しました.それらを堅
  922: 牢にしたいのでAutomakeに切替えてみましょう.
  923: 
  924: @cindex AM_INIT_AUTOMAKE, example use
  925: 
  926: @c The first step is to update your @file{configure.in} to include the
  927: @c commands that @code{automake} needs.  The way to do this is to add an
  928: @c @code{AM_INIT_AUTOMAKE} call just after @code{AC_INIT}:
  929: @c 
  930: 第一歩は@code{automake}が必要とするコマンドを含めるため,
  931: @file{configure.in}の更新を開始しましょう.こうする方法は,
  932: @code{AC_INIT}の直後に@code{AM_INIT_AUTOMAKE}の呼び出しを加えることです.
  933: 
  934: @example
  935: AC_INIT(zardoz, 1.0)
  936: AM_INIT_AUTOMAKE
  937: @dots{}
  938: @end example
  939: 
  940: @c Since your program doesn't have any complicating factors (e.g., it
  941: @c doesn't use @code{gettext}, it doesn't want to build a shared library),
  942: @c you're done with this part.  That was easy!
  943: @c 
  944: プログラムには,(例えば,@code{gettext}を使用していないし,共有ライブラ
  945: リもビルドしないし)複雑な要因が全くないので,この部分はおしまいです.な
  946: んて簡単なんでしょう!
  947: 
  948: @cindex aclocal program, introduction
  949: @cindex aclocal.m4, preexisting
  950: @cindex acinclude.m4, defined
  951: 
  952: @c Now you must regenerate @file{configure}.  But to do that, you'll need
  953: @c to tell @code{autoconf} how to find the new macro you've used.  The
  954: @c easiest way to do this is to use the @code{aclocal} program to generate
  955: @c your @file{aclocal.m4} for you.  But wait@dots{} maybe you already have an
  956: @c @file{aclocal.m4}, because you had to write some hairy macros for your
  957: @c program.  The @code{aclocal} program lets you put your own macros into
  958: @c @file{acinclude.m4}, so simply rename and then run:
  959: @c 
  960: さて@file{configure}を再生成する必要があります.しかしこうするためには,
  961: 使用している新しいマクロを見つける方法を@code{autoconf}に伝える必要があ
  962: ります.こうするための最も簡単な方法は,@file{aclocal.m4}を生成する
  963: @code{aclocal}プログラムを使用することです.しかしちょっと待って下さい
  964: @dots{}プログラムに対してちょっとマクロを書く必要があり,既に
  965: @file{aclocal.m4}があるかもしれません.@code{aclocal}プログラムでは,マ
  966: クロを@file{acinclude.m4}に書いておく必要があるので,単純に名前を変更し
  967: て以下のように実行します.
  968: 
  969: @example
  970: mv aclocal.m4 acinclude.m4
  971: aclocal
  972: autoconf
  973: @end example
  974: 
  975: @cindex zardoz example
  976: 
  977: @c Now it is time to write your @file{Makefile.am} for @code{zardoz}.
  978: @c Since @code{zardoz} is a user program, you want to install it where the
  979: @c rest of the user programs go: @code{bindir}.  Additionally,
  980: @c @code{zardoz} has some Texinfo documentation.  Your @file{configure.in}
  981: @c script uses @code{AC_REPLACE_FUNCS}, so you need to link against
  982: @c @samp{@@LIBOBJS@@}.  So here's what you'd write:
  983: @c 
  984: さて@code{zardoz}に対する@file{Makefile.am}を書く時間がやってきました.
  985: @code{zardoz}はユーザプログラムなので,他のユーザプログラムがインストー
  986: ルされる場所にインストールしたいと思います.@code{bindir}です.さらに,
  987: @code{zardoz}にはTexinfoドキュメントもあります.@file{configure.in}スク
  988: リプトでは@code{AC_REPLACE_FUNCS}を使用するので,@samp{@@LIBOBJS@@}をリ
  989: ンクする必要があります.そのため以下のように書いたほうが良いでしょう.
  990: 
  991: @example
  992: bin_PROGRAMS = zardoz
  993: zardoz_SOURCES = main.c head.c float.c vortex9.c gun.c
  994: zardoz_LDADD = @@LIBOBJS@@
  995: 
  996: info_TEXINFOS = zardoz.texi
  997: @end example
  998: 
  999: @c Now you can run @code{automake --add-missing} to generate your
 1000: @c @file{Makefile.in} and grab any auxiliary files you might need, and
 1001: @c you're done!
 1002: @c 
 1003: さて,@file{Makefile.in}を生成するために@code{automake --add-missing}を
 1004: 実行して,必要な補助ファイルを入手して,おしまいです!
 1005: 
 1006: 
 1007: @node Hello, true, Complete, Examples
 1008: @c @section A classic program
 1009: @section 古典的なプログラム
 1010: 
 1011: @cindex Example, GNU Hello
 1012: @cindex Hello example
 1013: @cindex GNU Hello, example
 1014: 
 1015: @c @uref{ftp://prep.ai.mit.edu/pub/gnu/hello-1.3.tar.gz, GNU hello} is
 1016: @c renowned for its classic simplicity and versatility.  This section shows
 1017: @c how Automake could be used with the GNU Hello package.  The examples
 1018: @c below are from the latest beta version of GNU Hello, but with all of the
 1019: @c maintainer-only code stripped out, as well as all copyright comments.
 1020: @c 
 1021: @uref{ftp://prep.ai.mit.edu/pub/gnu/hello-1.3.tar.gz, GNU hello}は,古典
 1022: 的単純さと融通性で有名です.このセクションでは,AutomakeをGNU Helloパッ
 1023: ケージに使用する方法を示します.以下の例は,GNU Helloの最近のベータバー
 1024: ジョンからのものですが,著作権のコメント全体と同様に,管理者専用のすべて
 1025: のコードが取り除かれています.
 1026: 
 1027: @c Of course, GNU Hello is somewhat more featureful than your traditional
 1028: @c two-liner.  GNU Hello is internationalized, does option processing, and
 1029: @c has a manual and a test suite.
 1030: @c 
 1031: もちろん,GNU Helloは伝統的な二行より幾分長くなっています.GNU Helloは国
 1032: 際化されていて,オプション処理をして,そしてマニュアルとテストスイートも
 1033: あります.
 1034: 
 1035: @cindex configure.in, from GNU Hello
 1036: @cindex GNU Hello, configure.in
 1037: @cindex Hello, configure.in
 1038: 
 1039: @c Here is the @file{configure.in} from GNU Hello:
 1040: @c 
 1041: GNU Helloの@file{configure.in}は以下のようになっています@footnote{訳注:
 1042: この例は古いので参考にしないでください.}.
 1043: @c FIXME: This definitively requires an update.
 1044: 
 1045: @example
 1046: dnl Process this file with autoconf to produce a configure script.
 1047: AC_INIT(src/hello.c)
 1048: AM_INIT_AUTOMAKE(hello, 1.3.11)
 1049: AM_CONFIG_HEADER(config.h)
 1050: 
 1051: dnl Set of available languages.
 1052: ALL_LINGUAS="de fr es ko nl no pl pt sl sv"
 1053: 
 1054: dnl Checks for programs.
 1055: AC_PROG_CC
 1056: AC_ISC_POSIX
 1057: 
 1058: dnl Checks for libraries.
 1059: 
 1060: dnl Checks for header files.
 1061: AC_STDC_HEADERS
 1062: AC_HAVE_HEADERS(string.h fcntl.h sys/file.h sys/param.h)
 1063: 
 1064: dnl Checks for library functions.
 1065: AC_FUNC_ALLOCA
 1066: 
 1067: dnl Check for st_blksize in struct stat
 1068: AC_ST_BLKSIZE
 1069: 
 1070: dnl internationalization macros
 1071: AM_GNU_GETTEXT
 1072: AC_OUTPUT([Makefile doc/Makefile intl/Makefile po/Makefile.in \
 1073:            src/Makefile tests/Makefile tests/hello],
 1074:    [chmod +x tests/hello])
 1075: @end example
 1076: 
 1077: @c The @samp{AM_} macros are provided by Automake (or the Gettext library);
 1078: @c the rest are standard Autoconf macros.
 1079: @c 
 1080: @samp{AM_}マクロは,Automake(あるいはGettextライブラリ)によって提供され
 1081: ています.残りは標準的なAutoconfマクロです.
 1082: 
 1083: 
 1084: @c The top-level @file{Makefile.am}:
 1085: @c 
 1086: トップレベルの@file{Makefile.am}は以下のようになっています.
 1087: 
 1088: @example
 1089: EXTRA_DIST = BUGS ChangeLog.O
 1090: SUBDIRS = doc intl po src tests
 1091: @end example
 1092: 
 1093: @c As you can see, all the work here is really done in subdirectories.
 1094: @c 
 1095: 御覧のように,ここでの仕事はすべてサブディレクトリで実際に実行されます.
 1096: 
 1097: @c The @file{po} and @file{intl} directories are automatically generated
 1098: @c using @code{gettextize}; they will not be discussed here.
 1099: @c 
 1100: @file{po}と@file{intl}ディレクトリは,@code{gettextize}を使用することで
 1101: 自動的に生成されます.それらについてはここで述べません.
 1102: 
 1103: @cindex Texinfo file handling example
 1104: @cindex Example, handling Texinfo files
 1105: 
 1106: @c In @file{doc/Makefile.am} we see:
 1107: @c 
 1108: @file{doc/Makefile.am}は以下のようになっています.
 1109: 
 1110: @example
 1111: info_TEXINFOS = hello.texi
 1112: hello_TEXINFOS = gpl.texi
 1113: @end example
 1114: 
 1115: @c This is sufficient to build, install, and distribute the GNU Hello
 1116: @c manual.
 1117: @c 
 1118: これで,GNU Helloマニュアルをビルドして,インストールして,そして配布す
 1119: るには十分です.
 1120: 
 1121: @cindex Regression test example
 1122: @cindex Example, regression test
 1123: 
 1124: @c Here is @file{tests/Makefile.am}:
 1125: @c 
 1126: @file{tests/Makefile.am}は以下のようになっています.
 1127: 
 1128: @example
 1129: TESTS = hello
 1130: EXTRA_DIST = hello.in testdata
 1131: @end example
 1132: 
 1133: @c The script @file{hello} is generated by @code{configure}, and is the
 1134: @c only test case.  @code{make check} will run this test.
 1135: @c 
 1136: @file{hello}スクリプトは,@code{configure}により生成され,それはテストケー
 1137: スのみで生成されます.@code{make check}でこのテストを実行します.
 1138: 
 1139: @cindex INCLUDES, example usage
 1140: 
 1141: @c Last we have @file{src/Makefile.am}, where all the real work is done:
 1142: @c 
 1143: 最後は@file{src/Makefile.am}で,実際にすべての仕事が行なわれる場所です
 1144: @footnote{訳注:ここの例も良くないみたいです.}.
 1145: @c FIXME: As all the Hello World excerpts in this manual, this
 1146: @c shows deprecated features (here: $(INCLUDES)).
 1147: 
 1148: @example
 1149: bin_PROGRAMS = hello
 1150: hello_SOURCES = hello.c version.c getopt.c getopt1.c getopt.h system.h
 1151: hello_LDADD = @@INTLLIBS@@ @@ALLOCA@@
 1152: localedir = $(datadir)/locale
 1153: INCLUDES = -I../intl -DLOCALEDIR=\"$(localedir)\"
 1154: @end example
 1155: 
 1156: 
 1157: @node true,  , Hello, Examples
 1158: @c @section Building true and false
 1159: @section trueとfalseのビルド
 1160: 
 1161: @cindex Example, false and true
 1162: @cindex false Example
 1163: @cindex true Example
 1164: 
 1165: @c Here is another, trickier example.  It shows how to generate two
 1166: @c programs (@code{true} and @code{false}) from the same source file
 1167: @c (@file{true.c}).  The difficult part is that each compilation of
 1168: @c @file{true.c} requires different @code{cpp} flags.
 1169: @c 
 1170: 以下にもう一つの,トリッキーな例があります.それは同じソースファイル
 1171: (@file{true.c})から二つのプログラム(@code{true}と@code{false})を生成する
 1172: 方法を示します.難しい部分は,それぞれの@file{true.c}のコンパイルで,異
 1173: なる@code{cpp}フラグが必要になるということです.
 1174: 
 1175: @example
 1176: bin_PROGRAMS = true false
 1177: false_SOURCES =
 1178: false_LDADD = false.o
 1179: 
 1180: true.o: true.c
 1181:         $(COMPILE) -DEXIT_CODE=0 -c true.c
 1182: 
 1183: false.o: true.c
 1184:         $(COMPILE) -DEXIT_CODE=1 -o false.o -c true.c
 1185: @end example
 1186: 
 1187: @c Note that there is no @code{true_SOURCES} definition.  Automake will
 1188: @c implicitly assume that there is a source file named @file{true.c}, and
 1189: @c define rules to compile @file{true.o} and link @file{true}.  The
 1190: @c @code{true.o: true.c} rule supplied by the above @file{Makefile.am},
 1191: @c will override the Automake generated rule to build @file{true.o}.
 1192: @c 
 1193: @code{true_SOURCES}の定義が無いことに注意してください.Automake は,ソー
 1194: スファイル名@file{true.c}が存在すると暗黙に仮定し,@file{true.o}にコンパ
 1195: イルし,@file{true}にリンクする規則を定義します.上記の
 1196: @file{Makefile.am}で提供されている@code{true.o: true.c}の規則は,
 1197: Automakeが生成する@file{true.o}をビルドするための規則に優先します.
 1198: 
 1199: @c @code{false_SOURCES} is defined to be empty---that way no implicit value
 1200: @c is substituted.  Because we have not listed the source of
 1201: @c @file{false}, we have to tell Automake how to link the program.  This is
 1202: @c the purpose of the @code{false_LDADD} line.  A @code{false_DEPENDENCIES}
 1203: @c variable, holding the dependencies of the @file{false} target will be
 1204: @c automatically generated by Automake from the contant of
 1205: @c @code{false_LDADD}.
 1206: @c 
 1207: @code{false_SOURCES}は空で定義されています --- その方法では,暗黙の値で
 1208: 置換されません.@file{false}のソースでリストアップしていないので,プログ
 1209: ラムをリンクする方法をAutomakeに伝える必要があります.これが
 1210: @code{false_LDADD}行の目的です.@code{false_DEPENDENCIES}変数は
 1211: @file{false}ターゲットの依存性を保持していて,@code{false_LDADD}の内容か
 1212: らAutomakeが自動的に生成されます.
 1213: 
 1214: @c The above rules won't work if your compiler doesn't accept both
 1215: @c @samp{-c} and @samp{-o}.  The simplest fix for this is to introduce a
 1216: @c bogus dependency (to avoid problems with a parallel @code{make}):
 1217: @c 
 1218: 上記の規則は,コンパイラが@samp{-c}と@samp{-o}の両方を受け入れない場合は
 1219: 動作しません.これを簡単に修正するため,(並行した@code{make}の問題を避け
 1220: るために)偽の依存性を導入します.
 1221: 
 1222: @example
 1223: true.o: true.c false.o
 1224:         $(COMPILE) -DEXIT_CODE=0 -c true.c
 1225: 
 1226: false.o: true.c
 1227:         $(COMPILE) -DEXIT_CODE=1 -c true.c && mv true.o false.o
 1228: @end example
 1229: 
 1230: @c Also, these explicit rules do not work if the de-ANSI-fication feature
 1231: @c is used (@pxref{ANSI}).  Supporting de-ANSI-fication requires a little
 1232: @c more work:
 1233: @c 
 1234: また,これらの明示的な規則は,de-ANSI-ficationが使用される場合は動作しま
 1235: せん(@pxref{ANSI}).de-ANSI-ficationをサポートするためには,もう少し多く
 1236: の仕事が必要です.
 1237: 
 1238: @example
 1239: true._o: true._c false.o
 1240:         $(COMPILE) -DEXIT_CODE=0 -c true.c
 1241: 
 1242: false._o: true._c
 1243:         $(COMPILE) -DEXIT_CODE=1 -c true.c && mv true._o false.o
 1244: @end example
 1245: 
 1246: @c As it turns out, there is also a much easier way to do this same task.
 1247: @c Some of the above techniques are useful enough that we've kept the
 1248: @c example in the manual.  However if you were to build @code{true} and
 1249: @c @code{false} in real life, you would probably use per-program
 1250: @c compilation flags, like so:
 1251: @c 
 1252: 分かってくるにしたがって,同じ作業を行なうため,よりいっそう簡単な方法も
 1253: あります.上記のテクニックには,マニュアルの例として残しておくには十分役
 1254: に立つものもあります.しかし,@code{true}と@code{false}を現実的にビルド
 1255: する場合は,以下のように,おそらくプログラムごとにコンパイルのフラグを使
 1256: 用することでしょう.
 1257: 
 1258: @example
 1259: bin_PROGRAMS = false true
 1260: 
 1261: false_SOURCES = true.c
 1262: false_CPPFLAGS = -DEXIT_CODE=1
 1263: 
 1264: true_SOURCES = true.c
 1265: true_CPPFLAGS = -DEXIT_CODE=0
 1266: @end example
 1267: 
 1268: @c In this case Automake will cause @file{true.c} to be compiled twice,
 1269: @c with different flags.  De-ANSI-fication will work automatically.  In
 1270: @c this instance, the names of the object files would be chosen by
 1271: @c automake; they would be @file{false-true.o} and @file{true-true.o}.
 1272: @c (The name of the object files rarely matters.)
 1273: @c 
 1274: この状況では,Automakeによって,@file{true.c}は異なるフラグで二度コンパ
 1275: イルされることになります.de-ANSI-ficationは自動的に動作します.この例で
 1276: は,オブジェクトファイルの名前はautomakeが選択します.それは
 1277: @file{false-true.o}と@file{true-true.o}になるでしょう.(オブジェクトファ
 1278: イルの名前が問題となることは滅多にありません.)
 1279: 
 1280: 
 1281: @node Invoking Automake, configure, Examples, Top
 1282: @c @chapter Creating a @file{Makefile.in}
 1283: @chapter @file{Makefile.in}の生成
 1284: 
 1285: @cindex Multiple configure.in files
 1286: @cindex Invoking Automake
 1287: @cindex Automake, invoking
 1288: 
 1289: @c To create all the @file{Makefile.in}s for a package, run the
 1290: @c @code{automake} program in the top level directory, with no arguments.
 1291: @c @code{automake} will automatically find each appropriate
 1292: @c @file{Makefile.am} (by scanning @file{configure.in}; @pxref{configure})
 1293: @c and generate the corresponding @file{Makefile.in}.  Note that
 1294: @c @code{automake} has a rather simplistic view of what constitutes a
 1295: @c package; it assumes that a package has only one @file{configure.in}, at
 1296: @c the top.  If your package has multiple @file{configure.in}s, then you
 1297: @c must run @code{automake} in each directory holding a
 1298: @c @file{configure.in}.  (Alteratively, you may rely on Autoconf's
 1299: @c @code{autoreconf}, which is able to recurse your package tree and run
 1300: @c @code{automake} where appropriate.)
 1301: @c 
 1302: パッケージに対するすべての@file{Makefile.in}を作成するため,
 1303: @code{automake}プログラムをトップレベルのディレクトリで,引数なしで実行
 1304: してください.@code{automake}は,(@file{configure.in}をスキャンながら 
 1305: @pxref{configure}),自動的にそれぞれ適切な@file{Makefile.am}を見つけ,対
 1306: 応する@file{Makefile.in}を生成します.@code{automake}では,パッケージを
 1307: 構成するものへの視野がかなり単純になっていることに注意してください.それ
 1308: は,一つのパッケージにはトップディレクトリにただ一つ@file{configure.in} 
 1309: があることを想定しています.パッケージに複数の@file{configure.in}がある
 1310: 場合,@file{configure.in}があるそれぞれのディレクトリで@code{automake} 
 1311: を実行する必要があります.(代わりの方法として,パッケージツリーを巡回し
 1312: て,適切な場所で@code{automake}を実行することが可能な,Autoconfの
 1313: @code{autoreconf}をあてにしてもかまいません.)
 1314: 
 1315: @c You can optionally give @code{automake} an argument; @file{.am} is
 1316: @c appended to the argument and the result is used as the name of the input
 1317: @c file.  This feature is generally only used to automatically rebuild an
 1318: @c out-of-date @file{Makefile.in}.  Note that @code{automake} must always
 1319: @c be run from the topmost directory of a project, even if being used to
 1320: @c regenerate the @file{Makefile.in} in some subdirectory.  This is
 1321: @c necessary because @code{automake} must scan @file{configure.in}, and
 1322: @c because @code{automake} uses the knowledge that a @file{Makefile.in} is
 1323: @c in a subdirectory to change its behavior in some cases.
 1324: @c 
 1325: オプションとして@code{automake}に引数を与えることが可能です.@file{.am} 
 1326: が引数に後置され,その結果が入力ファイルの名前として使用されます.この機
 1327: 能は,一般的に,時代遅れの@file{Makefile.in}を自動的にリビルドするためだ
 1328: けに使用します.いくつかのサブディレクトリで@file{Makefile.in}を再生成す
 1329: るために使用している場合でも,プロジェクトのトップディレクトリで
 1330: @code{automake}を実行する必要があることに注意してください.これは,
 1331: @code{automake}は@file{configure.in}をスキャンする必要があるため,そして,
 1332: @code{automake}が状況によってその動作を変更するため,@file{Makefile.in} 
 1333: がサブディレクトリに存在するという知識を使用するためです.
 1334: 
 1335: @vindex AUTOCONF
 1336: @c Automake will run @code{autoconf} to scan @file{configure.in} and its
 1337: @c dependencies (@file{aclocal.m4}), therefore @code{autoconf} must be in
 1338: @c your @code{PATH}.  If there is an @code{AUTOCONF} variable in your
 1339: @c environment it will be used instead of @code{autoconf}, this allows you
 1340: @c to select a particular version of Autoconf.  By the way, don't
 1341: @c misunderstand this paragraph: Automake runs @code{autoconf} to
 1342: @c @strong{scan} your @file{configure.in}, this won't build
 1343: @c @file{configure} and you still have to run @code{autoconf} yourself for
 1344: @c this purpose.
 1345: @c 
 1346: Automakeは,@file{configure.in}をスキャンするためと,その依存性
 1347: (@file{aclocal.m4})のため,@code{autoconf}を実行するので,
 1348: @code{autoconf}は@code{PATH}に存在する必要があります.@code{AUTOCONF}変
 1349: 数が環境変数にある場合,@code{autoconf}の代わりにそれを使用し,これで特
 1350: 定のバージョンのAutoconfを選択することが可能になります.ところで,この段
 1351: 落を誤解しないでください.Automakeは@file{configure.in}を@strong{スキャ
 1352: ン}するために@code{autoconf}を実行するのであって,@file{configure}をビル
 1353: ドするわけではありません.この目的に対しては@code{autoconf}を自分で実行
 1354: する必要があります.
 1355: 
 1356: @cindex Automake options
 1357: @cindex Options, Automake
 1358: @cindex Strictness, command line
 1359: 
 1360: @c @code{automake} accepts the following options:
 1361: @c 
 1362: @code{automake}は以下のオプションを受け入れます.
 1363: 
 1364: @cindex Extra files distributed with Automake
 1365: @cindex Files distributed with Automake
 1366: @cindex config.guess
 1367: 
 1368: @table @samp
 1369: @item -a
 1370: @itemx --add-missing
 1371: @opindex -a
 1372: @opindex --add-missing
 1373: @c Automake requires certain common files to exist in certain situations;
 1374: @c for instance @file{config.guess} is required if @file{configure.in} runs
 1375: @c @code{AC_CANONICAL_HOST}.  Automake is distributed with several of these
 1376: @c files (@pxref{Auxiliary Programs}); this option will cause the missing
 1377: @c ones to be automatically added to the package, whenever possible.  In
 1378: @c general if Automake tells you a file is missing, try using this option.
 1379: @c By default Automake tries to make a symbolic link pointing to its own
 1380: @c copy of the missing file; this can be changed with @code{--copy}.
 1381: @c 
 1382: Automakeには,特定の共通ファイルが存在することを要求する状況もあります.
 1383: 例えば,@file{configure.in}で@code{AC_CANONICAL_HOST}を実行する場合,
 1384: @file{config.guess}が必要です.Automakeはこれらのファイルのいくつかと一
 1385: 緒に配布されています(@pxref{Auxiliary Programs}).このオプションは,可能
 1386: であれば,足りないものを自動的にパッケージに加えます.一般的に,Automake 
 1387: が足りないファイルがあることを告げる場合,このオプションを使用してみてく
 1388: ださい.デフォルトでAutomakeは,足りないファイルを指し示すシンボリックリ
 1389: ンクの作成を試みます.これは@code{--copy}で変更可能です.
 1390: 
 1391: @item --libdir=@var{dir}
 1392: @opindex --libdir
 1393: @c Look for Automake data files in directory @var{dir} instead of in the
 1394: @c installation directory.  This is typically used for debugging.
 1395: @c 
 1396: Automakeのデータファイルを,インストールされたディレクトリではなく
 1397: @var{dir}で探します.これは通常,デバッグで使用されます.
 1398: 
 1399: @item -c
 1400: @opindex -c
 1401: @itemx --copy
 1402: @opindex --copy
 1403: @c When used with @code{--add-missing}, causes installed files to be
 1404: @c copied.  The default is to make a symbolic link.
 1405: @c 
 1406: @code{--add-missing}と一緒に使用するとき,インストールされるファイルをコ
 1407: ピーします.デフォルトではシンボリックリンクを作成します.
 1408: 
 1409: @item --cygnus
 1410: @opindex --cygnus
 1411: @c Causes the generated @file{Makefile.in}s to follow Cygnus rules, instead
 1412: @c of GNU or Gnits rules.  For more information, see @ref{Cygnus}.
 1413: @c 
 1414: GNUやGnitsの規則の代わりに,Cygnusの規則に従う@file{Makefile.in}を生成し
 1415: ます.詳細は,@ref{Cygnus}を参照してください.
 1416: 
 1417: @item -f
 1418: @opindex -f
 1419: @itemx --force-missing
 1420: @opindex --force-missing
 1421: @c When used with @code{--add-missing}, causes standard files to be reinstalled
 1422: @c even if they already exist in the source tree.  This involves removing
 1423: @c the file from the source tree before creating the new symlink (or, with
 1424: @c @code{--copy}, copying the new file).
 1425: @c 
 1426: @code{--add-missing}とともに使用するとき,標準のファイルがソースツリーに
 1427: 存在する場合でもそれらを再インストールします.これで,新しいシンボリック
 1428: リンクを作成する前に,ソースツリーからファイルを削除します(または,
 1429: @code{--copy}とともに使用すると,新しいファイルをコピーします).
 1430: 
 1431: @item --foreign
 1432: @opindex --foreign
 1433: @c Set the global strictness to @samp{foreign}.  For more information, see
 1434: @c @ref{Strictness}.
 1435: @c 
 1436: グローバルな厳密さを@samp{foreign}に設定します.詳細は,@ref{Strictness}
 1437: を参照してください.
 1438: 
 1439: @item --gnits
 1440: @opindex --gnits
 1441: @c Set the global strictness to @samp{gnits}.  For more information, see
 1442: @c @ref{Gnits}.
 1443: @c 
 1444: グローバルな厳密さを@samp{gnits}に設定します.詳細は,@ref{Gnits}を参照
 1445: してください.
 1446: 
 1447: @item --gnu
 1448: @opindex --gnu
 1449: @c Set the global strictness to @samp{gnu}.  For more information, see
 1450: @c @ref{Gnits}.  This is the default strictness.
 1451: @c 
 1452: グローバルな厳密さを@samp{gnu}に設定します.詳細は,@ref{Gnits}を参照し
 1453: てください.これはデフォルトの厳密さです.
 1454: 
 1455: @item --help
 1456: @opindex --help
 1457: @c Print a summary of the command line options and exit.
 1458: @c 
 1459: コマンドラインオプションの概要を出力して終了します.
 1460: 
 1461: @item -i
 1462: @itemx --ignore-deps
 1463: @opindex -i
 1464: @c This disables the dependency tracking feature in generated
 1465: @c @file{Makefile}s; see @ref{Dependencies}.
 1466: @c 
 1467: これは,生成される@file{Makefile}での依存性追跡の機能を使用不可能にしま
 1468: す.@ref{Dependencies}を参照してください.
 1469: 
 1470: @item --include-deps
 1471: @opindex --include-deps
 1472: @c This enables the dependency tracking feature.  This feature is enabled
 1473: @c by default.  This option is provided for historical reasons only and
 1474: @c probably should not be used.
 1475: @c 
 1476: 依存性追跡の機能を使用可能にします.この機能は,デフォルトで使用可能です.
 1477: このオプションは歴史的な理由でのみ提供されていて,おそらく使用すべきでは
 1478: ありません.
 1479: 
 1480: @item --no-force
 1481: @opindex --no-force
 1482: @c Ordinarily @code{automake} creates all @file{Makefile.in}s mentioned in
 1483: @c @file{configure.in}.  This option causes it to only update those
 1484: @c @file{Makefile.in}s which are out of date with respect to one of their
 1485: @c dependents.
 1486: @c 
 1487: 通常@code{automake}は,@file{configure.in}で記述されているすべての
 1488: @file{Makefile.in}を作成します.このオプションは,依存性の一つの側面を用
 1489: いて,時代遅れになっている@file{Makefile.in}だけを更新します.
 1490: 
 1491: @item -o @var{dir}
 1492: @itemx --output-dir=@var{dir}
 1493: @opindex -o
 1494: @opindex --output-dir
 1495: @c Put the generated @file{Makefile.in} in the directory @var{dir}.
 1496: @c Ordinarily each @file{Makefile.in} is created in the directory of the
 1497: @c corresponding @file{Makefile.am}.  This option is deprecated and will be
 1498: @c removed in a future release.
 1499: @c 
 1500: 生成された@file{Makefile.in}を@var{dir}に配置します.通常,それぞれの
 1501: @file{Makefile.in}は,@file{Makefile.am}に対応するディレクトリに作成され
 1502: ます.このオプションの使用は反対で,将来のリリースでは削除されるでしょう.
 1503: 
 1504: @item -v
 1505: @itemx --verbose
 1506: @opindex -v
 1507: @opindex --verbose
 1508: @c Cause Automake to print information about which files are being read or
 1509: @c created.
 1510: @c 
 1511: 読み込まれたり作成されたりしているファイルの情報をAutomakeに出力させます.
 1512: 
 1513: @item --version
 1514: @opindex --version
 1515: @c Print the version number of Automake and exit.
 1516: @c 
 1517: Automakeのバージョンナンバーを出力して終了します.
 1518: 
 1519: @item -W CATEGORY
 1520: @item --warnings=@var{category}
 1521: @opindex -W
 1522: @opindex --warnings
 1523: @c Output warnings falling in @var{category}.  @var{category} can be
 1524: @c one of:
 1525: @c 
 1526: @var{category}に当てはまる警告を出力します.@var{category}は以下の一つで
 1527: す.
 1528: @table @samp
 1529: @item gnu
 1530: @c warnings related to the GNU Coding Standards
 1531: @c (@pxref{Top, , , standards, The GNU Coding Standards}).
 1532: @c 
 1533: GNU Coding Standards(@pxref{Top, , , standards, The GNU Coding
 1534: Standards})に関連する警告です.
 1535: @item obsolete
 1536: @c obsolete features or constructions
 1537: @c 
 1538: 時代遅れの機能と構成物です.
 1539: @item portability
 1540: @c portability issues (e.g., use of Make features which are known not portable)
 1541: @c 
 1542: 移植性の問題です(例えば,移植性が無いことが知られているMakeの機能).
 1543: @item syntax
 1544: @c weird syntax, unused variables, typos
 1545: @c 
 1546: 怪しい構文,未使用の変数,入力ミスです.
 1547: @item unsupported
 1548: @c unsupported or incomplete features
 1549: @c 
 1550: サポートされていない,または不完全な機能です.
 1551: @item all
 1552: @c all the warnings
 1553: @c 
 1554: すべての警告です.
 1555: @item none
 1556: @c turn off all the warnings
 1557: @c 
 1558: すべての警告をオフにします.
 1559: @item error
 1560: @c treat warnings as errors
 1561: @c 
 1562: 警告をエラーとして処理します.
 1563: @end table
 1564: 
 1565: @c A category can be turned off by prefixing its name with @samp{no-}.  For
 1566: @c instance @samp{-Wno-syntax} will hide the warnings about unused
 1567: @c variables.
 1568: @c 
 1569: カテゴリは,その名前に@samp{no-}を前置することでオフにすることが可能です.
 1570: 例えば,@samp{-Wno-syntax}は未使用の変数に関する警告を隠します.
 1571: 
 1572: @c The categories output by default are @samp{syntax} and
 1573: @c @samp{unsupported}.  Additionally, @samp{gnu} is enabled in @samp{--gnu} and
 1574: @c @samp{--gnits} strictness.
 1575: @c 
 1576: デフォルトで出力されるカテゴリは,@samp{syntax}と@samp{unsupported}です.
 1577: さらに,@samp{gnu}は@samp{--gnu}と@samp{--gnits}の厳密さで有効になります.
 1578: 
 1579: @c @samp{portability} warnings are currently disabled by default, but they
 1580: @c will be enabled in @samp{--gnu} and @samp{--gnits} strictness in a
 1581: @c future release.
 1582: @c 
 1583: @samp{portability}の警告は,現在デフォルトでは無効になっていますが,将来
 1584: のリリースでは,@samp{--gnu}と@samp{--gnits}の厳密さで有効になるでしょう.
 1585: 
 1586: @vindex WARNINGS
 1587: @c The environment variable @samp{WARNINGS} can contain a comma separated
 1588: @c list of categories to enable.  It will be taken into account before the
 1589: @c command-line switches, this way @samp{-Wnone} will also ignore any
 1590: @c warning category enabled by @samp{WARNINGS}.  This variable is also used
 1591: @c by other tools like @command{autoconf}; unknown categories are ignored
 1592: @c for this reason.
 1593: @c 
 1594: 環境変数@samp{WARNINGS}に,カンマで分けた有効にするカテゴリのリストを含
 1595: めることが可能です.それは,コマンドラインスイッチの前に累積され,この方
 1596: 法で@samp{-Wnone}することで,@samp{WARNINGS}で有効にしたすべての警告カテ
 1597: ゴリを無視します.この変数は@command{autoconf}のような他のツールでも使用
 1598: されます.このため,未知のカテゴリは無視されます.
 1599: 
 1600: @end table
 1601: 
 1602: 
 1603: @node configure, Top level, Invoking Automake, Top
 1604: @c @chapter Scanning @file{configure.in}
 1605: @chapter @file{configure.in}のスキャン
 1606: 
 1607: @cindex configure.in, scanning
 1608: @cindex Scanning configure.in
 1609: 
 1610: @c Automake scans the package's @file{configure.in} to determine certain
 1611: @c information about the package.  Some @code{autoconf} macros are required
 1612: @c and some variables must be defined in @file{configure.in}.  Automake
 1613: @c will also use information from @file{configure.in} to further tailor its
 1614: @c output.
 1615: @c 
 1616: Automakeは,パッケージに関する特定の情報を決定するために,パッケージの
 1617: @file{configure.in}をスキャンします.必要な@code{autoconf}マクロもあれば,
 1618: @file{configure.in}で定義する必要がある変数もあります.Automakeは,出力
 1619: 物を調整するためにも,@file{configure.in}からの情報を使用します.
 1620: 
 1621: @c Automake also supplies some Autoconf macros to make the maintenance
 1622: @c easier.  These macros can automatically be put into your
 1623: @c @file{aclocal.m4} using the @code{aclocal} program.
 1624: @c 
 1625: Automakeは,メンテナンスをより容易にするためのAutoconfマクロも提供してい
 1626: ます.これらのマクロは,@code{aclocal}プログラムを使用して自動的に
 1627: @file{aclocal.m4}に書き込むことが可能です.
 1628: 
 1629: @menu
 1630: * Requirements::                Configuration requirements
 1631: * Optional::                    Other things Automake recognizes
 1632: * Invoking aclocal::            Auto-generating aclocal.m4
 1633: * aclocal options::             aclocal command line arguments
 1634: * Macro search path::           Modifying aclocal's search path
 1635: * Macros::                      Autoconf macros supplied with Automake
 1636: * Extending aclocal::           Writing your own aclocal macros
 1637: @end menu
 1638: 
 1639: 
 1640: @node Requirements, Optional, configure, configure
 1641: @c @section Configuration requirements
 1642: @section コンフィグレーションの必要条件
 1643: 
 1644: @cindex Automake requirements
 1645: @cindex Requirements of Automake
 1646: 
 1647: @c The one real requirement of Automake is that your @file{configure.in}
 1648: @c call @code{AM_INIT_AUTOMAKE}.  This macro does several things which are
 1649: @c required for proper Automake operation (@pxref{Macros}).
 1650: @c 
 1651: Automakeが本当に必要としていることは一つで,@file{configure.in}でマクロ
 1652: @code{AM_INIT_AUTOMAKE}を呼び出すことです.このマクロは,適切なAutomake 
 1653: の処理に必要なことをいくつか行ないます(@pxref{Macros}).
 1654: @cvindex AM_INIT_AUTOMAKE
 1655: 
 1656: @c Here are the other macros which Automake requires but which are not run
 1657: @c by @code{AM_INIT_AUTOMAKE}:
 1658: @c 
 1659: Automakeは必要としますが,@code{AM_INIT_AUTOMAKE}で実行されないマクロに
 1660: は,以下のものがあります.
 1661: 
 1662: @cindex AC_OUTPUT, scanning
 1663: 
 1664: @table @code
 1665: @item AC_CONFIG_FILES
 1666: @itemx AC_OUTPUT
 1667: @c Automake uses these to determine which files to create (@pxref{Output, ,
 1668: @c Creating Output Files, autoconf, The Autoconf Manual}).  A listed file
 1669: @c is considered to be an Automake generated @file{Makefile} if there
 1670: @c exists a file with the same name and the @file{.am} extension appended.
 1671: @c Typically, @code{AC_CONFIG_FILES([foo/Makefile])} will cause Automake to
 1672: @c generate @file{foo/Makefile.in} if @file{foo/Makefile.am} exists.
 1673: @c 
 1674: Automakeは,作成するファイルを決定するためにこれらを使用します
 1675: (@pxref{Output, , Creating Output Files, autoconf, The Autoconf Manual}).
 1676: 同じ名前のファイルが@file{.am}拡張子が後置されている状態で存在している場
 1677: 合,リストアップされているファイルは,Automakeが@file{Makefile}を生成す
 1678: るものと考慮します.通常,@code{AC_CONFIG_FILES([foo/Makefile])}で,
 1679: @file{foo/Makefile.am}が存在する場合は,Automakeが@file{foo/Makefile.in}
 1680: を生成します.
 1681: 
 1682: @c Other listed files are treated differently.  Currently the only
 1683: @c difference is that an Automake @file{Makefile} is removed by @code{make
 1684: @c distclean}, while other files are removed by @code{make clean}.
 1685: @c 
 1686: それ以外のリストアップされているファイルは扱い方が異なります.現在唯一の
 1687: 違いは,@code{make distclean}で@file{Makefile}は削除されますが,他のファ
 1688: イルは@code{make clean}で削除されるということです.
 1689: @c FIXME: this is in violation of standards!
 1690: @cvindex AC_OUTPUT
 1691: @end table
 1692: 
 1693: 
 1694: @node Optional, Invoking aclocal, Requirements, configure
 1695: @c @section Other things Automake recognizes
 1696: @section その他のAutomakeが理解すること
 1697: 
 1698: @cindex Macros Automake recognizes
 1699: @cindex Recognized macros by Automake
 1700: 
 1701: @c Every time Automake is run it calls Autoconf to trace
 1702: @c @file{configure.in}.  This way it can recognize the use of certain
 1703: @c macros and tailor the generated @file{Makefile.in} appropriately.
 1704: @c Currently recognized macros and their effects are:
 1705: @c 
 1706: Automakeは実行されるたびに,@file{configure.in}を追跡するためにAutoconf 
 1707: を呼び出します.この方法で,特定のマクロの使用を認識し,生成される
 1708: @file{Makefile.in}を適切に調整します.現在認識されるマクロとそれらの効果
 1709: は,以下のようになっています.
 1710: 
 1711: @table @code
 1712: @item AC_CONFIG_HEADERS
 1713: @c Automake will generate rules to rebuild these headers.  Older versions
 1714: @c of Automake required the use of @code{AM_CONFIG_HEADER}
 1715: @c (@pxref{Macros}); this is no longer the case today.
 1716: @c 
 1717: Automakeはこれらのヘッダをリビルドする規則を生成します.古いバージョンの
 1718: Automakeは@code{AM_CONFIG_HEADER}の使用を要求していました
 1719: (@pxref{Macros}).これは今日では既に事実ではありません.
 1720: @cvindex AC_CONFIG_HEADERS
 1721: 
 1722: @item AC_CONFIG_AUX_DIR
 1723: @c Automake will look for various helper scripts, such as
 1724: @c @file{mkinstalldirs}, in the directory named in this macro invocation.
 1725: @c If not seen, the scripts are looked for in their @samp{standard}
 1726: @c locations (either the top source directory, or in the source directory
 1727: @c corresponding to the current @file{Makefile.am}, whichever is
 1728: @c appropriate).  @xref{Input, , Finding `configure' Input, autoconf, The
 1729: @c Autoconf Manual}.
 1730: @c 
 1731: Automakeは,@file{mkinstalldirs}のような様々なヘルパースクリプトを,この
 1732: マクロの呼び出しで指定されたディレクトリで探します.見つからない場合は,
 1733: @samp{standard}な位置(トップソースディレクトリか,現在の
 1734: @file{Makefile.am}に対応するソースディレクトリの適切な方)で探します. 
 1735: @xref{Input, , Finding `configure' Input, autoconf, The Autoconf
 1736: Manual}.
 1737: @cvindex AC_CONFIG_AUX_DIR
 1738: FIXME: give complete list of things looked for in this directory
 1739: 
 1740: @item AC_CANONICAL_HOST
 1741: @c Automake will ensure that @file{config.guess} and @file{config.sub}
 1742: @c exist.  Also, the @file{Makefile} variables @samp{host_alias} and
 1743: @c @samp{host_triplet} are introduced.  See @ref{Canonicalizing, ,
 1744: @c Getting the Canonical System Type, autoconf, The Autoconf Manual}.
 1745: @c 
 1746: Automakeは,@file{config.guess}と@file{config.sub}が確実に存在するように
 1747: します.また,@file{Makefile}変数の@samp{host_alias}と
 1748: @samp{host_triplet}も導入します.@ref{Canonicalizing, , Getting the
 1749: Canonical System Type, autoconf, The Autoconf Manual}を参照してください.
 1750: @cvindex AC_CANONICAL_HOST
 1751: @vindex host_alias
 1752: @vindex host_triplet
 1753: 
 1754: @item AC_CANONICAL_SYSTEM
 1755: @c This is similar to @code{AC_CANONICAL_HOST}, but also defines the
 1756: @c @file{Makefile} variables @samp{build_alias} and @samp{target_alias}.
 1757: @c @xref{Canonicalizing, , Getting the Canonical System Type, autoconf, The
 1758: @c Autoconf Manual}.
 1759: @c 
 1760: これは@code{AC_CANONICAL_HOST}に似ていますが,@file{Makefile}変数の
 1761: @samp{build_alias}と@samp{target_alias}も定義します.
 1762: @xref{Canonicalizing, , Getting the Canonical System Type, autoconf, The
 1763: Autoconf Manual}.
 1764: @cvindex AC_CANONICAL_SYSTEM
 1765: @vindex build_alias
 1766: @vindex target_alias
 1767: 
 1768: @item AC_LIBSOURCE
 1769: @itemx AC_LIBSOURCES
 1770: @itemx AC_LIBOBJ
 1771: @c Automake will automatically distribute any file listed in
 1772: @c @code{AC_LIBSOURCE} or @code{AC_LIBSOURCES}.
 1773: @c 
 1774: Automakeは,@code{AC_LIBSOURCE}や@code{AC_LIBSOURCES}でリストアップされ
 1775: ているすべてのファイルを自動的に配布します.
 1776: 
 1777: @c Note that the @code{AC_LIBOBJ} macro calls @code{AC_LIBSOURCE}.  So if
 1778: @c an Autoconf macro is documented to call @code{AC_LIBOBJ([file])}, then
 1779: @c @file{file.c} will be distributed automatically by Automake.  This
 1780: @c encompasses many macros like @code{AC_FUNC_ALLOCA},
 1781: @c @code{AC_FUNC_MEMCMP}, @code{AC_REPLACE_FUNCS}, and others.
 1782: @c 
 1783: @code{AC_LIBOBJS}マクロが@code{AC_LIBSOURCE}を呼び出すことに注意してくだ
 1784: さい.そのため,Autoconfマクロが@code{AC_LIBOBJ([file])}を呼び出すと説明
 1785: されている場合,@file{file.c}はAutomakeで自動的に配布されます.これには,
 1786: @code{AC_FUNC_ALLOCA},@code{AC_FUNC_MEMCMP},@code{AC_REPLACE_FUNCS}等
 1787: の多くのマクロが含まれます.
 1788: @cvindex AC_LIBOBJ
 1789: @cvindex AC_LIBSOURCE
 1790: @cvindex AC_LIBSOURCES
 1791: 
 1792: @c By the way, direct assignments to @code{LIBOBJS} are no longer
 1793: @c supported.  You should always use @code{AC_LIBOBJ} for this purpose.
 1794: @c @xref{AC_LIBOBJ vs LIBOBJS, , @code{AC_LIBOBJ} vs. @code{LIBOBJS},
 1795: @c autoconf, The Autoconf Manual}.
 1796: @c 
 1797: ところで,直接@code{LIBOBJS}に代入することは,既にサポートされていません.
 1798: この目的では常に@code{AC_LIBOBJ}を使用すべきです.@xref{AC_LIBOBJ vs
 1799: LIBOBJS, , @code{AC_LIBOBJ} vs. @code{LIBOBJS}, autoconf, The Autoconf
 1800: Manual}.
 1801: @cvindex LIBOBJS
 1802: 
 1803: @item AC_PROG_RANLIB
 1804: @c This is required if any libraries are built in the package.
 1805: @c @xref{Particular Programs, , Particular Program Checks, autoconf, The
 1806: @c Autoconf Manual}.
 1807: @c 
 1808: これは,ライブラリをビルドするパッケージの場合に必要になります.
 1809: @xref{Particular Programs, , Particular Program Checks, autoconf, The
 1810: Autoconf Manual}.
 1811: @cvindex AC_PROG_RANLIB
 1812: 
 1813: @item AC_PROG_CXX
 1814: @c This is required if any C++ source is included.  @xref{Particular
 1815: @c Programs, , Particular Program Checks, autoconf, The Autoconf Manual}.
 1816: @c 
 1817: これは,C++ソースが含まれる場合に必要になります.@xref{Particular
 1818: Programs, , Particular Program Checks, autoconf, The Autoconf Manual}.
 1819: @cvindex AC_PROG_CXX
 1820: 
 1821: @item AC_PROG_F77
 1822: @c This is required if any Fortran 77 source is included.  This macro is
 1823: @c distributed with Autoconf version 2.13 and later.  @xref{Particular
 1824: @c Programs, , Particular Program Checks, autoconf, The Autoconf Manual}.
 1825: @c 
 1826: これは,Fortran77ソースが含まれる場合に必要になります.このマクロは
 1827: Autoconfのバージョン2.13以降で配布されます.@xref{Particular Programs, ,
 1828: Particular Program Checks, autoconf, The Autoconf Manual}.
 1829: @cvindex AC_PROG_F77
 1830: 
 1831: @item AC_F77_LIBRARY_LDFLAGS
 1832: @c This is required for programs and shared libraries that are a mixture of
 1833: @c languages that include Fortran 77 (@pxref{Mixing Fortran 77 With C and
 1834: @c C++}).  @xref{Macros, , Autoconf macros supplied with Automake}.
 1835: @c 
 1836: これはFortran77を含む言語が混在しているプログラムと共有ライブラリに対し
 1837: て必要になります(@pxref{Mixing Fortran 77 With C and C++}).
 1838: @xref{Macros, , Autoconf macros supplied with Automake}.
 1839: @cvindex AC_F77_LIBRARY_LDFLAGS
 1840: 
 1841: @item AC_PROG_LIBTOOL
 1842: @c Automake will turn on processing for @code{libtool} (@pxref{Top, ,
 1843: @c Introduction, libtool, The Libtool Manual}).
 1844: @c 
 1845: Automakeは@code{libtool}に対する処理を開始します(@pxref{Top, ,
 1846: Introduction, libtool, The Libtool Manual}).
 1847: @cvindex AC_PROG_LIBTOOL
 1848: 
 1849: @item AC_PROG_YACC
 1850: @c If a Yacc source file is seen, then you must either use this macro or
 1851: @c define the variable @samp{YACC} in @file{configure.in}.  The former is
 1852: @c preferred (@pxref{Particular Programs, , Particular Program Checks,
 1853: @c autoconf, The Autoconf Manual}).
 1854: @c 
 1855: Yaccソースファイルがある場合,このマクロを使用するか,
 1856: @file{configure.in}で変数@samp{YACC}を定義する必要があります.前者が好ま
 1857: れます(@pxref{Particular Programs, , Particular Program Checks,
 1858: autoconf, The Autoconf Manual}).
 1859: @cvindex AC_PROG_YACC
 1860: @cvindex YACC
 1861: 
 1862: @item AC_PROG_LEX
 1863: @c If a Lex source file is seen, then this macro must be used.
 1864: @c @xref{Particular Programs, , Particular Program Checks, autoconf, The
 1865: @c Autoconf Manual}.
 1866: @c 
 1867: Lexソースファイルがある場合,このマクロを使用する必要があります.
 1868: @xref{Particular Programs, , Particular Program Checks, autoconf, The
 1869: Autoconf Manual}.
 1870: @cvindex AC_PROG_LEX
 1871: 
 1872: @item AC_SUBST
 1873: @cvindex AC_SUBST
 1874: @c The first argument is automatically defined as a variable in each
 1875: @c generated @file{Makefile.in}.  @xref{Setting Output Variables, , Setting
 1876: @c Output Variables, autoconf, The Autoconf Manual}.
 1877: @c 
 1878: 最初の引数は,それぞれの生成される@file{Makefile.in}で,変数として自動的
 1879: に定義されます.@xref{Setting Output Variables, , Setting Output
 1880: Variables, autoconf, The Autoconf Manual}.
 1881: 
 1882: @c If the Autoconf manual says that a macro calls @code{AC_SUBST} for
 1883: @c @var{var}, or defined the output variable @var{var} then @var{var} will
 1884: @c be defined in each generated @file{Makefile.in}.
 1885: @c E.g. @code{AC_PATH_XTRA} defines @code{X_CFLAGS} and @code{X_LIBS}, so
 1886: @c you can use the variable in any @file{Makefile.am} if
 1887: @c @code{AC_PATH_XTRA} is called.
 1888: @c 
 1889: Autoconfマニュアルで,マクロが@var{var}に対して@code{AC_SUBST}を呼び出す
 1890: とか,出力変数@var{var}を定義するといった説明がある場合,@var{var}はそれ
 1891: ぞれの生成される@file{Makefile.in}で定義されます.例えば,
 1892: @code{AC_PATH_XTRA}は@code{X_CFLAGS}と@code{X_LIBS}を定義するので,
 1893: @code{AC_PATH_XTRA}が呼び出されている場合,@file{Makefile.am}でその変数
 1894: と使用することが可能です.
 1895: 
 1896: @item AM_C_PROTOTYPES
 1897: @c This is required when using automatic de-ANSI-fication; see @ref{ANSI}.
 1898: @c 
 1899: これは,de-ANSI-ficationを自動的に使用するときに必要です.@ref{ANSI}を参
 1900: 照してください.
 1901: @cvindex AM_C_PROTOTYPES
 1902: 
 1903: @item AM_GNU_GETTEXT
 1904: @c This macro is required for packages which use GNU gettext
 1905: @c (@pxref{gettext}).  It is distributed with gettext.  If Automake sees
 1906: @c this macro it ensures that the package meets some of gettext's
 1907: @c requirements.
 1908: @c 
 1909: このマクロはGNU gettextを使うパッケージに対して必要になります
 1910: (@pxref{gettext}).それはgettextとともに配布されます.Automakeがこのマク
 1911: ロを見つけた場合,このマクロはパッケージがgettextの必要条件のいくつかを
 1912: 確実に満たすようにします.
 1913: @cvindex AM_GNU_GETTEXT
 1914: 
 1915: @item AM_MAINTAINER_MODE
 1916: @opindex --enable-maintainer-mode
 1917: @c This macro adds a @samp{--enable-maintainer-mode} option to
 1918: @c @code{configure}.  If this is used, @code{automake} will cause
 1919: @c @samp{maintainer-only} rules to be turned off by default in the
 1920: @c generated @file{Makefile.in}s. This macro defines the
 1921: @c @samp{MAINTAINER_MODE} conditional, which you can use in your own
 1922: @c @file{Makefile.am}.
 1923: @c 
 1924: このマクロは@code{configure}に@samp{--enable-maintainer-mode}オプション
 1925: を加えます.これが使用されている場合,@code{automake}は生成された
 1926: @file{Makefile.in}内の@samp{maintainer-only}規則をデフォルトで停止します.
 1927: このマクロは@samp{MAINTAINER_MODE}条件を定義し,自分の@file{Makefile.am} 
 1928: で使用することが可能です.
 1929: @cvindex AM_MAINTAINER_MODE
 1930: 
 1931: @end table
 1932: 
 1933: 
 1934: @node Invoking aclocal, aclocal options, Optional, configure
 1935: @c @section Auto-generating aclocal.m4
 1936: @section aclocal.m4の自動生成
 1937: 
 1938: @cindex Invoking aclocal
 1939: @cindex aclocal, Invoking
 1940: 
 1941: @c Automake includes a number of Autoconf macros which can be used in your
 1942: @c package; some of them are actually required by Automake in certain
 1943: @c situations.  These macros must be defined in your @file{aclocal.m4};
 1944: @c otherwise they will not be seen by @code{autoconf}.
 1945: @c 
 1946: Automakeには,パッケージで使用可能な多くのAutoconfマクロがあります.状況
 1947: によってはAutomakeが実際に必要とするものもあります.これらのマクロは
 1948: @file{aclocal.m4}で定義する必要があります.さもなければ,それらは
 1949: @code{autoconf}では見つからないでしょう.
 1950: 
 1951: @c The @code{aclocal} program will automatically generate @file{aclocal.m4}
 1952: @c files based on the contents of @file{configure.in}.  This provides a
 1953: @c convenient way to get Automake-provided macros, without having to
 1954: @c search around.  Also, the @code{aclocal} mechanism allows other packages
 1955: @c to supply their own macros.
 1956: @c 
 1957: @code{aclocal}プログラムは,@file{configure.in}の内容に基づいて自動的に
 1958: @file{aclocal.m4}ファイルを生成します.これは,Automakeが提供するマクロ
 1959: を入手する便利な方法を提供し,それらを探し回る必要がないようになっていま
 1960: す.また,@code{aclocal}のメカニズムで,他のパッケージで使用するための独
 1961: 自のマクロを供給することが可能になります.
 1962: 
 1963: @c At startup, @code{aclocal} scans all the @file{.m4} files it can find,
 1964: @c looking for macro definitions (@pxref{Macro search path}).  Then it
 1965: @c scans @file{configure.in}.  Any
 1966: @c mention of one of the macros found in the first step causes that macro,
 1967: @c and any macros it in turn requires, to be put into @file{aclocal.m4}.
 1968: @c 
 1969: はじめに,@code{aclocal}はマクロ定義を探しながら見つかったすべての
 1970: @file{.m4}ファイルをスキャンします.それから@file{configure.in}をスキャ
 1971: ンします.最初のステップで見つかったマクロの記述によって,マクロとマクロ
 1972: が要求するファイルを@file{aclocal.m4}に書き込みます.
 1973: 
 1974: @c The contents of @file{acinclude.m4}, if it exists, are also
 1975: @c automatically included in @file{aclocal.m4}.  This is useful for
 1976: @c incorporating local macros into @file{configure}.
 1977: @c 
 1978: @file{acinclude.m4}の内容も,存在する場合は自動的に@file{aclocal.m4}に含
 1979: められます.これは@file{configure}にローカルなマクロを取り入れるときに役
 1980: に立ちます.
 1981: 
 1982: @c @code{aclocal} tries to be smart about looking for new @code{AC_DEFUN}s
 1983: @c in the files it scans.  It also
 1984: @c tries to copy the full text of the scanned file into @file{aclocal.m4},
 1985: @c including both @samp{#} and @samp{dnl} comments.  If you want to make a
 1986: @c comment which will be completely ignored by @code{aclocal}, use
 1987: @c @samp{##} as the comment leader.
 1988: @c 
 1989: @code{aclocal}は,スキャンしているファイルの新しい@code{AC_DEFUN}を賢い
 1990: 方法で探します.また,スキャンしているファイルのすべての文章も
 1991: @file{aclocal.m4}に含めようとし,それには@samp{#}と@samp{dnl}のコメント
 1992: も含まれます.@code{aclocal}がコメントを完全に無視するようにしたい場合は,
 1993: コメントの最初に@samp{##}を使用して下さい.
 1994: 
 1995: @menu
 1996: * aclocal options::             Options supported by aclocal
 1997: * Macro search path::           How aclocal finds .m4 files
 1998: @end menu
 1999: 
 2000: @node aclocal options, Macro search path, Invoking aclocal, configure
 2001: @c @section aclocal options
 2002: @section aclocalのオプション
 2003: 
 2004: @cindex aclocal, Options
 2005: @cindex Options, aclocal
 2006: 
 2007: @c @code{aclocal} accepts the following options:
 2008: @c 
 2009: @code{aclocal}は,以下のオプションを受け入れます.
 2010: 
 2011: @table @code
 2012: @item --acdir=@var{dir}
 2013: @opindex --acdir
 2014: @c Look for the macro files in @var{dir} instead of the installation
 2015: @c directory.  This is typically used for debugging.
 2016: @c 
 2017: インストールされたディレクトリの代わりに,@var{dir}でマクロファイルを探
 2018: します.これは,通常デバッグで使用します.
 2019: 
 2020: @item --help
 2021: @opindex --help
 2022: @c Print a summary of the command line options and exit.
 2023: @c 
 2024: コマンドラインオプションの概要を出力し,終了します.
 2025: 
 2026: @item -I @var{dir}
 2027: @opindex -I
 2028: @c Add the directory @var{dir} to the list of directories searched for
 2029: @c @file{.m4} files.
 2030: @c 
 2031: @file{.m4}ファイルを探すディレクトリのリストに,@var{dir}ディレクトリを
 2032: 追加します.
 2033: 
 2034: @item --output=@var{file}
 2035: @opindex --output
 2036: @c Cause the output to be put into @var{file} instead of @file{aclocal.m4}.
 2037: @c 
 2038: @file{aclocal.m4}の代わりに,@var{file}に出力を書き込みます.
 2039: 
 2040: @item --print-ac-dir
 2041: @opindex --print-ac-dir
 2042: @c Prints the name of the directory which @code{aclocal} will search to
 2043: @c find third-party @file{.m4} files.  When this option is given, normal
 2044: @c processing is suppressed.  This option can be used by a package to
 2045: @c determine where to install a macro file.
 2046: @c 
 2047: サードパーティーの@file{.m4}ファイルを見つけるために@code{aclocal}が検索
 2048: するディレクトリの名前を出力します.このオプションが与えられているとき,
 2049: 標準的な処理は行われません.このオプションは,パッケージがマクロファイル
 2050: をインストールする場所を決定するために使用することが可能です.
 2051: 
 2052: @item --verbose
 2053: @opindex --verbose
 2054: @c Print the names of the files it examines.
 2055: @c 
 2056: 調査しているファイルの名前を出力します.
 2057: 
 2058: @item --version
 2059: @opindex --version
 2060: @c Print the version number of Automake and exit.
 2061: @c 
 2062: Automakeのバージョンナンバーを出力し,終了します.
 2063: @end table
 2064: 
 2065: @node Macro search path, Macros, aclocal options, configure
 2066: @c @section Macro search path
 2067: @section マクロ検索パス
 2068: 
 2069: @cindex Macro search path
 2070: @cindex aclocal search path
 2071: 
 2072: @c By default, @command{aclocal} searches for @file{.m4} files in the following
 2073: @c directories, in this order:
 2074: @c 
 2075: デフォルトで,@command{aclocal}は@file{.m4}ファイルを以下のディレクトリ
 2076: で,この順番に探します.
 2077: 
 2078: @table @code
 2079: @item @var{acdir-APIVERSION}
 2080: @c This is where the @file{.m4} macros distributed with automake itself
 2081: @c are stored.  @var{APIVERSION} depends on the automake release used;
 2082: @c for automake 1.6.x, @var{APIVERSION} = @code{1.6}.
 2083: @c 
 2084: これは,automake自身が配布している@file{.m4}マクロを保持している場所です.
 2085: @var{APIVERSION}は,使用しているautomakeのリリースに依存します.automake
 2086: 1.6.xに対して,@var{APIVERSION} = @code{1.6}になります.
 2087: 
 2088: @item @var{acdir}
 2089: @c This directory is intended for third party @file{.m4} files, and is
 2090: @c configured when @command{automake} itself is built.  This is
 2091: @c @file{@@datadir@@/aclocal/}, which typically
 2092: @c expands to @file{$@{prefix@}/share/aclocal/}.  To find the compiled-in
 2093: @c value of @var{acdir}, use the @code{--print-ac-dir} option
 2094: @c (@pxref{aclocal options}).
 2095: @c 
 2096: このディレクトリは,サードパーティーの@file{.m4}ファイルが目的で,
 2097: @command{automake}自身がビルドされるときにコンフィグレーションされます.
 2098: これは@file{@@datadir@@/aclocal/}で,通常
 2099: @file{$@{prefix@}/share/aclocal/}に展開されます.組み込みの@var{acdir}を
 2100: 知るために,@code{--print-ac-dir}オプションを使用してください.
 2101: @end table
 2102: 
 2103: @c As an example, suppose that automake-1.6.2 was configured with
 2104: @c @code{--prefix=/usr/local}.  Then, the search path would be:
 2105: @c 
 2106: 例として,automake-1.6.2が@code{--prefix=/usr/local}を用いてコンフィグレー
 2107: ションされたと仮定します.そのとき検索パスは以下のようになります.
 2108: 
 2109: @c @enumerate
 2110: @c @item @file{/usr/local/share/aclocal-1.6/}
 2111: @c @item @file{/usr/local/share/aclocal/}
 2112: @c @end enumerate
 2113: 
 2114: @example
 2115: /usr/local/share/aclocal-1.6/
 2116: /usr/local/share/aclocal/
 2117: @end example
 2118: 
 2119: 
 2120: @c As explained in (@pxref{aclocal options}), there are several options that
 2121: @c can be used to change or extend this search path.
 2122: @c 
 2123: (@pxref{aclocal options})で説明したように,この検索パスの変更や拡張で使
 2124: 用可能なオプションもあります.
 2125: 
 2126: @c @subsection Modifying the macro search path: @code{--acdir}
 2127: @subsection マクロ検索パスを変更する: @code{--acdir}
 2128: 
 2129: @c The most obvious option to modify the search path is
 2130: @c @code{--acdir=@var{dir}}, which changes default directory and
 2131: @c drops the @var{APIVERSION} directory.  For example, if one specifies
 2132: @c @code{--acdir=/opt/private/}, then the search path becomes:
 2133: @c 
 2134: 検索パスを変更する最も明確なオプションは@code{--acdir=@var{dir}}で,デフォ
 2135: ルトのディレクトリを変更し,@var{APIVERSION}ディレクトリを取り消します.
 2136: 例えば,@code{--acdir=/opt/private/}を指定した場合,検索パスは以下のよう
 2137: になります.
 2138: 
 2139: @c @enumerate
 2140: @c @item @file{/opt/private/}
 2141: @c @end enumerate
 2142: 
 2143: @example
 2144: /opt/private/
 2145: @end example
 2146: 
 2147: @c Note that this option, @code{--acdir}, is intended for use
 2148: @c by the internal automake test suite only; it is not ordinarily
 2149: @c needed by end-users.
 2150: @c 
 2151: このオプション@code{--acdir}の目的は,automakeのテストスイートの内部で使
 2152: 用することだけです.それはエンドユーザは通常不要です.
 2153: 
 2154: 
 2155: @c @subsection Modifying the macro search path: @code{-I @var{dir}}
 2156: @subsection マクロ検索パスを変更する: @code{-I @var{dir}}
 2157: 
 2158: @c Any extra directories specified using @code{-I} options
 2159: @c (@pxref{aclocal options}) are @emph{prepended} to this search list.  Thus,
 2160: @c @code{aclocal -I /foo -I /bar} results in the following search path:
 2161: @c 
 2162: @code{-I}オプション(@pxref{aclocal options})を使用して,あらゆる追加ディ
 2163: レクトリを指定することで,これらの検索リストに@emph{前置します}.このた
 2164: め,@code{aclocal -I /foo -I /bar}は結果として以下のような検索パスになり
 2165: ます.
 2166: 
 2167: @c @enumerate
 2168: @c @item @file{/foo}
 2169: @c @item @file{/bar}
 2170: @c @item @var{acdir}-@var{APIVERSION}
 2171: @c @item @var{acdir}
 2172: @c @end enumerate
 2173: 
 2174: @example
 2175: /foo
 2176: /bar
 2177: acdir-APIVERSION
 2178: acdir
 2179: @end example
 2180: 
 2181: @subsection Modifying the macro search path: @file{dirlist}
 2182: @subsection マクロ検索パスを変更する: @file{dirlist}
 2183: @cindex @file{dirlist}
 2184: 
 2185: @c There is a third mechanism for customizing the search path.  If a
 2186: @c @file{dirlist} file exists in @var{acdir}, then that file is assumed to
 2187: @c contain a list of directories, one per line, to be added to the search
 2188: @c list.  These directories are searched @emph{after} all other
 2189: @c directories.
 2190: @c 
 2191: 検索パスをカスタマイズするため,三番目のメカニズムがあります.
 2192: @file{dirlist}ファイルが@var{acdir}に存在する場合,そのファイルが,一行
 2193: ごとに検索リストに追加するディレクトリリストを含んでいると仮定されます.
 2194: これらのディレクトリは,すべての他のディレクトリの@emph{後に}検索されま
 2195: す.
 2196: 
 2197: @c For example, suppose
 2198: @c @file{@var{acdir}/dirlist} contains the following:
 2199: @c 
 2200: 例えば,@file{@var{acdir}/dirlist}が以下の内容を含んでいると仮定します.
 2201: 
 2202: @example
 2203: /test1
 2204: /test2
 2205: @end example
 2206: 
 2207: @noindent
 2208: @c and that @code{aclocal} was called with the @code{-I /foo -I /bar} options.
 2209: @c Then, the search path would be
 2210: @c 
 2211: そして,@code{aclocal}を@code{-I /foo -I /bar}オプションで呼び出したと仮
 2212: 定します.そのとき検索パスは以下のようになります.
 2213: 
 2214: @c @enumerate
 2215: @c @item @file{/foo}
 2216: @c @item @file{/bar}
 2217: @c @item @var{acdir}-@var{APIVERSION}
 2218: @c @item @var{acdir}
 2219: @c @item @file{/test1}
 2220: @c @item @file{/test2}
 2221: @c @end enumerate
 2222: 
 2223: @example
 2224: /foo
 2225: /bar
 2226: acdir-APIVERSION
 2227: acdir
 2228: /test1
 2229: /test2
 2230: @end example
 2231: 
 2232: @c If the @code{--acdir=@var{dir}} option is used, then @command{aclocal}
 2233: @c will search for the @file{dirlist} file in @var{dir}.  In the
 2234: @c @code{--acdir=/opt/private/} example above, @command{aclocal} would look
 2235: @c for @file{/opt/private/dirlist}.  Again, however, the @code{--acdir}
 2236: @c option is intended for use by the internal automake test suite only;
 2237: @c @code{--acdir} is not ordinarily needed by end-users.
 2238: @c 
 2239: @code{--acdir=@var{dir}}オプションが使用されている場合,
 2240: @command{aclocal}は@file{dirlist}ファイルを@var{dir}で検索します.上記の
 2241: @code{--acdir=/opt/private/}の例では,@command{aclocal}は
 2242: @file{/opt/private/dirlist}を探します.しかし,繰り返しますが,
 2243: @code{--acdir}オプションの目的は,automakeのテストスイートの内部で使用さ
 2244: れることだけです.通常,@code{--acdir}はエンドユーザには不要です.
 2245: 
 2246: @c @file{dirlist} is useful in the following situation: suppose that
 2247: @c @code{automake} version @code{1.6.2} is installed with
 2248: @c $prefix=/usr by the system vendor. Thus, the default search
 2249: @c directories are
 2250: @c 
 2251: 以下のような状況で,@file{dirlist}は役に立ちます.@code{automake}のバー
 2252: ジョン@code{1.6.2}が,@samp{$prefix=/usr}でシステムベンダーによってイン
 2253: ストールされていると仮定します.このためデフォルトの検索ディレクトリは以
 2254: 下のようになります.
 2255: 
 2256: @c @enumerate
 2257: @c @item @file{/usr/share/aclocal-1.6/}
 2258: @c @item @file{/usr/share/aclocal/}
 2259: @c @end enumerate
 2260: 
 2261: @example
 2262: /usr/share/aclocal-1.6/
 2263: /usr/share/aclocal/
 2264: @end example
 2265: 
 2266: @c However, suppose further that many packages have been manually
 2267: @c installed on the system, with $prefix=/usr/local, as is typical.
 2268: @c In that case, many of these ``extra'' @file{.m4} files are in
 2269: @c @file{/usr/local/share/aclocal}.  The only way to force
 2270: @c @file{/usr/bin/aclocal} to find these ``extra'' @file{.m4} files
 2271: @c is to always call @code{aclocal -I /usr/local/share/aclocal}.
 2272: @c This is inconvenient.  With @file{dirlist}, one may create the file
 2273: @c 
 2274: しかし,システムには多くのパッケージが,いつも通りに
 2275: @samp{$prefix=/usr/local}に手動でインストールされていると仮定します.こ
 2276: の状況では,これらの``追加の''@file{.m4}ファイルは
 2277: @file{/usr/local/share/aclocal}にあります.これらの``追加の''@file{.m4} 
 2278: ファイルを見つけるため,@file{/usr/bin/aclocal}を強制させる方法は,常に
 2279: @code{aclocal -I /usr/local/share/aclocal}を呼び出すことです.これは不便
 2280: です.@file{dirlist}を用いると,以下のファイルを作成することができます.
 2281: 
 2282: @file{/usr/share/aclocal/dirlist}
 2283: 
 2284: @noindent
 2285: @c which contains only the single line
 2286: @c 
 2287: その内容は以下のようになっています.
 2288: 
 2289: @file{/usr/local/share/aclocal}
 2290: 
 2291: @c Now, the ``default'' search path on the affected system is
 2292: @c 
 2293: さて,システムに影響する``デフォルト''の検索パスは以下のようになります.
 2294: 
 2295: @c @enumerate
 2296: @c @item @file{/usr/share/aclocal-1.6/}
 2297: @c @item @file{/usr/share/aclocal/}
 2298: @c @item @file{/usr/local/share/aclocal/}
 2299: @c @end enumerate
 2300: 
 2301: @example
 2302: /usr/share/aclocal-1.6/
 2303: /usr/share/aclocal/
 2304: /usr/local/share/aclocal/
 2305: @end example
 2306: 
 2307: 
 2308: @c without the need for @code{-I} options; @code{-I} options can be reserved
 2309: @c for project-specific needs (@file{my-source-dir/m4/}), rather than
 2310: @c using it to work around local system-dependent tool installation
 2311: @c directories.
 2312: @c 
 2313: @code{-I}オプションは不要です.@code{-I}は,ローカルなシステム依存のツー
 2314: ルのインストールディレクトリを回避するのではなく,プロジェクト独自のもの
 2315: が必要な(@file{my-source-dir/m4/})として予約可能です.
 2316: 
 2317: @c Similarly, @file{dirlist} can be handy if you have installed a local
 2318: @c copy Automake on your account and want @command{aclocal} to look for
 2319: @c macros installed at other places on the system.
 2320: @c 
 2321: 同様に,Automakeのローカルコピーをアカウント内にインストールし,
 2322: @command{aclocal}でシステムの他の場所にインストールされているマクロを探
 2323: したい場合,@file{dirlist}は手頃なはずです.
 2324: 
 2325: 
 2326: @node Macros, Extending aclocal, Macro search path, configure
 2327: @c @section Autoconf macros supplied with Automake
 2328: @section Automakeが提供するAutoconfマクロ
 2329: 
 2330: @c Automake ships with several Autoconf macros that you can use from your
 2331: @c @file{configure.in}.  When you use one of them it will be included by
 2332: @c @code{aclocal} in @file{aclocal.m4}.
 2333: @c 
 2334: Automakeは,@file{configure.in}で使用可能ないくつかのAutoconfマクロとと
 2335: もに出荷されています.そのうちの一つを使用するとき,@code{aclocal}で
 2336: @file{aclocal.m4}に含められるでしょう.
 2337: 
 2338: @menu
 2339: * Public macros::               Macros that you can use.
 2340: * Private macros::              Macros that you should not use.
 2341: @end menu
 2342: 
 2343: @c consider generating the following subsections automatically from m4 files.
 2344: 
 2345: @node Public macros, Private macros, Macros, Macros
 2346: @c @subsection Public macros
 2347: @subsection パブリックマクロ
 2348: 
 2349: @table @code
 2350: @item AM_CONFIG_HEADER
 2351: @c Automake will generate rules to automatically regenerate the config
 2352: @c header.  This obsolete macro is a synonym of @code{AC_CONFIG_HEADERS}
 2353: @c today (@pxref{Optional}).
 2354: @c 
 2355: Automakeは,コンフィグヘッダを自動的に再生成する規則を生成します.この時
 2356: 代遅れのマクロは,現在は@code{AC_CONFIG_HEADERS}と同じです
 2357: (@pxref{Optional}).
 2358: @cvindex AM_CONFIG_HEADER
 2359: 
 2360: @item AM_ENABLE_MULTILIB
 2361: @c This is used when a ``multilib'' library is being built.  The first
 2362: @c optional argument is the name of the @file{Makefile} being generated; it
 2363: @c defaults to @samp{Makefile}.  The second option argument is used to find
 2364: @c the top source directory; it defaults to the empty string (generally
 2365: @c this should not be used unless you are familiar with the internals).
 2366: @c @xref{Multilibs}.
 2367: @c 
 2368: これは,``multilib''ライブラリをビルドするときに使用します.最初のオプショ
 2369: ン引数は,生成される@file{Makefile}の名前です.デフォルトは
 2370: @samp{Makefile}です.二番目のオプション引数は,ソースディレクトリのトッ
 2371: プを見つけるために使用します.デフォルトは空の文字列です(内部を理解して
 2372: いない場合,通常はこれを使用しないほうが良いでしょう.)
 2373: @xref{Multilibs}.
 2374: 
 2375: @item AM_C_PROTOTYPES
 2376: @c Check to see if function prototypes are understood by the compiler.  If
 2377: @c so, define @samp{PROTOTYPES} and set the output variables @samp{U} and
 2378: @c @samp{ANSI2KNR} to the empty string.  Otherwise, set @samp{U} to
 2379: @c @samp{_} and @samp{ANSI2KNR} to @samp{./ansi2knr}.  Automake uses these
 2380: @c values to implement automatic de-ANSI-fication.
 2381: @c 
 2382: 関数プロトタイプをコンパイラが理解するかどうかを調査します.その場合,
 2383: @samp{PROTOTYPES}を定義して,出力変数@samp{U}と@samp{ANSI2KNR}を空の文字
 2384: 列に設定します.それ以外の場合,@samp{U}を@samp{_}に,@samp{ANSI2KNR}を
 2385: @samp{./ansi2knr}にします.Automakeはこれらの値を自動的な
 2386: de-ANSI-ficationを実装するために使用します.
 2387: @cvindex AM_C_PROTOTYPES
 2388: 
 2389: @item AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
 2390: @c If the use of @code{TIOCGWINSZ} requires @file{<sys/ioctl.h>}, then
 2391: @c define @code{GWINSZ_IN_SYS_IOCTL}.  Otherwise @code{TIOCGWINSZ} can be
 2392: @c found in @file{<termios.h>}.
 2393: @c 
 2394: @code{TIOCGWINSZ}を使用するときに@file{<sys/ioctl.h>}が必要な場合,
 2395: @code{GWINSZ_IN_SYS_IOCTL}を定義します.それ以外の場合,
 2396: @code{TIOCGWINSZ}は@file{<termios.h>}で見つかるはずです.
 2397: @cvindex AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
 2398: 
 2399: @item AM_INIT_AUTOMAKE([OPTIONS])
 2400: @itemx AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
 2401: @c Runs many macros required for proper operation of the generated Makefiles.
 2402: @c 
 2403: 生成されたMakefileが適切な処理を行なうために必要な多くのマクロを実行しま
 2404: す.
 2405: 
 2406: @c This macro has two forms, the second of which has two required
 2407: @c arguments: the package and the version number.  This latter form is
 2408: @c obsolete because the @var{package} and @var{version} can be obtained
 2409: @c from Autoconf's @code{AC_INIT} macro (which itself has an old and a new
 2410: @c form).
 2411: @c 
 2412: このマクロには二つの形式があり,二番目のものは二つの引数が必要です.パッ
 2413: ケージとバージョンナンバーです.この後者の形式は,@var{package}と
 2414: @var{version}がAutoconfの@code{AC_INIT}マクロ(それ自身も古い形式と新しい
 2415: 形式があります)から得ることが可能なので時代遅れです.
 2416: 
 2417: @c If your @file{configure.in} has:
 2418: @c 
 2419: @file{configure.in}が以下の場合を考えます.
 2420: @example
 2421: AC_INIT(src/foo.c)
 2422: AM_INIT_AUTOMAKE(mumble, 1.5)
 2423: @end example
 2424: @c you can modernize it as follow:
 2425: @c 
 2426: 以下のようにして新しいものにすることが可能です.
 2427: @example
 2428: AC_INIT(mumble, 1.5)
 2429: AC_CONFIG_SRCDIR(src/foo.c)
 2430: AM_INIT_AUTOMAKE
 2431: @end example
 2432: 
 2433: @c Note that if you're upgrading your @file{configure.in} from an earlier
 2434: @c version of Automake, it is not always correct to simply move the package
 2435: @c and version arguments from @code{AM_INIT_AUTOMAKE} directly to
 2436: @c @code{AC_INIT}, as in the example above.  The first argument of
 2437: @c @code{AC_INIT} is the name of your package (e.g. @samp{GNU Automake}),
 2438: @c not the tarball name (e.g. @samp{automake}) you used to pass to
 2439: @c @code{AM_INIT_AUTOMAKE}.  Autoconf's rule to derive a tarball name from
 2440: @c the package name should work for most but not all packages.  Especially,
 2441: @c if your tarball name is not all lower case, you will have to use the
 2442: @c four-argument form of @code{AC_INIT} (supported in Autoconf versions
 2443: @c greater than 2.52g).
 2444: @c 
 2445: @file{configure.in}を以前のバージョンのAutomakeから更新している場合,上
 2446: 記の例のように,単純にパッケージバージョンの引数を,直接
 2447: @code{AM_INIT_AUTOMAKE}から@code{AC_INIT}へ移動することが常に正しいとは
 2448: 限りません.@code{AC_INIT}の最初の引数はパッケージの名前(例えば@samp{GNU
 2449: Automake})ですが,@code{AM_INIT_AUTOMAKE}に渡すために使用しているtarball 
 2450: の名前(例えば@samp{automake})ではありません.パッケージ名からtarball名を
 2451: 導き出すAutoconfの規則は,ほとんどのパッケージで動作しますが全てで動作す
 2452: るわけではないでしょう.特に,tarballの名前が全て小文字の場合,
 2453: @code{AC_INIT}の四つの引数を用いる形式を使用する必要があるでしょう
 2454: (Autoconfのバージョン2.52g以上からサポートされています).
 2455: 
 2456: @c When @code{AM_INIT_AUTOMAKE} is called with a single argument, it is
 2457: @c interpreted as a space-separated list of Automake options which should
 2458: @c be applied to every @file{Makefile.am} in the tree.  The effect is as if
 2459: @c each option were listed in @code{AUTOMAKE_OPTIONS}.
 2460: @c 
 2461: @code{AM_INIT_AUTOMAKE}が単一の引数で呼び出されたとき,それはスペースで
 2462: 分けられた,ツリーの全ての@file{Makefile.am}に適用されるAutomakeのオプショ
 2463: ンのリストとして解釈されます.その影響は,それぞれのオプションを
 2464: @code{AUTOMAKE_OPTIONS}でリストアップしているかのようになります.
 2465: 
 2466: @c By default this macro @code{AC_DEFINE}'s @samp{PACKAGE} and
 2467: @c @samp{VERSION}.  This can be avoided by passing the @samp{no-define}
 2468: @c option, as in:
 2469: @c 
 2470: デフォルトでこのマクロは@samp{PACKAGE}と@samp{VERSION}を@code{AC_DEFINE} 
 2471: します.以下のように@samp{no-define}オプションを渡すことでこれを避けるこ
 2472: とが可能です.
 2473: @example
 2474: AM_INIT_AUTOMAKE([gnits 1.5 no-define dist-bzip2])
 2475: @end example
 2476: @c or by passing a third non-empty argument to the obsolete form.
 2477: @c 
 2478: または時代遅れの形式に空の三番目に引数を渡すことで避けることが可能です.
 2479: 
 2480: @cvindex PACKAGE, prevent definition
 2481: @cvindex VERSION, prevent definition
 2482: 
 2483: 
 2484: @item AM_PATH_LISPDIR
 2485: @c Searches for the program @code{emacs}, and, if found, sets the output
 2486: @c variable @code{lispdir} to the full path to Emacs' site-lisp directory.
 2487: @c 
 2488: @code{emacs}プログラムを検索し,見つかった場合は,Emacsのsite-lispディレ
 2489: クトリへのフルパスを出力変数@code{lispdir}に設定します.
 2490: 
 2491: @c Note that this test assumes the @code{emacs} found to be a version that
 2492: @c supports Emacs Lisp (such as @sc{gnu} Emacs or XEmacs).  Other emacsen
 2493: @c can cause this test to hang (some, like old versions of MicroEmacs,
 2494: @c start up in interactive mode, requiring @samp{C-x C-c} to exit, which
 2495: @c is hardly obvious for a non-emacs user).  In most cases, however, you
 2496: @c should be able to use @samp{C-c} to kill the test.  In order to avoid
 2497: @c problems, you can set @code{EMACS} to ``no'' in the environment, or
 2498: @c use the @samp{--with-lispdir} option to @command{configure} to
 2499: @c explictly set the correct path (if you're sure you have an @code{emacs}
 2500: @c that supports Emacs Lisp.
 2501: @c 
 2502: このテストは(@sc{gnu} EmacsやXEmacsのような)Emacs Lispをサポートしている
 2503: バージョンの@code{emacs}が見つかることを想定しています.それ以外の
 2504: emacsenでは,このテストはハングアップします(古いバージョンのMicroEmacsの
 2505: ように,対話モードでセットアップされているものは,終了するために
 2506: @samp{C-x C-c}が必要で,emacsユーザでなければなかなか気付かないでしょう).
 2507: しかし,ほとんどの状況で,テストを終了するために@samp{C-c}を使用すること
 2508: が可能でしょう.問題を避けるため,環境変数で@code{EMACS}を``no''に設定し
 2509: たり,(Emacs Lispをサポートしている@code{emacs}が確実にある場合は)正しい
 2510: パスを明示的に設定するために@command{configure}で@samp{--with-lispdir}を
 2511: 使用することが可能です.
 2512: @cvindex AM_PATH_LISPDIR
 2513: 
 2514: @item AM_PROG_AS
 2515: @c Use this macro when you have assembly code in your project.  This will
 2516: @c choose the assembler for you (by default the C compiler) and set
 2517: @c @code{CCAS}, and will also set @code{CCASFLAGS} if required.
 2518: @c 
 2519: プロジェクトにアセンブラコードがあるときは,このマクロを使用して下さい.
 2520: これはアセンブラを選択し(デフォルトはCコンパイラ),@code{CCAS}を設定し,
 2521: そして,必要な場合は@code{CCASFLAGS}も設定します.
 2522: 
 2523: @item AM_PROG_CC_C_O
 2524: @c This is like @code{AC_PROG_CC_C_O}, but it generates its results in the
 2525: @c manner required by automake.  You must use this instead of
 2526: @c @code{AC_PROG_CC_C_O} when you need this functionality.
 2527: @c 
 2528: これは@code{AC_PROG_CC_C_O}に似ていますが,それはautomakeが要求する形式
 2529: の結果を生成します.この機能が必要なときは,@code{AC_PROG_CC_C_O}の代わ
 2530: りにこれを使用して下さい.
 2531: 
 2532: @item AM_PROG_CC_STDC
 2533: @c If the C compiler is not in ANSI C mode by default, try to add an option
 2534: @c to output variable @code{CC} to make it so.  This macro tries various
 2535: @c options that select ANSI C on some system or another.  It considers the
 2536: @c compiler to be in ANSI C mode if it handles function prototypes correctly.
 2537: @c 
 2538: CコンパイラがデフォルトでANSI Cモードでない場合,それをANSI Cモードにす
 2539: るため,出力変数@code{CC}にオプションの追加を試みます.このマクロはシス
 2540: テムごとのANSI Cを選択する様々なオプションを試みます.関数プロトタイプを
 2541: 正しく処理する場合,コンパイラがANSI Cモードであると考えます.
 2542: 
 2543: @c If you use this macro, you should check after calling it whether the C
 2544: @c compiler has been set to accept ANSI C; if not, the shell variable
 2545: @c @code{am_cv_prog_cc_stdc} is set to @samp{no}.  If you wrote your source
 2546: @c code in ANSI C, you can make an un-ANSIfied copy of it by using the
 2547: @c @code{ansi2knr} option (@pxref{ANSI}).
 2548: @c 
 2549: このマクロを使用する場合,それを呼び出した後で,CコンパイラをANSI Cに適
 2550: 用させる設定があるかどうかを調査する必要があります.そうでない場合,シェ
 2551: ル変数の@code{am_cv_prog_cc_stdc}は@samp{no}に設定されます.ANSI Cでソー
 2552: スコードを書いた場合は,@code{ansi2knr}オプションを使用して,非ANSIfied 
 2553: のコピーを作成することが可能です(@pxref{ANSI}).
 2554: 
 2555: @item AM_PROG_LEX
 2556: @cindex HP-UX 10, lex problems
 2557: @cindex lex problems with HP-UX 10
 2558: @c Like @code{AC_PROG_LEX} (@pxref{Particular Programs, , Particular
 2559: @c Program Checks, autoconf, The Autoconf Manual}), but uses the
 2560: @c @code{missing} script on systems that do not have @code{lex}.
 2561: @c @samp{HP-UX 10} is one such system.
 2562: @c 
 2563: @code{AC_PROG_LEX}に似ていますが(@pxref{Particular Programs, ,
 2564: Particular Program Checks, autoconf, The Autoconf Manual}),@code{lex}が
 2565: 無いシステムで@code{missing}スクリプトを使用します.@samp{HP-UX 10}はそ
 2566: のようなシステムの一つです.
 2567: 
 2568: @item AM_PROG_GCJ
 2569: @c This macro finds the @code{gcj} program or causes an error.  It sets
 2570: @c @samp{GCJ} and @samp{GCJFLAGS}.  @code{gcj} is the Java front-end to the
 2571: @c GNU Compiler Collection.
 2572: @c 
 2573: このマクロは,@code{gcj}プログラムを見つけるか,そうでなければエラーを発
 2574: 生します.それは@samp{GCJ}と@samp{GCJFLAGS}を設定します.@code{gcj}は,
 2575: GNU Compiler CollectionのJavaフロントエンドです.
 2576: @cvindex AM_PROG_GCJ
 2577: 
 2578: @item AM_SYS_POSIX_TERMIOS
 2579: @cvindex am_cv_sys_posix_termios
 2580: @cindex POSIX termios headers
 2581: @cindex termios POSIX headers
 2582: @c Check to see if POSIX termios headers and functions are available on the
 2583: @c system.  If so, set the shell variable @code{am_cv_sys_posix_termios} to
 2584: @c @samp{yes}.  If not, set the variable to @samp{no}.
 2585: @c 
 2586: POSIX termiosヘッダと関数がシステムで利用可能かどうか調査します.その場
 2587: 合,シェル変数@code{am_cv_sys_posix_termios}を@samp{yes}に設定します.そ
 2588: うでない場合,その変数を@samp{no}に設定します.
 2589: 
 2590: @item AM_WITH_DMALLOC
 2591: @cvindex WITH_DMALLOC
 2592: @cindex dmalloc, support for
 2593: @opindex --with-dmalloc
 2594: @c Add support for the
 2595: @c @uref{ftp://ftp.letters.com/src/dmalloc/dmalloc.tar.gz, dmalloc}
 2596: @c package.  If the user configures with @samp{--with-dmalloc}, then define
 2597: @c @code{WITH_DMALLOC} and add @samp{-ldmalloc} to @code{LIBS}.
 2598: @c 
 2599: @uref{ftp://ftp.letters.com/src/dmalloc/dmalloc.tar.gz, dmalloc}パッケー
 2600: ジに対するサポートを追加します.ユーザが@samp{--with-demalloc}を用いてコ
 2601: ンフィグレーションする場合,@code{WITH_DMALLOC}を定義し,@code{LIBS}に
 2602: @samp{-ldmalloc}を加えます.
 2603: 
 2604: @item AM_WITH_REGEX
 2605: @cvindex WITH_REGEX
 2606: @opindex --with-regex
 2607: @cindex regex package
 2608: @cindex rx package
 2609: @c Adds @samp{--with-regex} to the @code{configure} command line.  If
 2610: @c specified (the default), then the @samp{regex} regular expression
 2611: @c library is used, @file{regex.o} is put into @samp{LIBOBJS}, and
 2612: @c @samp{WITH_REGEX} is defined.  If @samp{--without-regex} is given, then
 2613: @c the @samp{rx} regular expression library is used, and @file{rx.o} is put
 2614: @c into @samp{LIBOBJS}.
 2615: @c 
 2616: @code{configure}コマンドラインに@samp{--with-regex}を追加します.指定さ
 2617: れた(デフォルトの)場合,@samp{regex}の正規表現ライブラリが使用され,
 2618: @file{regex.o}が@samp{LIBOBJS}に書き込まれ,そして,@samp{WITH_REGEX}が
 2619: 定義されます.@samp{--without-regex}が与えられる場合,@samp{rx}正規表現
 2620: ライブラリが使用され,@file{rx.o}が@samp{LIBOBJS}に書き込まれます.
 2621: 
 2622: @end table
 2623: 
 2624: @node Private macros,  , Public macros, Macros
 2625: @c @subsection Private macros
 2626: @subsection プライベートマクロ
 2627: 
 2628: @c The following macros are private macros you should not call directly.
 2629: @c They are called by the other public macros when appropriate.  Do not
 2630: @c rely on them, as they might be changed in a future version.  Consider
 2631: @c them as implementation details; or better, do not consider them at all:
 2632: @c skip this section!
 2633: @c 
 2634: 以下のマクロは,直接呼び出すべきではないプライベートマクロです.それらは
 2635: 適切なときに他のパブリックマクロから呼び出されます.将来のバージョンで変
 2636: 更される可能性があるので,それらを呼び出さないでください.それらは実装の
 2637: 詳細を考察するものと考えてください.または,何も考え内容が良いかもしれま
 2638: せん.このセクションは読み飛ばしてください!
 2639: 
 2640: @table @code
 2641: @item _AM_DEPENDENCIES
 2642: @itemx AM_SET_DEPDIR
 2643: @itemx AM_DEP_TRACK
 2644: @itemx AM_OUTPUT_DEPENDENCY_COMMANDS
 2645: @c These macros are used to implement automake's automatic dependency
 2646: @c tracking scheme.  They are called automatically by automake when
 2647: @c required, and there should be no need to invoke them manually.
 2648: @c 
 2649: これらのマクロはautomakeの自動的な依存性の追跡手法を実装するために使用さ
 2650: れます.それらは,要求されたときautomakeから自動的に呼び出され,手動で呼
 2651: び出す必然性はありません.
 2652: 
 2653: @item AM_MAKE_INCLUDE
 2654: @c This macro is used to discover how the user's @code{make} handles
 2655: @c @code{include} statements.  This macro is automatically invoked when
 2656: @c needed; there should be no need to invoke it manually.
 2657: @c 
 2658: このマクロは,ユーザの@code{make}が@code{include}文を処理する方法を知る
 2659: ために使用されます.それらは,必要なとき自動的に呼び出されます.手動で呼
 2660: び出す必然性はありません.
 2661: 
 2662: @item AM_PROG_INSTALL_STRIP
 2663: @c This is used to find a version of @code{install} which can be used to
 2664: @c @code{strip} a program at installation time.  This macro is
 2665: @c automatically included when required.
 2666: @c 
 2667: これは,インストール時にプログラムを@code{strip}するために使用可能な
 2668: @code{install}のバージョンを知るために使用されます.このマクロは要求され
 2669: るとき自動的に含められます.
 2670: 
 2671: @item AM_SANITY_CHECK
 2672: @c This checks to make sure that a file created in the build directory is
 2673: @c newer than a file in the source directory.  This can fail on systems
 2674: @c where the clock is set incorrectly.  This macro is automatically run
 2675: @c from @code{AM_INIT_AUTOMAKE}.
 2676: @c 
 2677: これは,ビルドディレクトリに作成されるファイルがソースディレクトリのファ
 2678: イルより確実に新しいことを調査します.時計の設定が正しくないシステムで失
 2679: 敗するはずです.このマクロは@code{AM_INIT_AUTOMAKE}から自動的に実行され
 2680: ます.
 2681: 
 2682: @end table
 2683: 
 2684: 
 2685: 
 2686: @node Extending aclocal,  , Macros, configure
 2687: @c @section Writing your own aclocal macros
 2688: @section 独自のaclocalマクロを書く
 2689: 
 2690: @cindex aclocal, extending
 2691: @cindex Extending aclocal
 2692: 
 2693: @c The @code{aclocal} program doesn't have any built-in knowledge of any
 2694: @c macros, so it is easy to extend it with your own macros.
 2695: @c 
 2696: @code{aclocal}プログラムには,マクロ組み込みの知識が全く無いので,独自の
 2697: マクロでそれを拡張することは容易です.
 2698: 
 2699: @c This is mostly used for libraries which want to supply their own
 2700: @c Autoconf macros for use by other programs.  For instance the
 2701: @c @code{gettext} library supplies a macro @code{AM_GNU_GETTEXT} which
 2702: @c should be used by any package using @code{gettext}.  When the library is
 2703: @c installed, it installs this macro so that @code{aclocal} will find it.
 2704: @c 
 2705: これは,他のプログラムで使用する独自のAutoconfマクロを供給したいライブラ
 2706: リに対して主に使用されます.例えば@code{gettext}ライブラリは,
 2707: @code{gettext}を使用しているあらゆるパッケージで使用されるように,
 2708: @code{AM_GNU_GETTEXT}マクロを供給しています.ライブラリがインストールさ
 2709: れるとき,@code{aclocal}で見つかるように,このマクロをインストールします.
 2710: 
 2711: @c A file of macros should be a series of @code{AC_DEFUN}'s.  The
 2712: @c @code{aclocal} programs also understands @code{AC_REQUIRE}, so it is
 2713: @c safe to put each macro in a separate file.  @xref{Prerequisite Macros, ,
 2714: @c , autoconf, The Autoconf Manual}, and @ref{Macro Definitions, , ,
 2715: @c autoconf, The Autoconf Manual}.
 2716: @c 
 2717: マクロのファイルは一連の@code{AC_DEFUN}で行います.@code{aclocal}プログ
 2718: ラムは@code{AC_REQUIRE}も理解するので,別々のファイルにそれぞれのマクロ
 2719: を書き込むと安全です.@xref{Prerequisite Macros, , , autoconf, The
 2720: Autoconf Manual}.そして,@ref{Macro Definitions, , , autoconf, The
 2721: Autoconf Manual}を参照してください.
 2722: 
 2723: @c A macro file's name should end in @file{.m4}.  Such files should be
 2724: @c installed in @code{`aclocal --print-ac-dir`} (which usually happens to
 2725: @c be @file{$(datadir)/aclocal}).
 2726: @c 
 2727: マクロファイルの名前は@file{.m4}で終わらせすべきです.そのようなファイル
 2728: は@code{`aclocal --print-ac-dir`} (偶然ですが,通常は
 2729: @file{$(datadir)/aclocal}になります)にインストールされます.
 2730: 
 2731: 
 2732: @node Top level, Alternative, configure, Top
 2733: @c @chapter The top-level @file{Makefile.am}
 2734: @chapter トップレベルの@file{Makefile.am}
 2735: 
 2736: @c @section Recursing subdirectories
 2737: @section サブディレクトリの再帰
 2738: 
 2739: @cindex SUBDIRS, explained
 2740: 
 2741: @c In packages with subdirectories, the top level @file{Makefile.am} must
 2742: @c tell Automake which subdirectories are to be built.  This is done via
 2743: @c the @code{SUBDIRS} variable.
 2744: @c 
 2745: サブディレクトリがあるパッケージでは,トップレベルの@file{Makefile.am}で
 2746: ビルドするサブディレクトリをAutomakeに伝える必要があります.これは
 2747: @code{SUBDIRS}変数によってなされます.
 2748: @vindex SUBDIRS
 2749: 
 2750: @c The @code{SUBDIRS} variable holds a list of subdirectories in which
 2751: @c building of various sorts can occur.  Many targets (e.g. @code{all}) in
 2752: @c the generated @file{Makefile} will run both locally and in all specified
 2753: @c subdirectories.  Note that the directories listed in @code{SUBDIRS} are
 2754: @c not required to contain @file{Makefile.am}s; only @file{Makefile}s
 2755: @c (after configuration).  This allows inclusion of libraries from packages
 2756: @c which do not use Automake (such as @code{gettext}).
 2757: @c 
 2758: @code{SUBDIRS}変数は,さまざまな種類のビルドが行われるサブディレクトリの
 2759: リストを保持しています.生成されている@file{Makefile}内の多くのターゲッ
 2760: ト(例えば@code{all})は,ローカルと指定されたすべてのサブディレクトリの両
 2761: 方で実行されます.@code{SUBDIRS}でリストアップされているディレクトリには,
 2762: @file{Makefile.am}を含んでいる必要がないことに注意してください.(コンフィ
 2763: ギュレーションの後の)@file{Makefile}だけが必要です.こうすることで,
 2764: (@code{gettext}のような)Automakeを使用しないパッケージからライブラリを含
 2765: めることが可能になります.
 2766: 
 2767: @c In packages that use subdirectories, the top-level @file{Makefile.am} is
 2768: @c often very short.  For instance, here is the @file{Makefile.am} from the
 2769: @c GNU Hello distribution:
 2770: @c 
 2771: サブディレクトリを使用しているパッケージでは,トップレベルの
 2772: @file{Makefile.am}は非常に短いことが多くなっています.例えば,GNU Hello 
 2773: 配布物の@file{Makefile.am}は以下のようになっています.
 2774: 
 2775: @example
 2776: EXTRA_DIST = BUGS ChangeLog.O README-alpha
 2777: SUBDIRS = doc intl po src tests
 2778: @end example
 2779: 
 2780: @c When Automake invokes @code{make} in a subdirectory, it uses the value
 2781: @c of the @code{MAKE} variable.  It passes the value of the variable
 2782: @c @code{AM_MAKEFLAGS} to the @code{make} invocation; this can be set in
 2783: @c @file{Makefile.am} if there are flags you must always pass to
 2784: @c @code{make}.
 2785: @c 
 2786: Automakeが@code{make}をサブディレクトリで呼び出すとき,@code{MAKE}変数の
 2787: 値を使用します.それは,変数@code{AM_MAKEFLAGS}の値を@code{make}の呼び出
 2788: しに渡します.これで,常に@code{make}に渡す必要があるフラグを
 2789: @file{Makefile.am}で設定することが可能になります.
 2790: @vindex MAKE
 2791: @vindex MAKEFLAGS
 2792: 
 2793: @c The directories mentioned in @code{SUBDIRS} must be direct children of
 2794: @c the current directory.  For instance, you cannot put @samp{src/subdir}
 2795: @c into @code{SUBDIRS}.  Instead you should put @code{SUBDIRS = subdir}
 2796: @c into @file{src/Makefile.am}.  Automake can be used to construct packages
 2797: @c of arbitrary depth this way.
 2798: @c 
 2799: @code{SUBDIRS}で記述されているディレクトリは,現在のディレクトリの直接の
 2800: 子ディレクトリにする必要があります.例えば,@code{SUBDIRS}に
 2801: @samp{src/subdir}を書くことはできません.代わりに,@code{SUBDIRS =
 2802: subdir}を@file{src/Makefile.am}に書くべきです.この方法で任意の深さのパッ
 2803: ケージ構成で,Automakeの使用が可能になります.
 2804: 
 2805: @c By default, Automake generates @file{Makefiles} which work depth-first
 2806: @c (@samp{postfix}).  However, it is possible to change this ordering.  You
 2807: @c can do this by putting @samp{.} into @code{SUBDIRS}.  For instance,
 2808: @c putting @samp{.}  first will cause a @samp{prefix} ordering of
 2809: @c directories.  All @samp{clean} targets are run in reverse order of build
 2810: @c targets.
 2811: @c 
 2812: デフォルトで,Automakeは最初の深さ(@samp{postfix})で動作する
 2813: @file{Makefile}を生成します.しかし,この順序を変更することは可能です.
 2814: @code{SUBDIRS}に@samp{.}を書くことでこうすることが可能です.例えば,
 2815: @samp{.}を最初に書くことで,ディレクトリの@samp{prefix}の順序になります.
 2816: すべての@samp{clean}ターゲットは,ビルドターゲットの逆の順序で実行されま
 2817: す.
 2818: 
 2819: @c @section Conditional subdirectories
 2820: @section サブディレクトリの条件
 2821: @cindex Subdirectories, building conditionally
 2822: @cindex Conditional subdirectories
 2823: @cindex @code{SUBDIRS}, conditional
 2824: @cindex Conditional @code{SUBDIRS}
 2825: 
 2826: @c It is possible to define the @code{SUBDIRS} variable conditionally if,
 2827: @c like in the case of GNU @code{Inetutils}, you want to only build a
 2828: @c subset of the entire package.
 2829: @c 
 2830: GNU @code{Inetutils}のように,パッケージ全体のサブセットをビルドしたいだ
 2831: けの場合,@code{SUBDIRS}変数を条件的に定義することがが可能です.
 2832: 
 2833: @c To illustrate how this works, let's assume we have two directories
 2834: @c @file{src/} and @file{opt/}.  @file{src/} should always be built, but we
 2835: @c want to decide in @code{./configure} whether @file{opt/} will be built
 2836: @c or not.  (For this example we will assume that @file{opt/} should be
 2837: @c built when the variable @code{$want_opt} was set to @code{yes}.)
 2838: @c 
 2839: これがどのように動作するかを説明するため,二つのディレクトリ@file{src/} 
 2840: と@file{opt/}があると仮定しましょう.@file{src/}は常にビルドされますが,
 2841: @file{opt/}は@code{./configure}でビルドするかどうかを決定したいと思いま
 2842: す.(この例では,変数@code{$want_opt}が@code{yes}に設定されているとき
 2843: @file{opt/}をビルドすると仮定します.)
 2844: 
 2845: @c Running @code{make} should thus recurse into @file{src/} always, and
 2846: @c then maybe in @file{opt/}.
 2847: @c 
 2848: @code{make}と実行することで,@file{src/}は常に再帰され,@file{opt/}もそ
 2849: うなるかもしれません.
 2850: 
 2851: @c However @code{make dist} should always recurse into both @file{src/} and
 2852: @c @file{opt/}.  Because @file{opt/} should be distributed even if it is
 2853: @c not needed in the current configuration. This means @file{opt/Makefile}
 2854: @c should be created unconditionally.  @footnote{Don't try seeking a
 2855: @c solution where @file{opt/Makefile} is created conditionally, this is a
 2856: @c lot trickier than the solutions presented here.}
 2857: @c 
 2858: しかし,@code{make dist}では常に@file{src/}と@file{opt/}の両方を再帰すべ
 2859: きです.つまり,現在のコンフィグレーションでは不要な場合でも,
 2860: @file{opt/}は配布されるべきです.これは,@file{opt/Makefile}は条件に依存
 2861: せず作成されるべきだということを意味します.
 2862: @footnote{@file{opt/Makefile}を条件的に作成するという解を探さないでくだ
 2863: さい.これはここにある解より扱いにくいものです.}
 2864: 
 2865: @c There are two ways to setup a project like this.  You can use Automake
 2866: @c conditionals (@pxref{Conditionals}) or use Autoconf @code{AC_SUBST}
 2867: @c variables (@pxref{Setting Output Variables, , Setting Output Variables,
 2868: @c autoconf, The Autoconf Manual}).  Using Automake conditionals is the
 2869: @c preferred solution.
 2870: @c 
 2871: このようにプロジェクトを設定する方法は二つあります.Automakeの条件式
 2872: (@pxref{Conditionals})を使用したり,Autoconfの@code{AC_SUBST}マクロ
 2873: (@pxref{Setting Output Variables, , Setting Output Variables, autoconf,
 2874: The Autoconf Manual})を使用したりすることが可能です.Automakeの条件式の
 2875: 使用は,より好まれる解となります.
 2876: 
 2877: @c @subsection Conditional subdirectories with @code{AM_CONDITIONAL}
 2878: @subsection @code{AM_CONDITIONAL}を用いた条件付サブディレクトリ
 2879: @cindex @code{SUBDIRS} and @code{AM_CONDITIONAL}
 2880: @cindex @code{AM_CONDITIONAL} and @code{SUBDIRS}
 2881: 
 2882: @c The test case for the setup described here is
 2883: @c     test/subdircond2.test
 2884: @c Try to keep it in sync.
 2885: 
 2886: @c @file{configure} should output the @file{Makefile} for each directory
 2887: @c and define a condition into which @file{opt/} should be built.
 2888: @c 
 2889: @file{configure}でそれぞれのディレクトリの@file{Makefile}を出力し,
 2890: @file{opt/}をビルドするかどうかの条件を定義すべきです.
 2891: 
 2892: @example
 2893: @dots{}
 2894: AM_CONDITIONAL([COND_OPT], [test "$want_opt" = yes])
 2895: AC_CONFIG_FILES([Makefile src/Makefile opt/Makefile])
 2896: @dots{}
 2897: @end example
 2898: 
 2899: @c Then @code{SUBDIRS} can be defined in the top-level @file{Makefile.am}
 2900: @c as follows.
 2901: @c 
 2902: @code{SUBDIRS}は,トップレベルの@file{Makefile.am}で,以下のように定義す
 2903: ることが可能です.
 2904: 
 2905: @example
 2906: if COND_OPT
 2907:   MAYBE_OPT = opt
 2908: endif
 2909: SUBDIRS = src $(MAYBE_OPT)
 2910: @end example
 2911: 
 2912: @c As you can see, running @code{make} will rightly recurse into
 2913: @c @file{src/} and maybe @file{opt/}.
 2914: @c 
 2915: 御覧のように,@code{make}を実行することで,@file{src/}と,おそらく
 2916: @file{opt/}に再帰していくでしょう.
 2917: 
 2918: @vindex DIST_SUBDIRS
 2919: @c As you can't see, running @code{make dist} will recurse into both
 2920: @c @file{src/} and @file{opt/} directories because @code{make dist}, unlike
 2921: @c @code{make all}, doesn't use the @code{SUBDIRS} variable.  It uses the
 2922: @c @code{DIST_SUBDIRS} variable.
 2923: @c 
 2924: 見ることはできませんが,@code{make dist}は@code{make all}とは異なり,
 2925: @code{SUBDIRS}変数を使用しないので,@code{make dist}を実行することで,
 2926: @file{src/}と@file{opt/}の両方に再帰的に行ないます.それは
 2927: @code{DIST_SUBDIRS}変数を使用します.
 2928: 
 2929: @c In this case Automake will define @code{DIST_SUBDIRS = src opt}
 2930: @c automatically because it knows that @code{MAYBE_OPT} can contain
 2931: @c @code{opt} in some condition.
 2932: @c 
 2933: この場合,Automakeは@code{MAYBE_OPT}が条件によっては@code{opt}を含むこと
 2934: を知っているので,@code{DIST_SUBDIRS = src opt}を自動的に定義します.
 2935: 
 2936: 
 2937: @c @subsection Conditional subdirectories with @code{AC_SUBST}
 2938: @subsection @code{AC_SUBST}を用いたサブディレクトリの条件式
 2939: @cindex @code{SUBDIRS} and @code{AC_SUBST}
 2940: @cindex @code{AC_SUBST} and @code{SUBDIRS}
 2941: 
 2942: @c The test case for the setup described here is
 2943: @c     test/subdircond3.test
 2944: @c Try to keep it in sync.
 2945: 
 2946: @c Another idea is to define @code{MAYBE_OPT} from @file{./configure} using
 2947: @c @code{AC_SUBST}:
 2948: @c 
 2949: もう一つの考えは,@code{AC_SUBST}を使用して,@file{./configure}で
 2950: @code{MAYBE_OPT}を定義することです.
 2951: 
 2952: @example
 2953: @dots{}
 2954: if test "$want_opt" = yes; then
 2955:   MAYBE_OPT=opt
 2956: else
 2957:   MAYBE_OPT=
 2958: fi
 2959: AC_SUBST([MAYBE_OPT])
 2960: AC_CONFIG_FILES([Makefile src/Makefile opt/Makefile])
 2961: @dots{}
 2962: @end example
 2963: 
 2964: @c In this case the top-level @file{Makefile.am} should look as follows.
 2965: @c 
 2966: この状況では,トップレベルの@file{Makefile.am}は以下のようになるでしょう.
 2967: 
 2968: @example
 2969: SUBDIRS = src $(MAYBE_OPT)
 2970: DIST_SUBDIRS = src opt
 2971: @end example
 2972: 
 2973: @c The drawback is that since Automake cannot guess what the possible
 2974: @c values of @code{MAYBE_OPT} are, it is necessary to define
 2975: @c @code{DIST_SUBDIRS}.
 2976: @c 
 2977: 欠点は,Automakeが@code{MAYBE_OPT}の変数が何かを推測することが不可能なの
 2978: で,@code{DIST_SUBDIRS}に定義する必要があるということです.
 2979: 
 2980: @c @subsection How @code{DIST_SUBDIRS} is used
 2981: @subsection @code{DIST_SUBDIRS}が使用される方法
 2982: @cindex @code{DIST_SUBDIRS}, explained
 2983: 
 2984: @c As shown in the above examples, @code{DIST_SUBDIRS} is used by targets
 2985: @c that need to recurse in all directories, even those which have been
 2986: @c conditionally left out of the build.
 2987: @c 
 2988: 上記の例のように,@code{DIST_SUBDIRS}は,条件によってビルドされないまま
 2989: であっても,すべてのディレクトリで再帰的に必要なターゲットとして使用され
 2990: ます.
 2991: 
 2992: @c Precisely, @code{DIST_SUBDIRS} is used by @code{make dist}, @code{make
 2993: @c distclean}, and @code{make maintainer-clean}.  All other recursive
 2994: @c targets use @code{SUBDIRS}.
 2995: @c 
 2996: 厳密にいうと,@code{DIST_SUBDIRS}は@code{make dist},@code{make
 2997: distclean},そして@code{make maintainer-clean}で使用されます.すべてのそ
 2998: の他の再帰的なターゲットは@code{SUBDIRS}を使用します.
 2999: 
 3000: @c Automake will define @code{DIST_SUBDIRS} automatically from the
 3001: @c possibles values of @code{SUBDIRS} in all conditions.
 3002: @c 
 3003: Automakeは,すべての条件で取り得る@code{SUBDIRS}の値から,自動的に
 3004: @code{DIST_SUBDIRS}を定義します.
 3005: 
 3006: @c If @code{SUBDIRS} contains @code{AC_SUBST} variables,
 3007: @c @code{DIST_SUBDIRS} will not be defined correctly because Automake
 3008: @c doesn't know the possible values of these variables.  In this case
 3009: @c @code{DIST_SUBDIRS} needs to be defined manually.
 3010: @c 
 3011: @code{SUBDIRS}が@code{AC_SUBST}変数を含んでいる場合,Automakeはこれらの
 3012: 変数の取り得る値を知らないので,@code{DIST_SUBDIRS} は正しく定義されませ
 3013: ん.この状況では,@code{DIST_SUBDIRS}を手動で定義する必要があります.
 3014: 
 3015: 
 3016: @node Alternative, Rebuilding, Top level, Top
 3017: @c @chapter An Alternative Approach to Subdirectories
 3018: @chapter サブディレクトリに代わるアプローチ
 3019: 
 3020: @c If you've ever read Peter Miller's excellent paper,
 3021: @c @uref{http://www.pcug.org.au/~millerp/rmch/recu-make-cons-harm.html,
 3022: @c Recursive Make Considered Harmful}, the preceding section on the use of
 3023: @c subdirectories will probably come as unwelcome advice.  For those who
 3024: @c haven't read the paper, Miller's main thesis is that recursive
 3025: @c @code{make} invocations are both slow and error-prone.
 3026: @c 
 3027: Peter Millerの優れた論文をすでに読んでいる場合
 3028: @uref{http://www.pcug.org.au/~millerp/rmch/recu-make-cons-harm.html,
 3029: Recursive Make Considered Harmful},サブディレクトリを使用する前のセクショ
 3030: ンは,おそらくありがたくない助言になるでしょう.論文を読んでいない人のた
 3031: めに,Millerの主題は,再帰的な@code{make}の呼び出しは,遅くてエラーを発
 3032: 生しやすいということです.
 3033: 
 3034: @c Automake provides sufficient cross-directory support @footnote{We
 3035: @c believe.  This work is new and there are probably warts.
 3036: @c @xref{Introduction}, for information on reporting bugs.} to enable you
 3037: @c to write a single @file{Makefile.am} for a complex multi-directory
 3038: @c package.
 3039: @c 
 3040: 複雑な複数のディレクトリがあるパッケージに対して,単一の
 3041: @file{Makefile.am}だけを書くことを可能にする,ディレクトリを跨るための優
 3042: れたサポート@footnote{我々は信じています.この動作は新しく,問題がある可
 3043: 能性があります.バグレポートの情報は,@xref{Introduction}.}を,Automake 
 3044: は提供しています.
 3045: 
 3046: 
 3047: @c By default an installable file specified in a subdirectory will have its
 3048: @c directory name stripped before installation.  For instance, in this
 3049: @c example, the header file will be installed as
 3050: @c @file{$(includedir)/stdio.h}:
 3051: @c 
 3052: デフォルトで,サブディレクトリで指定されているインストール可能なファイル
 3053: は,インストールする前にそのディレクトリ名が切り取られています.例えば以
 3054: 下の例では,ヘッダファイルが@file{$(includedir)/stdio.h}にインストールさ
 3055: れるでしょう.
 3056: 
 3057: @example
 3058: include_HEADERS = inc/stdio.h
 3059: @end example
 3060: 
 3061: @cindex nobase_
 3062: @cindex Path stripping, avoiding
 3063: @cindex Avoiding path stripping
 3064: 
 3065: @c However, the @samp{nobase_} prefix can be used to circumvent this path
 3066: @c stripping.  In this example, the header file will be installed as
 3067: @c @file{$(includedir)/sys/types.h}:
 3068: @c 
 3069: しかし,@samp{nobase_}を前置することで,このパスを切り取りを回避すること
 3070: が可能になります.以下の例では,ヘッダファイルは
 3071: @file{$(includedir)/sys/types.h}にインストールされるでしょう.
 3072: 
 3073: @example
 3074: nobase_include_HEADERS = sys/types.h
 3075: @end example
 3076: 
 3077: @cindex nobase_ and dist_ or nodist_
 3078: @cindex dist_ and nobase_
 3079: @cindex nodist_ and nobase_
 3080: 
 3081: @c @samp{nobase_} should be specified first when used in conjonction with
 3082: @c either @samp{dist_} or @samp{nodist_} (@pxref{Dist}).  For instance:
 3083: @c 
 3084: @samp{nobase_}は,@samp{dist_}や@samp{nodist_}(@pxref{Dist})のいずれかと
 3085: 組合わせて使用するとき,最初に指定するべきです.例えば以下のようにします.
 3086: 
 3087: @example
 3088: nobase_dist_pkgdata_DATA = images/vortex.pgm
 3089: @end example
 3090: 
 3091: @node Rebuilding, Programs, Alternative, Top
 3092: @c @chapter Rebuilding Makefiles
 3093: @chapter Makefileのリビルド
 3094: 
 3095: @c Automake generates rules to automatically rebuild @file{Makefile}s,
 3096: @c @file{configure}, and other derived files like @file{Makefile.in}.
 3097: @c 
 3098: Automakeは,@file{Makefile},@file{configure},そして@file{Makefile.in} 
 3099: のようなその他の派生するファイルを,自動的にリビルドする規則を生成します.
 3100: 
 3101: @c If you are using @code{AM_MAINTAINER_MODE} in @file{configure.in}, then
 3102: @c these automatic rebuilding rules are only enabled in maintainer mode.
 3103: @c 
 3104: @file{configure.in}で@code{AM_MAINTAINER_MODE}を使用している場合,これら
 3105: の自動的なリビルドの規則は,管理者モードでのみ利用可能になります.
 3106: 
 3107: @c Sometimes you need to run @code{aclocal} with an argument like @code{-I}
 3108: @c to tell it where to find @file{.m4} files.  Since sometimes @code{make}
 3109: @c will automatically run @code{aclocal}, you need a way to specify these
 3110: @c arguments.  You can do this by defining @code{ACLOCAL_AMFLAGS}; this
 3111: @c holds arguments which are passed verbatim to @code{aclocal}.  This variable
 3112: @c is only useful in the top-level @file{Makefile.am}.
 3113: @c 
 3114: @file{.m4}ファイルを探す場所を伝えるために,@code{-I}のような引数を用い
 3115: て@code{aclocal}実行する必要があることもあります.@code{make}が自動的に
 3116: @code{aclocal}を実行するときもあるので,これらの引数を指定する方法が必要
 3117: になります.@code{ACLOCAL_AMFLAGS}を定義することで,こうすることが可能に
 3118: なります.これは,@code{aclocal}に渡す引数をそのまま保持しています.この
 3119: 変数は,トップレベルの@file{Makefile.am}でのみ役に立ちます.
 3120: @vindex ACLOCAL_AMFLAGS
 3121: 
 3122: 
 3123: @node Programs, Other objects, Rebuilding, Top
 3124: @c @chapter Building Programs and Libraries
 3125: @chapter プログラムとライブラリのビルド
 3126: 
 3127: @c A large part of Automake's functionality is dedicated to making it easy
 3128: @c to build programs and libraries.
 3129: @c 
 3130: Automakeの機能の大半は,プログラムとライブラリのビルドを容易にすることに
 3131: 費やされています.
 3132: 
 3133: @menu
 3134: * A Program::                   Building a program
 3135: * A Library::                   Building a library
 3136: * A Shared Library::            Building a Libtool library
 3137: * Program and Library Variables::  Variables controlling program and
 3138:                                 library builds
 3139: * LIBOBJS::                     Special handling for LIBOBJS and ALLOCA
 3140: * Program variables::           Variables used when building a program
 3141: * Yacc and Lex::                Yacc and Lex support
 3142: * C++ Support::
 3143: * Assembly Support::
 3144: * Fortran 77 Support::
 3145: * Java Support::
 3146: * Support for Other Languages::
 3147: * ANSI::                        Automatic de-ANSI-fication
 3148: * Dependencies::                Automatic dependency tracking
 3149: * EXEEXT::                      Support for executable extensions
 3150: @end menu
 3151: 
 3152: 
 3153: @node A Program, A Library, Programs, Programs
 3154: @c @section Building a program
 3155: @section プログラムのビルド
 3156: 
 3157: @c In order to build a program, you need to tell Automake which sources
 3158: @c are part of it, and which libraries it should be linked with.
 3159: @c 
 3160: プログラムをビルドするために,その一部となるソースとリンクされるライブラ
 3161: リをAutomakeに伝える必要があります.
 3162: 
 3163: @c This section also covers conditional compilation of sources or
 3164: @c programs.  Most of the comments about these also apply to libraries
 3165: @c (@pxref{A Library}) and Libtool libraries (@pxref{A Shared Library}).
 3166: @c 
 3167: このセクションは,ソースやプログラムの条件付コンパイルもカバーしています.
 3168: これらのコメントのほとんどは,ライブラリ(@pxref{A Library})とLibtoolライ
 3169: ブラリ(@pxref{A Shared Library})に適用されます.
 3170: 
 3171: @menu
 3172: * Program Sources::             Defining program sources
 3173: * Linking::                     Linking with libraries or extra objects
 3174: * Conditional Sources::         Handling conditional sources
 3175: * Conditional Programs::        Building program conditionally
 3176: @end menu
 3177: 
 3178: @node Program Sources, Linking, A Program, A Program
 3179: @c @subsection Defining program sources
 3180: @subsection プログラムソースの定義
 3181: 
 3182: @cindex PROGRAMS, bindir
 3183: @vindex bin_PROGRAMS
 3184: @vindex sbin_PROGRAMS
 3185: @vindex libexec_PROGRAMS
 3186: @vindex pkglib_PROGRAMS
 3187: @vindex noinst_PROGRAMS
 3188: @vindex check_PROGRAMS
 3189: 
 3190: @c In a directory containing source that gets built into a program (as
 3191: @c opposed to a library or a script), the @samp{PROGRAMS} primary is used.
 3192: @c Programs can be installed in @code{bindir}, @code{sbindir},
 3193: @c @code{libexecdir}, @code{pkglibdir}, or not at all (@samp{noinst}).
 3194: @c They can also be built only for @code{make check}, in which case the
 3195: @c prefix is @samp{check}.
 3196: @c 
 3197: (ライブラリやスクリプトと比較して)プログラムにビルドされるソースを含んで
 3198: いるディレクトリには,@samp{PROGRAMS}プライマリが使用されます.プログラ
 3199: ムを,@code{bindir},@code{sbindir},@code{libexecdir},@code{pkglibdir} 
 3200: にインストールしたり,または全くインストールしない(@code{noinst})ことが
 3201: 可能です.@code{make check}に対してのみビルドさせることも可能で,そのと
 3202: きは接頭辞は@samp{check}になります.
 3203: 
 3204: @c For instance:
 3205: @c 
 3206: 例えば以下のようにします.
 3207: 
 3208: @example
 3209: bin_PROGRAMS = hello
 3210: @end example
 3211: 
 3212: @c In this simple case, the resulting @file{Makefile.in} will contain code
 3213: @c to generate a program named @code{hello}.
 3214: @c 
 3215: この単純な状況では,結果として生成される@file{Makefile.in}に,
 3216: @code{hello}という名前のプログラムを生成するコードが含まれるでしょう.
 3217: 
 3218: @c Associated with each program are several assisting variables which are
 3219: @c named after the program.  These variables are all optional, and have
 3220: @c reasonable defaults.  Each variable, its use, and default is spelled out
 3221: @c below; we use the ``hello'' example throughout.
 3222: @c 
 3223: それぞれのプログラムに関連して,プログラムの後に命名される補助変数もあり
 3224: ます.これらの変数はすべてオプションで,妥当なデフォルト値を持ちます.そ
 3225: れぞれの変数,その使用,そしてデフォルトについては以下で記述します.我々
 3226: は,``hello''の例を終始使用します.
 3227: 
 3228: @c The variable @code{hello_SOURCES} is used to specify which source files
 3229: @c get built into an executable:
 3230: @c 
 3231: 変数@code{hello_SOURCES}は,実行形式にビルドされるソースファイルを指定す
 3232: るために使用されます.
 3233: 
 3234: @example
 3235: hello_SOURCES = hello.c version.c getopt.c getopt1.c getopt.h system.h
 3236: @end example
 3237: 
 3238: @c This causes each mentioned @samp{.c} file to be compiled into the
 3239: @c corresponding @samp{.o}.  Then all are linked to produce @file{hello}.
 3240: @c 
 3241: これにより,上記のそれぞれの@samp{.c}ファイルを,対応する@samp{.o}にコン
 3242: パイルします.そして,すべては@file{hello}を生成するためにリンクされます.
 3243: 
 3244: @cindex _SOURCES primary, defined
 3245: @cindex SOURCES primary, defined
 3246: @cindex Primary variable, SOURCES
 3247: 
 3248: @c If @samp{hello_SOURCES} is not specified, then it defaults to the single
 3249: @c file @file{hello.c}; that is, the default is to compile a single C file
 3250: @c whose base name is the name of the program itself.  (This is a terrible
 3251: @c default but we are stuck with it for historical reasons.)
 3252: @c 
 3253: @samp{hello_SOURCES}が指定されていない場合,そのデフォルトは一つのファイ
 3254: ル@file{hello.c}になります.すなわちデフォルトとは,ベースとなる名前がプ
 3255: ログラム自身の名前になっている,単一のCファイルをコンパイルするというこ
 3256: とです.(これは危険なデフォルトですが,我々は歴史的な理由で行き詰まって
 3257: います.)
 3258: @vindex _SOURCES
 3259: @vindex SOURCES
 3260: 
 3261: @c Multiple programs can be built in a single directory.  Multiple programs
 3262: @c can share a single source file, which must be listed in each
 3263: @c @samp{_SOURCES} definition.
 3264: @c 
 3265: 複数のプログラムを一つのディレクトリでビルドすることが可能です.複数のプ
 3266: ログラムで単一のソースファイルを共有することが可能で,それぞれの
 3267: @samp{_SOURCES}定義でリストアップする必要があります.
 3268: 
 3269: @cindex Header files in _SOURCES
 3270: @cindex _SOURCES and header files
 3271: 
 3272: @c Header files listed in a @samp{_SOURCES} definition will be included in
 3273: @c the distribution but otherwise ignored.  In case it isn't obvious, you
 3274: @c should not include the header file generated by @file{configure} in a
 3275: @c @samp{_SOURCES} variable; this file should not be distributed.  Lex
 3276: @c (@samp{.l}) and Yacc (@samp{.y}) files can also be listed; see @ref{Yacc
 3277: @c and Lex}.
 3278: @c 
 3279: @samp{_SOURCES}定義にリストアップされているヘッダファイルは配布物に含ま
 3280: れますが,それ以外のものは無視されます.明らかではないときは,
 3281: @file{configure}で生成されるヘッダファイルを@samp{_SOURCES}変数に含める
 3282: べきではありません.このファイルは配布すべきではありません.
 3283: Lex(@samp{.l})とYacc(@samp{.y})のファイルもリストアップすることが可能で
 3284: す.@ref{Yacc and Lex}を参照して下さい.
 3285: 
 3286: 
 3287: @node Linking, Conditional Sources, Program Sources, A Program
 3288: @c @subsection Linking the program
 3289: @subsection プログラムのリンク
 3290: 
 3291: @c If you need to link against libraries that are not found by
 3292: @c @code{configure}, you can use @code{LDADD} to do so.  This variable is
 3293: @c used to specify additional objects or libraries to link with; it is
 3294: @c inappropriate for specifying specific linker flags, you should use
 3295: @c @code{AM_LDFLAGS} for this purpose.
 3296: @c 
 3297: @code{configure}で見つからないライブラリに対してリンクする必要がある場合,
 3298: そうするために@code{LDADD}を使用することが可能です.この変数は,リンクす
 3299: る追加のオブジェクトやライブラリを指定するために使用されます.それは,特
 3300: 定のリンカフラグを指定するには不適切で,この目的では@code{AM_LDFLAGS}を
 3301: 使用すべきです.
 3302: @vindex LDADD
 3303: @vindex AM_LDFLAGS
 3304: 
 3305: @cindex prog_LDADD, defined
 3306: 
 3307: @c Sometimes, multiple programs are built in one directory but do not share
 3308: @c the same link-time requirements.  In this case, you can use the
 3309: @c @samp{@var{prog}_LDADD} variable (where @var{prog} is the name of the
 3310: @c program as it appears in some @samp{_PROGRAMS} variable, and usually
 3311: @c written in lowercase) to override the global @code{LDADD}.  If this
 3312: @c variable exists for a given program, then that program is not linked
 3313: @c using @code{LDADD}.
 3314: @c 
 3315: 複数のプログラムが一つのディレクトリで構築されていても,リンク時に同じ条
 3316: 件を共有しないときもあります.この場合は,グローバルな@code{LDADD}に優先
 3317: させるため,@samp{@var{prog}_LDADD}変数(ここでの@var{prog}はプログラムの
 3318: 名前で,それは@samp{_PROGRAMS}変数にあって,通常は小文字で書かれています) 
 3319: を使用することが可能です.この変数が所定のプログラムのために存在する場合,
 3320: そのプログラムは@code{LDADD}を使用してリンクされません.
 3321: @vindex _LDADD
 3322: 
 3323: @c For instance, in GNU cpio, @code{pax}, @code{cpio} and @code{mt} are
 3324: @c linked against the library @file{libcpio.a}.  However, @code{rmt} is
 3325: @c built in the same directory, and has no such link requirement.  Also,
 3326: @c @code{mt} and @code{rmt} are only built on certain architectures.  Here
 3327: @c is what cpio's @file{src/Makefile.am} looks like (abridged):
 3328: @c 
 3329: 例えば,GNU cpioでは,@code{pax},@code{cpio},そして@code{mt}は,
 3330: @file{libcpio.a}ライブラリにリンクされます.しかし,@code{rmt}は同じディ
 3331: レクトリでビルドされますが,そのようなリンクは必要ありません.また,
 3332: @code{mt}と@code{rmt}は特定のアーキテクチャでのみビルドされます.以下は,
 3333: cpioの@file{src/Makefile.am}に似たものです(省略されています).
 3334: 
 3335: @example
 3336: bin_PROGRAMS = cpio pax @@MT@@
 3337: libexec_PROGRAMS = @@RMT@@
 3338: EXTRA_PROGRAMS = mt rmt
 3339: 
 3340: LDADD = ../lib/libcpio.a @@INTLLIBS@@
 3341: rmt_LDADD =
 3342: 
 3343: cpio_SOURCES = @dots{}
 3344: pax_SOURCES = @dots{}
 3345: mt_SOURCES = @dots{}
 3346: rmt_SOURCES = @dots{}
 3347: @end example
 3348: 
 3349: @cindex _LDFLAGS, defined
 3350: 
 3351: @c @samp{@var{prog}_LDADD} is inappropriate for passing program-specific
 3352: @c linker flags (except for @samp{-l}, @samp{-L}, @samp{-dlopen} and
 3353: @c @samp{-dlpreopen}).  So, use the @samp{@var{prog}_LDFLAGS} variable for
 3354: @c this purpose.
 3355: @c 
 3356: @samp{@var{prog}_LDADD}でプログラム独自のリンカフラグ(@samp{-l},
 3357: @samp{-L},@samp{-dlopen}そして@samp{-dlpreopen}を除く)を渡すことは不適
 3358: 当です.そのため,この目的に対しては@samp{@var{prog}_LDFLAGS}変数を使用
 3359: してください.
 3360: @vindex _LDFLAGS
 3361: 
 3362: @cindex _DEPENDENCIES, defined
 3363: 
 3364: @c It is also occasionally useful to have a program depend on some other
 3365: @c target which is not actually part of that program.  This can be done
 3366: @c using the @samp{@var{prog}_DEPENDENCIES} variable.  Each program depends
 3367: @c on the contents of such a variable, but no further interpretation is
 3368: @c done.
 3369: @c 
 3370: 実際にはプログラムの一部でない他のターゲットに依存するプログラムを持つこ
 3371: とが役に立つこともあります.これは@samp{@var{prog}_DEPENDENCIES}変数を使
 3372: 用することで可能になります.それぞれのプログラムはこの変数の内容に依存し
 3373: ますが,それ以上の解釈はされません.
 3374: 
 3375: @c If @samp{@var{prog}_DEPENDENCIES} is not supplied, it is computed by
 3376: @c Automake.  The automatically-assigned value is the contents of
 3377: @c @samp{@var{prog}_LDADD}, with most configure substitutions, @samp{-l},
 3378: @c @samp{-L}, @samp{-dlopen} and @samp{-dlpreopen} options removed.  The
 3379: @c configure substitutions that are left in are only @samp{@@LIBOBJS@@} and
 3380: @c @samp{@@ALLOCA@@}; these are left because it is known that they will not
 3381: @c cause an invalid value for @samp{@var{prog}_DEPENDENCIES} to be
 3382: @c generated.
 3383: @c 
 3384: @samp{@var{prog}_DEPENDENCIES}が提供されていない場合,Automakeが考えます.
 3385: 自動的に割り当てられる値は@samp{@var{prog}_LDADD}の内容で,ほとんどの
 3386: configureの置換式,@samp{-l},@samp{-L},@samp{-dlopen},そして
 3387: @samp{-dlpreopen}オプションは削除されます.残っているconfigureの置換式は,
 3388: @samp{@@LIBOBJS@@}と@samp{@@ALLOCA@@}だけです.これらは,生成される
 3389: @samp{@var{prog}_DEPENDENCIES}に無効な値を与えないことが知られているので
 3390: 残されています.
 3391: 
 3392: 
 3393: @node Conditional Sources, Conditional Programs, Linking, A Program
 3394: @c @subsection Conditional compilation of sources
 3395: @subsection ソースの条件コンパイル
 3396: 
 3397: @c You can't put a configure substitution (e.g., @samp{@@FOO@@}) into a
 3398: @c @samp{_SOURCES} variable.  The reason for this is a bit hard to explain,
 3399: @c but suffice to say that it simply won't work.  Automake will give an
 3400: @c error if you try to do this.
 3401: @c 
 3402: @code{configure}の置換式(例えば,@samp{@@FOO@@})を@samp{_SOURCES} 変数に
 3403: 書き込むことはできません.この理由を説明するのは少し難しいのですが,単純
 3404: に言って動作しないということで十分でしょう.これを試みた場合,Automakeは
 3405: エラーを発します.
 3406: 
 3407: @c Fortunatly there are two other ways to achieve the same result.  One is
 3408: @c to use configure substitutions in @code{_LDADD} variables, the other is
 3409: @c to use an Automake conditional.
 3410: @c 
 3411: 幸い,同じ結果を達成するために二つの別の方法があります.一つは,
 3412: @code{configure}の置換式を@code{_LDADD}変数で使用する方法で,もう一つは,
 3413: Automakeの条件式を使用する方法です.
 3414: 
 3415: @c @subsubsection Conditional compilation using @code{_LDADD} substitutions
 3416: @subsubsection @code{_LDADD}の置換式を使用した条件コンパイル
 3417: 
 3418: @cindex EXTRA_prog_SOURCES, defined
 3419: 
 3420: @c Automake must know all the source files that could possibly go into a
 3421: @c program, even if not all the files are built in every circumstance.  Any
 3422: @c files which are only conditionally built should be listed in the
 3423: @c appropriate @samp{EXTRA_} variable.  For instance, if
 3424: @c @file{hello-linux.c} or @file{hello-generic.c} were conditionally included
 3425: @c in @code{hello}, the @file{Makefile.am} would contain:
 3426: @c 
 3427: Automakeは,すべてのファイルが全ての状況でビルドされるわけではない場合で
 3428: も,プログラムに組み込まれる可能性があるソースファイルをすべて知っている
 3429: 必要があります.条件によってのみビルドされるファイルは,適切な
 3430: @samp{EXTRA_}変数でリストアップすべきです.例えば,条件によって
 3431: @file{hello-linux.c}や@file{hello-generic.c}を@code{hello}に組み込む場合,
 3432: @file{Makefile.am}に以下のものを含めます.
 3433: 
 3434: @example
 3435: bin_PROGRAMS = hello
 3436: hello_SOURCES = hello-common.c
 3437: EXTRA_hello_SOURCES = hello-linux.c hello-generic.c
 3438: hello_LDADD = @@HELLO_SYSTEM@@
 3439: hello_DEPENDENCIES = @@HELLO_SYSTEM@@
 3440: @end example
 3441: 
 3442: @noindent
 3443: @c You can then setup the @code{@@HELLO_SYSTEM@@} substitution from
 3444: @c @file{configure.in}:
 3445: @c 
 3446: @file{configure.in}で@code{@@HELLO_SYSTEM@@}の置換式を設定することが可能
 3447: です.
 3448: 
 3449: @example
 3450: @dots{}
 3451: case $host in
 3452:   *linux*) HELLO_SYSTEM='hello-linux.$(OBJEXT)' ;;
 3453:   *)       HELLO_SYSTEM='hello-generic.$(OBJEXT)' ;;
 3454: esac
 3455: AC_SUBST([HELLO_SYSTEM])
 3456: @dots{}
 3457: @end example
 3458: 
 3459: @c In this case, @code{HELLO_SYSTEM} should be replaced by
 3460: @c @file{hello-linux.o} or @file{hello-bsd.o}, and added to
 3461: @c @code{hello_DEPENDENCIES} and @code{hello_LDADD} in order to be built
 3462: @c and linked in.
 3463: @c 
 3464: この場合,@code{HELLO_SYSTEM}は@file{hello-linux.o}や@file{hello-bsd.o} 
 3465: で置換され,ビルドしリンクするために@code{hello_DEPENDENCIES}と
 3466: @code{hello_LDADD}に追加されます.
 3467: 
 3468: @c @subsubsection Conditional compilation using Automake conditionals
 3469: @subsubsection Automakeの条件式を使用した条件コンパイル
 3470: 
 3471: @c An often simpler way to compile source files conditionally is to use
 3472: @c Automake conditionals.  For instance, you could use this
 3473: @c @file{Makefile.am} construct to build the same @file{hello} example:
 3474: @c 
 3475: 条件によってソースファイルをコンパイルするためのより簡単な方法としては,
 3476: Automakeの条件式を使用することが多くなっています.例えば,同じ
 3477: @file{hello}の例をビルドするため,以下のような内容の@file{Makefile.am}を
 3478: 使用することが可能でしょう.
 3479: 
 3480: @example
 3481: bin_PROGRAMS = hello
 3482: if LINUX
 3483: hello_SOURCES = hello-linux.c hello-common.c
 3484: else
 3485: hello_SOURCES = hello-generic.c hello-common.c
 3486: endif
 3487: @end example
 3488: 
 3489: @c In this case, your @file{configure.in} should setup the @code{LINUX}
 3490: @c conditional using @code{AM_CONDITIONAL} (@pxref{Conditionals}).
 3491: @c 
 3492: この場合,@file{configure.in}で@code{AM_CONDITIONAL}を使用して
 3493: @code{LINUX}条件式を設定する必要があります(@pxref{Conditionals}).
 3494: 
 3495: @c When using conditionals like this you don't need to use the
 3496: @c @samp{EXTRA_} variable, because Automake will examine the contents of
 3497: @c each variable to construct the complete list of source files.
 3498: @c 
 3499: Automakeは,ソースファイルの完全なリストを構成するためにそれぞれの変数の
 3500: 内容を調査するので,このような条件を使用するときは,@samp{EXTRA_}変数を
 3501: 使用する必要はありません.
 3502: 
 3503: @c If your program uses a lot of files, you will probably prefer a
 3504: @c conditional @code{+=}.
 3505: @c 
 3506: プログラムで多くのファイルを使用している場合,おそらく条件付の@code{+=}
 3507: のほうが望ましいでしょう.
 3508: 
 3509: @example
 3510: bin_PROGRAMS = hello
 3511: hello_SOURCES = hello-common.c
 3512: if LINUX
 3513: hello_cond += hello-linux.c
 3514: else
 3515: hello_cond += hello-generic.c
 3516: endif
 3517: @end example
 3518: 
 3519: @node Conditional Programs,  , Conditional Sources, A Program
 3520: @c @subsection Conditional compilation of programs
 3521: @subsection プログラムの条件付コンパイル
 3522: 
 3523: @c Sometimes it is useful to determine the programs that are to be built at
 3524: @c configure time.  For instance, GNU @code{cpio} only builds @code{mt} and
 3525: @c @code{rmt} under special circumstances.
 3526: @c 
 3527: ビルドされるプログラムをconfigure時に決定することが役に立つときもありま
 3528: す.例えば,GNU @code{cpio}は特別な状況のときだけ@code{mt}と@code{rmt}を
 3529: ビルドします.
 3530: 
 3531: @cindex EXTRA_PROGRAMS, defined
 3532: 
 3533: @c In this case, you must notify Automake of all the programs that can
 3534: @c possibly be built, but at the same time cause the generated
 3535: @c @file{Makefile.in} to use the programs specified by @code{configure}.
 3536: @c This is done by having @code{configure} substitute values into each
 3537: @c @samp{_PROGRAMS} definition, while listing all optionally built programs
 3538: @c in @code{EXTRA_PROGRAMS}.
 3539: @c 
 3540: この場合は,ビルドされる可能性のあるすべてのプログラムをAutomakeに知らせ
 3541: る必要がありますが,同時に,@code{configure}で指定されるプログラムを使用
 3542: するように@file{Makefile.in}を生成させる必要もあります.このことは,それ
 3543: ぞれの@samp{_PROGRAMS}定義に@code{configure}での置換式の値を持たせること
 3544: で行なわれますが,一方では,@code{EXTRA_PROGRAMS}でオプションとしてビル
 3545: ドされるプログラムがすべてリストアップされています.
 3546: @vindex EXTRA_PROGRAMS
 3547: 
 3548: @c Of course you can use Automake conditionals to determine the programs to
 3549: @c be built.
 3550: @c 
 3551: もちろん,ビルドするプログラムを定義するために,Automakeの条件式を使用す
 3552: ることも可能です.
 3553: 
 3554: 
 3555: @node A Library, A Shared Library, A Program, Programs
 3556: @c @section Building a library
 3557: @section ライブラリのビルド
 3558: 
 3559: @cindex _LIBRARIES primary, defined
 3560: @cindex LIBRARIES primary, defined
 3561: @cindex Primary variable, LIBRARIES
 3562: 
 3563: @vindex lib_LIBRARIES
 3564: @vindex pkglib_LIBRARIES
 3565: @vindex noinst_LIBRARIES
 3566: 
 3567: @c Building a library is much like building a program.  In this case, the
 3568: @c name of the primary is @samp{LIBRARIES}.  Libraries can be installed in
 3569: @c @code{libdir} or @code{pkglibdir}.
 3570: @c 
 3571: ライブラリをビルドすることは,プログラムをビルドすることによく似ています.
 3572: この場合は,プライマリの名前は@samp{LIBRARIES}です.ライブラリは
 3573: @code{libdir}や@code{pkglibdir}にインストールされます.
 3574: 
 3575: @c @xref{A Shared Library}, for information on how to build shared
 3576: @c libraries using Libtool and the @samp{LTLIBRARIES} primary.
 3577: @c 
 3578: Libtoolと@samp{LTLIBRARIES}プライマリを使用して共有ライブラリをビルドす
 3579: る方法についての詳細は,@xref{A Shared Library}.
 3580: 
 3581: @c Each @samp{_LIBRARIES} variable is a list of the libraries to be built.
 3582: @c For instance to create a library named @file{libcpio.a}, but not install
 3583: @c it, you would write:
 3584: @c 
 3585: それぞれの@samp{_LIBRARIES}変数は,ビルドされるライブラリのリストです.
 3586: 例えば,@file{libcpio.a}という名前のライブラリを作成し,それをインストー
 3587: ルしないため,以下のように書きます.
 3588: 
 3589: @example
 3590: noinst_LIBRARIES = libcpio.a
 3591: @end example
 3592: 
 3593: @c The sources that go into a library are determined exactly as they are
 3594: @c for programs, via the @samp{_SOURCES} variables.  Note that the library
 3595: @c name is canonicalized (@pxref{Canonicalization}), so the @samp{_SOURCES}
 3596: @c variable corresponding to @file{liblob.a} is @samp{liblob_a_SOURCES},
 3597: @c not @samp{liblob.a_SOURCES}.
 3598: @c 
 3599: ライブラリに組み込まれるソースは,プログラムのときのように,
 3600: @samp{_SOURCES}変数によって正しく決定されます.ライブラリ名は標準的にさ
 3601: れるので(@pxref{Canonicalization}),@samp{liblob.a}に対応する
 3602: @samp{_SOURCES}変数は@samp{liblob.a_SOURCES}ではなく
 3603: @samp{liblob_a_SOURCES}になることに注意してください.
 3604: 
 3605: @cindex _LIBADD primary, defined
 3606: @cindex LIBADD primary, defined
 3607: @cindex Primary variable, LIBADD
 3608: 
 3609: @c Extra objects can be added to a library using the
 3610: @c @samp{@var{library}_LIBADD} variable.  This should be used for objects
 3611: @c determined by @code{configure}.  Again from @code{cpio}:
 3612: @c 
 3613: 追加のオブジェクトは,@samp{@var{library}_LIBADD}変数を使用してライブラ
 3614: リに追加することが可能です.これは@code{configure}で決定されるオブジェク
 3615: トに対して使用されるべきです.再び@code{cpio}からの引用です.
 3616: @vindex _LIBADD
 3617: @vindex LIBADD
 3618: 
 3619: @example
 3620: libcpio_a_LIBADD = @@LIBOBJS@@ @@ALLOCA@@
 3621: @end example
 3622: 
 3623: @c In addition, sources for extra objects that will not exist until
 3624: @c configure-time must be added to the @code{BUILT_SOURCES} variable
 3625: @c (@pxref{Sources}).
 3626: @c 
 3627: さらに,configure時まで存在しない追加のオブジェクトに対するソースは,
 3628: @code{BUILT_SOURCES}変数に追加する必要があります(@pxref{Sources}).
 3629: 
 3630: 
 3631: @node A Shared Library, Program and Library Variables, A Library, Programs
 3632: @c @section Building a Shared Library
 3633: @section 共有ライブラリのビルド
 3634: 
 3635: @cindex Shared libraries, support for
 3636: 
 3637: @c Building shared libraries is a relatively complex matter.  For this
 3638: @c reason, GNU Libtool (@pxref{Top, , Introduction, libtool, The
 3639: @c Libtool Manual}) was created to help build shared libraries in a
 3640: @c platform-independent way.
 3641: @c 
 3642: 共有ライブラリをビルドすることは比較的複雑な問題です.このために,GNU
 3643: Libtoolは(@pxref{Top, , Introduction, libtool, The Libtool Manual})プラッ
 3644: トホームに依存しない方法で共有ライブラリをビルドする補助を行なうために作
 3645: 成されました.
 3646: 
 3647: @cindex _LTLIBRARIES primary, defined
 3648: @cindex LTLIBRARIES primary, defined
 3649: @cindex Primary variable, LTLIBRARIES
 3650: @cindex Example of shared libraries
 3651: 
 3652: @cindex suffix .la, defined
 3653: 
 3654: @c Automake uses Libtool to build libraries declared with the
 3655: @c @samp{LTLIBRARIES} primary.  Each @samp{_LTLIBRARIES} variable is a list
 3656: @c of shared libraries to build.  For instance, to create a library named
 3657: @c @file{libgettext.a} and its corresponding shared libraries, and install
 3658: @c them in @samp{libdir}, write:
 3659: @c 
 3660: Automakeは,@samp{LTLIBRARIES}プライマリで宣言されたライブラリをビルドす
 3661: るためにLibtoolを使用します.それぞれの@samp{_LTLIBRARIES}変数はビルドす
 3662: る共有ライブラリのリストです.例えば,@file{libgettext.a}という名前のラ
 3663: イブラリとそれに対応する共有ライブラリを作成し,@samp{libdir}にインストー
 3664: ルするために,以下のように書いてください.
 3665: 
 3666: @example
 3667: lib_LTLIBRARIES = libgettext.la
 3668: @end example
 3669: 
 3670: @vindex lib_LTLIBRARIES
 3671: @vindex pkglib_LTLIBRARIES
 3672: @vindex noinst_LTLIBRARIES
 3673: @vindex check_LTLIBRARIES
 3674: 
 3675: @cindex check_LTLIBRARIES, not allowed
 3676: 
 3677: @c Note that shared libraries @emph{must} be installed in order to work
 3678: @c properly, so @code{check_LTLIBRARIES} is not allowed.  However,
 3679: @c @code{noinst_LTLIBRARIES} is allowed.  This feature should be used for
 3680: @c libtool ``convenience libraries''.
 3681: @c 
 3682: 共有ライブラリが正しく動作するようにインストールする@emph{必要がある}の
 3683: で,@code{check_LTLIBRARIES}が使用不可能だということに注意してください.
 3684: しかし,@code{noinst_LTLIBRARIES}は使用可能です.この機能はlibtoolの
 3685: ``convinience library''で使用されます.
 3686: 
 3687: @cindex suffix .lo, defined
 3688: 
 3689: @c For each library, the @samp{@var{library}_LIBADD} variable contains the
 3690: @c names of extra libtool objects (@file{.lo} files) to add to the shared
 3691: @c library.  The @samp{@var{library}_LDFLAGS} variable contains any
 3692: @c additional libtool flags, such as @samp{-version-info} or
 3693: @c @samp{-static}.
 3694: @c 
 3695: それぞれのライブラリに対して,@samp{@var{library}_LIBADD}変数は,共有ラ
 3696: イブラリに加える追加のlibtoolオブジェクト(@file{.lo}ファイル)の名前を含
 3697: んでいます.@samp{@var{library}_LDFLAGS}変数は,@samp{-version-info}や
 3698: @samp{-static}といった,付加的なlibtoolフラグも含んでいます.
 3699: 
 3700: @cindex @@LTLIBOBJS@@, special handling
 3701: 
 3702: @c Where an ordinary library might include @code{@@LIBOBJS@@}, a libtool
 3703: @c library must use @code{@@LTLIBOBJS@@}.  This is required because the
 3704: @c object files that libtool operates on do not necessarily end in
 3705: @c @file{.o}.  The libtool manual contains more details on this topic.
 3706: @c 
 3707: 普通のライブラリが@code{@@LIBOBJS@@}を使用するところで,libtoolライブラ
 3708: リは@code{@@LTLIBOBJS@@}を使用する必要があります.libtoolが処理するオブ
 3709: ジェクトファイルは必ずしも@file{.o}で終わらないので,これが必要になりま
 3710: す.libtoolマニュアルには,このトピックに関する詳細が書かれています.
 3711: 
 3712: @c For libraries installed in some directory, Automake will automatically
 3713: @c supply the appropriate @samp{-rpath} option.  However, for libraries
 3714: @c determined at configure time (and thus mentioned in
 3715: @c @code{EXTRA_LTLIBRARIES}), Automake does not know the eventual
 3716: @c installation directory; for such libraries you must add the
 3717: @c @samp{-rpath} option to the appropriate @samp{_LDFLAGS} variable by
 3718: @c hand.
 3719: @c 
 3720: いくつかのディレクトリにインストールされるライブラリに対して,Automakeは
 3721: 自動的に適切な@samp{-rpath}オプションを供給します.しかし,configure時
 3722: (と@code{EXTRA_LTLIBRARIES}に書いたとき)に決定されるライブラリに対して,
 3723: Automakeは最終的なインストールディレクトリを知りません.このようなライブ
 3724: ラリに対しては,適切な@samp{_LDFLAGX}変数に@samp{-rpath} オプションを手
 3725: 書きで加える必要があります.
 3726: 
 3727: @c Ordinarily, Automake requires that a shared library's name start with
 3728: @c @samp{lib}.  However, if you are building a dynamically loadable module
 3729: @c then you might wish to use a "nonstandard" name.  In this case, put
 3730: @c @code{-module} into the @samp{_LDFLAGS} variable.
 3731: @c 
 3732: 通常,Automakeは共有ライブラリの名前が@samp{lib}で始まることを要求します.
 3733: しかし,動的にロードされるモジュールをビルドしている場合,"標準的でない" 
 3734: 名前を使用したいかもしれません.この場合は,@code{-module}を
 3735: @samp{_LDFLAGS}変数に書き込んでください.
 3736: 
 3737: @c @xref{Using Automake, Using Automake with Libtool, The Libtool Manual,
 3738: @c libtool, The Libtool Manual}, for more information.
 3739: @c 
 3740: 詳細は@xref{Using Automake, Using Automake with Libtool, The Libtool
 3741: Manual, libtool, The Libtool Manual}.
 3742: 
 3743: 
 3744: @node Program and Library Variables, LIBOBJS, A Shared Library, Programs
 3745: @c @section Program and Library Variables
 3746: @section プログラムとライブラリの変数
 3747: 
 3748: @c Associated with each program are a collection of variables which can be
 3749: @c used to modify how that program is built.  There is a similar list of
 3750: @c such variables for each library.  The canonical name of the program (or
 3751: @c library) is used as a base for naming these variables.
 3752: @c 
 3753: それぞれのプログラムに関連して,プログラムのビルドの方法を修正するために
 3754: 使用可能な,変数の集合があります.それぞれのライブラリに対しても,それに
 3755: 似たような変数のリストがあります.プログラム(やライブラリ)の標準的な名前
 3756: が,これらの変数の命名に対してベースとして使用されます.
 3757: 
 3758: @c In the list below, we use the name ``maude'' to refer to the program or
 3759: @c library.  In your @file{Makefile.am} you would replace this with the
 3760: @c canonical name of your program.  This list also refers to ``maude'' as a
 3761: @c program, but in general the same rules apply for both static and dynamic
 3762: @c libraries; the documentation below notes situations where programs and
 3763: @c libraries differ.
 3764: @c 
 3765: 以下のリストでは,名前``maude''をプログラムやライブラリを示すものとして
 3766: 使用しています.@file{Makefile.am}で,これをプログラムの標準的な名前に置
 3767: 換してください.このリストは,``maude''をプログラムを示すものとしていま
 3768: すが,一般的に同じ規則を,スタティックライブラリやダイナミックライブラリ
 3769: に適用します.以下の文章では,プログラムとライブラリで異なる状況をコメン
 3770: トしています.
 3771: 
 3772: @table @samp
 3773: @item maude_SOURCES
 3774: @c This variable, if it exists, lists all the source files which are
 3775: @c compiled to build the program.  These files are added to the
 3776: @c distribution by default.  When building the program, Automake will cause
 3777: @c each source file to be compiled to a single @file{.o} file (or
 3778: @c @file{.lo} when using libtool).  Normally these object files are named
 3779: @c after the source file, but other factors can change this.  If a file in
 3780: @c the @samp{_SOURCES} variable has an unrecognized extension, Automake
 3781: @c will do one of two things with it.  If a suffix rule exists for turning
 3782: @c files with the unrecognized extension into @file{.o} files, then
 3783: @c automake will treat this file as it will any other source file
 3784: @c (@pxref{Support for Other Languages}).  Otherwise, the file will be
 3785: @c ignored as though it were a header file.
 3786: @c 
 3787: 存在する場合,この変数は,プログラムをビルドするためにコンパイルされる,
 3788: すべてのソースファイルをリストアップします.プログラムをビルドしていると
 3789: き,Automakeはそれぞれのソースファイルを単一の@file{.o}ファイル(や
 3790: libtoolを使用しているときは@file{.lo})にコンパイルさせます.通常これらの
 3791: オブジェクトファイルはソースファイルの後に命名されますが,他の要因で変更
 3792: することが可能です.@samp{_SOURCES}変数のファイルに認識できない拡張子が
 3793: ある場合,Automakeは二つのうちの一つを実行します.認識できない拡張子を持
 3794: つファイルを@file{.o}に変換するためのサフィックス規則が存在する場合,
 3795: automakeはこのファイルを,その他の(言語の)ソースファイルとして扱います
 3796: (@pxref{Support for Other Languages}).それ以外では,ファイルがヘッダファ
 3797: イルと考えて無視されます.
 3798: 
 3799: @c The prefixes @samp{dist_} and @samp{nodist_} can be used to control
 3800: @c whether files listed in a @samp{_SOURCES} variable are distributed.
 3801: @c @samp{dist_} is redundant, as sources are distributed by default, but it
 3802: @c can be specified for clarity if desired.
 3803: @c 
 3804: 接頭辞の@samp{dist_}と@samp{nodist_}で,@samp{_SOURCES}にリストアップさ
 3805: れているファイルを配布するかどうか制御するために使用することが可能です.
 3806: ソースはデフォルトで配布されるので,@samp{dist_}は冗長ですが,必要があれ
 3807: ば明確にするために指定可能です.
 3808: 
 3809: @c It is possible to have both @samp{dist_} and @samp{nodist_} variants of
 3810: @c a given @samp{_SOURCES} variable at once; this lets you easily
 3811: @c distribute some files and not others, for instance:
 3812: @c 
 3813: @samp{_SOURCES}変数に与えるものとして@samp{dist_}と@samp{nodist_}の両方
 3814: を一度に用いることが可能です.これによって,配布するファイルとしないもの
 3815: に簡単に分類することができ,例えば以下のようにします.
 3816: 
 3817: @example
 3818: nodist_maude_SOURCES = nodist.c
 3819: dist_maude_SOURCES = dist-me.c
 3820: @end example
 3821: 
 3822: @c By default the output file (on Unix systems, the @file{.o} file) will be
 3823: @c put into the current build directory.  However, if the option
 3824: @c @code{subdir-objects} is in effect in the current directory then the
 3825: @c @file{.o} file will be put into the subdirectory named after the source
 3826: @c file.  For instance, with @code{subdir-objects} enabled,
 3827: @c @file{sub/dir/file.c} will be compiled to @file{sub/dir/file.o}.  Some
 3828: @c people prefer this mode of operation.  You can specify
 3829: @c @code{subdir-objects} in @code{AUTOMAKE_OPTIONS} (@pxref{Options}).
 3830: @c 
 3831: デフォルトで,出力ファイル(Unixシステム上では@file{.o}ファイル)は,現在
 3832: のビルドディレクトリに書き込まれます.しかし,現在のディレクトリに対して
 3833: オプションの@code{subdir-objects}の影響がある場合,@file{.o}ファイルはソー
 3834: スファイルの後で指名されるサブディレクトリに書き込まれます.例えば,
 3835: @code{subdir-objects}が利用可能な場合,@file{sub/dir/file.c}は
 3836: @file{sub/dir/file.o}にコンパイルされます.この処理モードを好む人もいま
 3837: す.@code{subdir-objects}を@code{AUTOMAKE_OPTIONS}で指定することが可能で
 3838: す(@pxref{Options}).
 3839: @cindex Subdirectory, objects in
 3840: @cindex Objects in subdirectory
 3841: 
 3842: 
 3843: @item EXTRA_maude_SOURCES
 3844: @c Automake needs to know the list of files you intend to compile
 3845: @c @emph{statically}.  For one thing, this is the only way Automake has of
 3846: @c knowing what sort of language support a given @file{Makefile.in}
 3847: @c requires.  @footnote{There are other, more obscure reasons reasons for
 3848: @c this limitation as well.}  This means that, for example, you can't put a
 3849: @c configure substitution like @samp{@@my_sources@@} into a @samp{_SOURCES}
 3850: @c variable.  If you intend to conditionally compile source files and use
 3851: @c @file{configure} to substitute the appropriate object names into, e.g.,
 3852: @c @samp{_LDADD} (see below), then you should list the corresponding source
 3853: @c files in the @samp{EXTRA_} variable.
 3854: @c 
 3855: Automakeは,コンパイルしたいファイルのリストを@emph{静的に}知っている必
 3856: 要があります.一つには,該当する@file{Makefile.in}が要求する言語のサポー
 3857: トの種類をAutomakeが知るための唯一の方法だということがあげられます.
 3858: @footnote{それ以外にも,この制限に対してあまり知られていない理由が同じよ
 3859: うに存在します.} 例えばこれには,@samp{@@my_sources@@}のようなconfigure 
 3860: の置換式を@samp{_SOURCES}に書き込むことができないという意味があります.
 3861: ソースファイルの条件コンパイルを行ない,例えば@samp{_LDADD}(以下を参照し
 3862: てください)のオブジェクト名を適切に置換するために@file{configure}を使用
 3863: したい場合,対応するソースファイルを@samp{EXTRA_}にリストアップした方が
 3864: 良いでしょう.
 3865: 
 3866: @c This variable also supports @samp{dist_} and @samp{nodist_} prefixes,
 3867: @c e.g., @samp{nodist_EXTRA_maude_SOURCES}.
 3868: @c 
 3869: この変数は,例えば@samp{nodist_EXTRA_maude_SOURCES}のように,
 3870: @samp{dist_}と@samp{nodist_}もサポートします.
 3871: 
 3872: @item maude_AR
 3873: @c A static library is created by default by invoking @code{$(AR) cru}
 3874: @c followed by the name of the library and then the objects being put into
 3875: @c the library.  You can override this by setting the @samp{_AR} variable.
 3876: @c This is usually used with C++; some C++ compilers require a special
 3877: @c invocation in order to instantiate all the templates which should go
 3878: @c into a library.  For instance, the SGI C++ compiler likes this variable set
 3879: @c like so:
 3880: @c 
 3881: スタティックライブラリは,デフォルトで,@code{$(AR) cru}にライブラリ名と
 3882: ライブラリに書き込むオブジェクトを続けて呼び出すことで作成されます.
 3883: @samp{_AR}変数でこれに優先することが可能です.これは,通常C++で使用され
 3884: ます.C++コンパイラには,ライブラリに組み込むすべてのテンプレートを
 3885: instantiateするために,特殊な呼び出しが必要なものもあります.例えば,SGI
 3886: C++コンパイラは,この変数を以下のように設定します.
 3887: @example
 3888: libmaude_a_AR = $(CXX) -ar -o
 3889: @end example
 3890: 
 3891: @item maude_LIBADD
 3892: @c Extra objects can be added to a library using the @samp{_LIBADD}
 3893: @c variable.  This should be used for objects determined by
 3894: @c @code{configure}.
 3895: @c 
 3896: @samp{_LIBADD}変数を使用することで,追加のオブジェクトをライブラリに加え
 3897: ることが可能です.これは,@code{configure}で決定されるオブジェクトに対し
 3898: て使用すべきです.
 3899: 
 3900: @item maude_LDADD
 3901: @c Extra objects can be added to a shared library or a program by listing
 3902: @c them in the @samp{_LDADD} variable.  This should be used for objects
 3903: @c determined by @code{configure}.
 3904: @c 
 3905: @samp{_LDADD}変数に追加のオブジェクトをリストアップすることで,共有ライ
 3906: ブラリやプログラムに加えることが可能です.これは,@code{configure}で決定
 3907: されるオブジェクトに対して使用すべきです.
 3908: 
 3909: @c @samp{_LDADD} and @samp{_LIBADD} are inappropriate for passing
 3910: @c program-specific linker flags (except for @samp{-l}, @samp{-L},
 3911: @c @samp{-dlopen} and @samp{-dlpreopen}).  Use the @samp{_LDFLAGS} variable
 3912: @c for this purpose.
 3913: @c 
 3914: (@samp{-l},@samp{-L},@samp{-dlopen},そして@samp{-dlpreopen}以外の)プ
 3915: ログラム特有のリンカフラグを渡すために@samp{_LDADD}と@samp{_LIBADD}を使
 3916: 用することは不適切です.この目的に対しては,@samp{_LDFLAGS}変数を使用し
 3917: てください.
 3918: 
 3919: @c For instance, if your @file{configure.in} uses @code{AC_PATH_XTRA}, you
 3920: @c could link your program against the X libraries like so:
 3921: @c 
 3922: 例えば,@file{configure.in}で@code{AC_PATH_XTRA}を使用している場合,Xの
 3923: ライブラリに対してプログラムをリンクするため,以下のようにすることが可能
 3924: でしょう.
 3925: 
 3926: @example
 3927: maude_LDADD = $(X_PRE_LIBS) $(X_LIBS) $(X_EXTRA_LIBS)
 3928: @end example
 3929: 
 3930: @item maude_LDFLAGS
 3931: @c This variable is used to pass extra flags to the link step of a program
 3932: @c or a shared library.
 3933: @c 
 3934: これは,プログラムや共有ライブラリのリンク段階に特別なフラグを渡すために
 3935: 使用する変数です.
 3936: 
 3937: @item maude_LINK
 3938: @c You can override the linker on a per-program basis.  By default the
 3939: @c linker is chosen according to the languages used by the program.  For
 3940: @c instance, a program that includes C++ source code would use the C++
 3941: @c compiler to link.  The @samp{_LINK} variable must hold the name of a
 3942: @c command which can be passed all the @file{.o} file names as arguments.
 3943: @c Note that the name of the underlying program is @emph{not} passed to
 3944: @c @samp{_LINK}; typically one uses @samp{$@@}:
 3945: @c 
 3946: プログラムごとを基本として,(デフォルトの)リンカに優先することが可能です.
 3947: デフォルトで,プログラムで使用されている言語によってリンカは選択されます.
 3948: 例えば,C++のソースコードを含むプログラムでは,C++コンパイラがリンクに使
 3949: 用されます.@samp{_LINK}変数は,すべての@file{.o}ファイル名を引数として
 3950: 渡すことが可能なコマンドの名前を含んでいる必要があります.基礎となるプロ
 3951: グラム名は,@samp{_LINK}に渡され@emph{ない}ことに注意してください.通常
 3952: は@samp{$@@}を使用します.
 3953: 
 3954: @example
 3955: maude_LINK = $(CCLD) -magic -o $@@
 3956: @end example
 3957: 
 3958: @item maude_CCASFLAGS
 3959: @itemx maude_CFLAGS
 3960: @itemx maude_CPPFLAGS
 3961: @itemx maude_CXXFLAGS
 3962: @itemx maude_FFLAGS
 3963: @itemx maude_GCJFLAGS
 3964: @itemx maude_LFLAGS
 3965: @itemx maude_OBJCFLAGS
 3966: @itemx maude_RFLAGS
 3967: @itemx maude_YFLAGS
 3968: @c Automake allows you to set compilation flags on a per-program (or
 3969: @c per-library) basis.  A single source file can be included in several
 3970: @c programs, and it will potentially be compiled with different flags for
 3971: @c each program.  This works for any language directly supported by
 3972: @c Automake.  The flags are
 3973: @c @samp{_CCASFLAGS},
 3974: @c @samp{_CFLAGS},
 3975: @c @samp{_CPPFLAGS},
 3976: @c @samp{_CXXFLAGS},
 3977: @c @samp{_FFLAGS},
 3978: @c @samp{_GCJFLAGS},
 3979: @c @samp{_LFLAGS},
 3980: @c @samp{_OBJCFLAGS},
 3981: @c @samp{_RFLAGS}, and
 3982: @c @samp{_YFLAGS}.
 3983: @c 
 3984: Automakeでは,プログラムごと(またはライブラリごと)を基本として,コンパイ
 3985: ルフラグを設定することが可能です.単一のソースファイルを複数のプログラム
 3986: に含めることが可能で,それぞれのプログラムに対して異なるフラグでコンパイ
 3987: ルされる可能性もあります.これは,あらゆる言語に対し,直接Automakeがサポー
 3988: トすることで動作します.フラグは,
 3989: @samp{_CCASFLAGS},
 3990: @samp{_CFLAGS},
 3991: @samp{_CPPFLAGS},
 3992: @samp{_CXXFLAGS},
 3993: @samp{_FFLAGS},
 3994: @samp{_GCJFLAGS},
 3995: @samp{_LFLAGS},
 3996: @samp{_OBJCFLAGS},
 3997: @samp{_RFLAGS},そして
 3998: @samp{_YFLAGS}です.
 3999: 
 4000: @c When using a per-program compilation flag, Automake will choose a
 4001: @c different name for the intermediate object files.  Ordinarily a file
 4002: @c like @file{sample.c} will be compiled to produce @file{sample.o}.
 4003: @c However, if the program's @samp{_CFLAGS} variable is set, then the
 4004: @c object file will be named, for instance, @file{maude-sample.o}.
 4005: @c 
 4006: プログラムごとにコンパイルフラグを使用するとき,Automakeは,中間的なオブ
 4007: ジェクトファイルに対して異なる名前を選択します.通常,@file{sample.c}の
 4008: ようなファイルは,コンパイルされて@file{sample.o}が生成されます.しかし,
 4009: プログラムの@samp{_CFLAGS}変数を設定した場合,オブジェクトファイルは,例
 4010: えば@file{maude-sample.o}のように命名されます.
 4011: 
 4012: @c In compilations with per-program flags, the ordinary @samp{AM_} form of
 4013: @c the flags variable is @emph{not} automatically included in the
 4014: @c compilation (however, the user form of the variable @emph{is} included).
 4015: @c So for instance, if you want the hypothetical @file{maude} compilations
 4016: @c to also use the value of @samp{AM_CFLAGS}, you would need to write:
 4017: @c 
 4018: プログラムごとにフラグを用いてコンパイルする際は,通常の@samp{AM_}形式の
 4019: フラグ変数は自動的にコンパイルに組み込まれ@emph{ません}(しかし,ユーザ形
 4020: 式の変数は組み込まれ@emph{ます}).そのため,例えば,@samp{AM_CFLAGS}の変
 4021: 数も使用して@file{maude}のコンパイルを行なうと仮定すると,以下のように書
 4022: く必要があります.
 4023: 
 4024: @example
 4025: maude_CFLAGS = @dots{} your flags @dots{} $(AM_CFLAGS)
 4026: @end example
 4027: 
 4028: 
 4029: @item maude_DEPENDENCIES
 4030: @c It is also occasionally useful to have a program depend on some other
 4031: @c target which is not actually part of that program.  This can be done
 4032: @c using the @samp{_DEPENDENCIES} variable.  Each program depends on the
 4033: @c contents of such a variable, but no further interpretation is done.
 4034: @c 
 4035: 実際には,プログラムの一部にはならない他のターゲットに依存するプログラム
 4036: があることが,役に立つ場合もあります.これは,@samp{_DEPENDENCIES}変数を
 4037: 使用することで可能になります.それぞれのプログラムは,その変数の内容に依
 4038: 存しますが,それ以上の解釈はなされません.
 4039: 
 4040: @c If @samp{_DEPENDENCIES} is not supplied, it is computed by Automake.
 4041: @c The automatically-assigned value is the contents of @samp{_LDADD} or
 4042: @c @samp{_LIBADD}, with most configure substitutions, @samp{-l}, @samp{-L},
 4043: @c @samp{-dlopen} and @samp{-dlpreopen} options removed.  The configure
 4044: @c substitutions that are left in are only @samp{@@LIBOBJS@@} and
 4045: @c @samp{@@ALLOCA@@}; these are left because it is known that they will not
 4046: @c cause an invalid value for @samp{_DEPENDENCIES} to be generated.
 4047: @c 
 4048: @samp{_DEPENDENCIES}が提供されていない場合,それはAutomakeが考慮します.
 4049: 自動的に割り当てられる値は@samp{_LDADD}や@samp{_LIBADD}の内容で,ほとん
 4050: どのconfigure置換式,@samp{-l},@samp{-L},@samp{-dlopen},そして
 4051: @samp{-dlpreopen}は削除されています.残っているconfigureの置換式は,
 4052: @samp{@@LIBOBJS@@}と@samp{@@ALLOCA@@}です.これらは,生成される
 4053: @samp{_DEPENDENCIES}に対して無効な値を生成しないことが分かっているので残
 4054: されます.
 4055: 
 4056: @item maude_SHORTNAME
 4057: @c On some platforms the allowable file names are very short.  In order to
 4058: @c support these systems and per-program compilation flags at the same
 4059: @c time, Automake allows you to set a ``short name'' which will influence
 4060: @c how intermediate object files are named.  For instance, if you set
 4061: @c @samp{maude_SHORTNAME} to @samp{m}, then in the above per-program
 4062: @c compilation flag example the object file would be named
 4063: @c @file{m-sample.o} rather than @file{maude-sample.o}.  This facility is
 4064: @c rarely needed in practice, and we recommend avoiding it until you find
 4065: @c it is required.
 4066: @c 
 4067: 利用可能なファイル名が非常に短いプラットフォームもあります.これらのシス
 4068: テムと,プログラムごとのコンパイルフラグを同時にサポートするために,
 4069: Automakeでは,中間的なオブジェクトファイルの命名方法に影響する``短い名前'' 
 4070: を設定することが可能です.例えば,@samp{maude_SHORTNAME}を@samp{m}に設定
 4071: する場合,上記のプログラムごとのコンパイルフラグの例では,オブジェクトファ
 4072: イルは@file{maude-sample.o}ではなく@file{m-sample.o}と命名されます.この
 4073: 機能は,実行上滅多に必要になりませんし,要求されていることが分かるまで使
 4074: 用を避けることを推奨します.
 4075: @end table
 4076: 
 4077: 
 4078: @node LIBOBJS, Program variables, Program and Library Variables, Programs
 4079: @c @section Special handling for LIBOBJS and ALLOCA
 4080: @section LIBOBJSとALLOCAに対する特別扱い
 4081: 
 4082: @cindex @@LIBOBJS@@, special handling
 4083: @cindex @@ALLOCA@@, special handling
 4084: 
 4085: @c Automake explicitly recognizes the use of @code{@@LIBOBJS@@} and
 4086: @c @code{@@ALLOCA@@}, and uses this information, plus the list of
 4087: @c @code{LIBOBJS} files derived from @file{configure.in} to automatically
 4088: @c include the appropriate source files in the distribution (@pxref{Dist}).
 4089: @c These source files are also automatically handled in the
 4090: @c dependency-tracking scheme; see @xref{Dependencies}.
 4091: @c 
 4092: Automakeは,@code{@@LIBOBJS@@}と@code{@@ALLOCA@@}を使用していることを明
 4093: 示的に認識し,そしてこの情報を使用し,配布物に適切なソースファイルを自動
 4094: 的に含めるため(@pxref{Dist}),@file{configure.in}から派生される
 4095: @code{LIBOBJS}ファイルのリストに追加します.これらのソースファイルは,依
 4096: 存性追跡でも自動的に処理されます.@xref{Dependencies}.
 4097: 
 4098: @c @code{@@LIBOBJS@@} and @code{@@ALLOCA@@} are specially recognized in any
 4099: @c @samp{_LDADD} or @samp{_LIBADD} variable.
 4100: @c 
 4101: @code{@@LIBOBJS@@}と@code{@@ALLOCA@@}は,あらゆる@samp{_LDADD}や
 4102: @samp{_LIBADD}で特別に認識されます.
 4103: 
 4104: 
 4105: @node Program variables, Yacc and Lex, LIBOBJS, Programs
 4106: @c @section Variables used when building a program
 4107: @section プログラムビルド時に使用される変数
 4108: 
 4109: @c Occasionally it is useful to know which @file{Makefile} variables
 4110: @c Automake uses for compilations; for instance you might need to do your
 4111: @c own compilation in some special cases.
 4112: @c 
 4113: Automakeがコンパイルに使用する@file{Makefile}変数を知ることが役に立ちつ
 4114: こともあります.例えば,特別な状況では,自分でコンパイルをする必要がある
 4115: かもしれません.
 4116: 
 4117: @c Some variables are inherited from Autoconf; these are @code{CC},
 4118: @c @code{CFLAGS}, @code{CPPFLAGS}, @code{DEFS}, @code{LDFLAGS}, and
 4119: @c @code{LIBS}.
 4120: @c 
 4121: Autoconfから継承される変数もあります.これらは@code{CC},@code{CFLAGS},
 4122: @code{CPPFLAGS},@code{DEFS},@code{LDFLAGS},そして@code{LIBS}です.
 4123: @vindex CC
 4124: @vindex CFLAGS
 4125: @vindex CPPFLAGS
 4126: @vindex DEFS
 4127: @vindex LDFLAGS
 4128: @vindex LIBS
 4129: 
 4130: @c There are some additional variables which Automake itself defines:
 4131: @c 
 4132: Automake自身が定義する追加の変数もあります.
 4133: 
 4134: @vtable @code
 4135: @item AM_CPPFLAGS
 4136: @c The contents of this variable are passed to every compilation which invokes
 4137: @c the C preprocessor; it is a list of arguments to the preprocessor.  For
 4138: @c instance, @samp{-I} and @samp{-D} options should be listed here.
 4139: @c 
 4140: この変数の内容は,Cプリプロセッサを呼び出すコンパイルで毎回渡されます.
 4141: それはプリプロセッサへの引数リストです.例えば,@samp{-I}と@samp{-D}オプ
 4142: ションは,ここにリストアップすべきです.
 4143: 
 4144: @c Automake already provides some @samp{-I} options automatically.  In
 4145: @c particular it generates @samp{-I$(srcdir)}, @samp{-I.}, and a @samp{-I}
 4146: @c pointing to the directory holding @file{config.h} (if you've used
 4147: @c @code{AC_CONFIG_HEADERS} or @code{AM_CONFIG_HEADER}).  You can disable
 4148: @c the default @samp{-I} options using the @samp{nostdinc} option.
 4149: @c 
 4150: Automakeは,すでに@samp{-I}オプションを自動的に提供しています.特に,
 4151: @samp{-I$(srcdir)},@samp{-I.},そして(@code{AC_CONFIG_HEADERS}や
 4152: @code{AM_CONFIG_HEADER}を使用している場合は)@file{config.h}があるディレ
 4153: クトリを示す@samp{-I}を生成します.@samp{nostdinc}オプションを使用するこ
 4154: とで,デフォルトの@samp{-I}オプションを利用不可能にすることが可能です.
 4155: 
 4156: @c @code{AM_CPPFLAGS} is ignored in preference to a per-executable (or
 4157: @c per-library) @code{_CPPFLAGS} variable if it is defined.
 4158: @c 
 4159: 実行形式ごと(またはライブラリごと)に@code{_CPPFLAGS}変数が定義されている
 4160: 場合,それを優先するので,@code{AM_CPPFLAGS}は無視されます,
 4161: 
 4162: @item INCLUDES
 4163: @c This does the same job as @samp{AM_CPPFLAGS}.  It is an older name for
 4164: @c the same functionality.  This variable is deprecated; we suggest using
 4165: @c @samp{AM_CPPFLAGS} instead.
 4166: @c 
 4167: これは,@samp{AM_CPPFLAGS}と同じ仕事をします.それは同じ機能に対する古い
 4168: 名前です.この変数の使用には反対です.代わりに@samp{AM_CPPFLAGS}の使用を
 4169: 勧めます.
 4170: 
 4171: @item AM_CFLAGS
 4172: @c This is the variable which the @file{Makefile.am} author can use to pass
 4173: @c in additional C compiler flags.  It is more fully documented elsewhere.
 4174: @c In some situations, this is not used, in preference to the
 4175: @c per-executable (or per-library) @code{_CFLAGS}.
 4176: @c 
 4177: これは,@file{Makefile.am}の著者が,追加のCコンパイラフラグを渡すために
 4178: 使用することが可能な変数です.その完全な説明はどこかにあるでしょう.状況
 4179: によっては,実行形式ごと(またはライブラリごと)の@code{_CFLAGS}が優先され,
 4180: これは使用されません.
 4181: 
 4182: @item COMPILE
 4183: @c This is the command used to actually compile a C source file.  The
 4184: @c filename is appended to form the complete command line.
 4185: @c 
 4186: これはCソースファイルをコンパイルするために実際に使用されるコマンドです.
 4187: 完全なコマンドラインを構成するために,ファイル名が追加されます.
 4188: 
 4189: @item AM_LDFLAGS
 4190: @c This is the variable which the @file{Makefile.am} author can use to pass
 4191: @c in additional linker flags.  In some situations, this is not used, in
 4192: @c preference to the per-executable (or per-library) @code{_LDFLAGS}.
 4193: @c 
 4194: これは,@file{Makefile.am}の著者が,追加のリンカフラグを渡すために使用す
 4195: ることが可能な変数です.状況によっては,実行形式ごと(またはライブラリご
 4196: と)の@code{_LDFLAGS}が優先され,これは使用されません.
 4197: 
 4198: @item LINK
 4199: @c This is the command used to actually link a C program.  It already
 4200: @c includes @samp{-o $@@} and the usual variable references (for instance,
 4201: @c @code{CFLAGS}); it takes as ``arguments'' the names of the object files
 4202: @c and libraries to link in.
 4203: @c 
 4204: これはCプログラムをリンクするために実際に使用されるコマンドです.それに
 4205: はすでに,@samp{-o $@@}と通常参照される変数(例えば,@code{CFLAGS})が含ま
 4206: れています.それは,リンクされるオブジェクトファイルとライブラリの名前を
 4207: ``引数''として受けとります.
 4208: @end vtable
 4209: 
 4210: 
 4211: @node Yacc and Lex, C++ Support, Program variables, Programs
 4212: @c @section Yacc and Lex support
 4213: @section YaccとLexのサポート
 4214: 
 4215: @c Automake has somewhat idiosyncratic support for Yacc and Lex.
 4216: @c 
 4217: AutomakeはYaccとLexに対して幾分特異なサポートを行ないます.
 4218: 
 4219: @c Automake assumes that the @file{.c} file generated by @code{yacc} (or
 4220: @c @code{lex}) should be named using the basename of the input file.  That
 4221: @c is, for a yacc source file @file{foo.y}, Automake will cause the
 4222: @c intermediate file to be named @file{foo.c} (as opposed to
 4223: @c @file{y.tab.c}, which is more traditional).
 4224: @c 
 4225: Automakeは,@code{yacc}(あるいは@code{lex})によって生成された@file{.c}ファ
 4226: イルが,入力ファイルのベース名を使用して命名されていると仮定します.すな
 4227: わち,yaccソースファイル@file{foo.y}に対して,Automakeは中間ファイルを
 4228: (より伝統的な@file{y.tab.c}ではなく)@file{foo.c}と命名します.
 4229: 
 4230: @c The extension of a yacc source file is used to determine the extension
 4231: @c of the resulting @samp{C} or @samp{C++} file.  Files with the extension
 4232: @c @samp{.y} will be turned into @samp{.c} files; likewise, @samp{.yy} will
 4233: @c become @samp{.cc}; @samp{.y++}, @samp{c++}; and @samp{.yxx},
 4234: @c @samp{.cxx}.
 4235: @c 
 4236: yaccソースファイルの拡張子は,結果として生じる@samp{C}あるいは@samp{C++} 
 4237: ファイルの拡張子を決定するために使用されます.ファイルの拡張子が
 4238: @samp{.y}の場合は@samp{.c}になります.同様に@samp{.yy}は@samp{.cc}に,
 4239: @samp{.y++}は@samp{c++}に,そして@samp{.yxx}は@samp{.cxx}になります.
 4240: 
 4241: @c Likewise, lex source files can be used to generate @samp{C} or
 4242: @c @samp{C++}; the extensions @samp{.l}, @samp{.ll}, @samp{.l++}, and
 4243: @c @samp{.lxx} are recognized.
 4244: @c 
 4245: 同様に,lexソースファイルは,@samp{C}や@samp{C++}を生成するために使用す
 4246: ることが可能です.拡張子の@samp{.l},@samp{.ll},@samp{.l++},そして
 4247: @samp{.lxx}が認識されます.
 4248: 
 4249: @c You should never explicitly mention the intermediate (@samp{C} or
 4250: @c @samp{C++}) file in any @samp{SOURCES} variable; only list the source
 4251: @c file.
 4252: @c 
 4253: あらゆる@samp{SOURCES}変数に,(@samp{C}や@samp{C++}の)中間的なファイルを
 4254: 明示的に書いてはいけません.ソースファイルだけをリストアップします.
 4255: 
 4256: @c The intermediate files generated by @code{yacc} (or @code{lex}) will be
 4257: @c included in any distribution that is made.  That way the user doesn't
 4258: @c need to have @code{yacc} or @code{lex}.
 4259: @c 
 4260: @code{yacc}(あるいは@code{lex})によって生成さる中間的なファイルは,作成
 4261: されるすべての配布物に含められます.そのためユーザが@code{yacc}や
 4262: @code{lex}を持っている必要がありません.
 4263: 
 4264: @c If a @code{yacc} source file is seen, then your @file{configure.in} must
 4265: @c define the variable @samp{YACC}.  This is most easily done by invoking
 4266: @c the macro @samp{AC_PROG_YACC} (@pxref{Particular Programs, , Particular
 4267: @c Program Checks, autoconf, The Autoconf Manual}).
 4268: @c 
 4269: @code{yacc}ソースファイルが見つかった場合,@file{configure.in}で変数
 4270: @samp{YACC}を定義する必要があります.これは,マクロ@samp{AC_PROG_YACC}を
 4271: 呼び出すことで最も容易に行なえます(@pxref{Particular Programs, ,
 4272: Particular Program Checks, autoconf, The Autoconf Manual}).
 4273: 
 4274: @c When @code{yacc} is invoked, it is passed @samp{YFLAGS} and
 4275: @c @samp{AM_YFLAGS}.  The former is a user variable and the latter is
 4276: @c intended for the @file{Makefile.am} author.
 4277: @c 
 4278: @code{yacc}が呼び出された時,@samp{YFLAGS}と@samp{AM_YFLAGS}フラグが渡さ
 4279: れます.前者はユーザ変数で,後者は@file{Makefile.am}の著者のためのもので
 4280: す.
 4281: 
 4282: @c Similarly, if a @code{lex} source file is seen, then your
 4283: @c @file{configure.in} must define the variable @samp{LEX}.  You can use
 4284: @c @samp{AC_PROG_LEX} to do this (@pxref{Particular Programs, , Particular
 4285: @c Program Checks, autoconf, The Autoconf Manual}), but using
 4286: @c @code{AM_PROG_LEX} macro (@pxref{Macros}) is recommended.
 4287: @c 
 4288: 同様に,@code{lex}ソースファイルがある場合,@file{configure.in}で変数
 4289: @samp{LEX}を定義する必要があります.こうするために@samp{AC_PROG_LEX}を使
 4290: 用することが可能ですが(@pxref{Particular Programs, , Particular Program
 4291: Checks, autoconf, The Autoconf Manual}),@code{AM_PROG_LEX}マクロ
 4292: (@pxref{Macros})の使用を推奨します.
 4293: 
 4294: @c When @code{lex} is invoked, it is passed @samp{LFLAGS} and
 4295: @c @samp{AM_LFLAGS}.  The former is a user variable and the latter is
 4296: @c intended for the @file{Makefile.am} author.
 4297: @c 
 4298: @code{lex}が呼び出されたとき,@samp{LFLAGS}と@samp{AM_LFLAGS}フラグが渡
 4299: されます.前者はユーザ変数で,後者は@file{Makefile.am}の著者のためのもの
 4300: です.
 4301: 
 4302: 
 4303: 
 4304: @cindex ylwrap
 4305: @cindex yacc, multiple parsers
 4306: @cindex Multiple yacc parsers
 4307: @cindex Multiple lex lexers
 4308: @cindex lex, multiple lexers
 4309: 
 4310: 
 4311: @c Automake makes it possible to include multiple @code{yacc} (or
 4312: @c @code{lex}) source files in a single program.  When there is more than
 4313: @c one distinct @code{yacc} (or @code{lex}) source file in a directory,
 4314: @c Automake uses a small program called @code{ylwrap} to run @code{yacc}
 4315: @c (or @code{lex}) in a subdirectory.  This is necessary because yacc's
 4316: @c output filename is fixed, and a parallel make could conceivably invoke
 4317: @c more than one instance of @code{yacc} simultaneously.  The @code{ylwrap}
 4318: @c program is distributed with Automake.  It should appear in the directory
 4319: @c specified by @samp{AC_CONFIG_AUX_DIR} (@pxref{Input, , Finding
 4320: @c `configure' Input, autoconf, The Autoconf Manual}), or the current
 4321: @c directory if that macro is not used in @file{configure.in}.
 4322: @c 
 4323: Automakeで,一つのプログラムに複数の@code{yacc}(または@code{lex})ソース
 4324: ファイルを含めることが可能になります.ディレクトリに一つ以上の異なる
 4325: @code{yacc} (または@code{lex})のソースファイルがあるとき,Automakeは,サ
 4326: ブディレクトリで@code{yacc}(または@code{lex})を実行するために,
 4327: @code{ylwrap}と呼ばれる小さいプログラムを使用します.これが必要になるの
 4328: は,yaccの出力ファイル名が固定されていて,並列的なmakeで@code{yacc}の一
 4329: つ以上のインスタンスを同時に呼び出す可能性があるためです.@code{ylwrap}
 4330: プログラムは,Automakeと一緒に配布されます.それは
 4331: @samp{AC_CONFIG_AUX_DIR}が指定するディレクトリ (@pxref{Input, , Finding
 4332: `configure' Input, autoconf, The Autoconf Manual}),または,そのマクロが
 4333: @file{configure.in}で使用されていない場合はカレントディレクトリにありま
 4334: す.
 4335: 
 4336: @c For @code{yacc}, simply managing locking is insufficient.  The output of
 4337: @c @code{yacc} always uses the same symbol names internally, so it isn't
 4338: @c possible to link two @code{yacc} parsers into the same executable.
 4339: @c 
 4340: @code{yacc}に対しては,簡単なロックでの管理は不十分です.@code{yacc}の出
 4341: 力は,内部で常に同じシンボル名を使うので,同じ実行形式の中に二つの
 4342: @code{yacc}パーサーをリンクするは不可能です.
 4343: 
 4344: @c We recommend using the following renaming hack used in @code{gdb}:
 4345: @c 
 4346: @code{gdb}では,使用する名前を以下のように変更してください.
 4347: @example
 4348: #define	yymaxdepth c_maxdepth
 4349: #define	yyparse	c_parse
 4350: #define	yylex	c_lex
 4351: #define	yyerror	c_error
 4352: #define	yylval	c_lval
 4353: #define	yychar	c_char
 4354: #define	yydebug	c_debug
 4355: #define	yypact	c_pact
 4356: #define	yyr1	c_r1
 4357: #define	yyr2	c_r2
 4358: #define	yydef	c_def
 4359: #define	yychk	c_chk
 4360: #define	yypgo	c_pgo
 4361: #define	yyact	c_act
 4362: #define	yyexca	c_exca
 4363: #define yyerrflag c_errflag
 4364: #define yynerrs	c_nerrs
 4365: #define	yyps	c_ps
 4366: #define	yypv	c_pv
 4367: #define	yys	c_s
 4368: #define	yy_yys	c_yys
 4369: #define	yystate	c_state
 4370: #define	yytmp	c_tmp
 4371: #define	yyv	c_v
 4372: #define	yy_yyv	c_yyv
 4373: #define	yyval	c_val
 4374: #define	yylloc	c_lloc
 4375: #define yyreds	c_reds
 4376: #define yytoks	c_toks
 4377: #define yylhs	c_yylhs
 4378: #define yylen	c_yylen
 4379: #define yydefred c_yydefred
 4380: #define yydgoto	c_yydgoto
 4381: #define yysindex c_yysindex
 4382: #define yyrindex c_yyrindex
 4383: #define yygindex c_yygindex
 4384: #define yytable	 c_yytable
 4385: #define yycheck	 c_yycheck
 4386: #define yyname   c_yyname
 4387: #define yyrule   c_yyrule
 4388: @end example
 4389: 
 4390: @c For each define, replace the @samp{c_} prefix with whatever you like.
 4391: @c These defines work for @code{bison}, @code{byacc}, and traditional
 4392: @c @code{yacc}s.  If you find a parser generator that uses a symbol not
 4393: @c covered here, please report the new name so it can be added to the list.
 4394: @c 
 4395: それぞれの定義に対して,@samp{c_}接頭辞は好みのものに置き換えて下さい.
 4396: これらは,@code{bison},@code{byacc},そして伝統的な@code{yacc}に対する
 4397: 動作を定義します.パーサジェネレータが,ここでカバーされていないシンボル
 4398: を使用していることが分かった場合,リストに加えることができるように,新し
 4399: い名前を報告してください.
 4400: 
 4401: 
 4402: @node C++ Support, Assembly Support, Yacc and Lex, Programs
 4403: @c @section C++ Support
 4404: @section C++のサポート
 4405: 
 4406: @cindex C++ support
 4407: @cindex Support for C++
 4408: 
 4409: @c Automake includes full support for C++.
 4410: @c 
 4411: Automakeには,C++に対する完全なサポートが含まれています.
 4412: 
 4413: @c Any package including C++ code must define the output variable
 4414: @c @samp{CXX} in @file{configure.in}; the simplest way to do this is to use
 4415: @c the @code{AC_PROG_CXX} macro (@pxref{Particular Programs, , Particular
 4416: @c Program Checks, autoconf, The Autoconf Manual}).
 4417: @c 
 4418: C++コードを含んでいるすべてのパッケージでは,@file{configure.in}で出力変
 4419: 数@samp{CXX}を定義する必要があります.これを行う最も単純な方法は,
 4420: @code{AC_PROG_CXX}マクロを使用することです(@pxref{Particular Programs, ,
 4421: Particular Program Checks, autoconf, The Autoconf Manual}).
 4422: 
 4423: @c A few additional variables are defined when a C++ source file is seen:
 4424: @c 
 4425: C++ソースファイルがあるとき,少しだけ追加変数が定義されます.
 4426: 
 4427: @vtable @code
 4428: @item CXX
 4429: @c The name of the C++ compiler.
 4430: @c 
 4431: C++コンパイラの名前です.
 4432: 
 4433: @item CXXFLAGS
 4434: @c Any flags to pass to the C++ compiler.
 4435: @c 
 4436: C++コンパイラに渡すすべてのフラグです.
 4437: 
 4438: @item AM_CXXFLAGS
 4439: @c The maintainer's variant of @code{CXXFLAGS}.
 4440: @c 
 4441: 管理者のための@code{CXXFLAGS}です.
 4442: 
 4443: @item CXXCOMPILE
 4444: @c The command used to actually compile a C++ source file.  The file name
 4445: @c is appended to form the complete command line.
 4446: @c 
 4447: C++ソースファイルを実際にコンパイルするために使用されるコマンドです.完
 4448: 全なコマンドラインを構成するためにファイル名が追加されます.
 4449: 
 4450: @item CXXLINK
 4451: @c The command used to actually link a C++ program.
 4452: @c 
 4453: 実際にC++プログラムをリンクするコマンドです.
 4454: @end vtable
 4455: 
 4456: 
 4457: @node Assembly Support, Fortran 77 Support, C++ Support, Programs
 4458: @c @section Assembly Support
 4459: @section アセンブラのサポート
 4460: 
 4461: @c Automake includes some support for assembly code.
 4462: @c 
 4463: Automakeは,アセンブラコードに対するサポートも含んでいます.
 4464: 
 4465: @c The variable @code{CCAS} holds the name of the compiler used to build
 4466: @c assembly code.  This compiler must work a bit like a C compiler; in
 4467: @c particular it must accept @samp{-c} and @samp{-o}.  The value of
 4468: @c @code{CCASFLAGS} is passed to the compilation.
 4469: @c 
 4470: 変数@code{CCAS}には,アセンブラコードをビルドするために使用するコンパイ
 4471: ラ名が保持されています.このコンパイラは,Cコンパイラにちょっと似ている
 4472: 動作をする必要があります.特に,それは@samp{-c}と@samp{-o}を受け入れる必
 4473: 要があります.@code{CCASFLAGS}の値はコンパイラに渡されます.
 4474: @vindex CCAS
 4475: @vindex CCASFLAGS
 4476: 
 4477: @c You are required to set @code{CCAS} and @code{CCASFLAGS} via
 4478: @c @file{configure.in}.  The autoconf macro @code{AM_PROG_AS} will do this
 4479: @c for you.  Unless they are already set, it simply sets @code{CCAS} to the
 4480: @c C compiler and @code{CCASFLAGS} to the C compiler flags.
 4481: @c 
 4482: @file{configure.in}で@code{CCAS}と@code{CCASFLAGS}を設定する必要がありま
 4483: す.autoconfマクロの@code{AM_PROG_AS}でこれを行ないます.前もって設定さ
 4484: れていない場合は,@code{CCAS}をCコンパイラに, @code{CCASFLAGS}をCコンパ
 4485: イラフラグに,単純に設定します.
 4486: 
 4487: @c Only the suffixes @samp{.s} and @samp{.S} are recognized by
 4488: @c @code{automake} as being files containing assembly code.
 4489: @c 
 4490: 接尾子の@samp{.s}と@samp{.S}だけがアセンブリコードを含んでいるファイルだ
 4491: と@code{automake}で認識されます.
 4492: 
 4493: 
 4494: @node Fortran 77 Support, Java Support, Assembly Support, Programs
 4495: @comment  node-name,  next,  previous,  up
 4496: @c @section Fortran 77 Support
 4497: @section Fortran 77のサポート
 4498: 
 4499: @cindex Fortran 77 support
 4500: @cindex Support for Fortran 77
 4501: 
 4502: @c Automake includes full support for Fortran 77.
 4503: @c 
 4504: Automakeには,Fortran 77に対する完全なサポートが含まれています.
 4505: 
 4506: @c Any package including Fortran 77 code must define the output variable
 4507: @c @samp{F77} in @file{configure.in}; the simplest way to do this is to use
 4508: @c the @code{AC_PROG_F77} macro (@pxref{Particular Programs, , Particular
 4509: @c Program Checks, autoconf, The Autoconf Manual}).  @xref{Fortran 77 and
 4510: @c Autoconf}.
 4511: @c 
 4512: Fortran 77コードを含むパッケージでは,@file{configure.in}で出力変数
 4513: @samp{F77}を定義する必要があります.こうするための最も簡単な方法は
 4514: @code{AC_PROG_F77}マクロを使用することです(@pxref{Particular Programs, ,
 4515: Particular Program Checks, autoconf, The Autoconf Manual}).
 4516: @xref{Fortran 77 and Autoconf}.
 4517: 
 4518: @c A few additional variables are defined when a Fortran 77 source file is
 4519: @c seen:
 4520: @c 
 4521: Fortran 77ソースファイルが見つかるときは,追加変数がいくつか定義されます.
 4522: 
 4523: @vtable @code
 4524: 
 4525: @item F77
 4526: @c The name of the Fortran 77 compiler.
 4527: @c 
 4528: Fortran 77コンパイラの名前です.
 4529: 
 4530: @item FFLAGS
 4531: @c Any flags to pass to the Fortran 77 compiler.
 4532: @c 
 4533: Fortran 77コンパイラに渡す,すべてのフラグです.
 4534: 
 4535: @item AM_FFLAGS
 4536: @c The maintainer's variant of @code{FFLAGS}.
 4537: @c 
 4538: 管理者のための@code{FFLAGS}です.
 4539: 
 4540: @item RFLAGS
 4541: @c Any flags to pass to the Ratfor compiler.
 4542: @c 
 4543: Ratforコンパイラに渡す,すべてのフラグです.
 4544: 
 4545: @item AM_RFLAGS
 4546: @c The maintainer's variant of @code{RFLAGS}.
 4547: @c 
 4548: 管理者のための@code{RFLAGS}です.
 4549: 
 4550: @item F77COMPILE
 4551: @c The command used to actually compile a Fortran 77 source file.  The file
 4552: @c name is appended to form the complete command line.
 4553: @c 
 4554: 実際にFortran 77ソースファイルをコンパイルするコマンドです.完全なコマン
 4555: ドラインを構成するために,ファイル名が追加されます.
 4556: 
 4557: @item FLINK
 4558: @c The command used to actually link a pure Fortran 77 program or shared
 4559: @c library.
 4560: @c 
 4561: 実際に純粋なFortran 77プログラムあるいは共有ライブラリをリンクするコマン
 4562: ドです.
 4563: 
 4564: @end vtable
 4565: 
 4566: @c Automake can handle preprocessing Fortran 77 and Ratfor source files in
 4567: @c addition to compiling them@footnote{Much, if not most, of the
 4568: @c information in the following sections pertaining to preprocessing
 4569: @c Fortran 77 programs was taken almost verbatim from @ref{Catalogue of
 4570: @c Rules, , Catalogue of Rules, make, The GNU Make Manual}.}.  Automake
 4571: @c also contains some support for creating programs and shared libraries
 4572: @c that are a mixture of Fortran 77 and other languages (@pxref{Mixing
 4573: @c Fortran 77 With C and C++}).
 4574: @c 
 4575: さらにAutomakeは,コンパイルするためにFortran 77とRatforソースファイルの
 4576: プリプロセス処理を行なうことが可能です@footnote{以下のセクションにある
 4577: Fortran 77プログラムのプリプロセスに関する情報については,大部分でないが,
 4578: 多くのものを@ref{Catalogue of Rules, , Catalogue of Rules, make, The GNU
 4579: Make Manual}からほとんどそのまま持ってきています.}.Automakeには,
 4580: Fortran 77と他の言葉が混合しているプログラムと共有ライブラリを作成するた
 4581: めのサポートも含まれています(@pxref{Mixing Fortran 77 With C and C++}).
 4582: 
 4583: @c These issues are covered in the following sections.
 4584: @c 
 4585: これらの問題は次のセクションで述べます.
 4586: 
 4587: @menu
 4588: * Preprocessing Fortran 77::
 4589: * Compiling Fortran 77 Files::
 4590: * Mixing Fortran 77 With C and C++::
 4591: * Fortran 77 and Autoconf::
 4592: @end menu
 4593: 
 4594: 
 4595: @node Preprocessing Fortran 77, Compiling Fortran 77 Files, Fortran 77 Support, Fortran 77 Support
 4596: @comment  node-name,  next,  previous,  up
 4597: @c @subsection Preprocessing Fortran 77
 4598: @subsection Fortran 77のプリプロセス
 4599: 
 4600: @cindex Preprocessing Fortran 77
 4601: @cindex Fortran 77, Preprocessing
 4602: @cindex Ratfor programs
 4603: 
 4604: @c @file{N.f} is made automatically from @file{N.F} or @file{N.r}.  This
 4605: @c rule runs just the preprocessor to convert a preprocessable Fortran 77
 4606: @c or Ratfor source file into a strict Fortran 77 source file.  The precise
 4607: @c command used is as follows:
 4608: @c 
 4609: @file{N.f}は自動的に@file{N.F}あるいは@file{N.r}から作成されます.この規
 4610: 則は,プリプロセス可能なFortran 77やRatforソースファイルを,厳密な
 4611: Fortran 77ソースファイルに変換するためだけにプリプロセッサを走らせます.
 4612: 使用される正確なコマンドは以下のようになります.
 4613: 
 4614: @table @file
 4615: 
 4616: @item .F
 4617: @code{$(F77) -F $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS)}
 4618: 
 4619: @item .r
 4620: @code{$(F77) -F $(AM_FFLAGS) $(FFLAGS) $(AM_RFLAGS) $(RFLAGS)}
 4621: 
 4622: @end table
 4623: 
 4624: 
 4625: @node Compiling Fortran 77 Files, Mixing Fortran 77 With C and C++, Preprocessing Fortran 77, Fortran 77 Support
 4626: @comment  node-name,  next,  previous,  up
 4627: @c @subsection Compiling Fortran 77 Files
 4628: @subsection Fortran 77ファイルのコンパイル
 4629: 
 4630: @c @file{N.o} is made automatically from @file{N.f}, @file{N.F} or
 4631: @c @file{N.r} by running the Fortran 77 compiler.  The precise command used
 4632: @c is as follows:
 4633: @c 
 4634: @file{N.o}は,Fortran 77を実行することによって@file{N.f},@file{N.F}や
 4635: @file{N.r}から自動的に作成されます.使用される正確なコマンドは以下のよう
 4636: になります.
 4637: 
 4638: @table @file
 4639: 
 4640: @item .f
 4641: @code{$(F77) -c $(AM_FFLAGS) $(FFLAGS)}
 4642: 
 4643: @item .F
 4644: @code{$(F77) -c $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS)}
 4645: 
 4646: @item .r
 4647: @code{$(F77) -c $(AM_FFLAGS) $(FFLAGS) $(AM_RFLAGS) $(RFLAGS)}
 4648: 
 4649: @end table
 4650: 
 4651: 
 4652: @node Mixing Fortran 77 With C and C++, Fortran 77 and Autoconf, Compiling Fortran 77 Files, Fortran 77 Support
 4653: @comment  node-name,  next,  previous,  up
 4654: @c @subsection Mixing Fortran 77 With C and C++
 4655: @subsection CとC++と,Fortran 77の混在
 4656: 
 4657: @cindex Fortran 77, mixing with C and C++
 4658: @cindex Mixing Fortran 77 with C and C++
 4659: @cindex Linking Fortran 77 with C and C++
 4660: @cindex cfortran
 4661: @cindex Mixing Fortran 77 with C and/or C++
 4662: 
 4663: @c Automake currently provides @emph{limited} support for creating programs
 4664: @c and shared libraries that are a mixture of Fortran 77 and C and/or C++.
 4665: @c However, there are many other issues related to mixing Fortran 77 with
 4666: @c other languages that are @emph{not} (currently) handled by Automake, but
 4667: @c that are handled by other packages@footnote{For example,
 4668: @c @uref{http://www-zeus.desy.de/~burow/cfortran/, the cfortran package}
 4669: @c addresses all of these inter-language issues, and runs under nearly all
 4670: @c Fortran 77, C and C++ compilers on nearly all platforms.  However,
 4671: @c @code{cfortran} is not yet Free Software, but it will be in the next
 4672: @c major release.}.
 4673: @c 
 4674: Automakeは現在,Fortran 77とCそして/またはC++が混在しているプログラムと
 4675: 共有ライブラリを作成するため,@emph{限定された}サポートを提供しています.
 4676: しかし,(現在は)Automakeによって処理され@emph{ません}が,他のパッケージ
 4677: @footnote{例えば,@uref{http://www-zeus.desy.de/~burow/cfortran/, the
 4678: cfortran package}は,これらすべての言語間の問題を扱い,ほとんどすべての
 4679: プラットホームの,ほとんどすべてのFortran 77,C,そしてC++コンパイラで動
 4680: 作します.しかしながら,@code{cfortran}はまだフリーソフトウェアではあり
 4681: ませんが,次のメジャーリリースでそうなるでしょう.}で処理される,Fortran
 4682: 77と他の言葉との混在に関連して,多くの問題が発生しています.
 4683: 
 4684: @page
 4685: @c Automake can help in two ways:
 4686: @c 
 4687: Automakeは二つの方法でそれを助けることが可能です.
 4688: 
 4689: @enumerate
 4690: @item
 4691: @c Automatic selection of the linker depending on which combinations of
 4692: @c source code.
 4693: @c 
 4694: ソースコードの組み合わせに依存したリンカの自動的な選択.
 4695: 
 4696: @item
 4697: @c Automatic selection of the appropriate linker flags (e.g. @samp{-L} and
 4698: @c @samp{-l}) to pass to the automatically selected linker in order to link
 4699: @c in the appropriate Fortran 77 intrinsic and run-time libraries.
 4700: @c 
 4701: 適切なFortran 77のイントリンシックとランタイムライブラリにリンクするため
 4702: に,自動的に選択されたリンカに渡す適切なリンカフラグ(例えば@samp{-L}と
 4703: @samp{-l})の自動的な選択.
 4704: 
 4705: @cindex FLIBS, defined
 4706: @c These extra Fortran 77 linker flags are supplied in the output variable
 4707: @c @code{FLIBS} by the @code{AC_F77_LIBRARY_LDFLAGS} Autoconf macro
 4708: @c supplied with newer versions of Autoconf (Autoconf version 2.13 and
 4709: @c later).  @xref{Fortran 77 Compiler Characteristics, , , autoconf, The
 4710: @c Autoconf}.
 4711: @c 
 4712: これらの追加されたFortran 77リンカフラグは,Autoconf(Autoconfバージョン
 4713: 2.13やそれ以降)の新しいバージョンで供給された,
 4714: @code{AC_F77_LIBRARY_LDFLAGS}というAutoconfマクロでの出力変数
 4715: @code{FLIBS}で提供されます.@xref{Fortran 77 Compiler Characteristics, ,
 4716: , autoconf, The Autoconf}.
 4717: @end enumerate
 4718: 
 4719: @c If Automake detects that a program or shared library (as mentioned in
 4720: @c some @code{_PROGRAMS} or @code{_LTLIBRARIES} primary) contains source
 4721: @c code that is a mixture of Fortran 77 and C and/or C++, then it requires
 4722: @c that the macro @code{AC_F77_LIBRARY_LDFLAGS} be called in
 4723: @c @file{configure.in}, and that either @code{$(FLIBS)} or @code{@@FLIBS@@}
 4724: @c appear in the appropriate @code{_LDADD} (for programs) or @code{_LIBADD}
 4725: @c (for shared libraries) variables.  It is the responsibility of the
 4726: @c person writing the @file{Makefile.am} to make sure that @code{$(FLIBS)}
 4727: @c or @code{@@FLIBS@@} appears in the appropriate @code{_LDADD} or
 4728: @c @code{_LIBADD} variable.
 4729: @c 
 4730: (@code{_PROGRAMS}や@code{_LTLIBRARIES}プライマリで記述されているような) 
 4731: プログラムや共有ライブラリが,Fortran 77と,Cそして/またはC++が混合する
 4732: ソースコードを含んでいることをAutomakeが検出した場合,
 4733: @code{AC_F77_LIBRARY_LDFLAGS}マクロを@file{configure.in}で呼び出し,
 4734: @code{$(FLIBS)}または@code{@@FLIBS@@}のどちらかで,適切な(プログラムに対
 4735: する)@code{_LDADD}や,(共有ライブラリに対する)@code{_LIBADD}変数が書かれ
 4736: ていることを要求します.@code{$(FLIBS)}や@code{@@FLIBS@@}が適切な
 4737: @code{_LDADD}や@code{_LIBADD}変数に書かれていることを確かめるのは,
 4738: @file{Makefile.am}を書いている人の責任です.
 4739: 
 4740: @cindex Mixed language example
 4741: @cindex Example, mixed language
 4742: 
 4743: @c For example, consider the following @file{Makefile.am}:
 4744: @c 
 4745: 例えば,以下の@file{Makefile.am}を考えます.
 4746: 
 4747: @example
 4748: bin_PROGRAMS = foo
 4749: foo_SOURCES  = main.cc foo.f
 4750: foo_LDADD    = libfoo.la @@FLIBS@@
 4751: 
 4752: pkglib_LTLIBRARIES = libfoo.la
 4753: libfoo_la_SOURCES  = bar.f baz.c zardoz.cc
 4754: libfoo_la_LIBADD   = $(FLIBS)
 4755: @end example
 4756: 
 4757: @c In this case, Automake will insist that @code{AC_F77_LIBRARY_LDFLAGS}
 4758: @c is mentioned in @file{configure.in}.  Also, if @code{@@FLIBS@@} hadn't
 4759: @c been mentioned in @code{foo_LDADD} and @code{libfoo_la_LIBADD}, then
 4760: @c Automake would have issued a warning.
 4761: @c 
 4762: この場合は,Automakeは,@code{AC_F77_LIBRARY_LDFLAGS}が
 4763: @file{configure.in}で記述されることを強く要求します.また,
 4764: @code{@@FLIBS@@}が@code{foo_LDADD}と@code{libfoo_la_LIBADD}で記述されて
 4765: いない場合も,Automakeは警告を出します.
 4766: 
 4767: 
 4768: @page
 4769: @menu
 4770: * How the Linker is Chosen::
 4771: @end menu
 4772: 
 4773: @node How the Linker is Chosen,  , Mixing Fortran 77 With C and C++, Mixing Fortran 77 With C and C++
 4774: @comment  node-name,  next,  previous,  up
 4775: @c @subsubsection How the Linker is Chosen
 4776: @subsubsection リンカの選択方法
 4777: 
 4778: @cindex Automatic linker selection
 4779: @cindex Selecting the linker automatically
 4780: 
 4781: @c The following diagram demonstrates under what conditions a particular
 4782: @c linker is chosen by Automake.
 4783: @c 
 4784: Automakeによって特定のリンカが選択される条件を以下の図で明示します.
 4785: 
 4786: @c For example, if Fortran 77, C and C++ source code were to be compiled
 4787: @c into a program, then the C++ linker will be used.  In this case, if the
 4788: @c C or Fortran 77 linkers required any special libraries that weren't
 4789: @c included by the C++ linker, then they must be manually added to an
 4790: @c @code{_LDADD} or @code{_LIBADD} variable by the user writing the
 4791: @c @file{Makefile.am}.
 4792: @c 
 4793: 例えば,Fortran 77,C,そしてC++ソースコードがプログラムにコンパイルされ
 4794: る場合,C++リンカが使用されます.この場合,CあるいはFortran 77リンカが,
 4795: C++リンカに含まれていない特別なライブラリを必要とした場合,
 4796: @file{Makefile.am}を書いているユーザが,@code{_LDADD}や@code{_LIBADD} 変
 4797: 数を手作業で付け加える必要があります.
 4798: 
 4799: @example
 4800:                      \              Linker
 4801:           source      \
 4802:            code        \     C        C++     Fortran
 4803:      -----------------  +---------+---------+---------+
 4804:                         |         |         |         |
 4805:      C                  |    x    |         |         |
 4806:                         |         |         |         |
 4807:                         +---------+---------+---------+
 4808:                         |         |         |         |
 4809:          C++            |         |    x    |         |
 4810:                         |         |         |         |
 4811:                         +---------+---------+---------+
 4812:                         |         |         |         |
 4813:                Fortran  |         |         |    x    |
 4814:                         |         |         |         |
 4815:                         +---------+---------+---------+
 4816:                         |         |         |         |
 4817:      C + C++            |         |    x    |         |
 4818:                         |         |         |         |
 4819:                         +---------+---------+---------+
 4820:                         |         |         |         |
 4821:      C +       Fortran  |         |         |    x    |
 4822:                         |         |         |         |
 4823:                         +---------+---------+---------+
 4824:                         |         |         |         |
 4825:          C++ + Fortran  |         |    x    |         |
 4826:                         |         |         |         |
 4827:                         +---------+---------+---------+
 4828:                         |         |         |         |
 4829:      C + C++ + Fortran  |         |    x    |         |
 4830:                         |         |         |         |
 4831:                         +---------+---------+---------+
 4832: @end example
 4833: 
 4834: 
 4835: @node Fortran 77 and Autoconf,  , Mixing Fortran 77 With C and C++, Fortran 77 Support
 4836: @comment  node-name,  next,  previous,  up
 4837: @c @subsection Fortran 77 and Autoconf
 4838: @subsection Fortran 77とAutoconf
 4839: 
 4840: @c The current Automake support for Fortran 77 requires a recent enough
 4841: @c version of Autoconf that also includes support for Fortran 77.  Full
 4842: @c Fortran 77 support was added to Autoconf 2.13, so you will want to use
 4843: @c that version of Autoconf or later.
 4844: @c 
 4845: Fortran 77に対する現在のAutomakeサポートは,Fortran 77に対するサポートが
 4846: 含まれている最近のバージョンのAutoconfも必要になります.Fortran 77の完全
 4847: なサポートがAutoconf2.13で加えられたので,それかそれ以降のバージョンの
 4848: Autoconfを使用したいと思うことでしょう.
 4849: 
 4850: 
 4851: @node Java Support, Support for Other Languages, Fortran 77 Support, Programs
 4852: @comment  node-name,  next,  previous,  up
 4853: @c @section Java Support
 4854: @section Javaのサポート
 4855: 
 4856: @cindex Java support
 4857: @cindex Support for Java
 4858: 
 4859: @c Automake includes support for compiled Java, using @code{gcj}, the Java
 4860: @c front end to the GNU Compiler Collection.
 4861: @c 
 4862: Automakeには,GNU Compiler CollectionのJavaフロントエンドである
 4863: @code{gcj}を使用してコンパイルされるJavaに対するサポートも含まれています.
 4864: 
 4865: @c Any package including Java code to be compiled must define the output
 4866: @c variable @samp{GCJ} in @file{configure.in}; the variable @samp{GCJFLAGS}
 4867: @c must also be defined somehow (either in @file{configure.in} or
 4868: @c @file{Makefile.am}).  The simplest way to do this is to use the
 4869: @c @code{AM_PROG_GCJ} macro.
 4870: @c 
 4871: Javaコードを含んでいるパッケージのコンパイルには,@file{configure.in}で
 4872: 出力変数@samp{GCJ}の定義する必要があります.変数@samp{GCJFLAGS}も,
 4873: (@file{configure.in}や@file{Makefile.am}で)なんとかして定義する必要があ
 4874: ります.こうするための最も簡単な方法は,@code{AM_PROG_GCJ}マクロを使用す
 4875: ることです.
 4876: 
 4877: @vindex GCJFLAGS
 4878: 
 4879: @c By default, programs including Java source files are linked with
 4880: @c @code{gcj}.
 4881: @c 
 4882: デフォルトで,Javaソースファイルを含んでいるプログラムは,@code{gcj}でリ
 4883: ンクされます.
 4884: 
 4885: @c As always, the contents of @samp{AM_GCJFLAGS} are passed to every
 4886: @c compilation invoking @code{gcj} (in its role as an ahead-of-time
 4887: @c compiler -- when invoking it to create @file{.class} files,
 4888: @c @samp{AM_JAVACFLAGS} is used instead).  If it is necessary to pass
 4889: @c options to @code{gcj} from @file{Makefile.am}, this variable, and not
 4890: @c the user variable @samp{GCJFLAGS}, should be used.
 4891: @c 
 4892: 通常通り,@samp{AM_GCJFLAGS}の内容は,@code{gcj}が呼び出されるコンパイル
 4893: ごとに渡されます(コンパイル前でのその役割を果たすもの --- @file{.class} 
 4894: ファイルを作成するためにそれを呼び出すとき,@samp{AM_JAVACFLAGS}が代わり
 4895: に使用されます).@file{Makefile.am}から@code{gcj}にオプションを渡す必要
 4896: がある場合,この変数とユーザ変数でない@samp{GCJFLAGS}を使用すべきでしょ
 4897: う.
 4898: 
 4899: @vindex AM_GCJFLAGS
 4900: 
 4901: @c @code{gcj} can be used to compile @file{.java}, @file{.class},
 4902: @c @file{.zip}, or @file{.jar} files.
 4903: @c 
 4904: @code{gcj}は,@file{.java},@file{.class},@file{.zip},または
 4905: @file{.jar}ファイルをコンパイルするために使用することが可能です.
 4906: 
 4907: @c When linking, @code{gcj} requires that the main class be specified
 4908: @c using the @samp{--main=} option.  The easiest way to do this is to use
 4909: @c the @code{_LDFLAGS} variable for the program.
 4910: @c 
 4911: リンク時に,@code{gcj}はメインクラスが@samp{--main=}オプションを使用して
 4912: 指定されていることを要求します.こうするための最も簡単な方法は,プログラ
 4913: ムで@code{_LDFLAGS}変数を使用することです.
 4914: 
 4915: 
 4916: @node Support for Other Languages, ANSI, Java Support, Programs
 4917: @comment  node-name,  next,  previous,  up
 4918: @c @section Support for Other Languages
 4919: @section 他の言語のサポート
 4920: 
 4921: @c Automake currently only includes full support for C, C++ (@pxref{C++
 4922: @c Support}), Fortran 77 (@pxref{Fortran 77 Support}), and Java
 4923: @c (@pxref{Java Support}).  There is only rudimentary support for other
 4924: @c languages, support for which will be improved based on user demand.
 4925: @c 
 4926: Automakeには現在,C,C++(@pxref{C++ Support}),Fortran 77(@pxref{Fortran
 4927: 77 Support}),そしてJava(@pxref{Java Support})のみの完全なサポートが含ま
 4928: れています.他の言葉に対しては,基本的なサポートとユーザの需要に基づいて
 4929: 改善されるサポートしかありません.
 4930: 
 4931: @c Some limited support for adding your own languages is available via the
 4932: @c suffix rule handling; see @ref{Suffixes}.
 4933: @c 
 4934: 独自の言語を加えるため幾分制限されているサポートは,サフィックスルールの
 4935: 処理によって利用可能になっています.@ref{Suffixes}を参照してください.
 4936: 
 4937: 
 4938: @node ANSI, Dependencies, Support for Other Languages, Programs
 4939: @c @section Automatic de-ANSI-fication
 4940: @section 自動的なde-ANSI-fication
 4941: 
 4942: @cindex de-ANSI-fication, defined
 4943: 
 4944: @c Although the GNU standards allow the use of ANSI C, this can have the
 4945: @c effect of limiting portability of a package to some older compilers
 4946: @c (notably the SunOS C compiler).
 4947: @c 
 4948: GNU standardsはANSI Cの使用を許可していますが,これはもっと古いコンパイ
 4949: ラ(特にSunOS C コンパイラ)へのパッケージの移植性を制限することになるはず
 4950: です.
 4951: 
 4952: @c Automake allows you to work around this problem on such machines by
 4953: @c @dfn{de-ANSI-fying} each source file before the actual compilation takes
 4954: @c place.
 4955: @c 
 4956: 実際にコンパイルされる前に@dfn{de-ANSI-fyng}したそれぞれのファイルによっ
 4957: て,Automakeではそのようなマシン上でのこの問題を解決することが可能になり
 4958: ます.
 4959: 
 4960: @vindex AUTOMAKE_OPTIONS
 4961: @opindex ansi2knr
 4962: 
 4963: @c If the @file{Makefile.am} variable @code{AUTOMAKE_OPTIONS}
 4964: @c (@pxref{Options}) contains the option @code{ansi2knr} then code to
 4965: @c handle de-ANSI-fication is inserted into the generated
 4966: @c @file{Makefile.in}.
 4967: @c 
 4968: @file{Makefile.am}の変数@code{AUTOMAKE_OPTIONS}(@pxref{Options})がオプショ
 4969: ン@code{ansi2knr}を含んでいる場合,de-ANSI-ficationを処理するためのコー
 4970: ドが生成された@file{Makefile.in}に挿入されます.
 4971: 
 4972: @c This causes each C source file in the directory to be treated as ANSI C@.
 4973: @c If an ANSI C compiler is available, it is used.  If no ANSI C compiler
 4974: @c is available, the @code{ansi2knr} program is used to convert the source
 4975: @c files into K&R C, which is then compiled.
 4976: @c 
 4977: これによって,ディレクトリ内のそれぞれのCソースファイルをANSI Cとして扱
 4978: います.ANSI Cコンパイラが利用可能な場合,それが使用されます.ANSI C コ
 4979: ンパイラが利用可能でない場合,@code{ansi2knr}プログラムがソースファイル
 4980: をK&R Cに変換するために使用され,そしてコンパイルされます.
 4981: 
 4982: @c The @code{ansi2knr} program is simple-minded.  It assumes the source
 4983: @c code will be formatted in a particular way; see the @code{ansi2knr} man
 4984: @c page for details.
 4985: @c 
 4986: @code{ansi2knr}プログラムは単純です.それはソースコードが特定の方法で書
 4987: 式化されると仮定します.詳細は@code{ansi2knr}のmanページを参照してくださ
 4988: い.
 4989: 
 4990: @c Support for de-ANSI-fication requires the source files @file{ansi2knr.c}
 4991: @c and @file{ansi2knr.1} to be in the same package as the ANSI C source;
 4992: @c these files are distributed with Automake.  Also, the package
 4993: @c @file{configure.in} must call the macro @code{AM_C_PROTOTYPES}
 4994: @c (@pxref{Macros}).
 4995: @c 
 4996: de-ANSI-ficationに対するサポートでは,ソースファイル@file{ansi2knr.c}と
 4997: @file{ansi2knr.1}がANSI Cソースと同じパッケージにある必要があります.こ
 4998: れらのファイルはAutomakeと一緒に配布されます.また,パッケージ
 4999: @file{configure.in}では,@code{AM_C_PROTOTYPES}マクロを呼び出す必要もあ
 5000: ります(@pxref{Macros}).
 5001: @cvindex AM_C_PROTOTYPES
 5002: 
 5003: @c Automake also handles finding the @code{ansi2knr} support files in some
 5004: @c other directory in the current package.  This is done by prepending the
 5005: @c relative path to the appropriate directory to the @code{ansi2knr}
 5006: @c option.  For instance, suppose the package has ANSI C code in the
 5007: @c @file{src} and @file{lib} subdirs.  The files @file{ansi2knr.c} and
 5008: @c @file{ansi2knr.1} appear in @file{lib}.  Then this could appear in
 5009: @c @file{src/Makefile.am}:
 5010: @c 
 5011: Automakeは,現在のパッケージの他のディレクトリで@code{ansi2knr}サポート
 5012: ファイルを見つけることもできます.これは,@code{ansi2knr}オプションへ適
 5013: 切なディレクトリへの相対的なパスを前置することで行なわれます.例えば,パッ
 5014: ケージの@file{src}と@file{lib}サブディレクトリにANSI Cコードがあると仮定
 5015: します.ファイル@file{ansi2knr.c}と@file{ansi2knr.1}は@file{lib}にありま
 5016: す.この場合,@file{src/Makefile.am}は以下のように書くことが可能でしょう.
 5017: 
 5018: @example
 5019: AUTOMAKE_OPTIONS = ../lib/ansi2knr
 5020: @end example
 5021: 
 5022: @c If no directory prefix is given, the files are assumed to be in the
 5023: @c current directory.
 5024: @c 
 5025: ディレクトリの接頭辞が与えられてない場合,ファイルはカレントディレクトリ
 5026: にあると仮定されます.
 5027: 
 5028: @c Files mentioned in @code{LIBOBJS} which need de-ANSI-fication will not
 5029: @c be automatically handled.  That's because @code{configure} will generate
 5030: @c an object name like @file{regex.o}, while @code{make} will be looking
 5031: @c for @file{regex_.o} (when de-ANSI-fying).  Eventually this problem will
 5032: @c be fixed via @code{autoconf} magic, but for now you must put this code
 5033: @c into your @file{configure.in}, just before the @code{AC_OUTPUT} call:
 5034: @c 
 5035: de-ANSI-ficationを必要とする@code{LIBOBJS}に書かれているファイルは,自動
 5036: 的に処理されません.その理由は,@code{configure}が@file{regex.o}のような
 5037: オブジェクト名を生成しますが,@code{make}は(de-ANSI-fyingの時),
 5038: @file{regex_.o}を探すためです.最終的に,この問題は@code{autoconf}によっ
 5039: て修正されますが,しばらくは@code{AC_OUTPUT}を呼び出す直前に,
 5040: @file{configure.in}に以下のコードを書き込む必要があります.
 5041: 
 5042: @example
 5043: # This is necessary so that .o files in LIBOBJS are also built via
 5044: # the ANSI2KNR-filtering rules.
 5045: LIBOBJS=`echo $LIBOBJS|sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'`
 5046: @end example
 5047: @c FIXME: Ask Akim how this should be handled in the upcoming Autoconf.
 5048: 
 5049: @c Note that automatic de-ANSI-fication will not work when the package is
 5050: @c being built for a different host architecture.  That is because automake
 5051: @c currently has no way to build @code{ansi2knr} for the build machine.
 5052: @c 
 5053: 自動的なde-ANSI-ficationは,パッケージが異なるホストアーキテクチャに対す
 5054: るビルドでは動作しないことに注意してください.それは,ビルドマシンに対し
 5055: て@code{ansi2knr}をビルドする方法が,現在のautomakeには無いためです.
 5056: 
 5057: 
 5058: @node Dependencies, EXEEXT, ANSI, Programs
 5059: @c @section Automatic dependency tracking
 5060: @section 自動的な依存性追跡
 5061: 
 5062: @c As a developer it is often painful to continually update the
 5063: @c @file{Makefile.in} whenever the include-file dependencies change in a
 5064: @c project.  Automake supplies a way to automatically track dependency
 5065: @c changes.
 5066: @c 
 5067: プロジェクトで,インクルードファイルの依存性が変化するときはいつでも,絶
 5068: えず@file{Makefile.in}を更新することは開発者として辛いことも多いものです.
 5069: Automakeは自動的に依存性の変更を追跡する方法を提供しています.
 5070: 
 5071: @cindex Dependency tracking
 5072: @cindex Automatic dependency tracking
 5073: 
 5074: @c Automake always uses complete dependencies for a compilation, including
 5075: @c system headers.  Automake's model is that dependency computation should
 5076: @c be a side effect of the build.  To this end, dependencies are computed
 5077: @c by running all compilations through a special wrapper program called
 5078: @c @code{depcomp}.  @code{depcomp} understands how to coax many different C
 5079: @c and C++ compilers into generating dependency information in the format
 5080: @c it requires.  @code{automake -a} will install @code{depcomp} into your
 5081: @c source tree for you.  If @code{depcomp} can't figure out how to properly
 5082: @c invoke your compiler, dependency tracking will simply be disabled for
 5083: @c your build.
 5084: @c 
 5085: Automakeは常に,システムヘッダを含むコンパイルに対する完全な依存性を使用
 5086: します.Automakeのモデルは,依存性の評価がビルドの副作用になるというもの
 5087: です.つまり依存性は,@code{depcomp}と呼ばれる特別なラッパプログラムを通
 5088: じてすべてのコンパイルを実行することで求められます.@code{depcomp}は,多
 5089: くの異なるCとC++コンパイラで,それが要求する書式で依存情報の生成させるよ
 5090: うに上手に扱う方法を理解してます.@code{automake -a}で,@code{depcomp} 
 5091: をソースツリーにインストールします.@code{depcomp}がコンパイラの正しい呼
 5092: び出し方が分からない場合,依存性の追跡はビルドで利用不可能になるだけです.
 5093: 
 5094: @cindex depcomp
 5095: 
 5096: @c Experience with earlier versions of Automake @footnote{See
 5097: @c @uref{http://sources.redhat.com/automake/dependencies.html} for more
 5098: @c information on the history and experiences with automatic dependency
 5099: @c tracking in Automake} taught us that it is not reliable to generate
 5100: @c dependencies only on the maintainer's system, as configurations vary too
 5101: @c much.  So instead Automake implements dependency tracking at build time.
 5102: @c 
 5103: これまでのバージョンのAutomakeの経験上@footnote{Automakeでの自動的な依存
 5104: 性の追跡に関する歴史と経験についての情報は,
 5105: @uref{http://sources.redhat.com/automake/dependencies.html}を参照してく
 5106: ださい.},コンフィグレーションが多くなるにつれ,管理者のシステムでのみ
 5107: 生成される依存性が信頼できないことを我々に教えてくれました.そのため,
 5108: Automakeはビルド時に依存性を追跡することをその代わりに実装しました.
 5109: 
 5110: @c Automatic dependency tracking can be suppressed by putting
 5111: @c @code{no-dependencies} in the variable @code{AUTOMAKE_OPTIONS}, or
 5112: @c passing @code{no-dependencies} as an argument to @code{AM_INIT_AUTOMAKE}
 5113: @c (this should be the prefered way).  Or, you can invoke @code{automake}
 5114: @c with the @code{-i} option.  Dependency tracking is enabled by default.
 5115: @c 
 5116: 自動的な依存性の追跡で,変数@code{AUTOMAKE_OPTIONS}に
 5117: @code{no-dependencies}を書くことや,@code{AM_INIT_AUTOMAKE}への引数とし
 5118: て@code{no-dependencies}を渡すこと(これは推奨されるべき方法です)が無くな
 5119: るはずです.そうしない場合は,@code{automake}を@code{-i}オプションを用い
 5120: て呼び出してください.依存性の追跡はデフォルトで利用可能です.
 5121: 
 5122: @vindex AUTOMAKE_OPTIONS
 5123: @opindex no-dependencies
 5124: 
 5125: @c The person building your package also can choose to disable dependency
 5126: @c tracking by configuring with @code{--disable-dependency-tracking}.
 5127: @c 
 5128: パッケージを構築している人々も,@code{--disable-dependency-tracking}を用
 5129: いてコンフィグレーションすることで,依存性の追跡を利用不可能にすることを
 5130: 選択することが可能です.
 5131: 
 5132: @cindex Disabling dependency tracking
 5133: @cindex Dependency tracking, disabling
 5134: 
 5135: 
 5136: @node EXEEXT,  , Dependencies, Programs
 5137: @c @section Support for executable extensions
 5138: @section 実行形式の拡張子のサポート
 5139: 
 5140: @cindex Executable extension
 5141: @cindex Extension, executable
 5142: @cindex Windows
 5143: 
 5144: @c On some platforms, such as Windows, executables are expected to have an
 5145: @c extension such as @samp{.exe}.  On these platforms, some compilers (GCC
 5146: @c among them) will automatically generate @file{foo.exe} when asked to
 5147: @c generate @file{foo}.
 5148: @c 
 5149: プラットフォームによっては,Windowsのように実行形式が@samp{.exe}のような
 5150: 拡張子を持つことを期待するものもあります.これらのプラットフォームでは,
 5151: (GCCを含む)コンパイラは,@file{foo}を生成するように依頼されるとき,自動
 5152: 的に@file{foo.exe}を生成します.
 5153: 
 5154: @c Automake provides mostly-transparent support for this.  Unfortunately
 5155: @c @emph{mostly} doesn't yet mean @emph{fully}.  Until the English
 5156: @c dictionary is revised, you will have to assist Automake if your package
 5157: @c must support those platforms.
 5158: @c 
 5159: Automakeは,これに対するほとんどの変換でサポートを提供します.残念ながら
 5160: @emph{ほとんど}とは完全では無いということです.英語の辞書では反対になり
 5161: ますが,パッケージをこれらのプラットフォームでサポートされるようにしたい
 5162: 場合,Automakeを補助する必要があります.
 5163: 
 5164: @c One thing you must be aware of is that, internally, Automake rewrites
 5165: @c something like this:
 5166: @c 
 5167: 気付いていると思われることの一つは,Automakeが以下のような内容に内部で書
 5168: き直すことです.
 5169: 
 5170: @example
 5171: bin_PROGRAMS = liver
 5172: @end example
 5173: 
 5174: @c to this:
 5175: @c 
 5176: これを以下のようにします.
 5177: 
 5178: @example
 5179: bin_PROGRAMS = liver$(EXEEXT)
 5180: @end example
 5181: 
 5182: @c The targets Automake generates are likewise given the @samp{$(EXEEXT)}
 5183: @c extension.  @code{EXEEXT}
 5184: @c 
 5185: Automakeが生成するターゲットは,@samp{$(EXEEXT)}拡張子が与えられたものに
 5186: なります.@code{EXEEXT}
 5187: 
 5188: @c However, Automake cannot apply this rewriting to @code{configure}
 5189: @c substitutions.  This means that if you are conditionally building a
 5190: @c program using such a substitution, then your @file{configure.in} must
 5191: @c take care to add @samp{$(EXEEXT)} when constructing the output variable.
 5192: @c 
 5193: しかし,Automakeがこの書き換えを@code{configure}の置換式に適用することは
 5194: 不可能です.そのような置換式を使用しているプログラムを条件付きでビルドし
 5195: ている場合,出力変数を作成しているときに@file{configure.in}に
 5196: @samp{$(EXEEXT)}を注意して加えるようにする必要があるということを,これは
 5197: 意味します.
 5198: 
 5199: @c With Autoconf 2.13 and earlier, you must explicitly use @code{AC_EXEEXT}
 5200: @c to get this support.  With Autoconf 2.50, @code{AC_EXEEXT} is run
 5201: @c automatically if you configure a compiler (say, through
 5202: @c @code{AC_PROG_CC}).
 5203: @c 
 5204: Autoconf 2.13とそれ以前のものを用いると,このサポートを得るために,明示
 5205: 的に@code{AC_EXEEXT}を使用する必要があります.Autoconf 2.50を用いると,
 5206: コンパイラをコンフィグレーションする際に(すなわち@code{AC_PROG_CC}を通じ
 5207: て),@code{AC_EXEEXT}が自動的に実行されます.
 5208: 
 5209: @c Sometimes maintainers like to write an explicit link rule for their
 5210: @c program.  Without executable extension support, this is easy---you
 5211: @c simply write a target with the same name as the program.  However, when
 5212: @c executable extension support is enabled, you must instead add the
 5213: @c @samp{$(EXEEXT)} suffix.
 5214: @c 
 5215: それらのプログラムに対し,管理者が明示的にリンク規則を書きたいときもあり
 5216: ます.実行形式の拡張子サポートを用いなければ,これは簡単です --- ターゲッ
 5217: トをプログラムと同じ名前にするだけです.しかし,実行形式の拡張子のサポー
 5218: トが利用可能な時は,代わりに@samp{$(EXEEXT)}接尾辞を加える必要があります.
 5219: 
 5220: @c Unfortunately, due to the change in Autoconf 2.50, this means you must
 5221: @c always add this extension.  However, this is a problem for maintainers
 5222: @c who know their package will never run on a platform that has executable
 5223: @c extensions.  For those maintainers, the @code{no-exeext} option
 5224: @c (@pxref{Options}) will disable this feature.  This works in a fairly
 5225: @c ugly way; if @code{no-exeext} is seen, then the presence of a target
 5226: @c named @code{foo} in @file{Makefile.am} will override an
 5227: @c automake-generated target of the form @code{foo$(EXEEXT)}.  Without the
 5228: @c @code{no-exeext} option, this use will give an error.
 5229: @c 
 5230: 残念ながら,Autoconf 2.50の変更のため,常にこの拡張子を加える必要がある
 5231: ことを,これは意味しています.しかし,パッケージが実行形式の拡張子を持つ
 5232: プラットフォームで実行されるはずがないことを知っている管理者にとって,こ
 5233: のことは問題になります.これらの管理者に対しては,@code{no-exeext}オプショ
 5234: ン(@pxref{Options})でこの機能が利用不可能になります.これは,かなり醜い
 5235: 方法で動作します.@code{no-exeext}が見つかった場合,@file{Makefile.am}の
 5236: @code{foo}という名前のターゲットが存在すると,automekeが生成する
 5237: @code{foo$(EXEEXT)}形式のターゲットで上書きされます.@code{no-exeext}オ
 5238: プションが用いなければ,これでエラーが生じます.
 5239: 
 5240: 
 5241: @node Other objects, Other GNU Tools, Programs, Top
 5242: @c @chapter Other Derived Objects
 5243: @chapter その他の派生されるオブジェクト
 5244: 
 5245: @c Automake can handle derived objects which are not C programs.  Sometimes
 5246: @c the support for actually building such objects must be explicitly
 5247: @c supplied, but Automake will still automatically handle installation and
 5248: @c distribution.
 5249: @c 
 5250: AutomakeはCプログラムではない派生されるオブジェクトを扱うことが可能です.
 5251: このようなオブジェクトを実際にビルドするサポートを明示的に供給する必要が
 5252: あることもありますが,Automakeは自動的にインストールと配布物を扱います.
 5253: 
 5254: @menu
 5255: * Scripts::                     Executable scripts
 5256: * Headers::                     Header files
 5257: * Data::                        Architecture-independent data files
 5258: * Sources::                     Derived sources
 5259: @end menu
 5260: 
 5261: 
 5262: @node Scripts, Headers, Other objects, Other objects
 5263: @c @section Executable Scripts
 5264: @section 実行可能なスクリプト
 5265: 
 5266: @cindex _SCRIPTS primary, defined
 5267: @cindex SCRIPTS primary, defined
 5268: @cindex Primary variable, SCRIPTS
 5269: 
 5270: @c It is possible to define and install programs which are scripts.  Such
 5271: @c programs are listed using the @samp{SCRIPTS} primary name.  Automake
 5272: @c doesn't define any dependencies for scripts; the @file{Makefile.am}
 5273: @c should include the appropriate rules.
 5274: @c 
 5275: スクリプトのプログラムを定義しインストールすることが可能です.そのような
 5276: プログラムは,@samp{SCRIPTS}プライマリを使用してリストアップします.
 5277: Automakeは,スクリプトに対する依存性の定義を全く行ないません.
 5278: @file{Makefile.am}に適切な規則を含ませるべきでしょう.
 5279: @vindex SCRIPTS
 5280: 
 5281: @c Automake does not assume that scripts are derived objects; such objects
 5282: @c must be deleted by hand (@pxref{Clean}).
 5283: @c 
 5284: Automakeはスクリプトがオブジェクトからの派生物であると想定しません.その
 5285: ようなオブジェクトは手動で削除する必要があります(@pxref{Clean}).
 5286: 
 5287: @c The @code{automake} program itself is a Perl script that is generated at
 5288: @c configure time from @file{automake.in}.  Here is how this is handled:
 5289: @c 
 5290: @code{automake}プログラム自身は,@file{automake.in}からconfigure時に生成
 5291: されるPerlスクリプトです.これを処理する方法は以下のようになります.
 5292: 
 5293: @example
 5294: bin_SCRIPTS = automake
 5295: @end example
 5296: 
 5297: @c Since @code{automake} appears in the @code{AC_OUTPUT} macro, a target
 5298: @c for it is automatically generated, and it is also automatically cleaned
 5299: @c (despite the fact it's a script).
 5300: @c 
 5301: @code{automake}が@code{AC_OUTPUT}マクロにあるので,それに対するターゲッ
 5302: トは自動的に生成され,(それがスクリプトであるという事実にもかかわらず)自
 5303: 動的にクリーンもされます.
 5304: 
 5305: @cindex SCRIPTS, installation directories
 5306: @cindex Installing scripts
 5307: 
 5308: @vindex bin_SCRIPTS
 5309: @vindex sbin_SCRIPTS
 5310: @vindex libexec_SCRIPTS
 5311: @vindex pkgdata_SCRIPTS
 5312: @vindex noinst_SCRIPTS
 5313: @vindex check_SCRIPTS
 5314: 
 5315: @c Script objects can be installed in @code{bindir}, @code{sbindir},
 5316: @c @code{libexecdir}, or @code{pkgdatadir}.
 5317: @c 
 5318: スクリプトオブジェクトは@code{bindir},@code{sbindir},@code{libexecdir},
 5319: または@code{pkgdatadir}にインストールすることが可能です.
 5320: 
 5321: @c Scripts that need not being installed can be listed in
 5322: @c @code{noinst_SCRIPTS}, and among them, those which are needed only by
 5323: @c @code{make check} should go in @code{check_SCRIPTS}.
 5324: @c 
 5325: インストールする必要が無いスクリプトは@code{noinst_SCRIPTS}にリストアッ
 5326: プすることが可能で,その中で@code{make check}だけで必要なものは
 5327: @code{check_SCRIPTS}に書くべきです.
 5328: 
 5329: 
 5330: @node Headers, Data, Scripts, Other objects
 5331: @c @section Header files
 5332: @section ヘッダファイル
 5333: 
 5334: @cindex _HEADERS primary, defined
 5335: @cindex HEADERS primary, defined
 5336: @cindex Primary variable, HEADERS
 5337: 
 5338: @vindex noinst_HEADERS
 5339: 
 5340: @c Header files are specified by the @samp{HEADERS} family of variables.
 5341: @c Generally header files are not installed, so the @code{noinst_HEADERS}
 5342: @c variable will be the most used.  @footnote{However, for the case of a
 5343: @c non-installed header file that is actually used by a particular program,
 5344: @c we recommend listing it in the program's @samp{_SOURCES} variable
 5345: @c instead of in @code{noinst_HEADERS}.  We believe this is more clear.}
 5346: @c 
 5347: ヘッダファイルは,@samp{HEADERS}等の変数で指定します.ヘッダファイルは通
 5348: 常インストールされないので,@code{noinst_HEADERS}変数が最も多く使用され
 5349: ます.@footnote{しかし,実際に特定のプログラムで使用されるがインストール
 5350: されないヘッダファイルに対しては,@code{noinst_HEADERS}の代わりに,プロ
 5351: グラムの@samp{_SOURCES}変数でリストアップすることを推奨します.これがよ
 5352: り明白だと信じています.}
 5353: @vindex HEADERS
 5354: 
 5355: @c All header files must be listed somewhere; missing ones will not appear
 5356: @c in the distribution.  Often it is clearest to list uninstalled headers
 5357: @c with the rest of the sources for a program.  @xref{A Program}.  Headers
 5358: @c listed in a @samp{_SOURCES} variable need not be listed in any
 5359: @c @samp{_HEADERS} variable.
 5360: @c 
 5361: すべてのヘッダファイルは,どこかにリストアップする必要があります.行方不
 5362: 明のものは配布物に含まれません.プログラムのソースの残りにインストールし
 5363: ないヘッダをリストアップすることが,最も分かり易くなることが多いです.
 5364: @xref{A Program}.  @samp{_SOURCES}変数でリストアップされているヘッダを,
 5365: @samp{_HEADERS}変数でリストアップする必要はありません.
 5366: 
 5367: @cindex HEADERS, installation directories
 5368: @cindex Installing headers
 5369: 
 5370: @vindex include_HEADERS
 5371: @vindex oldinclude_HEADERS
 5372: @vindex pkginclude_HEADERS
 5373: 
 5374: @c Headers can be installed in @code{includedir}, @code{oldincludedir}, or
 5375: @c @code{pkgincludedir}.
 5376: @c 
 5377: ヘッダは@code{includedir},@code{oldincludedir},または
 5378: @code{pkgincludedir}にインストールすることが可能です.
 5379: 
 5380: 
 5381: @node Data, Sources, Headers, Other objects
 5382: @c @section Architecture-independent data files
 5383: @section アーキテクチャ非依存のデータファイル
 5384: 
 5385: @cindex _DATA primary, defined
 5386: @cindex DATA primary, defined
 5387: @cindex Primary variable, DATA
 5388: 
 5389: @c Automake supports the installation of miscellaneous data files using the
 5390: @c @samp{DATA} family of variables.
 5391: @c 
 5392: Automakeは,@samp{DATA}等の変数を使用して様々なデータファイルのインストー
 5393: ルをサポートします.
 5394: @vindex DATA
 5395: 
 5396: @vindex data_DATA
 5397: @vindex sysconf_DATA
 5398: @vindex sharedstate_DATA
 5399: @vindex localstate_DATA
 5400: @vindex pkgdata_DATA
 5401: 
 5402: @c Such data can be installed in the directories @code{datadir},
 5403: @c @code{sysconfdir}, @code{sharedstatedir}, @code{localstatedir}, or
 5404: @c @code{pkgdatadir}.
 5405: @c 
 5406: そのようなデータは,ディレクトリ@code{datadir},@code{sysconfdir},
 5407: @code{sharedstatedir},@code{localstatedir},または@code{pkgdatadir}にイ
 5408: ンストールすること可能です.
 5409: 
 5410: @c By default, data files are @emph{not} included in a distribution.  Of
 5411: @c course, you can use the @samp{dist_} prefix to change this on a
 5412: @c per-variable basis.
 5413: @c 
 5414: デフォルトで,データファイルは配布物に含まれ@emph{ません}.もちろん,
 5415: @samp{dist_}接頭辞を使用することで,変数毎にこの(デフォルト動作)を変更す
 5416: ることが可能です.
 5417: 
 5418: @c Here is how Automake declares its auxiliary data files:
 5419: @c 
 5420: Automakeでその補助データファイルを宣言する方法は,以下のとおりです.
 5421: 
 5422: @example
 5423: dist_pkgdata_DATA = clean-kr.am clean.am @dots{}
 5424: @end example
 5425: 
 5426: 
 5427: @node Sources,  , Data, Other objects
 5428: @c @section Built sources
 5429: @section ビルドされているソース
 5430: 
 5431: @cindex BUILT_SOURCES, defined
 5432: 
 5433: @c Occasionally a file which would otherwise be called @samp{source}
 5434: @c (e.g. a C @samp{.h} file) is actually derived from some other file.
 5435: @c Such files should be listed in the @code{BUILT_SOURCES} variable.
 5436: @c 
 5437: @samp{source}と呼ばれるファイル(例えばCの@samp{.h}ファイル)は,実際に何
 5438: か他のファイルから派生する場合もあります.そのようなファイルは
 5439: @code{BUILT_SOURCES}変数でリストアップすべきです.
 5440: @vindex BUILT_SOURCES
 5441: 
 5442: @c @code{BUILT_SOURCES} is actually a bit of a misnomer, as any file which
 5443: @c must be created early in the build process can be listed in this
 5444: @c variable.
 5445: @c 
 5446: ビルドプロセスの初期に作成する必要があるファイルは,この変数でリストアッ
 5447: プすることが可能なので,@code{BUILT_SOURCES}は実際にはちょっと誤った名称
 5448: です.
 5449: 
 5450: @c A source file listed in @code{BUILT_SOURCES} is created before the other
 5451: @c @code{all} targets are made.  However, such a source file is not
 5452: @c compiled unless explicitly requested by mentioning it in some other
 5453: @c @samp{_SOURCES} variable.
 5454: @c 
 5455: @code{BUILT_SOURCES}にリストアップされているソースファイルは,他の
 5456: @code{all}ターゲットが作成される前に作成されます.しかし,そのようなソー
 5457: スファイルは,他の@samp{_SOURCES}変数に記述して明示的に要求されていない
 5458: 限りコンパイルされません.
 5459: 
 5460: @c So, for instance, if you had header files which were created by a script
 5461: @c run at build time, then you would list these headers in
 5462: @c @code{BUILT_SOURCES}, to ensure that they would be built before any
 5463: @c other compilations (perhaps ones using these headers) were started.
 5464: @c 
 5465: そのため,例えば,ビルド時に実行されるスクリプトで作成されるヘッダファイ
 5466: ルがある場合,他のすべての(おそらくこれらのヘッダを使用するものがある)コ
 5467: ンパイルの前にそれらのビルドを開始することを確実にするため,これらのヘッ
 5468: ダを@code{BUILT_SOURCES}に記述すべきでしょう.
 5469: 
 5470: 
 5471: @node Other GNU Tools, Documentation, Other objects, Top
 5472: @c @chapter Other GNU Tools
 5473: @chapter その他のGNUツール
 5474: 
 5475: @c Since Automake is primarily intended to generate @file{Makefile.in}s for
 5476: @c use in GNU programs, it tries hard to interoperate with other GNU tools.
 5477: @c 
 5478: Automakeは,GNUプログラムで使用する@file{Makefile.in}を生成することを主
 5479: 目的にしているので,他のGNUツールとの相互作用を試みます.
 5480: 
 5481: @menu
 5482: * Emacs Lisp::                  Emacs Lisp
 5483: * gettext::                     Gettext
 5484: * Libtool::                     Libtool
 5485: * Java::                        Java
 5486: * Python::                      Python
 5487: @end menu
 5488: 
 5489: 
 5490: @node Emacs Lisp, gettext, Other GNU Tools, Other GNU Tools
 5491: @section Emacs Lisp
 5492: 
 5493: @cindex _LISP primary, defined
 5494: @cindex LISP primary, defined
 5495: @cindex Primary variable, LISP
 5496: 
 5497: @vindex LISP
 5498: @vindex lisp_LISP
 5499: @vindex noinst_LISP
 5500: 
 5501: @c Automake provides some support for Emacs Lisp.  The @samp{LISP} primary
 5502: @c is used to hold a list of @file{.el} files.  Possible prefixes for this
 5503: @c primary are @samp{lisp_} and @samp{noinst_}.  Note that if
 5504: @c @code{lisp_LISP} is defined, then @file{configure.in} must run
 5505: @c @code{AM_PATH_LISPDIR} (@pxref{Macros}).
 5506: @c 
 5507: Automakeは,Emacs Lispに対するサポートも供給します.@samp{LISP}プライマ
 5508: リは@file{.el}ファイルのリストを保持するために使用されます.このプライマ
 5509: リに対して利用可能な接頭辞は@samp{lisp_}と@samp{noinst_}です.
 5510: @code{lisp_LISP}が定義されている場合,@file{configure.in}で
 5511: @code{AM_PATH_LISPDIR}を実行する必要があります(@pxref{Macros}).
 5512: 
 5513: @vindex ELCFILES
 5514: 
 5515: @c By default Automake will byte-compile all Emacs Lisp source files using
 5516: @c the Emacs found by @code{AM_PATH_LISPDIR}.  If you wish to avoid
 5517: @c byte-compiling, simply define the variable @code{ELCFILES} to be empty.
 5518: @c Byte-compiled Emacs Lisp files are not portable among all versions of
 5519: @c Emacs, so it makes sense to turn this off if you expect sites to have
 5520: @c more than one version of Emacs installed.  Furthermore, many packages
 5521: @c don't actually benefit from byte-compilation.  Still, we recommend that
 5522: @c you leave it enabled by default.  It is probably better for sites with
 5523: @c strange setups to cope for themselves than to make the installation less
 5524: @c nice for everybody else.
 5525: @c 
 5526: デフォルトでAutomakeは,@code{AM_PATH_LISPDIR}で見つかったEmacsを使用し
 5527: ながら,すべてのEmacs Lispソースファイルをバイトコンパイルします.バイト
 5528: コンパイルしたくない場合,変数@code{ELCFILES}を空のまま定義してください.
 5529: バイトコンパイルされたEmacs Lispファイルは,すべてのEmacsのバージョンの
 5530: 間で移植性があるわけではないので,一種類以上のEmacsバージョンをインストー
 5531: ルしているサイトがあることが予想される場合,これを止めることに意味があり
 5532: ます.さらに,実際にはバイトコンパイルの利点がないパッケージも多くありま
 5533: す.しかし,我々はデフォルトでバイトコンパイルを使用可能なままにしておく
 5534: ことを勧めます.恐らく,他の全員がインストールしなくてすむことより,それ
 5535: ぞれに対して対処するためにそれぞれ設定した方が良いでしょう.
 5536: 
 5537: 
 5538: @node gettext, Libtool, Emacs Lisp, Other GNU Tools
 5539: @section Gettext
 5540: 
 5541: @cindex GNU Gettext support
 5542: @cindex Gettext support
 5543: @cindex Support for GNU Gettext
 5544: 
 5545: @c If @code{AM_GNU_GETTEXT} is seen in @file{configure.in}, then Automake
 5546: @c turns on support for GNU gettext, a message catalog system for
 5547: @c internationalization
 5548: @c (@pxref{GNU Gettext, , , gettext, GNU gettext utilities}).
 5549: @c 
 5550: @code{AM_GNU_GETTEXT}が@file{configure.in}にある場合,Automakeは,国際化
 5551: のためのメッセージカタログシステム,GNU gettextに対するサポートを開始し
 5552: ます(@pxref{GNU Gettext, , , gettext, GNU gettext utilities}).
 5553: 
 5554: @c The @code{gettext} support in Automake requires the addition of two
 5555: @c subdirectories to the package, @file{intl} and @file{po}.  Automake
 5556: @c insures that these directories exist and are mentioned in
 5557: @c @code{SUBDIRS}.
 5558: @c 
 5559: Automakeでの@code{gettext}サポートには,パッケージに@file{intl}と
 5560: @file{po}の二つのサブディレクトリの追加が必要です.Automakeは,これらの
 5561: ディレクトリが存在して@code{SUBDIRS}に書かれていることを保証します.
 5562: 
 5563: 
 5564: @node Libtool, Java, gettext, Other GNU Tools
 5565: @section Libtool
 5566: 
 5567: @c Automake provides support for GNU Libtool (@pxref{Top, , Introduction,
 5568: @c libtool, The Libtool Manual}) with the @samp{LTLIBRARIES} primary.
 5569: @c @xref{A Shared Library}.
 5570: @c 
 5571: Automakeは,@samp{LTLIBRARIES}プライマリを用いることで,GNU
 5572: Libtool(@pxref{Top, , Introduction, libtool, The Libtool Manual})に対す
 5573: るサポートを提供します.@xref{A Shared Library}.
 5574: 
 5575: 
 5576: @node Java, Python, Libtool, Other GNU Tools
 5577: @section Java
 5578: 
 5579: @cindex _JAVA primary, defined
 5580: @cindex JAVA primary, defined
 5581: @cindex Primary variable, JAVA
 5582: 
 5583: @c Automake provides some minimal support for Java compilation with the
 5584: @c @samp{JAVA} primary.
 5585: @c 
 5586: Automakeは@samp{JAVA}プライマリを用いることで,Javaコンパイルに対する最
 5587: 低限のサポートも提供します.
 5588: 
 5589: @c Any @file{.java} files listed in a @samp{_JAVA} variable will be
 5590: @c compiled with @code{JAVAC} at build time.  By default, @file{.class}
 5591: @c files are not included in the distribution.
 5592: @c 
 5593: @samp{_JAVA}変数でリストアップされているすべての@file{.java}ファイルは,
 5594: ビルド時に@code{JAVAC}でコンパイルされます.デフォルトで,@file{.class} 
 5595: ファイルは配布物に含められません.
 5596: 
 5597: @cindex JAVA restrictions
 5598: @cindex Restrictions for JAVA
 5599: 
 5600: @c Currently Automake enforces the restriction that only one @samp{_JAVA}
 5601: @c primary can be used in a given @file{Makefile.am}.  The reason for this
 5602: @c restriction is that, in general, it isn't possible to know which
 5603: @c @file{.class} files were generated from which @file{.java} files -- so
 5604: @c it would be impossible to know which files to install where.  For
 5605: @c instance, a @file{.java} file can define multiple classes; the resulting
 5606: @c @file{.class} file names cannot be predicted without parsing the
 5607: @c @file{.java} file.
 5608: @c 
 5609: 現在のAutomakeには,@samp{_JAVA}プライマリを@file{Makefile.am}で一つだけ
 5610: しか使用できないという制限があります.この制限の理由は,どの@file{.java} 
 5611: ファイルからどの@file{.class}ファイルが生成されるのかが通常は分からない
 5612: ためです -- そのため,どこにどのファイルをインストールするのか分かりませ
 5613: ん.例えば,@file{.java}ファイルで複数のクラスを定義することが可能です.
 5614: 結果として得られる@file{.class}ファイル名は,@file{.java}ファイルをパー
 5615: スしない限り特定不可能です.
 5616: 
 5617: @c There are a few variables which are used when compiling Java sources:
 5618: @c 
 5619: Javaソースをコンパイルする時に使用される変数がいくつかあります.
 5620: 
 5621: @vtable @code
 5622: @item JAVAC
 5623: @c The name of the Java compiler.  This defaults to @samp{javac}.
 5624: @c 
 5625: Javaコンパイラの名前です.デフォルトは,@samp{javac}です.
 5626: 
 5627: @item JAVACFLAGS
 5628: @c The flags to pass to the compiler.  This is considered to be a user
 5629: @c variable (@pxref{User Variables}).
 5630: @c 
 5631: コンパイラに渡すフラグです.これは,ユーザ変数として考慮されます
 5632: (@pxref{User Variables}).
 5633: 
 5634: @item AM_JAVACFLAGS
 5635: @c More flags to pass to the Java compiler.  This, and not
 5636: @c @code{JAVACFLAGS}, should be used when it is necessary to put Java
 5637: @c compiler flags into @file{Makefile.am}.
 5638: @c 
 5639: Javaコンパイラに渡す追加フラグです.@code{JAVACFLAGS}とは異なり,
 5640: @file{Makefile.am}にJavaコンパイラフラグを書く必要があるとき,これを使用
 5641: すべきではありません.
 5642: 
 5643: @item JAVAROOT
 5644: @c The value of this variable is passed to the @samp{-d} option to
 5645: @c @code{javac}.  It defaults to @samp{$(top_builddir)}.
 5646: @c 
 5647: この変数の値は,@code{javac}に渡す@samp{-d}オプションです.デフォルトは,
 5648: @samp{$(top_builddir)}です.
 5649: 
 5650: @item CLASSPATH_ENV
 5651: @c This variable is an @code{sh} expression which is used to set the
 5652: @c @code{CLASSPATH} environment variable on the @code{javac} command line.
 5653: @c (In the future we will probably handle class path setting differently.)
 5654: @c 
 5655: この変数は,@code{javac}コマンドラインで@code{CLASSPATH}環境変数に設定す
 5656: るために使用される@code{sh}式です.(将来,クラスパスの設定を異なる方法で
 5657: 扱うようにする予定です.)
 5658: @end vtable
 5659: 
 5660: 
 5661: @node Python,  , Java, Other GNU Tools
 5662: @section Python
 5663: 
 5664: @cindex _PYTHON primary, defined
 5665: @cindex PYTHON primary, defined
 5666: @cindex Primary variable, PYTHON
 5667: 
 5668: 
 5669: @c Automake provides support for Python compilation with the @samp{PYTHON}
 5670: @c primary.
 5671: @c 
 5672: Automakeは,@samp{PYTHON}プライマリを用いることで,Pythonのコンパイルに
 5673: 対するサポートを提供します.
 5674: 
 5675: @c Any files listed in a @samp{_PYTHON} variable will be byte-compiled with
 5676: @c @code{py-compile} at install time.  @code{py-compile} actually creates
 5677: @c both standard (@file{.pyc}) and byte-compiled (@file{.pyo}) versions of
 5678: @c the source files.  Note that because byte-compilation occurs at install
 5679: @c time, any files listed in @samp{noinst_PYTHON} will not be compiled.
 5680: @c Python source files are included in the distribution by default.
 5681: @c 
 5682: @samp{_PYTHON}変数でリストアップされているすべてのファイルは,インストー
 5683: ル時に@code{py-compile}でバイトコンパイルされます.@code{py-compile}は,
 5684: 実際にはソースファイルの標準的なバージョン(@file{.pyc})とバイトコンパイ
 5685: ルされたバージョン(@file{.pyo})の両方を作成します.バイトコンパイルはイ
 5686: ンストール時に行なわれるので,@samp{noinst_PYTHON}にリストアップされてい
 5687: るファイルはコンパイルされないことに注意してください.Pythonのソースファ
 5688: イルは,デフォルトで配布物に含められます.
 5689: 
 5690: @c Automake ships with an Autoconf macro called @code{AM_PATH_PYTHON} which
 5691: @c will determine some Python-related directory variables (see below).  If
 5692: @c you have called @code{AM_PATH_PYTHON} from @file{configure.in}, then you
 5693: @c may use the following variables to list you Python source files in your
 5694: @c variables: @samp{python_PYTHON}, @samp{pkgpython_PYTHON},
 5695: @c @samp{pyexecdir_PYTHON}, @samp{pkgpyexecdir_PYTHON}, depending where you
 5696: @c want your files installed.
 5697: @c 
 5698: Automakeは,Pythonに関連するディレクトリ変数(以下を参照してください)を決
 5699: 定する@code{AM_PATH_PYTHON}と呼ばれるAutoconfとともに出荷されています.
 5700: @file{configure.in}で@code{AM_PATH_PYTHON}が呼び出す場合,Pythonソースファ
 5701: イルをリストアップするために以下の変数を変数内に使用してもかまいません.
 5702: @samp{python_PYTHON},@samp{pkgpython_PYTHON},@samp{pyexecdir_PYTHON},
 5703: @samp{pkgpyexecdir_PYTHON}はファイルをインストールしたい場所に依存します.
 5704: 
 5705: @c @code{AM_PATH_PYTHON} takes a single optional argument.  This argument,
 5706: @c if present, is the minimum version of Python which can be used for this
 5707: @c package.  If the version of Python found on the system is older than the
 5708: @c required version, then @code{AM_PATH_PYTHON} will cause an error.
 5709: @c 
 5710: @code{AM_PATH_PYTHON}は,単一のオプション引数を受けとります.この引数が
 5711: 存在する場合,このパッケージで使用可能なPythonの最小バージョンになります.
 5712: システムで見つかったPythonのバージョンが要求されたバージョンより古い場合,
 5713: @code{AM_PATH_PYTHON}はエラーを発生します.
 5714: 
 5715: @c @code{AM_PATH_PYTHON} creates several output variables based on the
 5716: @c Python installation found during configuration.
 5717: @c 
 5718: @code{AM_PATH_PYTHON}は,コンフィグレーションで分かったPythonのインストー
 5719: ル状況を基に,いくつかの出力変数を生成します.
 5720: 
 5721: @vtable @code
 5722: @item PYTHON
 5723: @c The name of the Python executable.
 5724: @c 
 5725: Pythonの実行形式の名前です.
 5726: 
 5727: @item PYTHON_VERSION
 5728: @c The Python version number, in the form @var{major}.@var{minor}
 5729: @c (e.g. @samp{1.5}).  This is currently the value of
 5730: @c @code{sys.version[:3]}.
 5731: @c 
 5732: @var{major}.@var{minor}形式(例えば,@samp{1.5})の,Pythonのバージョンナ
 5733: ンバーです.これは,現在@code{sys.version[:3]}の値です.
 5734: 
 5735: @item PYTHON_PREFIX
 5736: @c The string @code{$prefix}.  This term may be used in future work
 5737: @c which needs the contents of Python's @code{sys.prefix}, but general
 5738: @c consensus is to always use the value from configure.
 5739: @c 
 5740: 文字列@code{$prefix}です.この単語は,Pythonの@code{sys.prefix}の内容が
 5741: 必要となる将来の動作で使用されるかもしれませんが,一般的な同意事項として
 5742: @code{configure}からの値が常に使用されます.
 5743: 
 5744: @item PYTHON_EXEC_PREFIX
 5745: @c The string @code{$exec_prefix}.  This term may be used in future work
 5746: @c which needs the contents of Python's @code{sys.exec_prefix}, but general
 5747: @c consensus is to always use the value from configure.
 5748: @c 
 5749: 文字列@code{$exec_prefix}です.この単語は,Pythonの
 5750: @code{sys.exec_prefix}の内容が必要となる将来の動作で使用されるかもしれま
 5751: せんが,一般的な同意事項として@code{configure}からの値が常に使用されます.
 5752: 
 5753: @item PYTHON_PLATFORM
 5754: @c The canonical name used by Python to describe the operating system, as
 5755: @c given by @code{sys.platform}.  This value is sometimes needed when
 5756: @c building Python extensions.
 5757: @c 
 5758: Pythonがオペレーティングシステムを記述するために使用する標準的な名前で,
 5759: @code{sys.platform}で与えられます.この値は,Pythonの拡張をビルドする時,
 5760: 必要となるときもあります.
 5761: 
 5762: @item pythondir
 5763: @c The directory name for the @file{site-packages} subdirectory of the
 5764: @c standard Python install tree.
 5765: @c 
 5766: 標準的にPythonがインストールされるツリーの,@file{site-packages}サブディ
 5767: レクトリのディレクトリの名前です.
 5768: 
 5769: @item pkgpythondir
 5770: @c This is is the directory under @code{pythondir} which is named after the
 5771: @c package.  That is, it is @samp{$(pythondir)/$(PACKAGE)}.  It is provided
 5772: @c as a convenience.
 5773: @c 
 5774: これは,パッケージの後で命名される@code{pythondir}以下のディレクトリです.
 5775: すなわち,それは@samp{$(pythondir)/$(PACKAGE)}です.それは便宜上提供され
 5776: ます.
 5777: 
 5778: @item pyexecdir
 5779: @c This is the directory where Python extension modules (shared libraries)
 5780: @c should be installed.
 5781: @c 
 5782: これは,Pythonの拡張モジュール(共有ライブラリ)がインストールされるディレ
 5783: クトリです.
 5784: 
 5785: @item pkgpyexecdir
 5786: @c This is a convenience variable which is defined as
 5787: @c @samp{$(pyexecdir)/$(PACKAGE)}.
 5788: @c 
 5789: これは,@samp{$(pyexecdir)/$(PACKAGE)}として定義されている,便宜上の変数
 5790: です.
 5791: @end vtable
 5792: 
 5793: 
 5794: @node Documentation, Install, Other GNU Tools, Top
 5795: @c @chapter Building documentation
 5796: @chapter ドキュメントのビルド
 5797: 
 5798: @c Currently Automake provides support for Texinfo and man pages.
 5799: @c 
 5800: 現在Automakeは,Texinfoとman pageに対するサポートを提供します.
 5801: 
 5802: @menu
 5803: * Texinfo::                     Texinfo
 5804: * Man pages::                   Man pages
 5805: @end menu
 5806: 
 5807: 
 5808: @node Texinfo, Man pages, Documentation, Documentation
 5809: @section Texinfo
 5810: 
 5811: @cindex _TEXINFOS primary, defined
 5812: @cindex TEXINFOS primary, defined
 5813: @cindex Primary variable, TEXINFOS
 5814: 
 5815: @c If the current directory contains Texinfo source, you must declare it
 5816: @c with the @samp{TEXINFOS} primary.  Generally Texinfo files are converted
 5817: @c into info, and thus the @code{info_TEXINFOS} variable is most commonly used
 5818: @c here.  Any Texinfo source file must end in the @file{.texi},
 5819: @c @file{.txi}, or @file{.texinfo} extension.  We recommend @file{.texi}
 5820: @c for new manuals.
 5821: @c 
 5822: カレントディレクトリにTexinfoソースを含んでいる場合,@samp{TEXINFOS}プラ
 5823: イマリでそれを宣言する必要があります.通常,Texinfoファイルはinfoに変換
 5824: されるので,@code{info_TEXINFOS}変数が最も一般的に使用されます.すべての
 5825: Texinfoソースファイルは,@file{.texi},@file{.txi},または
 5826: @file{.texinfo}の拡張子で終える必要があります.新しいマニュアルには,
 5827: @file{.texi}を推奨します.
 5828: @vindex TEXINFOS
 5829: @vindex info_TEXINFOS
 5830: 
 5831: @c Automake generates rules to build @file{.info}, @file{.dvi}, @file{.ps},
 5832: @c and @file{.pdf} files from your Texinfo sources.  The @file{.info} files
 5833: @c are built by @code{make all} and installed by @code{make install}
 5834: @c (unless you use @code{no-installinfo}, see below).  The other files can
 5835: @c be built on request by @code{make dvi}, @code{make ps}, and @code{make
 5836: @c pdf}.
 5837: @c 
 5838: Automakeは,@file{.info},@file{.dvi},@file{.ps},そして@file{.pdf}ファ
 5839: イルを,Texinfoソースからビルドする規則を生成します.@file{.info}ファイ
 5840: ルは@code{make all}でビルドされ,@code{make install}でインストールされま
 5841: す(@code{no-installinfo}を使用していない場合に限ります.以下を参照してく
 5842: ださい).それ以外のファイルは,@code{make dvi},@code{make ps},そして
 5843: @code{make pdf}でビルドを要求することが可能です.
 5844: 
 5845: @cindex Texinfo flag, VERSION
 5846: @cindex Texinfo flag, UPDATED
 5847: @cindex Texinfo flag, EDITION
 5848: @cindex Texinfo flag, UPDATED-MONTH
 5849: 
 5850: @cindex VERSION Texinfo flag
 5851: @cindex UPDATED Texinfo flag
 5852: @cindex EDITION Texinfo flag
 5853: @cindex UPDATED-MONTH Texinfo flag
 5854: 
 5855: @cindex mdate-sh
 5856: 
 5857: @c If the @file{.texi} file @code{@@include}s @file{version.texi}, then
 5858: @c that file will be automatically generated.  The file @file{version.texi}
 5859: @c defines four Texinfo flag you can reference using
 5860: @c @code{@@value@{EDITION@}}, @code{@@value@{VERSION@}},
 5861: @c @code{@@value@{UPDATED@}}, and @code{@@value@{UPDATED-MONTH@}}.
 5862: @c 
 5863: @file{.texi}ファイルが@file{version.texi}を@code{@@include}している場合,
 5864: そのファイルが自動的に生成されます.ファイル@file{version.texi}は,四つ
 5865: のTexinfoのフラグを定義し,それは@code{@@value@{EDITION@}},
 5866: @code{@@value@{VERSION@}},@code{@@value@{UPDATED@}},そして
 5867: @code{@@value@{UPDATED-MONTH@}}を使用することで参照可能です.
 5868: 
 5869: @table @code
 5870: @item EDITION
 5871: @itemx VERSION
 5872: @c Both of these flags hold the version number of your program.  They are
 5873: @c kept separate for clarity.
 5874: @c 
 5875: これらのフラグは両方とも,プログラムのバージョンナンバーです.それらは明
 5876: 確さのために別々にしています.
 5877: 
 5878: @item UPDATED
 5879: @c This holds the date the primary @file{.texi} file was last modified.
 5880: @c 
 5881: これは,主要な@file{.texi}ファイルが最後に修正された日付を保持します.
 5882: 
 5883: @item UPDATED-MONTH
 5884: @c This holds the name of the month in which the primary @file{.texi} file
 5885: @c was last modified.
 5886: @c 
 5887: これは,主要な@file{.texi}ファイルが最後に修正された月名を保持します.
 5888: @end table
 5889: 
 5890: @c The @file{version.texi} support requires the @code{mdate-sh} program;
 5891: @c this program is supplied with Automake and automatically included when
 5892: @c @code{automake} is invoked with the @code{--add-missing} option.
 5893: @c 
 5894: @file{version.texi}サポートには,@code{mdate-sh}プログラムが必要です.こ
 5895: のプログラムはAutomakeと一緒に供給されていて,@code{automake}が
 5896: @code{--add-missing}オプションで呼び出されるとき,自動的に含まれます.
 5897: 
 5898: @c If you have multiple Texinfo files, and you want to use the
 5899: @c @file{version.texi} feature, then you have to have a separate version
 5900: @c file for each Texinfo file.  Automake will treat any include in a
 5901: @c Texinfo file that matches @samp{vers*.texi} just as an automatically
 5902: @c generated version file.
 5903: @c 
 5904: 複数のTexinfoファイルがあり,@file{version.texi}の機能を使用したい場合,
 5905: それぞれのTexinfoファイルに対し個別のバージョンファイルを持たせる必要が
 5906: あります.Automakeは@samp{vers*.texi}に一致したTexinfoファイル内に含まれ
 5907: るものを,単純に自動的に生成されたバージョンファイルとして扱います.
 5908: 
 5909: @c When an info file is rebuilt, the program named by the @code{MAKEINFO}
 5910: @c variable is used to invoke it.  If the @code{makeinfo} program is found
 5911: @c on the system then it will be used by default; otherwise @code{missing}
 5912: @c will be used instead.  The flags in the variables @code{MAKEINFOFLAGS}
 5913: @c and @code{AM_MAKEINFOFLAGS} will be passed to the @code{makeinfo}
 5914: @c invocation; the first of these is intended for use by the user
 5915: @c (@pxref{User Variables}) and the second by the @file{Makefile.am}
 5916: @c writer.
 5917: @c 
 5918: infoファイルが再びビルドされるとき,@code{MAKEINFO}変数で指名されたプロ
 5919: グラムが,その呼び出しで使用されます.システムで@code{makeinfo}が見つかっ
 5920: た場合,それがデフォルトで使用されます.それ以外の場合,@code{missing}が
 5921: 代わりに使用されます.変数@code{MAKEINFOFLAGS}と@code{AM_MAKEINFOFLAGS} 
 5922: にあるフラグは,@code{makeinfo}の呼び出しに渡されます.最初のものは,ユー
 5923: ザが使用する(@pxref{User Variables})目的で,二番目のもの
 5924: @file{Makefile.am}の著者が使用する目的です.
 5925: @vindex MAKEINFO
 5926: @vindex MAKEINFOFLAGS
 5927: @vindex AM_MAKEINFOFLAGS
 5928: 
 5929: @c Sometimes an info file actually depends on more than one @file{.texi}
 5930: @c file.  For instance, in GNU Hello, @file{hello.texi} includes the file
 5931: @c @file{gpl.texi}.  You can tell Automake about these dependencies using
 5932: @c the @code{@var{texi}_TEXINFOS} variable.  Here is how GNU Hello does it:
 5933: @c 
 5934: infoファイルが,実際には一つ以上の@file{.texi}ファイルに依存する場合もあ
 5935: ります.例えば,GNU Helloでは,@file{hello.texi}は@file{gpl.texi}ファイ
 5936: ルを含んでいます.@code{@var{texi}_TEXINFOS}変数を使用することでこれらの
 5937: 依存性をAutomakeに伝えることが可能です.GNU Helloで用いた方法は,以下の
 5938: ようになっています.
 5939: @vindex TEXINFOS
 5940: @vindex _TEXINFOS
 5941: 
 5942: @example
 5943: info_TEXINFOS = hello.texi
 5944: hello_TEXINFOS = gpl.texi
 5945: @end example
 5946: 
 5947: @cindex texinfo.tex
 5948: 
 5949: @c By default, Automake requires the file @file{texinfo.tex} to appear in
 5950: @c the same directory as the Texinfo source.  However, if you used
 5951: @c @code{AC_CONFIG_AUX_DIR} in @file{configure.in} (@pxref{Input, , Finding
 5952: @c `configure' Input, autoconf, The Autoconf Manual}), then
 5953: @c @file{texinfo.tex} is looked for there.  Automake supplies
 5954: @c @file{texinfo.tex} if @samp{--add-missing} is given.
 5955: @c 
 5956: デフォルトでAutomakeは,ファイル@file{texinfo.tex}がTexinfoソースと同じ
 5957: ディレクトリに存在することを要求します.しかし,@file{configure.in}で
 5958: @code{AC_CONFIG_AUX_DIR}を使用した場合(@pxref{Input, , Finding
 5959: `configure' Input, autoconf, The Autoconf Manual}),@file{texinfo.tex}は
 5960: そこで探されます.Automakeは,@samp{--add-missing}が与えられている場合,
 5961: @file{texinfo.tex}を供給します.
 5962: 
 5963: @vindex TEXINFO_TEX
 5964: 
 5965: @c If your package has Texinfo files in many directories, you can use the
 5966: @c variable @code{TEXINFO_TEX} to tell Automake where to find the canonical
 5967: @c @file{texinfo.tex} for your package.  The value of this variable should
 5968: @c be the relative path from the current @file{Makefile.am} to
 5969: @c @file{texinfo.tex}:
 5970: @c 
 5971: 多くのディレクトリにTexinfoファイルがあるパッケージの場合,パッケージに
 5972: 対する標準的な@file{texinfo.tex}が見つかる場所をAutomakeに伝えるため,変
 5973: 数@code{TEXINFO_TEX}を使用することが可能です.この変数の値は,現在の
 5974: @file{Makefile.am}から@file{texinfo.tex}への相対的なパスにすべきです.
 5975: 
 5976: @example
 5977: TEXINFO_TEX = ../doc/texinfo.tex
 5978: @end example
 5979: 
 5980: @opindex no-texinfo.tex
 5981: 
 5982: @c The option @samp{no-texinfo.tex} can be used to eliminate the
 5983: @c requirement for @file{texinfo.tex}.  Use of the variable
 5984: @c @code{TEXINFO_TEX} is preferable, however, because that allows the
 5985: @c @code{dvi}, @code{ps}, and @code{pdf} targets to still work.
 5986: @c 
 5987: オプション@samp{no-texinfo.tex}を,@file{texinfo.tex}を要求することを止
 5988: めるために使用することが可能です.しかし,変数@code{TEXINFO_TEX}の使用は
 5989: 望ましく,それは@code{dvi},@code{ps},そして@code{pdf}ターゲットを動作
 5990: させることが可能だからです.
 5991: 
 5992: @cindex Target, install-info
 5993: @cindex Target, noinstall-info
 5994: @cindex install-info target
 5995: @cindex noinstall-info target
 5996: 
 5997: @opindex no-installinfo
 5998: @trindex install-info
 5999: 
 6000: @c Automake generates an @code{install-info} target; some people apparently
 6001: @c use this.  By default, info pages are installed by @samp{make install}.
 6002: @c This can be prevented via the @code{no-installinfo} option.
 6003: @c 
 6004: Automakeは@code{install-info}ターゲットを生成します.これを明示的に使用
 6005: する人もいます.デフォルトで,infoページは@samp{make install}でインストー
 6006: ルされます.これは@code{no-installinfo}オプションによって止めることが可
 6007: 能です.
 6008: 
 6009: 
 6010: @node Man pages,  , Texinfo, Documentation
 6011: @c @section Man pages
 6012: @section manページ
 6013: 
 6014: @cindex _MANS primary, defined
 6015: @cindex MANS primary, defined
 6016: @cindex Primary variable, MANS
 6017: 
 6018: @c A package can also include man pages (but see the GNU standards on this
 6019: @c matter, @ref{Man Pages, , , standards, The GNU Coding Standards}.)  Man
 6020: @c pages are declared using the @samp{MANS} primary.  Generally the
 6021: @c @code{man_MANS} variable is used.  Man pages are automatically installed in
 6022: @c the correct subdirectory of @code{mandir}, based on the file extension.
 6023: @c 
 6024: パッケージにmanページを含めることも可能です(しかし,この件に関しては,
 6025: @ref{Man Pages, , , standards, The GNU Coding Standards}を参照してくださ
 6026: い).manページは@samp{MANS}プライマリを使用して宣言します.一般に 
 6027: @code{man_MANS}変数を使用します.manページは,@code{mandir}の正しいサブ
 6028: ディレクトリに,ファイル拡張子に基づいて自動的にインストールされます.
 6029: @vindex MANS
 6030: @vindex man_MANS
 6031: 
 6032: @c File extensions such as @samp{.1c} are handled by looking for the valid
 6033: @c part of the extension and using that to determine the correct
 6034: @c subdirectory of @code{mandir}.  Valid section names are the digits
 6035: @c @samp{0} through @samp{9}, and the letters @samp{l} and @samp{n}.
 6036: @c 
 6037: @samp{.1c}のようなファイルの拡張子は,有効な拡張子を探すために処理され,
 6038: @code{mandir}の正しいサブディレクトリを決定するために使用されます.有効
 6039: なセクション名は,10進数の@samp{0}から@samp{9}と,文字の@samp{l}と
 6040: @samp{n}です.
 6041: 
 6042: @c Sometimes developers prefer to name a man page something like
 6043: @c @file{foo.man} in the source, and then rename it to have the correct
 6044: @c suffix, e.g. @file{foo.1}, when installing the file.  Automake also
 6045: @c supports this mode.  For a valid section named @var{SECTION}, there is a
 6046: @c corresponding directory named @samp{man@var{SECTION}dir}, and a
 6047: @c corresponding @samp{_MANS} variable.  Files listed in such a variable
 6048: @c are installed in the indicated section.  If the file already has a
 6049: @c valid suffix, then it is installed as-is; otherwise the file suffix is
 6050: @c changed to match the section.
 6051: @c 
 6052: 開発者によっては,ソースファイルで@file{foo.man}のようなファイル名でman 
 6053: ページを命名し,ファイルをインストールするときに,例えば@file{foo.1}のよ
 6054: うな正しい接尾子を持つものに名前を変更したい時もあります.Automakeはこの
 6055: モードもサポートします.有効なセクションに命名された@var{SECTION}に対し
 6056: て,@samp{man@var{SECTION}dir}と命名されている対応するディレクトリと,対
 6057: 応する@samp{_MANS}変数があります.そのような変数でリストアップされている
 6058: ファイルは,示されているセクションにインストールされます.ファイルに有効
 6059: な接尾子が既についている場合,それはそのままインストールされます.それ以
 6060: 外の場合,ファイルの接尾子はセクションに一致するように変更されます.
 6061: 
 6062: @c For instance, consider this example:
 6063: @c 
 6064: 例えば,以下のような例を考えます.
 6065: @example
 6066: man1_MANS = rename.man thesame.1 alsothesame.1c
 6067: @end example
 6068: 
 6069: @c In this case, @file{rename.man} will be renamed to @file{rename.1} when
 6070: @c installed, but the other files will keep their names.
 6071: @c 
 6072: この場合は,@file{rename.man}はインストールする時に@file{rename.1}に名前
 6073: を変更され,他のファイルはその名前のままになります.
 6074: 
 6075: @cindex Target, install-man
 6076: @cindex Target, noinstall-man
 6077: @cindex install-man target
 6078: @cindex noinstall-man target
 6079: 
 6080: @c Use @samp{make install} per documentation: (texi)code.
 6081: @c 
 6082: @c By default, man pages are installed by @samp{make install}.  However,
 6083: @c since the GNU project does not require man pages, many maintainers do
 6084: @c not expend effort to keep the man pages up to date.  In these cases, the
 6085: @c @code{no-installman} option will prevent the man pages from being
 6086: @c installed by default.  The user can still explicitly install them via
 6087: @c @samp{make install-man}.
 6088: @c 
 6089: デフォルトで,manページは@samp{make install}でインストールされます.しか
 6090: し,GNUプロジェクトはmanページを必要としないので,多くの管理者はmanペー
 6091: ジを最新にしておきません.この場合,@code{no-installman}オプションでman 
 6092: ページをデフォルトでインストールしないようにします.ユーザは@samp{make
 6093: install-man}によって,明示的にそれらをインストールすることができます.
 6094: @opindex no-installman
 6095: @trindex install-man
 6096: 
 6097: @c Here is how the man pages are handled in GNU @code{cpio} (which includes
 6098: @c both Texinfo documentation and man pages):
 6099: @c 
 6100: (Texinfoドキュメントとmanページの両方を含んでいる)GNU@code{cpio}では,ド
 6101: キュメントを以下のようにして処理しています.
 6102: 
 6103: @example
 6104: man_MANS = cpio.1 mt.1
 6105: EXTRA_DIST = $(man_MANS)
 6106: @end example
 6107: 
 6108: @c Man pages are not currently considered to be source, because it is not
 6109: @c uncommon for man pages to be automatically generated.  Therefore they
 6110: @c are not automatically included in the distribution.  However, this can
 6111: @c be changed by use of the @samp{dist_} prefix.
 6112: @c 
 6113: manページは,現在ソースであると考慮されておらず,そのわけはmanページが自
 6114: 動的に生成されることが珍しくないからです.このため,それらは自動的に配布
 6115: 物に含められません.しかし,これは@samp{dist_}接頭辞を使用することで変更
 6116: 可能です.
 6117: 
 6118: @c The @samp{nobase_} prefix is meaningless for man pages and is
 6119: @c disallowed.
 6120: @c 
 6121: @samp{nobase_}接頭辞はmanページに対しては意味が無く利用できません.
 6122: 
 6123: 
 6124: @node Install, Clean, Documentation, Top
 6125: @c @chapter What Gets Installed
 6126: @chapter インストールされるもの
 6127: 
 6128: @cindex Installation support
 6129: @cindex make install support
 6130: 
 6131: @c @section Basics of installation
 6132: @section 基本的なインストール
 6133: 
 6134: @c Naturally, Automake handles the details of actually installing your
 6135: @c program once it has been built.  All files named by the various
 6136: @c primaries are automatically installed in the appropriate places when the
 6137: @c user runs @code{make install}.
 6138: @c 
 6139: 当然,Automakeは,一旦ビルドされたプログラムを実際のインストールの細部ま
 6140: での処理を行ないます.様々なプライマリで指名されているすべてのファイルは,
 6141: ユーザが@code{make install}を実行する時に,適切な場所に自動的にインストー
 6142: ルされます.
 6143: 
 6144: @c A file named in a primary is installed by copying the built file into
 6145: @c the appropriate directory.  The base name of the file is used when
 6146: @c installing.
 6147: @c 
 6148: プライマリで指名されているファイルは,ビルドされたファイルを適切なディレ
 6149: クトリにコピーすることでインストールされます.ファイルのベース名はインス
 6150: トール時に使用されます.
 6151: 
 6152: @example
 6153: bin_PROGRAMS = hello subdir/goodbye
 6154: @end example
 6155: 
 6156: @c In this example, both @samp{hello} and @samp{goodbye} will be installed
 6157: @c in @code{$(bindir)}.
 6158: @c 
 6159: この例では,@samp{hello}と@samp{goodbye}の両方が@code{$(bindir)}にインス
 6160: トールされます.
 6161: 
 6162: @c Sometimes it is useful to avoid the basename step at install time.  For
 6163: @c instance, you might have a number of header files in subdirectories of
 6164: @c the source tree which are laid out precisely how you want to install
 6165: @c them.  In this situation you can use the @samp{nobase_} prefix to
 6166: @c suppress the base name step.  For example:
 6167: @c 
 6168: インストール時にベース名のステップを避けた方が役に立つこともあるでしょう.
 6169: 例えば,ソースツリーのサブディレクトリに,インストール時にインストールし
 6170: たい方法で正確に配置したいヘッダファイルがいくつかあるかもしれません.こ
 6171: の場合,ベース名のステップを停止するために,@samp{nobase_}接頭辞を使用す
 6172: ることが可能です.例えば以下のようにします.
 6173: 
 6174: @example
 6175: nobase_include_HEADERS = stdio.h sys/types.h
 6176: @end example
 6177: 
 6178: @c Will install @file{stdio.h} in @code{$(includedir)} and @file{types.h}
 6179: @c in @code{$(includedir)/sys}.
 6180: @c 
 6181: これで,@file{stdio.h}は@code{$(includedir)}に,そして@file{types.h}は
 6182: @code{$(includedir)/sys}にインストールされます.
 6183: 
 6184: @c @section The two parts of install
 6185: @section インストールの二つの部分
 6186: 
 6187: @c Automake generates separate @code{install-data} and @code{install-exec}
 6188: @c targets, in case the installer is installing on multiple machines which
 6189: @c share directory structure---these targets allow the machine-independent
 6190: @c parts to be installed only once.  @code{install-exec} installs
 6191: @c platform-dependent files, and @code{install-data} installs
 6192: @c platform-independent files.  The @code{install} target depends on both
 6193: @c of these targets.  While Automake tries to automatically segregate
 6194: @c objects into the correct category, the @file{Makefile.am} author is, in
 6195: @c the end, responsible for making sure this is done correctly.
 6196: @c 
 6197: インストーラーが共有ディレクトリ構造を持っている複数のマシンにインストー
 6198: ルする場合,Automakeは@code{install-data}と@code{install-exec}ターゲット
 6199: を分けて生成します---これらのターゲットで,マシンに依存しない部分を一度
 6200: にインストールすることができます.@code{install-exec}はプラットフォーム
 6201: に依存するファイルをインストールし,@code{install-data}はプラットフォー
 6202: ムに依存しないファイルをインストールします.@code{install}ターゲットはこ
 6203: れらのターゲットの両方に依存します.Automakeは,オブジェクトを正しいカテ
 6204: ゴリに自動的に区別するよう試みますが,@file{Makefile.am}の作者は,これが
 6205: 正しく行なわれていることを確かめる責任があります.
 6206: @trindex install-data
 6207: @trindex install-exec
 6208: @trindex install
 6209: @cindex Install, two parts of
 6210: 
 6211: @c Variables using the standard directory prefixes @samp{data},
 6212: @c @samp{info}, @samp{man}, @samp{include}, @samp{oldinclude},
 6213: @c @samp{pkgdata}, or @samp{pkginclude} (e.g. @samp{data_DATA}) are
 6214: @c installed by @samp{install-data}.
 6215: @c 
 6216: @samp{data},@samp{info},@samp{man},@samp{include},@samp{oldinclude},
 6217: @samp{pkgdata},または@samp{pkginclude}(例えば @samp{data_DATA})といった
 6218: 標準ディレクトリの接頭辞を使用している変数は,@samp{install-data}でイン
 6219: ストールされます.
 6220: 
 6221: @c Variables using the standard directory prefixes @samp{bin}, @samp{sbin},
 6222: @c @samp{libexec}, @samp{sysconf}, @samp{localstate}, @samp{lib}, or
 6223: @c @samp{pkglib} (e.g. @samp{bin_PROGRAMS}) are installed by
 6224: @c @samp{install-exec}.
 6225: @c 
 6226: @samp{bin},@samp{sbin},@samp{libexec},@samp{sysconf},
 6227: @samp{localstate},@samp{lib},または@samp{pkglib}(例えば 
 6228: @samp{bin_PROGRAMS})といった標準ディレクトリの接頭辞を使用している変数は, 
 6229: @samp{install-exec}でインストールされます.
 6230: 
 6231: @c Any variable using a user-defined directory prefix with @samp{exec} in
 6232: @c the name (e.g. @samp{myexecbin_PROGRAMS} is installed by
 6233: @c @samp{install-exec}.  All other user-defined prefixes are installed by
 6234: @c @samp{install-data}.
 6235: @c 
 6236: ユーザが定義した名前で,名前に@samp{exec}を含むディレクトリ接頭辞を使用
 6237: している変数は(例えば@samp{myexecbin_PROGRAMS}),@samp{install-exec}でイ
 6238: ンストールされます.ユーザによって定義されたそれ以外のすべての接頭辞は,
 6239: @samp{install-data}でインストールされます.
 6240: 
 6241: @c @section Extending installation
 6242: @section インストールの拡張
 6243: 
 6244: @c It is possible to extend this mechanism by defining an
 6245: @c @code{install-exec-local} or @code{install-data-local} target.  If these
 6246: @c targets exist, they will be run at @samp{make install} time.  These
 6247: @c rules can do almost anything; care is required.
 6248: @c 
 6249: @code{install-exec-local}や@code{install-data-local}ターゲットを定義する
 6250: ことで,このメカニズムを拡張することが可能です.これらのターゲットが存在
 6251: する場合,それらは@samp{make install}時に実行されます.これらの規則でほ
 6252: とんどすべてのことが可能になります.注意が必要です.
 6253: @trindex install-exec-local
 6254: @trindex install-data-local
 6255: 
 6256: @c Automake also supports two install hooks, @code{install-exec-hook} and
 6257: @c @code{install-data-hook}.  These hooks are run after all other install
 6258: @c rules of the appropriate type, exec or data, have completed.  So, for
 6259: @c instance, it is possible to perform post-installation modifications
 6260: @c using an install hook.
 6261: @c 
 6262: Automakeは, @code{install-exec-hook}と@code{install-data-hook}の,二つ
 6263: のインストールのフックもサポートしています.これらのフックは,適切な形式,
 6264: execやdataといった,他のすべてのインストール規則が完了した後で実行されま
 6265: す.そのため,例えば,インストールのフックを使用して,インストール後の変
 6266: 更を実施することが可能です.
 6267: @cindex Install hook
 6268: 
 6269: @c @section Staged installs
 6270: @section インストールの実行
 6271: 
 6272: @vindex DESTDIR
 6273: @c Automake generates support for the @samp{DESTDIR} variable in all
 6274: @c install rules.  @samp{DESTDIR} is used during the @samp{make install}
 6275: @c step to relocate install objects into a staging area.  Each object and
 6276: @c path is prefixed with the value of @samp{DESTDIR} before being copied
 6277: @c into the install area.  Here is an example of typical DESTDIR usage:
 6278: @c 
 6279: Automakeは,すべてのインストール規則で,@samp{DESTDIR}変数に対するサポー
 6280: トを生成します.@samp{DESTDIR}は,インストールオブジェクトを実行領域に再
 6281: 配置する@samp{make install}の段階で使用されます.それぞれのオブジェクト
 6282: とパスは,インストール領域にコピーされる前に,@samp{DESTDIR}の値が前置さ
 6283: れます.典型的な@samp{DESTDIR}使用法の例は,以下のようになります.
 6284: 
 6285: @example
 6286: make DESTDIR=/tmp/staging install
 6287: @end example
 6288: 
 6289: @c This places install objects in a directory tree built under
 6290: @c @file{/tmp/staging}.  If @file{/gnu/bin/foo} and
 6291: @c @file{/gnu/share/aclocal/foo.m4} are to be installed, the above command
 6292: @c would install @file{/tmp/staging/gnu/bin/foo} and
 6293: @c @file{/tmp/staging/gnu/share/aclocal/foo.m4}.
 6294: @c 
 6295: これで,インストールオブジェクトを@file{/tmp/staging}の下に構築されてい
 6296: るディレクトリツリーに配置します.@file{/gnu/bin/foo}と
 6297: @file{/gnu/share/aclocal/foo.m4}がインストールされる場合,上のコマンドで
 6298: は,@file{/tmp/staging/gnu/bin/foo}と
 6299: @file{/tmp/staging/gnu/share/aclocal/foo.m4}にインストールされます.
 6300: 
 6301: @c This feature is commonly used to build install images and packages.  For
 6302: @c more information, see @ref{Makefile Conventions, , , standards, The GNU
 6303: @c Coding Standards}.
 6304: @c 
 6305: この機能は,インストールイメージとパッケージをビルドするために,通常使用
 6306: されます.詳細は,@ref{Makefile Conventions, , , standards, The GNU
 6307: Coding Standards}を参照してください.
 6308: 
 6309: @c Support for @samp{DESTDIR} is implemented by coding it directly into the
 6310: @c install rules.  If your @file{Makefile.am} uses a local install rule
 6311: @c (e.g., @code{install-exec-local}) or an install hook, then you must
 6312: @c write that code to respect @samp{DESTDIR}.
 6313: @c 
 6314: @samp{DESTDIR}に対するサポートは,インストール規則に直接コーディングする
 6315: ことで実装されています.@file{Makefile.am}でローカルインストール規則(例
 6316: えば,@code{install-exec-local})やインストールフックを使用している場合,
 6317: @samp{DESTDIR}に対応するコードを書く必要があります.
 6318: 
 6319: @c @section Rules for the user
 6320: @section ユーザのための規則
 6321: 
 6322: @c Automake also generates an @code{uninstall} target, an
 6323: @c @code{installdirs} target, and an @code{install-strip} target.
 6324: @c 
 6325: Automakeは,@code{uninstall}ターゲット,@code{installdirs}ターゲット,そ
 6326: して@code{install-strip}ターゲットも生成します.
 6327: @trindex uninstall
 6328: @trindex installdirs
 6329: @trindex install-strip
 6330: 
 6331: @c Automake supports @code{uninstall-local} and @code{uninstall-hook}.
 6332: @c There is no notion of separate uninstalls for ``exec'' and ``data'', as
 6333: @c these features would not provide additional functionality.
 6334: @c 
 6335: Automakeは,@code{uninstall-local}と@code{uninstall-hook}をサポートして
 6336: います.これらの機能は,機能の追加のために提供されているわけでないので,
 6337: ``exec''と``data''に対してアンインストールを分ける必要はないでしょう.
 6338: 
 6339: @c Note that @code{uninstall} is not meant as a replacement for a real
 6340: @c packaging tool.
 6341: @c 
 6342: @code{uninstall}には,実際のパッケージツールを置換する意味が無いことに注
 6343: 意してください.
 6344: 
 6345: 
 6346: @node Clean, Dist, Install, Top
 6347: @c @chapter What Gets Cleaned
 6348: @chapter クリーンされるもの
 6349: 
 6350: @cindex make clean support
 6351: 
 6352: @c The GNU Makefile Standards specify a number of different clean rules.
 6353: @c See @xref{Standard Targets, , Standard Targets for Users, standards,
 6354: @c The GNU Coding Standards}.
 6355: @c 
 6356: GNU Makefile Standardsは多くの異なったクリーンの規則を指定します.
 6357: @xref{Standard Targets, , Standard Targets for Users, standards, The GNU
 6358: Coding Standards}.
 6359: 
 6360: @c Generally the files that can be cleaned are determined automatically by
 6361: @c Automake.  Of course, Automake also recognizes some variables that can
 6362: @c be defined to specify additional files to clean.  These variables are
 6363: @c @code{MOSTLYCLEANFILES}, @code{CLEANFILES}, @code{DISTCLEANFILES}, and
 6364: @c @code{MAINTAINERCLEANFILES}.
 6365: @c 
 6366: 一般に,クリーンされるファイルはAutomakeが自動的に決定します.もちろん,
 6367: Automakeはクリーンするファイルを追加で指定するために定義することが可能な
 6368: 変数も認識します.これらの変数は@code{MOSTLYCLEANFILES},
 6369: @code{CLEANFILES},@code{DISTCLEANFILES},そして
 6370: @code{MAINTAINERCLEANFILES}です.
 6371: @vindex MOSTLYCLEANFILES
 6372: @vindex CLEANFILES
 6373: @vindex DISTCLEANFILES
 6374: @vindex MAINTAINERCLEANFILES
 6375: 
 6376: @c As the GNU Standards aren't always explicit as to which files should be
 6377: @c removed by which target, we've adopted a heuristic which we believe was
 6378: @c first formulated by Fran@,{c}ois Pinard:
 6379: @c 
 6380: ターゲットによって削除されるファイルは,GNU Standardsで常に明示されてい
 6381: るというわけではないので,我々は,Fran@,{c}ois Pinardが最初に公式化した
 6382: ものを信じて,発見的手法で適用してきました.
 6383: 
 6384: @itemize @bullet
 6385: @item
 6386: @c If @code{make} built it, and it is commonly something that one would
 6387: @c want to rebuild (for instance, a @file{.o} file), then
 6388: @c @code{mostlyclean} should delete it.
 6389: @c 
 6390: @code{make}がビルドするもので,通常それをリビルドしたいときがあるもの(例
 6391: えば,@file{.o}ファイル)は@code{mostlyclean}でそれを削除します.
 6392: 
 6393: @item
 6394: @c Otherwise, if @code{make} built it, then @code{clean} should delete it.
 6395: @c 
 6396: それ以外で,@code{make}がビルドするものは@code{clean}で削除します.
 6397: 
 6398: @item
 6399: @c If @code{configure} built it, then @code{distclean} should delete it
 6400: @c 
 6401: @code{configure}でビルドするものは,@code{distclean}で削除します.
 6402: 
 6403: @item
 6404: @c If the maintainer built it, then @code{maintainer-clean} should
 6405: @c delete it.
 6406: @c 
 6407: 管理者がビルドするものは,@code{maintainer-clean}で削除します.
 6408: @end itemize
 6409: 
 6410: @c We recommend that you follow this same set of heuristics in your
 6411: @c @file{Makefile.am}.
 6412: @c 
 6413: 我々は,皆さんの@file{Makefile.am}で発見的に同じように設定するよう,この
 6414: ことに従って欲しいと思っています.
 6415: 
 6416: 
 6417: @node Dist, Tests, Clean, Top
 6418: @c @chapter What Goes in a Distribution
 6419: @chapter 配布物に含まれるもの
 6420: 
 6421: @c @section Basics of distribution
 6422: @section 基本的な配布物
 6423: 
 6424: @cindex make dist
 6425: 
 6426: @c The @code{dist} target in the generated @file{Makefile.in} can be used
 6427: @c to generate a gzip'd @code{tar} file and other flavors of archive for
 6428: @c distribution.  The files is named based on the @samp{PACKAGE} and
 6429: @c @samp{VERSION} variables defined by @code{AM_INIT_AUTOMAKE}
 6430: @c (@pxref{Macros}); more precisely the gzip'd @code{tar} file is named
 6431: @c @samp{@var{package}-@var{version}.tar.gz}.
 6432: @c 
 6433: @file{Makefile.in}で生成された@code{dist}ターゲットは,配布物に対して
 6434: gzipされた@code{tar}ファイルやそれ以外の特色を持ったものを生成するために
 6435: 使用することが可能です.ファイルは,@code{AM_INIT_AUTOMAKE}
 6436: (@pxref{Macros})で定義される@samp{PACKAGE}と@samp{VERSION}変数に基づいて
 6437: 命名されます.より正確には,gzipされた@code{tar}ファイルは
 6438: @samp{@var{package}-@var{version}.tar.gz}と命名されます.
 6439: @cvindex PACKAGE
 6440: @cvindex VERSION
 6441: @trindex dist
 6442: @c You can use the @code{make} variable @samp{GZIP_ENV} to control how gzip
 6443: @c is run.  The default setting is @samp{--best}.
 6444: @c 
 6445: gzipを実行する方法を制御するために,@code{make}の@samp{GZIP_ENV}変数を使
 6446: 用することが可能です.デフォルト設定は@samp{--best}です.
 6447: 
 6448: @c For the most part, the files to distribute are automatically found by
 6449: @c Automake: all source files are automatically included in a distribution,
 6450: @c as are all @file{Makefile.am}s and @file{Makefile.in}s.  Automake also
 6451: @c has a built-in list of commonly used files which are automatically
 6452: @c included if they are found in the current directory (either physically,
 6453: @c or as the target of a @file{Makefile.am} rule).  This list is printed by
 6454: @c @samp{automake --help}.  Also, files which are read by @code{configure}
 6455: @c (i.e. the source files corresponding to the files specified in various
 6456: @c Autoconf macros such as @code{AC_CONFIG_FILES} and siblings) are
 6457: @c automatically distributed.
 6458: @c 
 6459: ほとんどの部分で,配布するファイルは自動的にAutomakeが見つけます.ソース
 6460: ファイルはすべて自動的に配布物に含まれ,すべての@file{Makefile.am}と
 6461: @file{Makefile.in}も同様に扱われます.Automakeには,カレントディレクトリ
 6462: で(物理的にまたは@file{Makefile.am}規則のターゲットとして)見つかる場合,
 6463: 自動的に含まれる一般的に使用されるファイルの組み込みリストがあります.こ
 6464: のリストは@samp{automake --help}で出力されます.@code{configure}で読み込
 6465: まれるファイルも(すなわち,@code{AC_CONFIG_FILES}とその仲間のような様々
 6466: なAutoconfマクロで指定されているファイルに対応しているソースファイル),
 6467: 自動的に配布されます.
 6468: 
 6469: @c Still, sometimes there are files which must be distributed, but which
 6470: @c are not covered in the automatic rules.  These files should be listed in
 6471: @c the @code{EXTRA_DIST} variable.  You can mention files from
 6472: @c subdirectories in @code{EXTRA_DIST}.
 6473: @c 
 6474: 配布する必要がありながら自動的な規則でカバーされていないファイルがあるこ
 6475: とも,まだあります.これらのファイルは,@code{EXTRA_DIST}変数でリストアッ
 6476: プします.@code{EXTRA_DIST}では,サブディレクトリのファイルを記述するこ
 6477: とが可能です.
 6478: 
 6479: @c You can also mention a directory in @code{EXTRA_DIST}; in this case the
 6480: @c entire directory will be recursively copied into the distribution.
 6481: @c Please note that this will also copy @emph{everything} in the directory,
 6482: @c including CVS/RCS version control files.  We recommend against using
 6483: @c this feature.
 6484: @c 
 6485: @code{EXTRA_DIST}ではディレクトリを記述することも可能です.この場合は,
 6486: ディレクトリ全体が再帰的に配布物にコピーされます.これはディレクトリの
 6487: @emph{すべてのもの}をコピーし,CVS/RCSのバージョンコントロールファイルも
 6488: 含まれることに注意してください.我々は,この機能を使用しないことを推奨し
 6489: ます.
 6490: 
 6491: @vindex EXTRA_DIST
 6492: 
 6493: @c @section Fine-grained distribution control
 6494: @section きめ細かな配布物の制御
 6495: 
 6496: @c Sometimes you need tighter control over what does @emph{not} go into the
 6497: @c distribution; for instance you might have source files which are
 6498: @c generated and which you do not want to distribute.  In this case
 6499: @c Automake gives fine-grained control using the @samp{dist} and
 6500: @c @samp{nodist} prefixes.  Any primary or @samp{_SOURCES} variable can be
 6501: @c prefixed with @samp{dist_} to add the listed files to the distribution.
 6502: @c Similarly, @samp{nodist_} can be used to omit the files from the
 6503: @c distribution.
 6504: @c 
 6505: 配布物に含め@emph{ない}ものを細かく制御する必要があるときもあります.例
 6506: えば,生成されたソースファイルと配布したくないソースファイルがあると仮定
 6507: します.この場合は,Automakeは@samp{dist}と@samp{nodist}接頭辞を使用した
 6508: きめ細かな制御を提供します.すべてのプライマリや@samp{_SOURCES}変数は,
 6509: リストアップされているファイルを配布物に追加するため,@samp{dist_}を前置
 6510: することが可能です.同様に,ファイルを配布物から除去するために,
 6511: @samp{nodist_}を使用することが可能です.
 6512: @vindex dist_
 6513: @vindex nodist_
 6514: 
 6515: @c As an example, here is how you would cause some data to be distributed
 6516: @c while leaving some source code out of the distribution:
 6517: @c 
 6518: 例えば,配布するデータがあり配布しないソースコードもあるようにする方法は,
 6519: 以下のようになります.
 6520: 
 6521: @example
 6522: dist_data_DATA = distribute-this
 6523: bin_PROGRAMS = foo
 6524: nodist_foo_SOURCES = do-not-distribute.c
 6525: @end example
 6526: 
 6527: @c @section The dist hook
 6528: @section distフック
 6529: 
 6530: @c Another way to to use this is for removing unnecessary files that get
 6531: @c recursively included by specifying a directory in EXTRA_DIST:
 6532: @c 
 6533: これを使用するもう一つの方法は,EXTRA_DISTでディレクトリを指定することで,
 6534: 再帰的に含まれる不必要なファイルを削除するために存在します.
 6535: 
 6536: @example
 6537: EXTRA_DIST = doc
 6538: 
 6539: dist-hook:
 6540: 	rm -rf `find $(distdir)/doc -name CVS`
 6541: @end example
 6542: 
 6543: @c If you define @code{SUBDIRS}, Automake will recursively include the
 6544: @c subdirectories in the distribution.  If @code{SUBDIRS} is defined
 6545: @c conditionally (@pxref{Conditionals}), Automake will normally include all
 6546: @c directories that could possibly appear in @code{SUBDIRS} in the
 6547: @c distribution.  If you need to specify the set of directories
 6548: @c conditionally, you can set the variable @code{DIST_SUBDIRS} to the exact
 6549: @c list of subdirectories to include in the distribution.
 6550: @c 
 6551: @code{SUBDIRS}を定義している場合,Automakeはサブディレクトリを再帰的に配
 6552: 布物に含めます.@code{SUBDIRS}を条件つきで定義している場合
 6553: (@pxref{Conditionals}),Automakeは通常,@code{SUBDIRS}にあるすべてのディ
 6554: レクトリをできる限り配布物に含めます.条件つきでディレクトリの組を指定す
 6555: る必要がある場合,配布物に含めるサブディレクトリの正確なリストを変数
 6556: @code{DIST_SUBDIRS}に設定することで可能となります.
 6557: @vindex DIST_SUBDIRS
 6558: 
 6559: @trindex dist-hook
 6560: 
 6561: @c Occasionally it is useful to be able to change the distribution before
 6562: @c it is packaged up.  If the @code{dist-hook} target exists, it is run
 6563: @c after the distribution directory is filled, but before the actual tar
 6564: @c (or shar) file is created.  One way to use this is for distributing
 6565: @c files in subdirectories for which a new @file{Makefile.am} is overkill:
 6566: @c 
 6567: パッケージ化する前に,配布物の変更を可能にすことが有効な時もあります.
 6568: @code{dist-hook}ターゲットが存在する場合,配布ディレクトリが満たされた後
 6569: で,実際のtar(あるいはshar)ファイルが作成される前に,それが実行されます.
 6570: これを利用する方法の一つには,新しい@file{Makefile.am}を作るまでもないサ
 6571: ブディレクトリのファイルを配布するためにあります.
 6572: 
 6573: @example
 6574: dist-hook:
 6575:         mkdir $(distdir)/random
 6576:         cp -p $(srcdir)/random/a1 $(srcdir)/random/a2 $(distdir)/random
 6577: @end example
 6578: 
 6579: @c @section Checking the distribution
 6580: @section 配布物の調査
 6581: 
 6582: @cindex make distcheck
 6583: @cindex make distcleancheck
 6584: @vindex distcleancheck_listfiles
 6585: @cindex make distuninstallcheck
 6586: @vindex distuninstallcheck_listfiles
 6587: 
 6588: @c Automake also generates a @code{distcheck} target which can be of help
 6589: @c to ensure that a given distribution will actually work.
 6590: @c @code{distcheck} makes a distribution, then tries to do a @code{VPATH}
 6591: @c build, run the testsuite, and finally make another tarfile to ensure the
 6592: @c distribution is self-contained.
 6593: @c 
 6594: Automakeは,与えられた配布物が実際に動作することの保証に役立つ
 6595: @code{distcheck}ターゲットを生成します.@code{distcheck}は実際に配布物を
 6596: 作成し,@code{VPATH}のビルドを試み,テストスイートを実行し,そして配布物
 6597: 自身が含まれることを確認するため,最終的に別のtarファイルを作成します.
 6598: @trindex distcheck
 6599: 
 6600: @c Building the package involves running @code{./configure}.  If you need
 6601: @c to supply additional flags to @code{configure}, define them in the
 6602: @c @code{DISTCHECK_CONFIGURE_FLAGS} variable, either in your top-level
 6603: @c @file{Makefile.am}, or on the commande line when invoking @code{make}.
 6604: @c 
 6605: パッケージのビルドは@code{./configure}の実行も含まれます.
 6606: @code{configure}に追加フラグを供給する必要がある場合は,トップレベルの
 6607: @file{Makefile.am},または@code{make}の呼出時のコマンドラインで
 6608: @code{DISTCHECK_CONFIGURE_FLAGS}変数で定義する必要があります.
 6609: @vindex DISTCHECK_CONFIGURE_FLAGS
 6610: 
 6611: @c If the target @code{distcheck-hook} is defined in your
 6612: @c @file{Makefile.am}, then it will be invoked by @code{distcheck} after
 6613: @c the new distribution has been unpacked, but before the unpacked copy is
 6614: @c configured and built.  Your @code{distcheck-hook} can do almost
 6615: @c anything, though as always caution is advised.  Generally this hook is
 6616: @c used to check for potential distribution errors not caught by the
 6617: @c standard mechanism.
 6618: @c 
 6619: ターゲット@code{distcheck-hook}が@file{Makefile.am}で定義されている場合,
 6620: 新しい配布物が展開された後,展開されたコピーがコンフィグレーションされて
 6621: ビルドされる前に,@code{distcheck}で呼び出されます.いつも通りの注意とア
 6622: ドバイスはありますが,@code{distcheck-hook}でほとんどすべてのことが可能
 6623: です.通常このフックは,配布物のエラーが標準的なメカニズムで発生する可能
 6624: 性を調査するために使用されます.
 6625: 
 6626: @c Speaking about potential distribution errors, @code{distcheck} will also
 6627: @c ensure that the @code{distclean} target actually removes all built
 6628: @c files.  This is done by running @code{make distcleancheck} at the end of
 6629: @c the @code{VPATH} build.  By default, @code{distcleancheck} will run
 6630: @c @code{distclean} and then make sure the build tree has been emptied by
 6631: @c running @code{$(distcleancheck_listfiles)}.  Usually this check will
 6632: @c find generated files that you forgot to add to the @code{DISTCLEANFILES}
 6633: @c variable (@pxref{Clean}).
 6634: @c 
 6635: 配布物エラーの可能性について述べると,@code{distcheck}は@code{distclean} 
 6636: ターゲットが実際に全てのビルドファイルも確実に削除するということです.こ
 6637: れは,@code{VPATH}のビルドの終りに@code{make distcleancheck}を実行するこ
 6638: とでなされます.デフォルトで,@code{distcleancheck}は@code{distclean}を
 6639: 実行し,@code{$(distcleancheck_listfiles)}を実行することでビルドツリーが
 6640: 空になることを確かめます.通常この調査は,@code{DISTCLEANFILES}変数
 6641: (@pxref{Clean})に追加し忘れた,生成されるファイルを検出します.
 6642: @trindex distcleancheck
 6643: 
 6644: @c The @code{distcleancheck} behaviour should be ok for most packages,
 6645: @c otherwise you have the possibility to override the definitition of
 6646: @c either the @code{distcleancheck} target, or the
 6647: @c @code{$(distcleancheck_listfiles)} variable.  For instance to disable
 6648: @c @code{distcleancheck} completely, add the following rule to your
 6649: @c top-level @file{Makefile.am}:
 6650: @c 
 6651: @code{distcleancheck}の動作は,ほとんどのパッケージでOKにすべきで,そう
 6652: でない場合は,@code{distcleancheck}ターゲットや
 6653: @code{$(distcleancheck_listfiles)}変数の定義を優先している可能性がありま
 6654: す.@code{distcleancheck}が完全にできないものに対して,トップレベルの
 6655: @file{Makefile.am}に以下の規則を追加してください.
 6656: @vindex distcleancheck_listfiles
 6657: 
 6658: @example
 6659: distcleancheck:
 6660:         @@:
 6661: @end example
 6662: 
 6663: @c If you want @code{distcleancheck} to ignore built files which have not
 6664: @c been cleaned because they are also part of the distribution, add the
 6665: @c following definition instead:
 6666: @c 
 6667: 配布物の一部にもなるためクリーンしたくないビルドされたファイルを
 6668: @code{distcleancheck}で無視したい場合,代わりに以下の定義を追加してくだ
 6669: さい.
 6670: 
 6671: @example
 6672: distcleancheck_listfiles = \
 6673:   find -type f -exec sh -c 'test -f $(scrdir)/@{@} || echo @{@}'
 6674: @end example
 6675: 
 6676: @c The above definition is not the default because it's usually an error if
 6677: @c your Makefiles cause some distributed files to be rebuilt when the user
 6678: @c build the package.  (Think about the user missing the tool required to
 6679: @c build the file; or if the required tool is built by your package,
 6680: @c consider the cross-compilation case where it can't be run.)
 6681: @c 
 6682: ユーザがパッケージをビルドするときMakefileが配布されたファイルをリビルド
 6683: するものもあるので,通常エラーとなるので,上記の定義はデフォルトではあり
 6684: ません.(ファイルをビルドするために必要なユーザに足りないツールを考えて
 6685: みてください.または,要求されたツールがパッケージでビルドされる場合,実
 6686: 行不可能なクロスコンパイルの状況を考慮してください.)
 6687: 
 6688: @c @code{distcheck} also checks that the @code{uninstall} target works
 6689: @c properly, both for ordinary and @samp{DESTDIR} builds.  It does this
 6690: @c by invoking @code{make uninstall}, and then it checks the install tree
 6691: @c to see if any files are left over.  This check will make sure that you
 6692: @c correctly coded your @code{uninstall}-related targets.
 6693: @c 
 6694: @code{distcheck}は,@code{uninstall}ターゲットが,通常の場合と
 6695: @samp{DESTDIR}でのビルドの両方で適切に動作するかどうかも調査します.それ
 6696: は@code{make uninstall}の呼び出しで行ない,ファイルが残っていないかどう
 6697: かをインストールツリーを見て調査します.この調査で,@code{uninstall}に関
 6698: 連するターゲットを正しくコーディングしていることを確認します.
 6699: 
 6700: @c By default, the checking is done by the @code{distuninstallcheck} target,
 6701: @c and the list of files in the install tree is generated by
 6702: @c @code{$(distuninstallcheck_listfiles}) (this is a variable whose value is
 6703: @c a shell command to run that prints the list of files to stdout).
 6704: @c 
 6705: デフォルトで,その調査は@code{distuninstallcheck}ターゲットで行なわれ,
 6706: インストールツリーのファイルリストは,
 6707: @code{$(distuninstallcheck_listfiles)}で生成されます(これは,ファイルリ
 6708: ストを標準出力に出力するために実行するシェルコマンドを値に持つ変数です).
 6709: 
 6710: @c Either of these can be overridden to modify the behavior of
 6711: @c @code{distcheck}.  For instance, to disable this check completely, you
 6712: @c would write:
 6713: @c 
 6714: これらのいずれかで,@code{distcheck}の動作を変更するために優先させること
 6715: が可能です.例えば,この調査を完全に無効にするため,以下のように書くでしょ
 6716: う.
 6717: 
 6718: @example
 6719: distuninstallcheck:
 6720:         @@:
 6721: @end example
 6722: 
 6723: @c @section The types of distributions
 6724: @section 配布物の形式
 6725: 
 6726: @trindex dist-gzip
 6727: @c Automake generates a @samp{.tar.gz} file when asked to create a
 6728: @c distribution and other archives formats, @ref{Options}.  The target
 6729: @c @code{dist-gzip} generates the @samp{.tar.gz} file only.
 6730: @c 
 6731: Automakeは,配布物を生成する要求があったとき,@samp{.tar.gz}ファイルと,
 6732: その他のアーカイブ形式を生成します,@ref{Options}.ターゲット
 6733: @code{dist-gzip}は@samp{.tar.gz}ファイルのみを生成します.
 6734: 
 6735: 
 6736: @node Tests, Options, Dist, Top
 6737: @c @chapter Support for test suites
 6738: @chapter テストスイートのサポート
 6739: 
 6740: @cindex Test suites
 6741: @cindex make check
 6742: 
 6743: @c Automake supports two forms of test suites.
 6744: @c 
 6745: Automakeは二つの形式のテストスイートをサポートします.
 6746: 
 6747: @c @section Simple Tests
 6748: @section 単純なテスト
 6749: 
 6750: @c If the variable @code{TESTS} is defined, its value is taken to be a list
 6751: @c of programs to run in order to do the testing.  The programs can either
 6752: @c be derived objects or source objects; the generated rule will look both
 6753: @c in @code{srcdir} and @file{.}.  Programs needing data files should look
 6754: @c for them in @code{srcdir} (which is both an environment variable and a
 6755: @c make variable) so they work when building in a separate directory
 6756: @c (@pxref{Build Directories, , Build Directories , autoconf, The Autoconf
 6757: @c Manual}), and in particular for the @code{distcheck} target
 6758: @c (@pxref{Dist}).
 6759: @c 
 6760: 変数@code{TESTS}が定義されている場合,その値はテストを行なうために実行す
 6761: るプログラムのリストになります.プログラムは,派生するオブジェクトあるい
 6762: はソースオブジェクトです.生成される規則は@code{srcdir}と@file{.}の両方
 6763: で探します.データファイルを必要としているプログラムは,(環境変数とmake 
 6764: 変数の両方の)@code{srcdir}でそれらを探すので,それらは,別々のディレクト
 6765: リでビルドするとき(@pxref{Build Directories, , Build Directories ,
 6766: autoconf, The Autoconf Manual}),特に@code{distcheck}ターゲットに対して
 6767: 動作します(@pxref{Dist}).
 6768: 
 6769: @cindex Exit status 77, special interpretation
 6770: 
 6771: @c The number of failures will be printed at the end of the run.  If a
 6772: @c given test program exits with a status of 77, then its result is ignored
 6773: @c in the final count.  This feature allows non-portable tests to be
 6774: @c ignored in environments where they don't make sense.
 6775: @c 
 6776: 失敗の数は実行後に出力されます.所定のテストプログラムが77のステータスで
 6777: 終了する場合,その結果は最終的なカウントで無視されます.この機能で,非移
 6778: 植性のテストが意味をなさない環境で無視することができます.
 6779: 
 6780: @c The variable @code{TESTS_ENVIRONMENT} can be used to set environment
 6781: @c variables for the test run; the environment variable @code{srcdir} is
 6782: @c set in the rule.  If all your test programs are scripts, you can also
 6783: @c set @code{TESTS_ENVIRONMENT} to an invocation of the shell (e.g.
 6784: @c @samp{$(SHELL) -x}); this can be useful for debugging the tests.
 6785: @c 
 6786: 変数@code{TESTS_ENVIRONMENT}は,テストの実行に対して環境変数を設定するた
 6787: めに使用することが可能です.環境変数@code{srcdir}は,規則内に設定されま
 6788: す.すべてのテストプログラムがスクリプトの場合,@code{TESTS_ENVIRONMENT} 
 6789: をシェルの呼び出しに設定することが可能です(例えば@samp{$(SHELL) -x}).こ
 6790: れはテストをデバッグするときに役立つはずです.
 6791: @vindex TESTS
 6792: @vindex TESTS_ENVIRONMENT
 6793: 
 6794: @cindex Tests, expected failure
 6795: @cindex Expected test failure
 6796: 
 6797: @c You may define the variable @code{XFAIL_TESTS} to a list of tests
 6798: @c (usually a subset of @code{TESTS}) that are expected to fail.  This will
 6799: @c reverse the result of those tests.
 6800: @c 
 6801: 変数@code{XFAIL_TESTS}を,失敗を期待するテストのリスト(通常は
 6802: @code{TESTS}のサブセット)に定義してもかまいません.これは,それらのテス
 6803: トの結果を反転します.
 6804: @vindex XFAIL_TESTS
 6805: 
 6806: @c Automake ensures that each program listed in @code{TESTS} is built
 6807: @c before any tests are run; you can list both source and derived programs
 6808: @c in @code{TESTS}.  For instance, you might want to run a C program as a
 6809: @c test.  To do this you would list its name in @code{TESTS} and also in
 6810: @c @code{check_PROGRAMS}, and then specify it as you would any other
 6811: @c program.
 6812: @c 
 6813: Automakeは,@code{TESTS}でリストアップされているそれぞれのプログラムが,
 6814: テストを実行する前にビルドされることを確実にします.ソースと派生するプロ
 6815: グラムを@code{TESTS}にリストアップすることが可能です.例えば,テストとし
 6816: てCプログラムを実行したいかもしれません.こうするためには,その名前を
 6817: @code{TESTS}と@code{check_PROGRAMS}にもリストアップし,それを他のプログ
 6818: ラムとして指定します.
 6819: 
 6820: @c @section DejaGNU Tests
 6821: @section DejaGNUのテスト
 6822: 
 6823: @c If @uref{ftp://ftp.gnu.org/gnu/dejagnu/, @samp{dejagnu}} appears in
 6824: @c @code{AUTOMAKE_OPTIONS}, then a @code{dejagnu}-based test suite is
 6825: @c assumed.  The variable @code{DEJATOOL} is a list of names which are
 6826: @c passed, one at a time, as the @code{--tool} argument to @code{runtest}
 6827: @c invocations; it defaults to the name of the package.
 6828: @c 
 6829: @uref{ftp://ftp.gnu.org/gnu/dejagnu/, @samp{dejagnu}}が
 6830: @code{AUTOMAKE_OPTIONS}にある場合,@code{dejagnu}ベースのテストスイート
 6831: が想定されます.変数@code{DEJATOOL}は,@code{runtest}の呼び出しに
 6832: @code{--tool}引数として,一度に渡される名前のリストです.それはパッケー
 6833: ジの名前をデフォルトとします.
 6834: 
 6835: @c The variable @code{RUNTESTDEFAULTFLAGS} holds the @code{--tool} and
 6836: @c @code{--srcdir} flags that are passed to dejagnu by default; this can be
 6837: @c overridden if necessary.
 6838: @c 
 6839: 変数@code{RUNTESTDEFAULTFLAGS}は,デフォルトでdejagnuに渡される
 6840: @code{--tool}と@code{--srcdir}フラグを保持します.必要な場合は,これで優
 6841: 先することが可能です.
 6842: @vindex RUNTESTDEFAULTFLAGS
 6843: 
 6844: @c The variables @code{EXPECT} and @code{RUNTEST} can
 6845: @c also be overridden to provide project-specific values.  For instance,
 6846: @c you will need to do this if you are testing a compiler toolchain,
 6847: @c because the default values do not take into account host and target
 6848: @c names.
 6849: @c 
 6850: 変数@code{EXPECT}と@code{RUNTEST}で,プロジェクト特有の値を提供するため
 6851: に優先することが可能です.例えば,コンパイラツールチェインをテストする場
 6852: 合,デフォルト値はホストとターゲットの名前を考慮しないので,こうする必要
 6853: があります.
 6854: @opindex dejagnu
 6855: @vindex DEJATOOL
 6856: @vindex EXPECT
 6857: @vindex RUNTEST
 6858: 
 6859: @c The contents of the variable @code{RUNTESTFLAGS} are passed to the
 6860: @c @code{runtest} invocation.  This is considered a ``user variable''
 6861: @c (@pxref{User Variables}).  If you need to set @code{runtest} flags in
 6862: @c @file{Makefile.am}, you can use @code{AM_RUNTESTFLAGS} instead.
 6863: @c 
 6864: 変数@code{RUNTESTFLAGS}の内容は,@code{runtest}の呼び出しに渡されます.
 6865: これは,``ユーザ変数''(@pxref{User Variables})として扱われます.
 6866: @file{Makefile.am}に@code{runtest}フラグを設定する必要がある場合,代わり
 6867: に@code{AM_RUNTESTFLAGS}を使用することが可能です.
 6868: @vindex RUNTESTFLAGS
 6869: @vindex AM_RUNTESTFLAGS
 6870: @c FIXME xref dejagnu
 6871: 
 6872: @cindex @file{site.exp}
 6873: @c Automake will generate rules to create a local @file{site.exp} file,
 6874: @c defining various variables detected by @code{./configure}.  This file
 6875: @c is automatically read by DejaGnu.  It is ok for the user of a package
 6876: @c to edit this file in order to tune the test suite.  However this is
 6877: @c not the place where the test suite author should define new variables:
 6878: @c this should be done elsewhere in the real test suite code.
 6879: @c Especially, @file{site.exp} should not be distributed.
 6880: @c 
 6881: Automakeは,@code{./configure}で検出した様々な変数を定義するローカルな
 6882: @file{site.exp}ファイルを生成するための規則を生成します.このファイルは,
 6883: 自動的にDejaGnuで読み込まれます.パッケージユーザがテストスイートを調整
 6884: するためにこのファイルを編集することは問題ありません.しかし,テストスイー
 6885: トの著者が新しい変数を定義する場所に書くものではありません.これは,実際
 6886: のテストスイートのコードのどこかでなされるべきです.特に,
 6887: @file{site.exp}を配布すべきではありません.
 6888: 
 6889: @c In either case, the testing is done via @samp{make check}.
 6890: @c 
 6891: どちらの状況でも,テストは@samp{make check}で実行されます.
 6892: 
 6893: @c @section Install Tests
 6894: @section インストールテスト
 6895: 
 6896: @c The @code{installcheck} target is available to the user as a way to run
 6897: @c any tests after the package has been installed.  You can add tests to
 6898: @c this by writing an @code{installcheck-local} target.
 6899: @c 
 6900: @code{installcheck}ターゲットは,パッケージがインストールされた後でテス
 6901: トを実行する方法をユーザが利用可能にします.@code{installcheck-local}ター
 6902: ゲットを書くことで,これをテストに追加することが可能です.
 6903: 
 6904: 
 6905: @node Options, Miscellaneous, Tests, Top
 6906: @c @chapter Changing Automake's Behavior
 6907: @chapter Automakeの動作の変更
 6908: 
 6909: @c Various features of Automake can be controlled by options in the
 6910: @c @file{Makefile.am}.  Such options are applied on a per-@file{Makefile}
 6911: @c basis when listed in a special @file{Makefile} variable named
 6912: @c @code{AUTOMAKE_OPTIONS}.  They are applied globally to all processed
 6913: @c @file{Makefiles} when listed in the first argument of
 6914: @c @code{AM_INIT_AUTOMAKE} in @file{configure.in}.  Currently understood
 6915: @c options are:
 6916: @c 
 6917: Automakeの様々な機能は,@file{Makefile.am}のオプションで制御可能です.こ
 6918: のようなオプションは,@code{AUTOMAKE_OPTIONS}という名前の特別な
 6919: @file{Makefile}変数にリストアップすることで,@file{Makefile}ごとを基本に
 6920: 適用されます.@file{configure.in}の@code{AM_INIT_AUTOMAKE}の最初の引数に
 6921: リストアップすることで,処理されるすべての@file{Makefiles}に大域的に適用
 6922: されます.現在理解されるオプションは以下のとおりです.
 6923: @vindex AUTOMAKE_OPTIONS
 6924: 
 6925: @table @asis
 6926: @item @code{gnits}
 6927: @itemx @code{gnu}
 6928: @itemx @code{foreign}
 6929: @itemx @code{cygnus}
 6930: @cindex Option, gnits
 6931: @cindex Option, gnu
 6932: @cindex Option, foreign
 6933: @cindex Option, cygnus
 6934: 
 6935: @c Set the strictness as appropriate.  The @code{gnits} option also implies
 6936: @c @code{readme-alpha} and @code{check-news}.
 6937: @c 
 6938: 適切に厳密さを設定します.@code{gnits}オプションは,@code{readme-alpha} 
 6939: と@code{check-news}も暗黙に指定します.
 6940: 
 6941: @item @code{ansi2knr}
 6942: @itemx @code{@var{path}/ansi2knr}
 6943: @cindex Option, ansi2knr
 6944: @c Turn on automatic de-ANSI-fication.  @xref{ANSI}.  If preceded by a
 6945: @c path, the generated @file{Makefile.in} will look in the specified
 6946: @c directory to find the @file{ansi2knr} program.  The path should be a
 6947: @c relative path to another directory in the same distribution (Automake
 6948: @c currently does not check this).
 6949: @c 
 6950: 自動的なde-ANSI-ficationを開始します.@xref{ANSI}. パスが前置されている
 6951: 場合,生成される@file{Makefile.in}は,@file{ansi2knr}プログラムを見つけ
 6952: るために指定されたディレクトリを探します.パスは(Automakeは現在これを調
 6953: 査しませんが),同じ配布物内の他のディレクトリへの相対的なパスにすべきで
 6954: す.
 6955: 
 6956: @item @code{check-news}
 6957: @cindex Option, check-news
 6958: @c Cause @code{make dist} to fail unless the current version number appears
 6959: @c in the first few lines of the @file{NEWS} file.
 6960: @c 
 6961: 現在のバージョンナンバーが@file{NEWS}ファイルの最初の数行に無い場合,
 6962: @code{make dist}は失敗します.
 6963: 
 6964: @item @code{dejagnu}
 6965: @cindex Option, dejagnu
 6966: @c Cause @code{dejagnu}-specific rules to be generated.  @xref{Tests}.
 6967: @c 
 6968: @code{dejagnu}特有の規則を生成します.@xref{Tests}.
 6969: 
 6970: @item @code{dist-bzip2}
 6971: @cindex Option, dist-bzip2
 6972: @c Generate a @code{dist-bzip2} target, creating a bzip2 tar archive of the
 6973: @c distribution.  @code{dist} will create it in addition to the other
 6974: @c formats.  bzip2 archives are frequently smaller than gzipped archives.
 6975: @c 
 6976: 配布物のbzip2されたtarアーカイブを作成する@code{dist-bzip2}ターゲットを
 6977: 生成します.@code{dist}は他の形式への追加としてそれを作成します.bzip2アー
 6978: カイブは,gzipされたアーカイブより小さくなることが多くなっています.
 6979: @trindex dist-bzip2
 6980: 
 6981: @item @code{dist-shar}
 6982: @cindex Option, dist-shar
 6983: @c Generate a @code{dist-shar} target, creating a shar archive of the
 6984: @c distribution.  @code{dist} will create it in addition to the other
 6985: @c formats.
 6986: @c 
 6987: 配布物のsharアーカイブを作成する@code{dist-shar}ターゲットを生成します.
 6988: @code{dist}は他の形式への追加としてそれを作成します.
 6989: @trindex dist-shar
 6990: 
 6991: @item @code{dist-zip}
 6992: @cindex Option, dist-zip
 6993: @c Generate a @code{dist-zip} target, creating a zip archive of the
 6994: @c distribution.  @code{dist} will create it in addition to the other
 6995: @c formats.
 6996: @c 
 6997: 配布物のzipアーカイブを作成する@code{dist-zip}ターゲットを生成します.
 6998: @code{dist}は他の形式への追加としてそれを作成します.
 6999: @trindex dist-zip
 7000: 
 7001: @item @code{dist-tarZ}
 7002: @cindex Option, dist-tarZ
 7003: @c Generate a @code{dist-tarZ} target, creating a compressed tar archive of
 7004: @c the distribution.  @code{dist} will create it in addition to the other
 7005: @c formats.
 7006: @c 
 7007: 配布物の圧縮されたtarアーカイブを作成する@code{dist-tarZ}ターゲットを生
 7008: 成します.@code{dist}は他の形式への追加としてそれを作成します.
 7009: @trindex dist-tarZ
 7010: 
 7011: @item @code{no-define}
 7012: @cindex Option, no-define
 7013: @c This options is meaningful only when passed as an argument to
 7014: @c @code{AM_INIT_AUTOMAKE}.  It will prevent the @code{PACKAGE} and
 7015: @c @code{VERSION} variables to be @code{AC_DEFINE}d.
 7016: @c 
 7017: このオプションは,@code{AM_INIT_AUTOMAKE}への引数として渡すときだけ意味
 7018: があります.それは@code{PACKAGE}と@code{VERSION}変数が@code{AC_DEFINE}さ
 7019: れることを妨げます.
 7020: 
 7021: @item @code{no-dependencies}
 7022: @cindex Option, no-dependencies
 7023: @c This is similar to using @samp{--include-deps} on the command line, but
 7024: @c is useful for those situations where you don't have the necessary bits
 7025: @c to make automatic dependency tracking work @xref{Dependencies}.  In this
 7026: @c case the effect is to effectively disable automatic dependency tracking.
 7027: @c 
 7028: これは,コマンドラインで@samp{--include-deps}を使用することに似ています
 7029: が,自動的な依存追跡の仕事をするために必要なビットが無い状況で役に立ちま
 7030: す.@xref{Dependencies}. この場合は,効率的な自動的な依存追跡に障害を与
 7031: えます.
 7032: 
 7033: @item @code{no-exeext}
 7034: @cindex Option, no-exeext
 7035: @c If your @file{Makefile.am} defines a target @samp{foo}, it will override
 7036: @c a target named @samp{foo$(EXEEXT)}.  This is necessary when
 7037: @c @code{EXEEXT} is found to be empty.  However, by default automake will
 7038: @c generate an error for this use.  The @code{no-exeext} option will
 7039: @c disable this error.  This is intended for use only where it is known in
 7040: @c advance that the package will not be ported to Windows, or any other
 7041: @c operating system using extensions on executables.
 7042: @c 
 7043: @file{Makefile.am}でターゲット@samp{foo}を定義している場合,
 7044: @samp{foo$(EXEEXT)}と指名されているターゲットに優先します.@code{EXEEXT} 
 7045: が空のとき,これが必要です.しかし,デフォルトで,automakeではこれの使用
 7046: に対してエラーを発生します.@code{no-exeext}オプションで,このエラーが発
 7047: 生しないようにします.これは,Windowsや実行形式の拡張子を使用しているそ
 7048: れ以外のすべてのオペレーティングシステムに移植する予定の無いパッケージだ
 7049: と分かっている場合のみ使用するものです.
 7050: 
 7051: @item @code{no-installinfo}
 7052: @cindex Option, no-installinfo
 7053: @c The generated @file{Makefile.in} will not cause info pages to be built
 7054: @c or installed by default.  However, @code{info} and @code{install-info}
 7055: @c targets will still be available.  This option is disallowed at
 7056: @c @samp{GNU} strictness and above.
 7057: @c 
 7058: 生成された@file{Makefile.in}はデフォルトで,infoページをビルドしたりイン
 7059: ストールしたりしません.しかし,@code{info}と@code{install-info}ターゲッ
 7060: トは利用可能です.このオプションは@samp{GNU}の厳密さでは拒絶されます.
 7061: @trindex info
 7062: @trindex install-info
 7063: 
 7064: @item @code{no-installman}
 7065: @cindex Option, no-installman
 7066: @c The generated @file{Makefile.in} will not cause man pages to be
 7067: @c installed by default.  However, an @code{install-man} target will still
 7068: @c be available for optional installation.  This option is disallowed at
 7069: @c @samp{GNU} strictness and above.
 7070: @c 
 7071: 生成された@file{Makefile.in}はデフォルトでman pageをインストールしません.
 7072: しかし,@code{install-man}ターゲットはオプショナルインストールで利用可能
 7073: です.このオプションは@samp{GNU}の厳密さで使用不可能です.
 7074: @trindex install-man
 7075: 
 7076: @item @code{nostdinc}
 7077: @cindex Option, nostdinc
 7078: @c This option can be used to disable the standard @samp{-I} options which
 7079: @c are ordinarily automatically provided by Automake.
 7080: @c 
 7081: このオプションは,通常Automakeが自動的に供給する標準的な@samp{-I}オプショ
 7082: ンを利用不可能にするために使用可能です.
 7083: 
 7084: @item @code{no-texinfo.tex}
 7085: @cindex Option, no-texinfo
 7086: @c Don't require @file{texinfo.tex}, even if there are texinfo files in
 7087: @c this directory.
 7088: @c 
 7089: このディレクトリにTexinfoファイルがあっても,@file{texinfo.tex}を必要と
 7090: しません.
 7091: 
 7092: @item @code{readme-alpha}
 7093: @cindex Option, readme-alpha
 7094: @c If this release is an alpha release, and the file @file{README-alpha}
 7095: @c exists, then it will be added to the distribution.  If this option is
 7096: @c given, version numbers are expected to follow one of two forms.  The
 7097: @c first form is @samp{@var{MAJOR}.@var{MINOR}.@var{ALPHA}}, where each
 7098: @c element is a number; the final period and number should be left off for
 7099: @c non-alpha releases.  The second form is
 7100: @c @samp{@var{MAJOR}.@var{MINOR}@var{ALPHA}}, where @var{ALPHA} is a
 7101: @c letter; it should be omitted for non-alpha releases.
 7102: @c 
 7103: このリリースがアルファリリースで,ファイル@file{README-alpha}が存在する
 7104: 場合,それは配布物に加えられます.このオプションが与えられている場合,バー
 7105: ジョンナンバーは次の二つの形式のうちの一つだと期待されます.最初の形式は
 7106: @samp{@var{MAJOR}.@var{MINOR}.@var{ALPHA}}で,それぞれの要素が数字です.
 7107: 最後のピリオドと数字は非アルファのリリースのときに捨てられます.二番目の
 7108: 形式は@samp{@var{MAJOR}.@var{MINOR}@var{ALPHA}}で,@var{ALPHA}は文字列で
 7109: す.それは非アルファのリリースのときに取り除かれます.
 7110: 
 7111: @item @code{std-options}
 7112: @cindex Options, std-options
 7113: @cindex make installcheck
 7114: @c Make the @code{installcheck} target check that installed scripts and
 7115: @c programs support the @code{--help} and @code{--version} options.
 7116: @c This also provides a basic check that the program's
 7117: @c run-time dependencies are satisfied after installation.
 7118: @c 
 7119: @code{installcheck}ターゲットで,インストールされたスクリプトとプログラ
 7120: ムが,@code{--help}と@code{--version}オプションをサポートしているかどう
 7121: かを調査するようにします.これは,プログラムの実行時の依存性がインストー
 7122: ル後にも満足しているという基本的な調査も提供します.
 7123: 
 7124: @vindex AM_INSTALLCHECK_STD_OPTIONS_EXEMPT
 7125: @c In a few situations, programs (or scripts) have to be exempted from this
 7126: @c test.  For instance @command{false} (from GNU sh-utils) is never
 7127: @c successful, even for @code{--help} or @code{--version}.  You can
 7128: @c list such programs in the variable @code{AM_INSTALLCHECK_STD_OPTIONS_EXEMPT}.
 7129: @c 
 7130: 状況によって,プログラム(またはスクリプト)でこのテストを免除させる必要が
 7131: あるかもしれません.例えば,(GNUのsh-utilsの)@command{false}は,
 7132: @code{--help}や@code{--version}でさえ,決して成功しません.そのようなプ
 7133: ログラムは,変数@code{AM_INSTALLCHECK_STD_OPTIONS_EXEMPT}でリストアップ
 7134: することが可能です.
 7135: 
 7136: @item @code{subdir-objects}
 7137: @c If this option is specified, then objects are placed into the
 7138: @c subdirectory of the build directory corresponding to the subdirectory of
 7139: @c the source file.  For instance if the source file is
 7140: @c @file{subdir/file.cxx}, then the output file would be
 7141: @c @file{subdir/file.o}.
 7142: @c 
 7143: このオプションが指定されている場合,オブジェクトはソースファイルのサブディ
 7144: レクトリに対応する,ビルドディレクトリのサブディレクトリに配置されます.
 7145: 例えば,ソースファイルが@file{subdir/file.cxx}の場合,出力ファイルは
 7146: @file{subdir/file.o}になります.
 7147: 
 7148: @item @var{version}
 7149: @cindex Option, version
 7150: @c A version number (e.g. @samp{0.30}) can be specified.  If Automake is not
 7151: @c newer than the version specified, creation of the @file{Makefile.in}
 7152: @c will be suppressed.
 7153: @c 
 7154: バージョンナンバー(例えば@samp{0.30})が指定可能です.Automakeが,指定さ
 7155: れているバージョンより新しくない場合,@file{Makefile.in}の作成は行なわれ
 7156: ません.
 7157: 
 7158: @c @item @code{-W@var{category}} or @code{--warnings=@var{category}}
 7159: @item @code{-W@var{category}}や@code{--warnings=@var{category}}
 7160: @cindex Option, warnings
 7161: @c These options behave exactly like their command-line counterpart
 7162: @c (@pxref{Invoking Automake}).  This allows you to enable or disable some
 7163: @c warning categories on a per-file basis.  You can also setup some warnings
 7164: @c for your entire project; for instance try @code{AM_INIT_AUTOMAKE([-Wall])}
 7165: @c in your @file{configure.in}.
 7166: @c 
 7167: これらのオプションは,コマンドラインに正確に対応するもののように動作しま
 7168: す(@pxref{Invoking Automake}).これでファイルごとを基本に,警告のカテゴ
 7169: リを有効にしたり無効にしたりすることが可能になります.プロジェクト全体に
 7170: 警告の設定を行なうことも可能です.例えば,@file{configure.in}で
 7171: @code{AM_INIT_AUTOMAKE([-Wall])}を試してください.
 7172: 
 7173: @end table
 7174: 
 7175: @c Unrecognized options are diagnosed by @code{automake}.
 7176: @c 
 7177: 認識できないオプションは@code{automake}が判断します.
 7178: 
 7179: @c If you want an option to apply to all the files in the tree, you can use
 7180: @c the @code{AM_INIT_AUTOMAKE} macro in @file{configure.in}.
 7181: @c @xref{Macros}.
 7182: @c 
 7183: ツリーの全てのファイルにオプションを適用したい場合,@file{configure.in} 
 7184: の@code{AM_INIT_AUTOMAKE}を使用することが可能です.@xref{Macros}.
 7185: 
 7186: 
 7187: @node Miscellaneous, Include, Options, Top
 7188: @c @chapter Miscellaneous Rules
 7189: @chapter 雑多な規則
 7190: 
 7191: @c There are a few rules and variables that didn't fit anywhere else.
 7192: @c 
 7193: 他のどこにも適さない少数の規則と変数があります.
 7194: 
 7195: @menu
 7196: * Tags::                        Interfacing to etags and mkid
 7197: * Suffixes::                    Handling new file extensions
 7198: * Multilibs::                   Support for multilibbing.
 7199: @end menu
 7200: 
 7201: 
 7202: @node Tags, Suffixes, Miscellaneous, Miscellaneous
 7203: @c @section Interfacing to @code{etags}
 7204: @section @code{etags}のインターフェース
 7205: 
 7206: @cindex TAGS support
 7207: 
 7208: @c Automake will generate rules to generate @file{TAGS} files for use with
 7209: @c GNU Emacs under some circumstances.
 7210: @c 
 7211: Automakeは,GNU Emacsで使用する@file{TAGS}ファイルを生成するための規則を
 7212: 生成する場合もあります.
 7213: 
 7214: @c If any C, C++ or Fortran 77 source code or headers are present, then
 7215: @c @code{tags} and @code{TAGS} targets will be generated for the directory.
 7216: @c 
 7217: C,C++,またはFortran 77のソースコードやヘッダが存在している場合,
 7218: @code{tags}と@code{TAGS}ターゲットがディレクトリに対して生成されます.
 7219: @trindex tags
 7220: 
 7221: @c At the topmost directory of a multi-directory package, a @code{tags}
 7222: @c target file will be generated which, when run, will generate a
 7223: @c @file{TAGS} file that includes by reference all @file{TAGS} files from
 7224: @c subdirectories.
 7225: @c 
 7226: 複数のディレクトリがあるパッケージのトップディレクトリで,@code{tags}ター
 7227: ゲットファイルは実行時に生成され,それは実行時に,サブディレクトリにある
 7228: すべての@file{TAGS}の参照を含んでいる@file{TAGS}ファイルを生成します.
 7229: 
 7230: @c The @code{tags} target will also be generated if the variable
 7231: @c @code{ETAGS_ARGS} is defined.  This variable is intended for use in
 7232: @c directories which contain taggable source that @code{etags} does not
 7233: @c understand.  The user can use the @code{ETAGSFLAGS} to pass additional
 7234: @c flags to @code{etags}; @code{AM_ETAGSFLAGS} is also available for use in
 7235: @c @file{Makefile.am}.
 7236: @c 
 7237: 変数@code{ETAGS_ARGS}が定義されている場合,@code{tags}ターゲットも生成さ
 7238: れます.この変数は,@code{etags}が理解しないタグを使用しているソースを含
 7239: んでいるディレクトリでの使用を考慮しています.ユーザは@code{etags}に追加
 7240: のフラグを渡すために@code{ETAGSFLAGS}を使用することが可能です.
 7241: @file{Makefile.am}で@code{AM_ETAGSFLAGS}を利用することもできます.
 7242: @vindex ETAGS_ARGS
 7243: @vindex ETAGSFLAGS
 7244: @vindex AM_ETAGSFLAGS
 7245: 
 7246: @c Here is how Automake generates tags for its source, and for nodes in its
 7247: @c Texinfo file:
 7248: @c 
 7249: ソースとTexinfoファイルのノードに対するタグをAutomakeで生成する方法は以
 7250: 下のようになります.
 7251: 
 7252: @example
 7253: ETAGS_ARGS = automake.in --lang=none \
 7254:  --regex='/^@@node[ \t]+\([^,]+\)/\1/' automake.texi
 7255: @end example
 7256: 
 7257: @c If you add filenames to @samp{ETAGS_ARGS}, you will probably also
 7258: @c want to set @samp{TAGS_DEPENDENCIES}.  The contents of this variable
 7259: @c are added directly to the dependencies for the @code{tags} target.
 7260: @c 
 7261: @samp{ETAGS_ARGS}にファイル名を加える場合,おそらく
 7262: @samp{TAGS_DEPENDENCIES}も設定したいでしょう.この変数の中身は
 7263: @code{tags}ターゲット対する依存性に直接追加されます.
 7264: @vindex TAGS_DEPENDENCIES
 7265: 
 7266: @c Automake also generates a @code{ctags} target which can be used to
 7267: @c build @command{vi}-style @file{tags} files.  The variable @code{CTAGS}
 7268: @c is the name of the program to invoke (by default @samp{ctags});
 7269: @c @code{CTAGSFLAGS} can be used by the user to pass additional flags,
 7270: @c and @code{AM_CTAGSFLAGS} can be used by the @file{Makefile.am}.
 7271: @c 
 7272: Automakeは,@command{vi}形式の@file{tags}ファイルのビルドで使用される,
 7273: @code{ctags}ターゲットを生成します.変数@code{CTAGS}は,呼び出されるプロ
 7274: グラムの名前です(デフォルトは@samp{ctags}).@code{CTAGSFLAGS}は,ユーザ
 7275: が追加フラグを渡すために使用され,@code{AM_CTAGSFLAGS}は
 7276: @file{Makefile.am}で使用されます.
 7277: 
 7278: @c Automake will also generate an @code{ID} target which will run
 7279: @c @code{mkid} on the source.  This is only supported on a
 7280: @c directory-by-directory basis.
 7281: @c 
 7282: Automakeは,@code{mkid}をソース上で実行する@code{ID}ターゲットも生成しま
 7283: す.これはディレクトリ単位に基づくサポートだけです.
 7284: @trindex id
 7285: 
 7286: @c Automake also supports the @uref{http://www.gnu.org/software/global/,
 7287: @c GNU Global Tags program}.  The @code{GTAGS} target runs Global Tags
 7288: @c automatically and puts the result in the top build directory.  The
 7289: @c variable @code{GTAGS_ARGS} holds arguments which are passed to
 7290: @c @code{gtags}.
 7291: @c 
 7292: Automakeは@uref{http://www.gnu.org/software/global/, GNU Global Tags
 7293: program}もサポートします.@code{GTAGS}ターゲットは,自動的にGlobal Tagを
 7294: 実行し,結果をビルドディレクトリに書き込みます.変数@code{GTAGS_ARGS}は,
 7295: @code{gtags}に渡す引数を保持しています.
 7296: @vindex GTAGS_ARGS
 7297: 
 7298: 
 7299: @node Suffixes, Multilibs, Tags, Miscellaneous
 7300: @c @section Handling new file extensions
 7301: @section 新しいファイル拡張子の取り扱い
 7302: 
 7303: @cindex Adding new SUFFIXES
 7304: @cindex SUFFIXES, adding
 7305: @vindex SUFFIXES
 7306: 
 7307: @c It is sometimes useful to introduce a new implicit rule to handle a file
 7308: @c type that Automake does not know about.
 7309: @c 
 7310: Automakeが知らないファイル形式を処理するために,新しい暗黙の規則を導入す
 7311: ることが役に立つこともあります.
 7312: 
 7313: @c For instance, suppose you had a compiler which could compile @samp{.foo}
 7314: @c files to @samp{.o} files.  You would simply define an suffix rule for
 7315: @c your language:
 7316: @c 
 7317: 例えば,@samp{.foo}ファイルを@samp{.o}ファイルにコンパイルするコンパイラ
 7318: があると仮定します.その言語に対する接尾子規則を単純に定義するでしょう.
 7319: 
 7320: @example
 7321: .foo.o:
 7322:         foocc -c -o $@@ $<
 7323: @end example
 7324: 
 7325: @c Then you could directly use a @samp{.foo} file in a @samp{_SOURCES}
 7326: @c variable and expect the correct results:
 7327: @c 
 7328: そして,@samp{_SOURCES}変数で@samp{.foo}ファイルを直接使用し,正しい結果
 7329: が期待されるでしょう.
 7330: 
 7331: @example
 7332: bin_PROGRAMS = doit
 7333: doit_SOURCES = doit.foo
 7334: @end example
 7335: 
 7336: @c This was the simpler and more common case.  In other cases, you will
 7337: @c have to help Automake to figure which extensions you are defining your
 7338: @c suffix rule for.  This usually happens when your extensions does not
 7339: @c start with a dot.  Then, all you have to do is to put a list of new
 7340: @c suffixes in the @code{SUFFIXES} variable @strong{before} you define your
 7341: @c implicit rule.
 7342: @c 
 7343: これはより簡単で,より一般的な状況です.それ以外の状況では,定義している
 7344: サフィックス規則を,Automakeが理解する手助けが必要です.通常これは,拡張
 7345: 子がドットで始まらないときに生じます.そのときにしなければならないことは,
 7346: 暗黙の規則を定義する@strong{前に},新しい接尾子のリストを@code{SUFFIXES}
 7347: 変数に書き込むことです.
 7348: 
 7349: @c For instance the following definition prevents Automake to misinterpret
 7350: @c @samp{.idlC.cpp:} as an attemp to transform @samp{.idlC} into
 7351: @c @samp{.cpp}.
 7352: @c 
 7353: 例えば,以下の定義で,Automakeが@samp{.idlC.cpp:}が@samp{.idlC}を
 7354: @samp{.cpp}に変換してみるという誤解をしないようにします.
 7355: 
 7356: @example
 7357: SUFFIXES = .idl C.cpp
 7358: .idlC.cpp:
 7359:         # whatever
 7360: @end example
 7361: 
 7362: @c As you may have noted, the @code{SUFFIXES} variable behaves like the
 7363: @c @code{.SUFFIXES} special target of @code{make}.  You should not touch
 7364: @c @code{.SUFFIXES} yourself, but use @code{SUFFIXES} instead and let
 7365: @c Automake generate the suffix list for @code{.SUFFIXES}.  Any given
 7366: @c @code{SUFFIXES} go at the start of the generated suffixes list, followed
 7367: @c by Automake generated suffixes not already in the list.
 7368: @c 
 7369: 注意事項のように,@code{SUFFIXES}変数@code{make}の@code{.SUFFIXES}特殊ター
 7370: ゲットのように動作します.@code{.SUFFIXES}を独自にいじくるべきではなく,
 7371: その代わりに@code{SUFFIXES}を使用しAutomakeが@code{.SUFFIXES}に対する接
 7372: 尾子リストを生成するようにすべきです.与えられた全ての@code{SUFFIXES}は
 7373: 生成された接尾子リストの最初に書かれ,Automakeが生成するまだリストに無い
 7374: 接尾子が続きます.
 7375: 
 7376: @node Multilibs,  , Suffixes, Miscellaneous
 7377: @c @section Support for Multilibs
 7378: @section Multilibのサポート
 7379: 
 7380: @c Automake has support for an obscure feature called multilibs.  A
 7381: @c @dfn{multilib} is a library which is built for multiple different ABIs
 7382: @c at a single time; each time the library is built with a different target
 7383: @c flag combination.  This is only useful when the library is intended to
 7384: @c be cross-compiled, and it is almost exclusively used for compiler
 7385: @c support libraries.
 7386: @c 
 7387: Automakeには,multilibと呼ばれているあまり知られていない機能のサポートが
 7388: あります.@dfn{multilib}は,一度に複数の異なるABIに対してビルドされるラ
 7389: イブラリです.毎回,ライブラリが異なるターゲットフラグの組み合わせでビル
 7390: ドされます.これは,ライブラリがクロスコンパイルを目的としていて,コンパ
 7391: イラがサポートしているライブラリに対して,ほとんど排他的に使用されるとき
 7392: だけ役に立ちます.
 7393: 
 7394: @c The multilib support is still experimental.  Only use it if you are
 7395: @c familiar with multilibs and can debug problems you might encounter.
 7396: @c 
 7397: multilibのサポートはまだ実験中です.multilibを理解していて,遭遇した問題
 7398: をデバッグすることが可能な場合のみ,それを使用してください.
 7399: 
 7400: 
 7401: @node Include, Conditionals, Miscellaneous, Top
 7402: @c @chapter Include
 7403: @chapter インクルード
 7404: 
 7405: @cmindex include
 7406: @cindex Including Makefile fragment
 7407: @cindex Makefile fragment, including
 7408: 
 7409: @c Automake supports an @code{include} directive which can be used to
 7410: @c include other @file{Makefile} fragments when @code{automake} is run.
 7411: @c Note that these fragments are read and interpreted by @code{automake},
 7412: @c not by @code{make}.  As with conditionals, @code{make} has no idea that
 7413: @c @code{include} is in use.
 7414: @c 
 7415: Automakeは,@code{automake}が実行されるときに,他の断片的な
 7416: @file{Makefile}をインクルードするために使用可能な,@code{include}指示語
 7417: をサポートします.これらの断片は,@code{make}ではなく@code{automake}で読
 7418: み込まれ解釈されることに注意してください.条件文同様,@code{make}には
 7419: @code{include}を使用する能力はありません.
 7420: 
 7421: @c There are two forms of @code{include}:
 7422: @c 
 7423: @code{include}には,二つの書式があります.
 7424: 
 7425: @table @code
 7426: @item include $(srcdir)/file
 7427: @c Include a fragment which is found relative to the current source
 7428: @c directory.
 7429: @c 
 7430: 現在のソースディレクトリに相対的なところで見つかった断片をインクルードし
 7431: ます.
 7432: 
 7433: @item include $(top_srcdir)/file
 7434: @c Include a fragment which is found relative to the top source directory.
 7435: @c 
 7436: トップソースディレクトリに相対的なところで見つかった断片をインクルードし
 7437: ます.
 7438: @end table
 7439: 
 7440: @c Note that if a fragment is included inside a conditional, then the
 7441: @c condition applies to the entire contents of that fragment.
 7442: @c 
 7443: 断片が条件文を含む場合,条件文は断片の内容全体に適用されることに注意して
 7444: ください.
 7445: 
 7446: @c Makefile fragments included this way are always distributed because
 7447: @c there are needed to rebuild @file{Makefile.in}.
 7448: @c 
 7449: @file{Makefile.in}をリビルドする必要があるので,この方法で含められる
 7450: Makefileの断片は常に配布されます.
 7451: 
 7452: @node Conditionals, Gnits, Include, Top
 7453: @c @chapter Conditionals
 7454: @chapter 条件文
 7455: 
 7456: @cindex Conditionals
 7457: 
 7458: @c Automake supports a simple type of conditionals.
 7459: @c 
 7460: Automakeは単純な形式の条件文をサポートします.
 7461: 
 7462: @cvindex AM_CONDITIONAL
 7463: @c Before using a conditional, you must define it by using
 7464: @c @code{AM_CONDITIONAL} in the @code{configure.in} file (@pxref{Macros}).
 7465: @c 
 7466: 条件文を使用する前に,@code{configure.in}ファイルで@code{AM_CONDITIONAL} 
 7467: を使用してそれを定義する必要があります(@pxref{Macros}).
 7468: 
 7469: @defmac AM_CONDITIONAL (@var{conditional}, @var{condition})
 7470: @c The conditional name, @var{conditional}, should be a simple string
 7471: @c starting with a letter and containing only letters, digits, and
 7472: @c underscores.  It must be different from @samp{TRUE} and @samp{FALSE}
 7473: @c which are reserved by Automake.
 7474: @c 
 7475: 条件名@var{conditional}は,文字で始まり,文字,数字,そしてアンダースコ
 7476: アのみを含む単純な文字列です.Automakeが@samp{TRUE}と@samp{FALSE}のどち
 7477: らを保持しているかで異なっているはずです.
 7478: 
 7479: @c The shell @var{condition} (suitable for use in a shell @code{if}
 7480: @c statement) is evaluated when @code{configure} is run.  Note that you
 7481: @c must arrange for @emph{every} @code{AM_CONDITIONAL} to be invoked every
 7482: @c time @code{configure} is run -- if @code{AM_CONDITIONAL} is run
 7483: @c conditionally (e.g., in a shell @code{if} statement), then the result
 7484: @c will confuse automake.
 7485: @c 
 7486: シェルの@var{condition}(シェルの@code{if}文で使用されるのに適切なもの)は,
 7487: @code{configure}が実行されるときに評価されます.@emph{すべての}
 7488: @code{AM_CONDITIONAL}が毎回@code{configure}の実行で呼び出されるように調
 7489: 整する必要があります -- @code{AM_CONDITIONAL}が条件つき(例えば,シェルの
 7490: @code{if}文)で実行される場合,結果としてautomakeが混乱します.
 7491: @end defmac
 7492: 
 7493: @cindex --enable-debug, example
 7494: @cindex Example conditional --enable-debug
 7495: @cindex Conditional example,  --enable-debug
 7496: 
 7497: @c Conditionals typically depend upon options which the user provides to
 7498: @c the @code{configure} script.  Here is an example of how to write a
 7499: @c conditional which is true if the user uses the @samp{--enable-debug}
 7500: @c option.
 7501: @c 
 7502: 条件文は一般的に,@code{configure}スクリプトでユーザが提供するオプション
 7503: に依存します.ユーザが@samp{--enable-debug}オプションを使用する場合,真
 7504: の条件を書く方法の例は以下のようになります.
 7505: 
 7506: @example
 7507: AC_ARG_ENABLE(debug,
 7508: [  --enable-debug    Turn on debugging],
 7509: [case "$@{enableval@}" in
 7510:   yes) debug=true ;;
 7511:   no)  debug=false ;;
 7512:   *) AC_MSG_ERROR(bad value $@{enableval@} for --enable-debug) ;;
 7513: esac],[debug=false])
 7514: AM_CONDITIONAL(DEBUG, test x$debug = xtrue)
 7515: @end example
 7516: 
 7517: @c Here is an example of how to use that conditional in @file{Makefile.am}:
 7518: @c 
 7519: @file{Makefile.am}でその条件文を使用する方法の例は以下のようになります.
 7520: 
 7521: @cmindex if
 7522: @cmindex endif
 7523: @cmindex else
 7524: 
 7525: @example
 7526: if DEBUG
 7527: DBG = debug
 7528: else
 7529: DBG =
 7530: endif
 7531: noinst_PROGRAMS = $(DBG)
 7532: @end example
 7533: 
 7534: @c This trivial example could also be handled using EXTRA_PROGRAMS
 7535: @c (@pxref{Conditional Programs}).
 7536: @c 
 7537: この簡単な例は,EXTRA_PROGRAMSを使用しているものを扱うことも可能でしょう
 7538: (@pxref{Conditional Programs}).
 7539: 
 7540: @c You may only test a single variable in an @code{if} statement, possibly
 7541: @c negated using @samp{!}.  The @code{else} statement may be omitted.
 7542: @c Conditionals may be nested to any depth.  You may specify an argument to
 7543: @c @code{else} in which case it must be the negation of the condition used
 7544: @c for the current @code{if}.  Similarly you may specify the condition
 7545: @c which is closed by an @code{end}:
 7546: @c 
 7547: @code{if}文で,@samp{!}を使用した否定も可能な,単一の変数のみを調査した
 7548: いかもしれません.@code{else}文は省略可能です.条件文は任意の深さにネス
 7549: ト可能です.@code{else}に引数を指定することも可能ですが,いずれの場合で
 7550: も,現在の@code{if}に対して使用される条件の否定となっている必要がありま
 7551: す.同様に,@code{end}で閉じられた条件を指定することも可能です.
 7552: 
 7553: @example
 7554: if DEBUG
 7555: DBG = debug
 7556: else !DEBUG
 7557: DBG =
 7558: endif !DEBUG
 7559: @end example
 7560: 
 7561: @noindent
 7562: @c Unbalanced conditions are errors.
 7563: @c 
 7564: 非対称の条件文はエラーとなります.
 7565: 
 7566: @c Note that conditionals in Automake are not the same as conditionals in
 7567: @c GNU Make.  Automake conditionals are checked at configure time by the
 7568: @c @file{configure} script, and affect the translation from
 7569: @c @file{Makefile.in} to @file{Makefile}.  They are based on options passed
 7570: @c to @file{configure} and on results that @file{configure} has discovered
 7571: @c about the host system.  GNU Make conditionals are checked at @code{make}
 7572: @c time, and are based on variables passed to the make program or defined
 7573: @c in the @file{Makefile}.
 7574: @c 
 7575: Automakeの条件文はGNU Makeの条件文とは同じでないことに注意してください.
 7576: Automakeの条件文は,configure時に@file{configure}スクリプトでチェックさ
 7577: れ,@file{Makefile.in}から@file{Makefile}への変換に影響を与えます.それ
 7578: らは,@file{configure}に渡すオプションと,@file{configure}がホストシステ
 7579: ムについて発見した結果に基づきます.GNU Makeの条件文は,@code{make}時に
 7580: 調査され,makeプログラムに渡された,あるいは@file{Makefile}で定義された
 7581: 変数に基づいています.
 7582: 
 7583: @c Automake conditionals will work with any make program.
 7584: @c 
 7585: Automakeの条件文は,どんなmakeプログラムでも動作します.
 7586: 
 7587: 
 7588: @node Gnits, Cygnus, Conditionals, Top
 7589: @c @chapter The effect of @code{--gnu} and @code{--gnits}
 7590: @chapter @code{--gnu}と@code{--gnits}の効果
 7591: 
 7592: @cindex --gnu, required files
 7593: @cindex --gnu, complete description
 7594: 
 7595: @c The @samp{--gnu} option (or @samp{gnu} in the @samp{AUTOMAKE_OPTIONS}
 7596: @c variable) causes @code{automake} to check the following:
 7597: @c 
 7598: @samp{--gnu}オプション(あるいは@samp{AUTOMAKE_OPTIONS}変数での
 7599: @samp{gnu})で,@code{automake}は以下のことを調査します.
 7600: 
 7601: @itemize @bullet
 7602: @item
 7603: @c The files @file{INSTALL}, @file{NEWS}, @file{README}, @file{AUTHORS},
 7604: @c and @file{ChangeLog}, plus one of @file{COPYING.LIB}, @file{COPYING.LESSER}
 7605: @c or @file{COPYING}, are required at the topmost directory of the package.
 7606: @c 
 7607: @file{INSTALL},@file{NEWS},@file{README},@file{AUTHORS},そして
 7608: @file{ChangeLog}と,@file{COPYING.LIB},@file{COPYING.LESSER},または
 7609: @file{COPYING}のいずれかもう一つのファイルがパッケージのトップディレクト
 7610: リにあることが必要です.
 7611: 
 7612: @item
 7613: @c The options @samp{no-installman} and @samp{no-installinfo} are
 7614: @c prohibited.
 7615: @c 
 7616: @samp{no-installman}と@samp{no-installinfo}オプションは使用できません.
 7617: @end itemize
 7618: 
 7619: @c Note that this option will be extended in the future to do even more
 7620: @c checking; it is advisable to be familiar with the precise requirements
 7621: @c of the GNU standards.  Also, @samp{--gnu} can require certain
 7622: @c non-standard GNU programs to exist for use by various maintainer-only
 7623: @c targets; for instance in the future @code{pathchk} might be required for
 7624: @c @samp{make dist}.
 7625: @c 
 7626: このオプションは,それ以上の調査を行なうため将来拡張されることでしょう.
 7627: GNU標準の正確な必要条件に精通することを勧めます.また,@samp{--gnu}は,
 7628: 様々な管理者専用のターゲットで使用するために存在する,特定のGNU非標準の
 7629: プログラムを要求するはずです.例えば将来は,@code{pathchk}が@samp{make
 7630: dist}に対して要求されるかもしれません.
 7631: 
 7632: @cindex --gnits, complete description
 7633: 
 7634: @c The @samp{--gnits} option does everything that @samp{--gnu} does, and
 7635: @c checks the following as well:
 7636: @c 
 7637: @samp{--gnits}オプションは,@samp{--gnu}が行なうすべての調査に加え以下の
 7638: ことも調査します.
 7639: 
 7640: @itemize @bullet
 7641: @item
 7642: @c @samp{make installcheck} will check to make sure that the @code{--help}
 7643: @c and @code{--version} really print a usage message and a version string,
 7644: @c respectively.  This is the @code{std-options} option (@pxref{Options}).
 7645: @c 
 7646: @samp{make installcheck}は,@code{--help}と@code{--version}が,それぞれ
 7647: 本当に利用方法のメッセージとバージョン文字列を確実に出力することを調査し
 7648: ます.これは,@code{std-options}オプションです(@pxref{Options}).
 7649: 
 7650: @item
 7651: @c @samp{make dist} will check to make sure the @file{NEWS} file has been
 7652: @c updated to the current version.
 7653: @c 
 7654: @samp{make dist}を,@file{NEWS}ファイルが現在のバージョンに更新されたこ
 7655: とを確認するために調査します.
 7656: 
 7657: @item
 7658: @c @samp{VERSION} is checked to make sure its format complies with Gnits
 7659: @c standards.
 7660: @c 
 7661: @samp{VERSION}は,その書式ががGnits standardに従っていることを確認するた
 7662: めに調査されます.
 7663: @c FIXME xref when standards are finished
 7664: 
 7665: @item
 7666: @cindex README-alpha
 7667: @c If @samp{VERSION} indicates that this is an alpha release, and the file
 7668: @c @file{README-alpha} appears in the topmost directory of a package, then
 7669: @c it is included in the distribution.  This is done in @samp{--gnits}
 7670: @c mode, and no other, because this mode is the only one where version
 7671: @c number formats are constrained, and hence the only mode where Automake
 7672: @c can automatically determine whether @file{README-alpha} should be
 7673: @c included.
 7674: @c 
 7675: これがアルファリリースだということを@samp{VERSION}が示していて,ファイル
 7676: @file{README-alpha}がパッケージのトップディレクトリにある場合,それは配
 7677: 布物に含められます.@samp{--gnits}モードはバージョンナンバーの書式に制限
 7678: がある唯一のものであり,そのためAutomakeが自動的に@file{README-alpha}を
 7679: 含めることを決定することが可能な唯一のモードなので,これは@samp{--gnits} 
 7680: モードでなされますが他ではなされません.
 7681: 
 7682: @item
 7683: @c The file @file{THANKS} is required.
 7684: @c 
 7685: ファイル@file{THANKS}が必要です.
 7686: @end itemize
 7687: 
 7688: 
 7689: @node Cygnus, Extending, Gnits, Top
 7690: @c @chapter The effect of @code{--cygnus}
 7691: @chapter @code{--cygnus}の効果
 7692: 
 7693: @cindex Cygnus strictness
 7694: 
 7695: @c Some packages, notably GNU GCC and GNU gdb, have a build environment
 7696: @c originally written at Cygnus Support (subsequently renamed Cygnus
 7697: @c Solutions, and then later purchased by Red Hat).  Packages with this
 7698: @c ancestry are sometimes referred to as ``Cygnus'' trees.
 7699: @c 
 7700: 特にGNU GCCとGNU gdbのようなパッケージには,Cygnus Support(その後,
 7701: Cygnus Solutionsに名前が変更され,その後で Red Hat に買収されました)で通
 7702: 常書かれているビルド環境変数があります.この系統のパッケージは,
 7703: ``Cygnus''ツリーとして述べられるときもあります.
 7704: 
 7705: @c A Cygnus tree has slightly different rules for how a @file{Makefile.in}
 7706: @c is to be constructed.  Passing @samp{--cygnus} to @code{automake} will
 7707: @c cause any generated @file{Makefile.in} to comply with Cygnus rules.
 7708: @c 
 7709: Cygnusツリーには,@file{Makefile.in}を構築する方法に対して,わずかに異なっ
 7710: た規則があります.@code{automake}へ@samp{--cygnus}を渡すことで,生成され
 7711: るすべての@file{Makefile.in}はCygnus規則に従います.
 7712: 
 7713: @c Here are the precise effects of @samp{--cygnus}:
 7714: @c 
 7715: @samp{--cygnus}の正確な効果は以下のようになっています.
 7716: 
 7717: @itemize @bullet
 7718: @item
 7719: @c Info files are always created in the build directory, and not in the
 7720: @c source directory.
 7721: @c 
 7722: Infoファイルは,ソースディレクトリでではなく,常にビルドディレクトリで作
 7723: 成されます.
 7724: 
 7725: @item
 7726: @c @file{texinfo.tex} is not required if a Texinfo source file is
 7727: @c specified.  The assumption is that the file will be supplied, but in a
 7728: @c place that Automake cannot find.  This assumption is an artifact of how
 7729: @c Cygnus packages are typically bundled.
 7730: @c 
 7731: @file{texinfo.tex}は,Texinfoソースファイルが指定されている場合でも,要
 7732: 求されません.ファイルは提供されているのですが,Automakeが見つけられない
 7733: 場所にあると仮定します.この仮定は,一般的にCygnusパッケージをバンドルす
 7734: る方法のartifact(欠点)です.
 7735: 
 7736: @item
 7737: @c @samp{make dist} is not supported, and the rules for it are not
 7738: @c generated.  Cygnus-style trees use their own distribution mechanism.
 7739: @c 
 7740: @samp{make dist}はサポートされておらず,その規則は生成されません.Cygnus 
 7741: 形式のツリーでは独自の配布メカニズムを使用します.
 7742: 
 7743: @item
 7744: @c Certain tools will be searched for in the build tree as well as in the
 7745: @c user's @samp{PATH}.  These tools are @code{runtest}, @code{expect},
 7746: @c @code{makeinfo} and @code{texi2dvi}.
 7747: @c 
 7748: ユーザの@samp{PATH}同様にビルドツリーでも特定のツールを捜します.これら
 7749: のツールは,@code{runtest},@code{expect},@code{makeinfo},そして
 7750: @code{texi2dvi}です.
 7751: 
 7752: @item
 7753: @c @code{--foreign} is implied.
 7754: @c 
 7755: @code{--foreign}を暗黙に指定します.
 7756: 
 7757: @item
 7758: @c The options @samp{no-installinfo} and @samp{no-dependencies} are
 7759: @c implied.
 7760: @c 
 7761: オプション@samp{no-installinfo}と@samp{no-dependencies}を暗黙に指定しま
 7762: す.
 7763: 
 7764: @item
 7765: @c The macros @samp{AM_MAINTAINER_MODE} and @samp{AM_CYGWIN32} are
 7766: @c required.
 7767: @c 
 7768: マクロ@samp{AM_MAINTAINER_MODE}と@samp{AM_CYGWIN32}が要求されます.
 7769: 
 7770: @item
 7771: @c The @code{check} target doesn't depend on @code{all}.
 7772: @c 
 7773: @code{check}ターゲットは@code{all}に依存しません.
 7774: @end itemize
 7775: 
 7776: @c GNU maintainers are advised to use @samp{gnu} strictness in preference
 7777: @c to the special Cygnus mode.  Some day, perhaps, the differences between
 7778: @c Cygnus trees and GNU trees will disappear (for instance, as GCC is made
 7779: @c more standards compliant).  At that time the special Cygnus mode will be
 7780: @c removed.
 7781: @c 
 7782: GNU管理者は,特別なCygnusモードではなく@samp{gnu}の厳密さを使用してくだ
 7783: さい.いつかはおそらく,CygnusツリーとGNUツリーの間の差が(例えば,GCCが
 7784: より標準に準拠するように)なくなることでしょう.そのときは,特殊なCygnus
 7785: モードは削除されるでしょう.
 7786: 
 7787: 
 7788: @node Extending, Distributing, Cygnus, Top
 7789: @c @chapter When Automake Isn't Enough
 7790: @chapter Automakeが不十分なとき
 7791: 
 7792: @c Automake's implicit copying semantics means that many problems can be
 7793: @c worked around by simply adding some @code{make} targets and rules to
 7794: @c @file{Makefile.in}.  Automake will ignore these additions.
 7795: @c 
 7796: Automakeの暗黙のコピーの意味は,単純にいくつかの@code{make}ターゲットと
 7797: @file{Makefile.in}の規則を加えることで,多くの問題が解決可能だということ
 7798: を意味します.Automakeはこれらの追加を無視します.
 7799: 
 7800: @cindex -local targets
 7801: @cindex local targets
 7802: 
 7803: @c There are some caveats to doing this.  Although you can overload a
 7804: @c target already used by Automake, it is often inadvisable, particularly
 7805: @c in the topmost directory of a package with subdirectories.  However,
 7806: @c various useful targets have a @samp{-local} version you can specify in
 7807: @c your @file{Makefile.in}.  Automake will supplement the standard target
 7808: @c with these user-supplied targets.
 7809: @c 
 7810: これを行なうときにはいくつか注意することがあります.すでにAutomakeで使用
 7811: されているターゲットをオーバーロードすることが可能ですが,特にサブディレ
 7812: クトリのあるパッケージのトップディレクトリでは,あまり勧められません.し
 7813: かし,様々な有用なターゲットには,@file{Makefile.in}で指定可能な,
 7814: @samp{-local}バージョンがあります.Automakeはこれらのユーザが提供するター
 7815: ゲットを用いて標準ターゲットを補足します.
 7816: 
 7817: @trindex  all
 7818: @trindex  all-local
 7819: @trindex  info
 7820: @trindex  info-local
 7821: @trindex  dvi
 7822: @trindex  dvi-local
 7823: @trindex  ps
 7824: @trindex  ps-local
 7825: @trindex  pdf
 7826: @trindex  pdf-local
 7827: @trindex  check
 7828: @trindex  check-local
 7829: @trindex  install
 7830: @trindex  install-data-local
 7831: @trindex  install-exec
 7832: @trindex  install-exec-local
 7833: @trindex  uninstall
 7834: @trindex  uninstall-local
 7835: @trindex  mostlyclean
 7836: @trindex  mostlyclean-local
 7837: @trindex  clean
 7838: @trindex  clean-local
 7839: @trindex  distclean
 7840: @trindex  distclean-local
 7841: @trindex  installdirs
 7842: @trindex  installdirs-local
 7843: @trindex  installcheck
 7844: @trindex  installcheck-local
 7845: 
 7846: @c The targets that support a local version are @code{all}, @code{info},
 7847: @c @code{dvi}, @code{ps}, @code{pdf}, @code{check}, @code{install-data},
 7848: @c @code{install-exec}, @code{uninstall}, @code{installdirs},
 7849: @c @code{installcheck} and the various @code{clean} targets
 7850: @c (@code{mostlyclean}, @code{clean}, @code{distclean}, and
 7851: @c @code{maintainer-clean}).  Note that there are no
 7852: @c @code{uninstall-exec-local} or @code{uninstall-data-local} targets; just
 7853: @c use @code{uninstall-local}.  It doesn't make sense to uninstall just
 7854: @c data or just executables.
 7855: @c 
 7856: ローカルバージョンをサポートするターゲットは,@code{all},@code{info},
 7857: @code{dvi},@code{ps},@code{pdf},@code{check},@code{install-data}, 
 7858: @code{install-exec},@code{uninstall},@code{installdirs},
 7859: @code{installcheck},そして様々な@code{clean}ターゲット
 7860: (@code{mostlyclean},@code{clean},@code{distclean},そして
 7861: @code{maintainer-clean})です.@code{uninstall-exec-local}や
 7862: @code{uninstall-data-local}ターゲットが無いことに注意してください.
 7863: @code{uninstall-local}だけを使用してください.データだけ,あるいは実行可
 7864: 能プログラムだけをアンインストールすることには意味がありません.
 7865: 
 7866: @c For instance, here is one way to install a file in @file{/etc}:
 7867: @c 
 7868: 例えば,ファイルを@file{/etc}にインストールする一つの方法は,以下のよう
 7869: になります.
 7870: 
 7871: @example
 7872: install-data-local:
 7873:         $(INSTALL_DATA) $(srcdir)/afile $(DESTDIR)/etc/afile
 7874: @end example
 7875: 
 7876: @cindex -hook targets
 7877: @cindex hook targets
 7878: 
 7879: @c Some targets also have a way to run another target, called a @dfn{hook},
 7880: @c after their work is done.  The hook is named after the principal target,
 7881: @c with @samp{-hook} appended.  The targets allowing hooks are
 7882: @c @code{install-data}, @code{install-exec}, @code{uninstall}, @code{dist},
 7883: @c and @code{distcheck}.
 7884: @c 
 7885: ターゲットには,@dfn{hook}と呼ばれる,その仕事が終った後にもう一つのター
 7886: ゲットを実行する方法もあります.フックは,主要なターゲットに@samp{-hook} 
 7887: を追加して命名します.フックが可能なターゲットは,@code{install-data},
 7888: @code{install-exec},@code{uninstall},@code{dist},そして
 7889: @code{distcheck}です.
 7890: @trindex install-data-hook
 7891: @trindex install-exec-hook
 7892: @trindex uninstall-hook
 7893: @trindex dist-hook
 7894: 
 7895: @c For instance, here is how to create a hard link to an installed program:
 7896: @c 
 7897: 例えば,インストールしたプログラムにハードリンクを作成する方法は,以下の
 7898: ようになります.
 7899: 
 7900: @example
 7901: install-exec-hook:
 7902:         ln $(DESTDIR)$(bindir)/program $(DESTDIR)$(bindir)/proglink
 7903: @end example
 7904: 
 7905: @c FIXME should include discussion of variables you can use in these
 7906: @c rules
 7907: 
 7908: @node Distributing, API versioning, Extending, Top
 7909: @c @chapter Distributing @file{Makefile.in}s
 7910: @chapter @file{Makefile.in}の配布
 7911: 
 7912: @c Automake places no restrictions on the distribution of the resulting
 7913: @c @file{Makefile.in}s.  We still encourage software authors to distribute
 7914: @c their work under terms like those of the GPL, but doing so is not
 7915: @c required to use Automake.
 7916: @c 
 7917: Automakeは,結果として生じる@file{Makefile.in}の配布に制限を置きません.
 7918: 我々は,ソフトウェアの著者にGPLのような用語の下でその仕事を流通させるこ
 7919: とを奨励しますが,そうすることはAutomakeを使用することにで要求されません.
 7920: 
 7921: @c Some of the files that can be automatically installed via the
 7922: @c @code{--add-missing} switch do fall under the GPL@.  However, these also
 7923: @c have a special exception allowing you to distribute them with your
 7924: @c package, regardless of the licensing you choose.
 7925: @c 
 7926: @code{--add-missing}スイッチによって自動的にインストールすることが可能な
 7927: ファイルにはGPLに従うものもあります.しかし,選択したライセンスを気にせ
 7928: ず,パッケージとともに配布することができるよう,これらにも特別な例外があ
 7929: ります.
 7930: 
 7931: 
 7932: @node API versioning, Macro and Variable Index, Distributing, Top
 7933: @c @chapter Automake API versioning
 7934: @chapter AutomakeのAPIのバージョン管理
 7935: 
 7936: @c New Automake releases usually include bug fixes and new features.
 7937: @c Unfortunately they may also introduce new bugs and incompatibilities.
 7938: @c This makes four reasons why a package may require a particular Automake
 7939: @c version.
 7940: @c 
 7941: 通常,新しいAutomakeのリリースにはバグの修正と新しい機能が含まれています.
 7942: 残念ながら,それらは新しいバグと非互換性ももたらす可能性があります.この
 7943: ことは,パッケージがAutomakeの特定のバージョンを要求する可能性となる四つ
 7944: の原因となります.
 7945: 
 7946: @c Things get worse when maintaining a large tree of packages, each one
 7947: @c requiring a different version of Automake.  In the past, this meant that
 7948: @c any developer (and sometime users) had to install several versions of
 7949: @c Automake in different places, and switch @samp{$PATH} appropriately for
 7950: @c each package.
 7951: @c 
 7952: 大きなツリーのパッケージを管理するとき,それぞれが異なるバージョンの
 7953: Automakeを要求することが問題になります.過去には,開発者(と時にはユーザ
 7954: が)異なるバージョンのAutomakeを異なる場所にインストールし,それぞれのパッ
 7955: ケージに対して適切な@samp{$PATH}に切替える必要があったという意味です.
 7956: 
 7957: @c Starting with version 1.6, Automake installs versioned binaries.  This
 7958: @c means you can install several versions of Automake in the same
 7959: @c @samp{$prefix}, and can select an arbitrary Automake version by running
 7960: @c @samp{automake-1.6} or @samp{automake-1.7} without juggling with
 7961: @c @samp{$PATH}.  Furthermore, @file{Makefile}'s generated by Automake 1.6
 7962: @c will use @samp{automake-1.6} explicitely in their rebuild rules.
 7963: @c 
 7964: バージョン1.6で開始していますが,Automakeはバージョン管理されたバイナリ
 7965: をインストールします.これは同じ@samp{$prefix}で複数のバージョンの
 7966: Automakeをインストールすることが可能で,@samp{$PATH}で誤魔化すこと無く
 7967: @samp{automake-1.6}や@samp{automake-1.7}を実行することで任意のバージョン
 7968: のAutomakeを選択することが可能だということを意味します.さらに,Automake
 7969: 1.6で生成された@file{Makefile}は,リビルドの規則で明示的に
 7970: @samp{automake-1.6}を使用します.
 7971: 
 7972: @c Note that @samp{1.6} in @samp{automake-1.6} is Automake's API version,
 7973: @c not Automake's version.  If a bug fix release is made, for instance
 7974: @c Automake 1.6.1, the API version will remain 1.6.  This means that a
 7975: @c package which work with Automake 1.6 should also work with 1.6.1; after
 7976: @c all, this is what people expect from bug fix releases.
 7977: @c 
 7978: @samp{automake-1.6}の@samp{1.6}は,AutomakeのバージョンではなくAutomake 
 7979: のAPIのバージョンだということに注意してください.バグの修正版が作成され
 7980: た場合,例えばAutomake 1.6.1になりますが,APIのバージョンは1.6のままです.
 7981: これは,Automake 1.6で動作するパッケージは1.6.1でも動作することを意味し
 7982: ます.結局,これは人々がバグの修正版に期待するものになります.
 7983: 
 7984: @c Note that if your package relies on a feature or a bug fix introduced in
 7985: @c a release, you can pass this version as an option to Automake to ensure
 7986: @c older releases will not be used.  For instance, use this in your
 7987: @c @file{configure.in}:
 7988: @c 
 7989: パッケージがリリースで導入された機能やバグの修正に依存している場合,古い
 7990: リリースを使用しないことを確実にするため,Automakeへのオプションとしてこ
 7991: のバージョンを渡すことが可能です.例えば,@file{configure.in}で以下の内
 7992: 容を使用してください.
 7993: 
 7994: @example
 7995:   AM_INIT_AUTOMAKE(1.6.1)    dnl Require Automake 1.6.1 or better.
 7996: @end example
 7997: @noindent
 7998: @c or, in a particular @file{Makefile.am}:
 7999: @c 
 8000: または特定の@file{Makefile.am}で以下の内容を使用してください.
 8001: 
 8002: @example
 8003:   AUTOMAKE_OPTIONS = 1.6.1   # Require Automake 1.6.1 or better.
 8004: @end example
 8005: @noindent
 8006: @c Automake will print an error message if its version is
 8007: @c older than the requested version.
 8008: @c 
 8009: Automakeのバージョンが要求されたバージョンより古い場合,Automakeはエラー
 8010: メッセージを出力します.
 8011: 
 8012: 
 8013: @c @heading What is in the API
 8014: @heading APIの中身
 8015: 
 8016: @c Automake's programing interface is not easy to define.  Basically it
 8017: @c should include at least all @strong{documented} variables and targets
 8018: @c that a @samp{Makefile.am} authors can use, the behaviours associated to
 8019: @c them (e.g. the places where @samp{-hook}'s are run), the command line
 8020: @c interface of @samp{automake} and @samp{aclocal}, @dots{}
 8021: @c 
 8022: Automakeのプログラミングインターフェースは簡単に定義できません.基本的に,
 8023: 全ての@strong{ドキュメント化されている}変数と@samp{Makefile.am}の著者が
 8024: 利用可能なターゲットを少なくとも含めるべきで,動作はそれらに関連していて
 8025: (例えば,@samp{-hook}が実行される場所),@samp{automake}と@samp{aclocal} 
 8026: のコマンドラインインターフェースがあって,@dots{}
 8027: 
 8028: @c @heading What is not in the API
 8029: @heading APIには無いもの
 8030: 
 8031: @c Every undocumented variable, target, or command line option, is not part
 8032: @c of the API@.  You should avoid using them, as they could change from one
 8033: @c version to the other (even in bug fix releases, if this helps to fix a
 8034: @c bug).
 8035: @c 
 8036: ドキュメント化されていない変数,ターゲット,またはコマンドラインオプショ
 8037: ンは全て,APIの一部ではありません.バージョンが変われば(バグの修正に役立
 8038: つ場合は,バグの修正版でも) 変更されるかもしれないので,それらを使用する
 8039: ことは避けるべきです.
 8040: 
 8041: @c If it turns out you need to use such a undocumented feature, contact
 8042: @c @email{automake@@gnu.org} and try to get it documented and exercised by
 8043: @c the test-suite.
 8044: @c 
 8045: そのようなドキュメント化されていない機能を使用する必要があると判明した場
 8046: 合,@email{automake@@gnu.org}でコンタクトを取り,ドキュメントを書きテス
 8047: トスイートで試してみてください.
 8048: 
 8049: @page
 8050: @node Macro and Variable Index, General Index, API versioning, Top
 8051: @c @unnumbered Macro and Variable Index
 8052: @unnumbered マクロと変数の索引
 8053: 
 8054: @printindex vr
 8055: 
 8056: 
 8057: @page
 8058: @node General Index,  , Macro and Variable Index, Top
 8059: @c @unnumbered General Index
 8060: @unnumbered 一般的な索引
 8061: 
 8062: @printindex cp
 8063: 
 8064: 
 8065: @page
 8066: @contents
 8067: @bye

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>