[表紙] [目次] [索引] [検索] [上端 / 下端] [?]

Autoconf

このマニュアルをダウンロード
@insertcopying

1. はじめに    Autoconf's purpose, strengths, and weaknesses
2. GNUビルドシステム    A set of tools for portable software packages
3. configureスクリプトの作成    How to organize and produce Autoconf scripts
4. 出力ファイルの初期化    Initialization and output
5. 存在の調査    Macros that check for particular features
6. テストを書く    How to write new feature checks
7. テストの結果    What to do with results from feature checks
8. M4でのプログラミング    Layers on top of which Autoconf is written
9. Autoconfマクロを書く    Adding new macros to Autoconf
10. 移植性のあるシェルプログラミング    Shell script portability pitfalls
11. 手動のコンフィグレーション    Selecting features that can't be guessed
12. サイトのコンフィグレーション    Local defaults for configure
13. configureスクリプトの実行    How to use the Autoconf output
14. コンフィグレーションの再生成    Recreating a configuration
15. 時代遅れの構成物    Kept for backward compatibility
16. Autotestで一般的なテストスイートを生成する    Creating portable test suites
17. Autoconfのよくある質問と答え    Frequent Autoconf Questions, with answers
18. Autoconfの歴史    History of Autoconf
A. このマニュアルのコピー条件    How to make copies of this manual
B. 索引    Indices of symbols, concepts, etc.

 -- 詳細なノードリスト ---

GNUビルドシステム

2.1 Automake    Escaping Makefile hell
2.2 Libtool    Building libraries portably
2.3 参考文献    More info on the GNU build system

configureスクリプトの作成

3.1 `configure.ac'を書く    What to put in an Autoconf input file
3.2 `configure.ac'を作成するためにautoscanを使用する    Semi-automatic `configure.ac' writing
3.3 条件をリストアップするためifnamesを使用する    Listing the conditionals in source code
3.4 configureを作成するためautoconfを使用する    How to create configuration scripts
3.5 configureスクリプトを更新するためautoreconfを使用する    Remaking multiple configure scripts

`configure.ac'を書く

3.1.1 シェルスクリプトコンパイラ    Autoconf as solution of a problem
3.1.2 Autoconf言語    Programming in Autoconf
3.1.3 標準的な`configure.ac'のレイアウト    Standard organization of `configure.ac'

初期化と出力ファイル

4.1 configureの初期化    Option processing etc.
4.2 configureの注意事項    Copyright, version numbers in configure
4.3 configureの入力を見つける    Where Autoconf should find files
4.4 出力ファイルを生成する    Outputting results from the configuration
4.5 コンフィグレーション作業の実行    Preparing the output based on results
4.6 コンフィグレーションファイルの作成    Creating output files
4.7 Makefileへの代入    Using output variables in `Makefile's
4.8 コンフィグレーションヘッダファイル    Creating a configuration header file
4.9 任意のコンフィグレーションコマンドの実行    Running arbitrary instantiation commands
4.10 コンフィグレーションのリンクを作成する    Links depending on the configuration
4.11 サブディレクトリで他のパッケージをコンフィグレーションする    Configuring independent packages together
4.12 デフォルトプレフィクス    Changing the default installation prefix

Makefileへの代入

4.7.1 出力変数のプリセット    Output variables that are always set
4.7.2 インストールディレクトリの変数    Other preset output variables
4.7.3 ビルドディレクトリ    Supporting multiple concurrent compiles
4.7.4 自動的なリメイク    Makefile rules for configuring

ヘッダファイルのコンフィグレーション

4.8.1 コンフィグレーションヘッダのテンプレート    Input for the configuration headers
4.8.2 `config.h.in'を生成するためautoheaderを使用する    How to create configuration templates
4.8.3 autoheaderのマクロ    How to specify CPP templates

存在の調査

5.1 共通の動作    Macros' standard schemes
5.2 プログラムの選択    Selecting between alternative programs
5.3 ファイル    Checking for the existence of files
5.4 ライブラリファイル    Library archives that might be missing
5.5 ライブラリ関数    C library functions that might be missing
5.6 ヘッダファイル    Header files that might be missing
5.7 宣言    Declarations that may be missing
5.8 構造体    Structures or members that might be missing
5.9 型    Types that might be missing
5.10 コンパイラとプリプロセッサ    Checking for compiling programs
5.11 システムサービス    Operating system services
5.12 様々なUNIX    Special kludges for specific UNIX variants

共通の動作

5.1.1 標準的なシンボル    Symbols defined by the macros
5.1.2 デフォルトのインクルード    Includes used by the generic macros

プログラムの選択

5.2.1 特定のプログラムの調査    Special handling to find certain programs
5.2.2 一般的なプログラムとファイルの調査    How to find other programs

