[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
他のどこにも適さない少数のルールと変数があります.
18.1 etags のインターフェース | Interfacing to etags and mkid | |
18.2 新しいファイル拡張子の取り扱い | Handling new file extensions | |
18.3 Multilibのサポート | Support for multilibs. |
etags
のインターフェース Automakeは,GNU Emacsで使用する`TAGS'ファイルを生成するためのルー ルを生成する場合もあります.
C,C++,またはFortran 77のソースコードやヘッダが存在している場合,
tags
とTAGS
ルールがディレクトリに対して生成されます.
複数のディレクトリがあるパッケージのトップディレクトリで,tags
ルールは実行時に出力され,それは実行時に,サブディレクトリにあるすべて
の`TAGS'ファイルの参照を含んでいる`TAGS'ファイルを生成します.
変数ETAGS_ARGS
が定義されている場合,tags
ルールも生成され
ます.この変数は,etags
が理解しないタグを使用しているソースを含
んでいるディレクトリでの使用を考慮しています.ユーザはetags
に追
加のフラグを渡すためにETAGSFLAGS
を使用することが可能です.
`Makefile.am'でAM_ETAGSFLAGS
を利用することもできます.
ソースとTexinfoファイルのノードに対するタグをAutomakeで生成する方法は 以下のようになります.
ETAGS_ARGS = automake.in --lang=none \ --regex='/^@node[ \t]+\([^,]+\)/\1/' automake.texi |
`ETAGS_ARGS'にファイル名を加える場合,おそらく
`TAGS_DEPENDENCIES'も設定したいでしょう.この変数の中身は
tags
ルール対する依存性に直接追加されます.
Automakeは,vi
形式の`tags'ファイルのビルドで使用される,
ctags
ルールを生成します.変数CTAGS
は,呼び出されるプログ
ラムの名前です(デフォルトは`ctags').CTAGSFLAGS
は,ユーザ
が追加フラグを渡すために使用され,AM_CTAGSFLAGS
は
`Makefile.am'で使用されます.
Automakeは,mkid
をソース上で実行するID
ルールも生成します.
これはディレクトリ単位に基づくサポートだけです.
AutomakeはGNU Global Tags
programもサポートします.GTAGS
ルールは,自動的にGlobal Tagを実
行し,結果をビルドディレクトリに書き込みます.変数GTAGS_ARGS
は,
gtags
に渡す引数を保持しています.
Automakeが知らないファイル形式を処理するために,新しい暗黙のルールを導 入することが役に立つこともあります.
例えば,`.foo'ファイルを`.o'ファイルにコンパイルするコンパイ ラがあると仮定します.その言語に対する接尾子ルールを単純に定義するでしょ う.
.foo.o: foocc -c -o $@ $< |
そして,`_SOURCES'変数で`.foo'ファイルを直接使用し,正しい結 果が期待されるでしょう.
bin_PROGRAMS = doit doit_SOURCES = doit.foo |
これはより簡単で,より一般的な状況です.それ以外の状況では,定義してい
るサフィックスルールを,Automakeが理解する手助けが必要です.通常これは,
拡張子がドットで始まらないときに生じます.そのときにしなければならない
ことは,暗黙のルールを定義する前に,新しい接尾子のリストを
SUFFIXES
変数に書き込むことです.
例えば,以下の定義で,Automakeが誤解して,`.idlC.cpp:'で `.idlC'を`.cpp'に変換する試行をしないようにします.
SUFFIXES = .idl C.cpp .idlC.cpp: # whatever |
注意していると思いますが,SUFFIXES
変数はmake
の
.SUFFIXES
特殊ターゲットのように動作します..SUFFIXES
を独
自にいじくるべきではなく,その代わりにSUFFIXES
を使用しAutomake
が.SUFFIXES
に対する接尾子リストを生成するようにすべきです.与え
られた全てのSUFFIXES
は生成された接尾子リストの最初に書かれ,
Automakeが生成するまだリストに無い接尾子が続きます.
Automakeには,multilibと呼ばれているあまり知られていない機能のサポート があります.multilibは,一度に複数の異なるABIに対してビルドされ るライブラリです.毎回,ライブラリが異なるターゲットフラグの組み合わせ でビルドされます.これは,ライブラリがクロスコンパイルを目的としていて, コンパイラがサポートしているライブラリに対して,ほとんど排他的に使用さ れるときだけ役に立ちます.
multilibのサポートはまだ実験中です.multilibを理解していて,遭遇した問 題をデバッグすることが可能な場合のみ,それを使用してください.
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |