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

16. Automakeの動作の変更

Automakeの様々な機能は,`Makefile.am'のオプションで制御可能です. このようなオプションは,AUTOMAKE_OPTIONSという名前の特別な `Makefile'変数にリストアップすることで,`Makefile'ごとを基本 に適用されます.`configure.ac'のAM_INIT_AUTOMAKEの最初の引 数にリストアップすることで,処理されるすべての`Makefiles'に大域的 に適用されます.現在理解されるオプションは以下のとおりです.

gnits
gnu
foreign
cygnus

適切に厳密さを設定します.gnitsオプションは, readme-alphacheck-newsも暗黙に指定します.

ansi2knr
path/ansi2knr

自動的なde-ANSI-ficationを開始します.See section 自動的なde-ANSI-fication. パスが前置されてい る場合,生成される`Makefile.in'は,`ansi2knr'プログラムを見 つけるために指定されたディレクトリを探します.パスは(Automakeは現在こ れを調査しませんが),同じ配布物内の他のディレクトリへの相対的なパスに すべきです.

check-news

現在のバージョンナンバーが`NEWS'ファイルの最初の数行に無い場合, make distは失敗します.

dejagnu

dejagnu特有のルールを生成します.See section テストスイートのサポート.

dist-bzip2

dist-bzip2distにフックします.

dist-shar

dist-shardistにフックします.

dist-zip

dist-zipdistにフックします.

dist-tarZ

dist-tarZdistにフックします.

filename-length-max=99

ファイル名が99文字以上のものをmake dist中に見つけた場合,中止し ます.そのような長いファイル名は,一般的に移植性がないtarballだと考え られます.以下のtar-v7tar-ustarオプションを参照して下 さい.このオプションは,トップレベルの`Makefile.am'や `configure.ac'のAM_INIT_AUTOMAKEの引数で使用されるべきで, それ以外では無視されるでしょう.

no-define

このオプションは,AM_INIT_AUTOMAKEへの引数として渡すときだけ意 味があります.それはPACKAGEVERSION変数が AC_DEFINEされることを妨げます.

no-dependencies

これは,コマンドラインで`--include-deps'を使用することに似ていま すが,自動的な依存追跡の仕事をするために必要なビットが無い状況で役に立 ちます.See section 自動的な依存性追跡. この状況では,効率的な自動的な依存追跡に 障害を与えます.

no-dist

distターゲットに関連するコードを生成しません.これは,パッケー ジに独自の配布物を作成する手法があるとき役に立ちます.

no-dist-gzip

dist-gzipdistにフックしません.

no-exeext

`Makefile.am'でターゲット`foo'に対するルールを定義している場 合,`foo$(EXEEXT)'と指名されているターゲットに対するルールに優先 します.EXEEXTが空のとき,これが必要です.しかし,デフォルトで, automakeではこれの使用に対してエラーを発生します.no-exeextオプ ションで,このエラーが発生しないようにします.これは,Windowsや実行形 式の拡張子を使用しているそれ以外のすべてのオペレーティングシステムに移 植する予定の無いパッケージだと分かっている場合のみ使用するものです.

no-installinfo

生成された`Makefile.in'はデフォルトで,infoページをビルドしたりイ ンストールしたりしません.しかし,infoinstall-infoター ゲットは利用可能です.このオプションは`GNU'の厳密さでは拒絶されま す.

no-installman

生成された`Makefile.in'はデフォルトでman pageをインストールしませ ん.しかし,install-manターゲットはオプショナルインストールで利 用可能です.このオプションは`GNU'の厳密さで使用不可能です.

nostdinc

このオプションは,通常Automakeが自動的に供給する標準的な`-I'オプ ションを利用不可能にするために使用することが可能です.

no-texinfo.tex

このディレクトリにTexinfoファイルがあっても,`texinfo.tex'を必要 としません.

readme-alpha

このリリースがアルファリリースで,ファイル`README-alpha'が存在す る場合,それは配布物に加えられます.このオプションが与えられている場合, バージョンナンバーは次の二つの形式のうちの一つだと期待されます.最初の 形式は`MAJOR.MINOR.ALPHA'で,それぞれの要素が数 字です.最後のピリオドと数字は非アルファのリリースのときに捨てられます. 二番目の形式は`MAJOR.MINORALPHA'で,ALPHA は文字列です.それは非アルファのリリースのときに取り除かれます.

std-options

installcheckルールで,インストールされたスクリプトとプログラム が,--help--versionオプションをサポートしているかどう かを調査するようにします.これは,プログラムの実行時の依存性がインストー ル後にも満足しているという基本的な調査も提供します.