ライブラリ関数

5.5.1 C関数の移植性    Pitfalls with usual functions
5.5.2 特定の関数の調査    Special handling to find certain functions
5.5.3 一般の関数の調査    How to find other functions

ヘッダファイル

5.6.1 ヘッダの移植性    Collected knowledge on common headers
5.6.2 特定のヘッダの調査    Special handling to find certain headers
5.6.3 一般的なヘッダの調査    How to find other headers

宣言

5.7.1 特定の宣言の調査    Macros to check for certain declarations
5.7.2 一般的な宣言の調査    How to find other declarations

構造体

5.8.1 特定の構造体の調査    Macros to check for certain structure members
5.8.2 一般的な構造体の調査    How to find other structure members



5.9.1 特定の型の調査    Special handling to find certain types
5.9.2 一般的な型の調査    How to find other types

コンパイラとプリプロセッサ

5.10.1 特定のコンパイラの特徴    Some portability issues
5.10.2 一般的なコンパイラの特徴    Language independent tests and features
5.10.3 Cコンパイラの特徴    Checking its characteristics
5.10.4 C++コンパイラの特徴    Likewise
5.10.5 Fortranコンパイラの特徴    Likewise

テストを書く

6.1 言語の選択    Selecting which language to use for testing
6.2 テストプログラムを書く    Forging source files for compilers
6.3 プリプロセッサの実行    Detecting preprocessor symbols
6.4 コンパイラの実行    Detecting language or header features
6.5 リンカの実行    Detecting library features
6.6 実行時の動作の調査    Testing for run-time features
6.7 システム    A zoology of operating systems
6.8 複数のケース文    Tests for several possible values

テストプログラムを書く

6.2.1 テストプログラムのためのガイドライン    General rules for writing test programs
6.2.2 関数のテスト    Avoiding pitfalls in test programs
6.2.3 ソースの生成    Source program boilerplate

テストの結果

7.1 Cプリプロセッサシンボルの定義    Defining C preprocessor symbols
7.2 出力変数の設定    Replacing variables in output files
7.3 結果のキャッシュ    Speeding up subsequent configure runs
7.4 メッセージの出力    Notifying configure users

結果のキャッシュ

7.3.1 キャッシュ変数名    Shell variables used in caches
7.3.2 キャッシュファイル    Files configure uses for caching
7.3.3 キャッシュのチェックポイント方法    Loading and saving the cache file

M4でのプログラム

8.1 M4の引用符    Protecting macros from unwanted expansion
8.2 autom4teの呼び出し    The Autoconf executables backbone
8.3 M4sugarでのプログラミング    Convenient pure M4 macros
8.4 M4shでのプログラミング    Common shell Constructs

M4の引用符

8.1.1 アクティブな文字    Characters that change the behavior of M4
8.1.2 一つのマクロの呼び出し    Quotation and one macro call
8.1.3 引用符と入れ子状のマクロ    Macros calling macros
8.1.4 changequoteの弊害    Worse than INTERCAL: M4 + changequote
8.1.5 四文字表記    Another way to escape special characters
8.1.6 引用符の経験則    One parenthesis, one quote

autom4teの使用

8.2.1 autom4teの呼び出し    A GNU M4 wrapper
8.2.2 autom4teのカスタマイズ    Customizing the Autoconf package

M4sugarでのプログラム

8.3.1 M4マクロの再定義    M4 builtins changed in M4sugar
8.3.2 マクロの評価    More quotation and evaluation control
8.3.3 禁止されているパターン    Catching unexpanded macros

Autoconfマクロを書く

9.1 マクロの定義    Basic format of an Autoconf macro
9.2 マクロ名    What to call your new macros
9.3 メッセージの報告    Notifying autoconf users
9.4 マクロ間の依存性    What to do when macros depend on other macros
9.5 時代遅れのマクロ    Warning about old ways of doing things
9.6 コーディングスタイル    Writing Autoconf macros à la Autoconf

マクロ間の依存性

9.4.1 マクロの必要条件    Ensuring required information
9.4.2 推奨される順序    Warning about possible ordering problems

移植性のあるシェルプログラム

10.1 シェル    A zoology of shells
10.2 ヒアドキュメント    Quirks and tricks
10.3 ファイルディスクリプタ    FDs and redirections
10.4 ファイルシステムの条件    File- and pathnames
10.5 シェルの代入    Variable and command expansions
10.6 代入    Varying side effects of assignments
10.7 シェルスクリプト内のカッコ    Parentheses in shell scripts
10.8 特殊なシェル変数    Variables you should not change
10.9 シェル組み込みの制限    Portable use of not so portable /bin/sh
10.10 通常のツールの制限    Portable use of portable tools
10.11 Makeの制限    Portable Makefiles

