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

17. 雑多なルール

他のどこにも適さない少数のルールと変数があります.


17.1 etagsのインターフェース

Automakeは,GNU Emacsで使用する`TAGS'ファイルを生成するためのルー ルを生成する場合もあります.

C,C++,またはFortran 77のソースコードやヘッダが存在している場合, tagsTAGSルールがディレクトリに対して生成されます. _SOURCES_HEADERS,そして_LISPプライマリを使用し てリストアップされているすべてのファイルは,タグを生成されます.配布さ れることが無い生成されるソースファイルは,nodist_noinst_HEADERSnodist_prog_SOURCESのような変数で宣言する必要があり,そ うすることでそれらが無視されることに注意して下さい.

複数のディレクトリがあるパッケージのトップディレクトリで,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に渡す引数を保持しています.


17.2 新しいファイル拡張子の取り扱い

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が生成するまだリストに無い接尾子が続きます.


17.3 Multilibのサポート

Automakeには,multilibと呼ばれているあまり知られていない機能のサポート があります.multilibは,一度に複数の異なるABIに対してビルドされ るライブラリです.毎回,ライブラリが異なるターゲットフラグの組み合わせ でビルドされます.これは,ライブラリがクロスコンパイルを目的としていて, コンパイラがサポートしているライブラリに対して,ほとんど排他的に使用さ れるときだけ役に立ちます.

multilibのサポートはまだ実験中です.multilibを理解していて,遭遇した問 題をデバッグすることが可能な場合のみ,それを使用してください.


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

This document was generated by Akihiro Sagawa on June, 8 2005 using texi2html 1.70.