状況によって,プログラム(またはスクリプト)でこのテストを免除させる必要 があるかもしれません.例えば,(GNUのsh-utilsの)falseは, --help--versionでさえ,決して成功しません.そのような プログラムは,変数AM_INSTALLCHECK_STD_OPTIONS_EXEMPTでリストアッ プすることが可能です.この変数にリストアップされているプログラム(スク リプトではない)は,Win32やOS/2に対して$(EXEEXT)で接尾子が付きま す.例えば,falseをプログラムとして,true.shをスクリプト としてビルドしようと仮定し,--help--versionをどちらも サポートしないものとします.

 
AUTOMAKE_OPTIONS = std-options
bin_PROGRAMS = false ...
bin_SCRIPTS = true.sh ...
AM_INSTALLCHECK_STD_OPTIONS_EXEMPT = false$(EXEEXT) true.sh
subdir-objects

このオプションが指定されている場合,オブジェクトはソースファイルのサブ ディレクトリに対応する,ビルドディレクトリのサブディレクトリに配置され ます.例えば,ソースファイルが`subdir/file.cxx'の場合,出力ファイ ルは`subdir/file.o'になります.

tar-v7
tar-ustar
tar-pax

これら三つの排他的なオプションで,make distでtarballを生成する ときのtarのフォーマットを選択します.(作成されるtarファイルは,使用し ているno-dist-gzipdist-bzip2,そしてdist-tarZオ プションの組合せによって圧縮されます.)

これらのオプションは,実行すべき新たなコンフィグレーションの調査を引き 起こすはずなので,AM_INIT_AUTOMAKEのオプションとして渡す必要が あります(see section Automakeが提供するAutoconfマクロ).AUTOMAKE_OPTIONS変数でそのようなオプ ションが見つかる場合,Automakeは文句を言います.

tar-v7は,古いtarフォーマットを選択します.これは,歴史的なデフォ ルトです.この古くさいフォーマットは,すべてのtarの実装で解釈でき,99 文字までのファイル名をサポートしています.与えられるファイル名がそれよ り長いとき,tarの実装によっては問題を調査しますが,壊れたtarballを生成 したり,移植性の無い拡張子を使用したりするものもあります.さらに,V7 フォーマットは,空のディレクトリを保持することが不可能です.このフォー マットを使用しているときは,あまりに長いファイル名を検出する filename-length-max=99オプションの使用を検討して下さい.

tar-ustarは,POSIX 1003.1-1988で定義されているustarフォーマット を選択します.このフォーマットは,古いものに対して十分移植性があると信 じられています.空のディレクトリも完全にサポートされています.256文字 までのファイル名で保存可能で,ファイル名も,ディレクトリのセパレータで 2つの部分に分割することも可能で,最初のものはほぼ155バイトまで対応して います.そのため,ほとんどの状況で,最大ファイル名の長さは256文字より 小さくなります.しかし,99文字以上のファイル名の処理が壊れたtarの実装 で実行する可能性もあります(このドキュメントを正確にするため bug-automake@gnu.orgにレポートを報告して下さい).

tar-paxは,POSIX 1003.1-2001で定義されている,新しいpax交換フォー マットを選択します.それにはファイル名の長さの制限はありません.しかし, このフォーマットはまだ新しく,最近のプラットフォームをターゲットとした パッケージに限定されるでしょう.上位互換の方法としてpaxフォーマット移 行しているので,このオプションは,将来,より新しいバージョンに関係しま す.

tarフォーマットの詳細な議論は,See (tar)Formats section `Controlling the Archive Format' in GNU Tar.

configureでこれらのフォーマットの構成を知る方法はいくつかありま す.作業終了まで,ツールが分からない場合でも中止しませんが(パッケージ はビルド可能です),make distは失敗するでしょう.

version

バージョンナンバー(例えば`0.30')が指定可能です.Automakeが,指定 されているバージョンより新しくない場合,`Makefile.in'の作成は行な われません.

-Wcategory or --warnings=category

これらのオプションは,コマンドラインに正確に対応するもののように動作し ます(see section `Makefile.in'の生成).これでファイルごとを基本に,警告のカ テゴリを有効にしたり無効にしたりすることが可能になります.プロジェクト 全体に警告の設定を行なうことも可能です.例えば,`configure.ac'で AM_INIT_AUTOMAKE([-Wall])を試してください.

認識できないオプションはautomakeが判断します.

ツリーの全てのファイルにオプションを適用したい場合, `configure.ac'のAM_INIT_AUTOMAKEを使用することが可能です. See section Automakeが提供するAutoconfマクロ.


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

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