手動のコンフィグレーション

11.1 システムタイプの指定    Specifying the system type
11.2 標準的なシステムタイプの取得    Getting the canonical system type
11.3 システムタイプを使用する    What to do with the system type

サイトコンフィグレーション

12.1 外部ソフトウェアとともに動作する    Working with other optional software
12.2 パッケージオプションの選択    Selecting optional features
12.3 ヘルプ文字列を小奇麗にする    Formatting help string
12.4 サイトのコンフィグレーションの詳細    Configuring site details
12.5 インストール時のプログラム名の変換    Changing program names when installing
12.6 サイトのデフォルトの設定    Giving configure local defaults

インストール時のプログラム名の変換

12.5.1 変換オプション    configure options to transform names
12.5.2 変換例    Sample uses of transforming names
12.5.3 変換規則    `Makefile' uses of transforming names

configureスクリプトの実行

13.1 基本的なインストール    Instructions for typical cases
13.2 コンパイラとオプション    Selecting compilers and optimization
13.3 複数のアーキテクチャに対するコンパイル    Compiling for multiple architectures at once
13.4 インストール名    Installing in different directories
13.5 オプションの機能    Selecting optional features
13.6 システムタイプの指定    Specifying the system type
13.7 デフォルトの共有    Setting site-wide defaults for configure
13.8 変数の定義    Specifying the compiler etc.
13.9 configureの呼び出し    Changing how configure runs

時代遅れの構成物

15.1 時代遅れの`config.status'の呼び出し    Different calling convention
15.2 `acconfig.h'    Additional entries in `config.h.in'
15.3 `configure.ac'を現代風にするためにautoupdateを使用する    Automatic update of `configure.ac'
15.4 時代遅れのマクロ    Backward compatibility macros
15.5 バージョン1からの更新    Tips for upgrading your files
15.6 バージョン2.13からの更新    Some fresher tips

バージョン1からの更新

15.5.1 ファイル名の変更    Files you might rename
15.5.2 Makefileの変更    New things to put in `Makefile.in'
15.5.3 変更されたマクロ    Macro calls you might replace
15.5.4 変更された結果    Changes in how to check test results
15.5.5 マクロの書き方の変更    Better ways to write your own macros

バージョン2.13からの更新

15.6.1 引用符で囲むことの変更    Broken code which used to work
15.6.2 新しいマクロ    Interaction with foreign macros
15.6.3 ホストとクロスコンパイル    Bugward compatibility kludges
15.6.4 AC_LIBOBJLIBOBJS    LIBOBJS is a forbidden token
15.6.5 AC_FOO_IFELSEAC_TRY_FOO    A more generic scheme for testing sources

Autotestを用いてテストスイートを生成する

16.1 Autotestテストスイートを使用する    Autotest and the user
16.2 `testsuite.at'を書く    Autotest macros
16.3 testsuiteスクリプトの実行    Running testsuite scripts
16.4 testsuiteスクリプトの作成    Using autom4te to create testsuite

Autotestテストスイートの使用

16.1.1 testsuiteスクリプト    The concepts of Autotest
16.1.2 Autotestのログ    Their contents

よくある質問とその回答

17.1 configureスクリプトの配布    Distributing configure scripts
17.2 なぜGNU M4が必要なのですか?    Why not use the standard M4?
17.3 ブートストラップはどうするのですか?    Autoconf and GNU M4 require each other?
17.4 なぜImakeではないのですか?    Why GNU uses configure instead of Imake
17.5 インストールディレクトリを#defineで定義する方法は?    Passing datadir to program
17.6 `autom4te.cache'はなんですか?    What is it? Can I remove it?
17.7 ヘッダが存在するのにコンパイルされません    Compiler and Preprocessor Disagree

Autoconfの歴史

18.1 Genesis    Prehistory and naming of configure
18.2 Exodus    The plagues of M4 and Perl
18.3 Leviticus    The priestly code of portability arrives
18.4 Numbers    Growth and contributors
18.5 Deuteronomy    Approaching the promises of easy configuration

このマニュアルのコピー条件

A.1 GNU Free Documentation License    License for copying this manual

索引

B.1 環境変数の索引    Index of environment variables used
B.2 出力変数の索引    Index of variables set in output files
B.3 プリプロセッサシンボルの索引    Index of C preprocessor symbols defined
B.4 Autoconfマクロの索引    Index of Autoconf macros
B.5 M4マクロの索引    Index of M4, M4sugar, and M4sh macros
B.6 Autotestマクロの索引    Index of Autotest macros
B.7 プログラムと関数の索引    Index of those with portability problems
B.8 概念の索引    General index