次: , 前: Rebuilding, 上: Top


16 Automakeの動作の変更

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

gnits
gnu
foreign
cygnus
適切に厳密さを設定します.gnitsオプションは, readme-alphacheck-newsも暗黙に指定します.
ansi2knr
path/ansi2knr
自動的なde-ANSI-ficationを開始します.See ANSI. パスが前置されてい る場合,生成されるMakefile.inは,ansi2knrプログラムを見 つけるために指定されたディレクトリを探します.パスは(Automakeは現在こ れを調査しませんが),同じ配布物内の他のディレクトリへの相対的なパスに すべきです.
check-news
現在のバージョンナンバーがNEWSファイルの最初の数行に無い場合, make distは失敗します.
dejagnu
dejagnu特有のルールを生成します.See Tests.
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.amconfigure.acAM_INIT_AUTOMAKEの引数で使用されるべきで, それ以外では無視されるでしょう.
no-define
このオプションは,AM_INIT_AUTOMAKEへの引数として渡すときだけ意 味があります.それはPACKAGEVERSION変数が AC_DEFINEされることを妨げます.
no-dependencies
これは,コマンドラインで`--include-deps'を使用することに似ていま すが,自動的な依存追跡の仕事をするために必要なビットが無い状況で役に立 ちます.See Dependencies. この状況では,効率的な自動的な依存追跡に 障害を与えます.
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 Macros).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 Controlling the Archive Format.

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

version
バージョンナンバー(例えば`0.30')が指定可能です.Automakeが,指定 されているバージョンより新しくない場合,Makefile.inの作成は行な われません.
-Wcategory or --warnings=category
これらのオプションは,コマンドラインに正確に対応するもののように動作し ます(see Invoking Automake).これでファイルごとを基本に,警告のカ テゴリを有効にしたり無効にしたりすることが可能になります.プロジェクト 全体に警告の設定を行なうことも可能です.例えば,configure.acAM_INIT_AUTOMAKE([-Wall])を試してください.

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

ツリーの全てのファイルにオプションを適用したい場合, configure.acAM_INIT_AUTOMAKEを使用することが可能です. See Macros.