FreeBSD 日本語マニュアル検索 (jman/japropos/jwhatis)


日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。

4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)

13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。



検索コマンド: man apropos whatis
コマンド/キーワード:
日本語マニュアル RELEASE :
セクション:
Table of Contents
名称 | 書式 | 解説 | ファイル依存関係指定 | シェルコマンド | 変数代入 | インクルード文、条件式と FOR ループ | コメント | 特殊ソース (属性) | 特殊ターゲット | 環境変数 | 関連ファイル | 互換性 | 関連項目 | 歴史 | バグ
MAKE(1)                 FreeBSD 一般コマンドマニュアル                 MAKE(1)

名称
     make -- プログラムの依存関係をメンテナンスする

書式
     make [-BeikNnqrstWwX] [-C directory] [-D variable] [-d flags]
          [-f makefile] [-I directory] [-J private] [-j max_jobs]
          [-m directory] [-T file] [-V variable] [-v variable]
          [variable=value] [target ...]

解説
     make は、他のプログラムのメンテナンスを単純化するように作られたプログラム
     です。その入力は、プログラムと依存する他のファイルに関するファイルについ
     ての指定のリストです。-f makefile makefile のオプションが与えられないな
     ら、make は、指定のファイルを見つけるために `makefile' をオープンすること
     を試み、次に `Makefile' をオープンすることを試みます。ファイル `.depend'
     が存在するなら、読み込まれます (mkdep(1) を参照)。

     このマニュアルページは、リファレンスの文書としてのみを目的としています。
     make と makefile のより完全な解説については、PMake - A Tutorial を参照し
     てください。

     make は、引数を解析する前に、コマンド行の引数の前に MAKEFLAGS 環境変数の
     内容を追加します。

     オプションは、次の通りです:

     -B      コマンドごとに単一のシェルを実行することによって、そして依存関係
             の行のソースを順序どおりに make するコマンドを実行することによっ
             て、後方互換性となるようにします。

     -C directory
             makefile を読み込むか、または何も行わない前に、directory に変更し
             ます。複数の -C オプションが指定されるなら、それぞれは、前のもの
             と相対的に解釈されます: -C / -C etc は、-C /etc と同等です。

     -D variable
             グローバルな文脈として variable を 1 に定義します。

     -d [-]flags
             デバッギングをオンにし、make のどの部分のデバッギング情報を印刷
             (表示) するかを指定します。フラグが `-' に先導されないなら、それ
             らは、MAKEFLAGS 環境変数に追加され、あらゆる子プロセスの make プ
             ロセスによっても処理されます。デフォルトで、デバッギング情報は、
             標準エラーに印刷 (表示) されますが、これは、F デバッギングフラグ
             を使用して変更することができます。デバッギング出力は、常にバッ
             ファリングされません。さらに、デバッギングが有効にされるが、デ
             バッギング出力が標準出力にリダイレクトされないなら、標準出力は、
             行単位にバッファリングされます。flags は、次の 1 つ以上です:

             A       可能なすべてのデバッギング情報を印刷します。デバッギング
                     フラグのすべてを指定することと同等です。

             a       アーカイブ検索とキャッシングに関するデバッギング情報を印
                     刷します。

             C       現在の作業ディレクトリに関するデバッギング情報を印刷しま
                     す。

             c       条件式の評価に関するデバッギング情報を印刷します。

             d       ディレクトリ検索とキャッシングに関するデバッギング情報を
                     印刷します。

             e       失敗したコマンドとターゲットに関するデバッギング情報を印
                     刷します。

             F[+]filename
                     デバッギング出力が書き込まれる場所を指定します。これは、
                     引数の残りを消費するので、最後のフラグでなければなりませ
                     ん。`F' フラグの直後の文字が `+' であるなら、アペンド (追
                     加) モードでオープンされます。そうでなければ、ファイル
                     は、上書きされます。ファイル名が `stdout' または `stderr'
                     であるなら、デバッギング出力は、それぞれ、標準出力または
                     標準エラー出力ファイル記述子に書き込まれます `+' オプショ
                     ンは、効果がありません)。そうでなければ、出力は、指定され
                     たファイルに書き込まれます。ファイル名が `.%d' で終るな
                     ら、`%d' は、pid と置き換えられます。

             f       ループ評価に関するデバッギング情報を印刷 (表示) します。

             g1      何でも make する前に、入力グラフを印刷します。

             g2      すべてを make した後、またはエラーで終了する前に、入力グ
                     ラフを印刷します。

             g3      エラーで終了する前に、入力グラフを印刷します。

             j       複数のシェルの実行することに関するデバッギング情報を印刷
                     します。

             l       `@' または他の "quiet" (静かな) フラグが前に付けられるか
                     どうかにかかわらず Makefile 中のコマンドを印刷します。ま
                     た、"loud" (うるさい) 振る舞いとして知られています。

             M       ターゲットに関する "meta" モードの決定に関するデバッギン
                     グ情報を印刷します。

             m       更新時刻を含んで、ターゲットを make することに関するデ
                     バッギング情報を印刷します。

             n       コマンドを実行するとき、作成される一時的なコマンドスクリ
                     プトを削除しません。これらの一時的なスクリプトは、TMPDIR
                     環境変数によって参照されるディレクトリか、または TMPDIR
                     が設定されていないか、または空の文字列に設定されるなら、
                     /tmp で作成されます。一時的なスクリプトは、mkstemp(3) に
                     よって作成され、形式 makeXXXXXX の名前があります。注: こ
                     れは、TMPDIR または /tmp に多くのファイルを作成することが
                     できるので、注意して使用します。

             p       makefile の解析に関するデバッギング情報を印刷します。

             s       接尾辞変換規則に関するデバッギング情報を印刷します。

             t       ターゲットリストの維持管理に関するデバッギング情報を印刷
                     します。

             V       .MAKE.EXPAND_VARIABLES によって設定されたデフォルトの振る
                     舞いを上書きして、変数の生 (raw) の値を印刷するために -V
                     オプションを強制します。

             v       変数の割り当てに関するデバッギング情報を印刷します。

             x       -x を付けてシェルコマンドを実行するので、実際のコマンド
                     は、それらが実行されるように、印刷されます。

     -e      環境変数は、makefile 内のマクロの割り当てを上書きすることを指定し
             ます。

     -f makefile
             デフォルトの `makefile' の代わりに読み込む makefile を指定しま
             す。makefile が `-' であるなら、標準入力が読み込まれます。複数の
             makefile が、指定されるかもしれず、指定された順序で読み込まれま
             す。

     -I directory
             makefile とインクルードされる makefile を検索するディレクトリを指
             定します。システム makefile ディレクトリ (または、複数のディレク
             トリ) -m オプション参照) は、このリストの一部として自動的にインク
             ルードされます。

     -i      makefile 中のシェルコマンドの 0 でない終了を無視します。makefile
             中の各コマンド行の前に、`-' を指定することと同等です。

     -J private
             このオプションは、ユーザによって指定されるべきではありません。

             j オプションが再帰的な構築で使用されているとき、過負荷のシステム
             を避けるために協力することを構築中のすべての make プロセスに許可
             を与えるために、このオプションは、make によって子プロセスに渡され
             ます。

     -j max_jobs
             make がどの時点においても実行しているジョブの最大数を指定します。
             値は、.MAKE.JOBS に保存されます。また、B フラグが指定されないな
             ら、互換モードは、オフにされます。互換モードがオフであるとき、
             ターゲットに関連したすべてのコマンドは、従来の 1 行ごとに 1 つの
             シェル呼び出しとは対照的に、単一のシェルの呼び出しで実行されま
             す。これは、各コマンドの呼び出しでディレクトリを変更し、次に、次
             の行で新たな環境で開始することを期待する従来のスクリプトを壊すか
             もしれません。後方互換性をオンにするのではなくスクリプトを修正す
             るほうが効率的です。

     -k      エラーに遭遇した後に、処理を続けますが、その作成がエラーを引き起
             こしたターゲットに依存しないターゲットの場合のみです。

     -m directory
             <file> スタイルのインクルード文によってインクルードされる sys.mk
             と makefile を検索するためのディレクトリを指定します。検索パスを
             形成するために -m オプションを複数回使用できます。このパスは、デ
             フォルトのシステムのインクルードパス: /usr/share/mk を上書きしま
             す。さらに、システムのインクルードパスは、"file" スタイルのインク
             ルード文 (-I オプションを参照) に使用される検索パスに追加されま
             す。

             -m 引数 (または、MAKESYSPATH 環境変数) のファイルまたはディレクト
             リ名が、文字列 ".../" で始まるなら、make は、引数文字列の残りの部
             分で指定された、ファイルまたはディレクトリを検索します。検索は、
             Makefile の現在のディレクトリで開始し、次にファイルシステムのルー
             トの上向きに動作します。検索が成功するなら、結果のディレクトリ
             は、-m 引数で指定された ".../" を置き換えます。使用されるなら、こ
             の機能によって、make は、カスタマイズされた sys.mk ファイル (例え
             ば、引数として ".../mk/sys.mk" を使用して) に対して現在のソースツ
             リーで簡単に検索できます

     -n      実行されるであろうコマンドを表示しますが、ターゲットが .MAKE 特別
             ソースに依存しないなら、実際にそれらを実行しません (下記を参照)。

     -N      実行されるであろうコマンドを表示しますが、それらのどれも実際に実
             行しません。サブディレクトリに降りずに、トップレベルの makefile
             をデバッグするのに役に立ちます。

     -q      なにもコマンドを実行しませんが、指定されたターゲットが最新である
             なら、0 で終了し、そうでなければ、1 で終了します。

     -r      システム makefile で指定される組み込みの規則を使用しません。

     -s      それらが実行されるときに、あらゆるコマンドをエコーしません。make
             file の各コマンド行の前に `@' を指定することと同等です。

     -T tracefile
             -j フラグとともに使用されるとき、開始され、完了した各ジョブのため
             の tracefile にトレース記録を追加します。

     -t      makefile で指定されるターゲットを再構築するのではなく、(touch コ
             マンドのように) それを作成するか、または、それを最新にするために
             更新時刻を更新します。

     -V variable
             variable の値を印刷 (表示) します。あらゆるターゲットを構築しませ
             ん。このオプションの複数のインスタンスが指定されます。変数は、ヌ
             ルまたは未定義の変数ごとに空行を付けて、1 行ごとに 1 つ印刷されま
             す。印刷 (表示) された値は、すべての makefile が読み込まれた後
             に、グローバルなコンテキストから抽出されます。デフォルトで、(追加
             の展開されていない変数の参照を含んでいる) 生 (raw) の変数の内容が
             表示されます。variable が `$' を含んでいるなら、値は、印刷 (表示)
             の前に、その完全なその結果のテキストに再帰的に展開されます。ま
             た、展開された値は、.MAKE.EXPAND_VARIABLES が真に設定され、それを
             上書きするするために、-dV オプションが使用されなかったなら、印刷
             (表示) されます。makefile 処理の間にグローバル変数によって一時的
             に取られた値と同様に、ループローカルとターゲットローカル変数は、
             このオプションをを通してアクセス可能ではないことに注意してくださ
             い。大量の外部の出力を生成することを犠牲にして、これらを調べるた
             めに -dv デバッグモードを使用することができます。

     -v variable
             -V に似ていますが、変数は、常にその完全な値に展開されます。

     -W      makefile の解析の間にあらゆる警告をエラーとして扱います。

     -w      入口と出口のディレクトリのメッセージ、前処理と後処理を印刷 (表示)
             します。

     -X      環境変数に個別にコマンド行で渡された変数をエクスポートしません。
             コマンド行で渡された変数は、いまだに MAKEFLAGS 環境変数によってエ
             クスポートされます。このオプションは、コマンドの引数のサイズに小
             さな制限があるシステムで役に立ちます。

     variable=value
             変数 variable の値を value に設定します。通常、コマンド行に渡され
             たすべての値は、環境変数のサブ make にもエクスポートされます。-X
             フラグは、この振る舞いを無効にします。変数の割り当ては、POSIX 互
             換性のためのオプションに従うべきですが、順序は、強制されません。

     makefile には、次の 7 つの異なるタイプの行があります: ファイル依存関係、
     シェルコマンド、変数割り当て、インクルード文、条件式の指示、for ループと
     コメント。

     一般的に、行は、バックスラッシュ (`\') でそれらを終了することによって、1
     つの行から次の行に継続されます。続く行の後続する改行文字と最初の空白類
     は、単一の空白に押し込まれます。

ファイル依存関係指定
     依存関係行は、1 つ以上のターゲット、演算子、と 0 個以上のソースで構成され
     ます。これは、ターゲットがソースに ``依存し''、通常、それらから作成される
     ところで、関係 (relationship) を作成します。ターゲットとソースの正確な関
     係 (relationship) は、それらを分離する演算子によって決定されます。3 つの
     演算子は、次の通りです:

     :     ターゲットは、その更新時刻が、そのソースのいずれかのもの更新時刻未
           満であるなら、古いものとと見なされます。ターゲットのためのソース
           は、この演算子が使用されるとき、依存関係の行にわたって蓄積します。
           ターゲットは、make が割り込まれるなら、削除されます。

     !     ターゲットは、すべてのソースが検査され、必要に応じて再作成されない
           なら、常に再作成されます。ターゲットのためのソースは、この演算子が
           使用されるとき、依存関係の行にわたって蓄積します。ターゲットは、
           make が割り込まれるなら、削除されます。

     ::    ソースが指定されないなら、ターゲットは、常に再作成されます。そうで
           なければ、そのソースのいずれかがターゲットよりより最近修正されてい
           るなら、ターゲットは、古いと見なされます。ターゲットのためのソース
           は、この演算子が使用されるとき、依存関係の行にわたって蓄積しませ
           ん。ターゲットは、make が割り込まれるなら、削除されません。

     ターゲットとソースは、シェルのワイルドカード値 `?', `*', `[]' と `{}' を
     含むことができます。値 `?', `*' と `[]' は、ターゲットまたはソースの最後
     の構成要素の一部としてのみ使用され、既存のファイルを記述するために使用さ
     れなければなりません。値 `{}' は、既存のファイルを記述するために必ずしも
     使用される必要はありません。展開は、シェルで行われるように、アルファベッ
     ト順にではなくディレクトリの順序になっています。

シェルコマンド
     各ターゲットは、通常、ターゲットを作成するために使用される、シェルコマン
     ドの 1 行以上に関連付けられます。このスクリプトの行のそれぞれは、タブが先
     行されなければなりません。(歴史的の理由のために、空白は、受け付けられませ
     ん。) ターゲットが、要求されるなら、多くの依存状態行に現れることができる
     一方、これらの規則のデフォルトの 1 つだけに、作成スクリプトが続きます。し
     かしながら、`::' 演算子が使用されるなら、すべての規則は、スクリプトを含
     み、スクリプトは、現れた順序で実行されます。

     行の終わりがバックスラッシュ (`\') でエスケープされ、その場合、行と次の行
     は、結合されますが、各行は、結合されないなら、個別のシェルコマンドとして
     扱われます。コマンドの最初の文字が、`@', `+' または `-' のあらゆる組み合
     わせであるなら、コマンドは、特別に扱われます。`@' コマンドによって、コマ
     ンドは、それが実行される前に、エコーされません。`+' コマンドによって、コ
     マンドは、-n が与えられるときでさえ、実行されます。これは、スクリプトの単
     一の行に影響を制限できることを除いて、.MAKE の特別のソースの影響に似てい
     ます。互換性モードで、`-' コマンドによって、コマンド行のあらゆる 0 以外の
     終了ステータスは、無視されます。

     make-j max_jobs を付けたジョブモードで実行されるとき、ターゲットのた
     めのすべてのスクリプトは、シェルの単一のインスタンスに与えられます。互換
     性 (非ジョブ) モードで、各コマンドは、個別のプロセスで実行されます。コマ
     ンドが、いずれかのシェルのメタ文字 (`#=|^(){};&<>*?[]:$`\\n') を含んでい
     るなら、シェルに渡されます。そうでなければ、make は、直接実行を試みます。
     行が `-' で始まり、シェルに有効にされた ErrCtl があるなら、コマンド行の失
     敗は、互換モードのときに無視されます。そうでなければ、`-' は、全体のジョ
     ブに影響します。スクリプトは、失敗した最初のコマンド行で停止しますが、
     ターゲットは、失敗したと見なされません。

     Makefile は、make の操作のモードが、それらの振る舞いを変更しないように、
     書かれるべきです。例えば、続くコマンドのためにディレクトリを潜在的に変換
     せずに ``cd'' または ``chdir'' を使用する必要がある、あらゆるコマンドは、
     括弧に入れられるべきであるので、それは、サブシェルで実行します。1 つの
     シェルの使用を強制するために、全体のスクリプトを 1 つのコマンドにするため
     に、改行をエスケープします。例えば:

           avoid-chdir-side-effects:
                   @echo Building $@ in `pwd`
                   @(cd ${.CURDIR} && ${MAKE} $@)
                   @echo Back in `pwd`

           ensure-one-shell-regardless-of-mode:
                   @echo Building $@ in `pwd`; \
                   (cd ${.CURDIR} && ${MAKE} $@); \
                   echo Back in `pwd`

     make は、あらゆるターゲットを実行する前に `.OBJDIR' に chdir(2) するの
     で、各子プロセスは、その現在の作業ディレクトリとして、そこで開始します。

変数代入
     make の変数は、シェルの変数に非常に似ていて、伝統的に、すべて大文字で構成
     されます。

   変数代入修飾子
     変数に値を代入するために使用することができる 5 つの演算子は、次の通りで
     す:

     =       変数に値を代入します。あらゆる前の値は、上書きされます。

     +=      変数の現在値に値を追加します。

     ?=      それがまだ定義されないなら、変数に値を代入します。

     :=      展開して代入します、すなわち、変数にそれを代入する前に、値を展開
             します。通常、変数が参照されないなら、展開は、行われません。注:
             未定義の変数への参照は、展開されません。これは、変数の修飾子が使
             用されるとき、問題を起こかもしれません。

     !=      値を展開し、実行のためにそれをシェルに渡し、変数に結果を代入しま
             す。結果のあらゆる改行は、空白と置き換えられます。

     代入される value の前のあらゆる空白類は、削除されます。値が追加されるな
     ら、単一の空白が、変数の前の内容と追加される値の間に挿入されます。

     変数は、中括弧 (`{}') または括弧 (`()') のいずれかで変数名で囲み、ドル記
     号 (`$') を前に付けることによって展開されます。変数名が単一の文字である場
     合のみ、中括弧または括弧を囲むことは、必要ではありません。この短い形式
     は、推奨されません。

     変数名がドル記号を含んでいるなら、名前自体が最初に展開されます。これは、
     ほとんど任意の変数名を許可しますが、ドル記号、中括弧、括弧、または空白類
     を含んでいる名前は、実際により良く回避されます!

     変数を展開した結果がドル記号 (`$') を含んでいるなら、文字列は、再び拡張さ
     れます。

     変数の置換は、変数がどこで使用されているかに依存して、3 つの個別の時点で
     起こります。

     1.   依存関係の行の変数は、行が読み込まれるように、展開されます。

     2.   シェルコマンドの変数は、シェルコマンドが実行されるとき、拡張されま
          す。

     3.   ``.for'' ループのインデックス変数は、各ループの繰り返しで展開されま
          す。他の変数がループの内部で展開されないことに注意してください、それ
          で、次の使用例のコードは:


                .for i in 1 2 3
                a+=     ${i}
                j=      ${i}
                b+=     ${j}
                .endfor

                all:
                        @echo ${a}
                        @echo ${b}

          は、次を印刷 (表示) します:

                1 2 3
                3 3 3

          なぜなら、ループが実行された後に、${a} は、``1 2 3'' を含んでいます
          が、${b} は、ループが完了した後に、${j} が、``3'' を含んでいるので、
          ``3 3 3'' に展開される ``${j} ${j} ${j}'' を含んでいます。

   変数クラス
     変数の 4 つの異なるクラス (増加される優先の順序で) は、次の通りです:

     環境変数
             make の環境変数の一部として定義される変数。

     グローバル変数
             makefile またはインクルードされる makefile で定義された変数。

     コマンド行変数
             コマンド行の一部として定義される変数。

     ローカル変数
             特定のターゲットに特有であると定義される変数。

     ローカル変数は、すべて組み込みであり、それらの値は、ターゲットからター
     ゲットに魔法のように変化します。現在、新しいローカル変数を定義することは
     できません。7 つのローカル変数は、次の通りです:

           .ALLSRC   このターゲットのためのすべてのソースのリスト。また、`>'
                     として知られています。

           .ARCHIVE  アーカイブファイルの名前。また、`!' として知られていま
                     す。

           .IMPSRC   接尾辞の変換規則で、ターゲットが変換される (``暗黙'' の
                     ソース) ソースの名前/パス。また、`<' として知られていま
                     す。それは、明示的な規則で定義されていません。

           .MEMBER   アーカイブメンバの名前。また、`%' として知られています。

           .OODATE   古いと見なされる、このターゲットのためのソースのリスト。
                     また、`?' として知られています。

           .PREFIX   ファイルの部分だけを含み、接尾辞または先行するディレクト
                     リの構成要素を含まない、ターゲットのファイルの接頭辞。ま
                     た、`*' として知られています。接尾辞は、.SUFFIXES で宣言
                     された既知の接尾辞の 1 つでなければならず、そうでなけれ
                     ば、それは、認識されません。

           .TARGET   ターゲットの名前。また、`@' として知られています。他の
                     make との互換性のために、これは、アーカイブメンバ規則の
                     .ARCHIVE のためのエイリアスです。

     短い形式 (`>', `!', `<', `%', `?', `*' と `@') は、歴史的な makefile と古
     い POSIX make との後方互換性のために許可され、推奨されません。

     `D' または `F'、例えば、`$(@D)'、によって直ちに続き句読点があるこれらの変
     数の変異型は、`:H' と `:T' 修飾子を使用すること同等である古い形式です。こ
     れらの形式は、AT&T System V UNIX の makefile と POSIX との互換性のために
     受け付けられますが、推奨されません。

     ローカル変数の 4 つは、それらが、行の各ターゲットに対して適切な値に展開す
     るので、依存関係の行のソースで使用されます。これらの変数は、`.TARGET',
     `.PREFIX', `.ARCHIVE' と `.MEMBER' です。

   追加の組み込み変数
     さらに、make は、次の変数に関して設定するか、または知っています:

     $               単一のドル記号 `$'、すなわち、`$$' は、単一のドル記号に展
                     開します。

     .ALLTARGETS     Makefile で遭遇されるすべてのターゲットのリスト。Makefile
                     の解析の間に評価されるなら、これまで遭遇されたターゲット
                     のみをリストします。

     .CURDIR         make が実行されたディレクトリへのパス。より詳しい情報につ
                     いては、`PWD' の説明を参照してください。

     .INCLUDEDFROMDIR
                     この Makefile が含まれていたファイルのディレクトリ。

     .INCLUDEDFROMFILE
                     この Makefile が含まれていたファイルのファイル名。

     MAKE            make が、(argv[0]) で実行された名前。また、互換性のため
                     に、make は、同じ値に .MAKE を設定します。make の他のバー
                     ジョンとより互換性があり、同じ名前で特別のターゲットと混
                     同することができないので、使用する好ましい変数は、環境変
                     数 MAKE です。

     .MAKE.ALWAYS_PASS_JOB_QUEUE
                     たとえ、ターゲットが .MAKE とタグ付けられなくても、ジョブ
                     トークンのキューの記述子を渡すべきかどうか make に伝えま
                     す。デフォルトは、FreeBSD 9.0 以前の後方互換性のために
                     `yes' です。

     .MAKE.DEPENDFILE
                     生成された依存関係が読み込まれる makefile (デフォルトは、
                     `.depend') 指定する。

     .MAKE.EXPAND_VARIABLES
                     -V オプションのデフォルトの振る舞いを制御するブール値。真
                     であるなら、-V で印刷 (表示) される変数の値は、完全に展開
                     されます。偽であるなら、(追加の展開されていない変数の参照
                     を含んでいる) 生 (raw) の変数の内容が表示されます。

     .MAKE.EXPORTED  make によってエクスポートされる変数のリスト。

     .MAKE.JOBS      -j オプションへの引数。

     .MAKE.JOB.PREFIX
                     makej をつけて実行されるなら、各ターゲットのための出
                     力は、.MAKE.JOB.PREFIX によって制御することができる最初の
                     部分である、トークン `--- target ---' が前に付けられま
                     す。.MAKE.JOB.PREFIX が空であるなら、トークンは、印刷 (表
                     示) されません。
                     例えば:
                     .MAKE.JOB.PREFIX=${.newline}---${.MAKE:T}[${.MAKE.PID}]
                     は、達成されている並列の度合を追跡することを簡単にする
                     `---make[1234] target ---' のようなトークンを生成します。

     MAKEFLAGS       環境変数 `MAKEFLAGS' は、make のコマンド行で指定されるあ
                     らゆるもの含んでいます。make のコマンド行で指定されたあら
                     ゆるものは、その後、make が実行するすべてのプログラムのた
                     めに環境変数に入れられる `MAKEFLAGS' 変数に追加されます。

     .MAKE.LEVEL     make のリカージョンの深さ。make の最初のインスタンスは、0
                     で、増加された値は、次の生成によって見られる環境変数に入
                     れられます。これは、次のようなテストを許可します: make の
                     最初のインスタンスでのみ評価されるべきものを保護するため
                     の .if ${.MAKE.LEVEL} == 0。

     .MAKE.MAKEFILE_PREFERENCE
                     make が検索する makefile 名 (デフォルトは、`makefile',
                     `Makefile') の順序付けられたリスト。

     .MAKE.MAKEFILES
                     依存関係を追跡するのに役に立つ、make によって読み込まれる
                     makefile のリスト。各 makefile は、読み込まれた回数にかか
                     わらず、一度だけ記録されます。

     .MAKE.MODE      すべての makefile を読み込んだ後に処理されます。make が実
                     行するモードに影響するかもしれません。多くのキーワードを
                     含むことができます:

                     compat               -B のように、make を "compat" (互換)
                                          モードにします。

                     meta                 メタファイルがコマンド実行を捕獲する
                                          ためにターゲットごとに作成され、
                                          filemon(4) が利用可能であるなら、生
                                          成される出力、make するために重要な
                                          システムコールで、make を "meta"
                                          モードにします。エラーを診断すると
                                          き、捕獲される出力を非常に役に立てる
                                          ことができます。

                     curdirOk= bf         通常、make は、`.CURDIR' で .meta
                                          ファイルを作成しません。bf を真
                                          (True) を表す値に設定することによっ
                                          て、これを上書きすることができます。

                     missing-meta= bf     bf が真であるなら、失われた .meta
                                          ファイルは、ターゲットを無効にしま
                                          す。

                     missing-filemon= bf  bf が真であるなら、失われた filemon
                                          データは、ターゲットを無効にします。

                     nofilemon            filemon(4) を使用しません。

                     env                  デバッギングに関して、.meta ファイル
                                          に環境変数をインクルードするために役
                                          に立てることができます。

                     verbose              "meta" モードであるなら、構築されて
                                          いるターゲットに関する手掛かり
                                          (clue) を印刷します。構築が他で静か
                                          に実行されているなら、これは、役に立
                                          ちます。印刷されるメッセージの値は、
                                          次の通りです: .MAKE.META.PREFIXignore-cmd           いくつかの makefile には、単純で安定
                                          していないコマンドがあります。この
                                          キーワードによって、ターゲットが
                                          "meta" モードで古いかどうかを判断す
                                          るために、それらは、無視されます。ま
                                          た、.NOMETA_CMP を参照してください。

                     silent= bf           bf が真 (True) であるなら、.meta
                                          ファイルが作成されるとき、ターゲット
                                          .SILENT をマークします。

     .MAKE.META.BAILIWICK
                     "meta" モードで、make によって制御されるディレクトリに一
                     致する接頭辞のリストを提供します。.OBJDIR の外側ですが、
                     前述の専門領域 (bailiwick) 内で生成されたファイルが見つか
                     らないなら、現在のターゲットは、古いと見なされます。

     .MAKE.META.CREATED
                     "meta" モードで、この変数は、更新されたすべてのメタファイ
                     ルのリストを含んでいます。空でないなら、.MAKE.META.FILES
                     の処理を引き起こすために使用することができます。

     .MAKE.META.FILES
                     "meta" モードで、この変数は、使用される (更新されて、され
                     なくても) すべてのメタファイルのリストを含んでいます。依
                     存関係の情報を抽出するためにメタファイルを処理するために
                     このリストを使用することができます。

     .MAKE.META.IGNORE_PATHS
                     無視されるべきパス接頭辞のリストを提供します。なぜなら、
                     内容は、時間とともに変更すると予想されるからです。デフォ
                     ルトのリストは、次のものを含んでいます: `/dev /etc /proc
                     /tmp /var/run /var/tmp'

     .MAKE.META.IGNORE_PATTERNS
                     パス名に対して一致するパターンのリストを提供します。一致
                     しているものは何でも無視します。

     .MAKE.META.IGNORE_FILTER
                     各パス名に適用する変数の修飾子のリストを提供します。拡張
                     子が空の文字列であるなら、無視します。

     .MAKE.META.PREFIX
                     "meta verbose" モードで更新されたメタファイルごとに印刷さ
                     れるメッセージを定義します。デフォルト値は、次の通りです:
                           Building ${.TARGET:H:tA}/${.TARGET:T}

     .MAKEOVERRIDES  `MAKEFLAGS' の一部としてエクスポートできるように、この変
                     数は、コマンド行で割り当てられた変数の名前を記録するため
                     に使用されます。この振る舞いは、makefile 内の
                     `.MAKEOVERRIDES' に空の値を代入することによって無効にする
                     ことができます。`.MAKEOVERRIDES' に、それらの名前の追加す
                     ることによって、makefile から特別の変数をエクスポートする
                     ことができます。`MAKEFLAGS' は、`.MAKEOVERRIDES' が修正さ
                     れるときはいつでも再エクスポートされます。

     .MAKE.PATH_FILEMON
                     makefilemon(4) のサポートで構築されたなら、これは、デ
                     バイスノードのパスに設定されます。これによって、makefile
                     は、このサポートのためにテストすることができます。

     .MAKE.PID       make のプロセス ID。

     .MAKE.PPID      make の親プロセス ID。

     .MAKE.SAVE_DOLLARS
                     値は、`:=' 割り当てを行うとき、`$$' が保存されるかどうか
                     を制御するブール値であるべきです。デフォルトは、後方互換
                     性のために偽です。他の make との互換性のために真に設定し
                     ます。偽に設定されているなら、`$$' は、通常の評価規則ごと
                     に `$' となります。

     MAKE_PRINT_VAR_ON_ERROR
                     make がエラーのために停止するとき、`.ERROR_TARGET' を失敗
                     したターゲットの名前に設定し、`.ERROR_CMD' を失敗したター
                     ゲットの構成要素に設定し、"メタ" モードに設定し、また、
                     `.ERROR_CWD' を getcwd(3) に設定し、`.ERROR_META_FILE' を
                     (もしあるなら) 失敗したターゲットを記述しているメタファイ
                     ルのパスに設定します。次に、`MAKE_PRINT_VAR_ON_ERROR' で
                     指定されたあらゆる変数の値と同様に、その名前と `.CURDIR'
                     の値を印刷 (表示) します。

     .newline        この変数は、その値として改行文字が単に代入されます。これ
                     によって、:@ を使用する拡張は、空白ではなくループの繰り返
                     しの間に改行を入れることができます。例えば、
                     `MAKE_PRINT_VAR_ON_ERROR' の印刷は、
                     ${MAKE_PRINT_VAR_ON_ERROR:@v@$v='${$v}'${.newline}@} のよ
                     うに行うことができるかもしれません。

     .OBJDIR         ターゲットが構築されるディレクトリへのパス。その値は、順
                     番に、次のディレクトリに chdir(2) を試みることによって、
                     最初の一致を使用して決定されます:

                     1.   ${MAKEOBJDIRPREFIX}${.CURDIR}

                          (`MAKEOBJDIRPREFIX' が環境変数で、またはコマンド行で
                          設定されている場合のみ。)

                     2.   ${MAKEOBJDIR}

                          `MAKEOBJDIR' が環境変数で、またはコマンド行で設定さ
                          れている場合のみ。)

                     3.   ${.CURDIR}/obj.${MACHINE}

                     4.   ${.CURDIR}/obj

                     5.   /usr/obj/${.CURDIR}

                     6.   ${.CURDIR}

                     変数の展開は、それが使用される前の値で行なわれるので、
                           ${.CURDIR:S,^/usr/src,/var/obj,}
                     のような式が使用されます。これは、`MAKEOBJDIR' で特に役に
                     立ちます。

                     `.OBJDIR' は、特別のターゲット `.OBJDIR' を通して make
                     file で修正されます。すべての場合に、make は、それが存在
                     するなら、指定されたディレクトリに chdir(2) し、あらゆる
                     ターゲットを実行する前に、`.OBJDIR' と `PWD' を、そのディ
                     レクトリに設定します。

     .PARSEDIR       解析されている現在の `Makefile' のディレクトリへのパス。

     .PARSEFILE      解析されている現在の `Makefile' の基本的な名前 (base
                     name)。この変数と `.PARSEDIR' は、`Makefiles' が解析され
                     ている間のみ、両方とも設定されます。それらの現在の値を保
                     持したいなら、展開で代入を使用して、変数に、それらを代入
                     します: (`:=。')

     .PATH           make がファイルを検索するディレクトリのリストを表わす変
                     数。検索リストは、変数ではなく、ターゲット `.PATH' を使用
                     して更新されるべきです。

     PWD             現在のディレクトリへの代替のパス。make は、通常、
                     `.CURDIR' を getcwd(3) によって与えられる標準的なパスに設
                     定します。しかしながら、環境変数 `PWD' が設定され、現在の
                     ディレクトリへのパスが与えられるなら、make は、代わりに
                     `.CURDIR' に `PWD' の値を設定します。`MAKEOBJDIRPREFIX'
                     が設定されるか、または `MAKEOBJDIR' が変数変換を含んでい
                     るなら、この振る舞いは、無効にされます。`PWD' は、make が
                     実行するすべてのプログラムに対して `.OBJDIR' の値に設定さ
                     れます。

     .TARGETS        もしあれるなら、コマンド行で明示的に指定されたターゲット
                     のリスト。

     VPATH           make がファイルを検索するディレクトリのコロン (``:'') で
                     区切られたリスト。変数は、古い make プログラムとの互換性
                     のためだけにサポートされ、代わりに、`.PATH' を使用しま
                     す。

   変数修飾子
     変数展開は、変数 (``word'' が空白類で区切られた文字のシーケンスのところ
     で) の各単語を選択するかまたは修正するために修正されるかもしれません。変
     数展開の一般的な形式は、次の通りです:

           ${variable[:modifier[:...]]}

     各修飾子は、バックスラッシュ (`\') でエスケープできるコロンで始まります。

     変数によって 1 組の修飾子を、次のように、指定することができます:

           modifier_variable=modifier[:...]
           ${variable:${modifier_variable}[:...]}

     この場合、それが参照される変数に現われなければならないので、modi
     fier_variable の最初の修飾子は、コロンで始まりません。modifier_variable
     の修飾子のどれかがドル記号 (`$') を含んでいるなら、これらは、初期の展開を
     避けるために 2 つでなければなりません。

     サポートされる修飾子は、次の通りです:

     :E   その接尾辞で変数中の各単語を置き換えます。

     :H   すべてのもので変数中の各単語を置き換えますが、最後の構成要素です。

     :Mpattern
          pattern と一致するそれらの単語だけを選択します。標準のシェルのワイル
          ドカード文字 (`*', `?' と `[]') が使用されます。ワイルドカード文字
          は、バックスラッシュ (`\') でエスケープされます。その方法の結果とし
          て、値は、単語に分割され、照合され、次に、結合され、
                ${VAR:M*}
          のような構成物は、単語の間スペーシング、すべての先導する空白と後続す
          る空白を削除すること、複数の連続する空白を単一の空白に変換することを
          標準化します。

     :Npattern
          これは、`:M' と同一ですが、pattern に一致しないすべての単語を選択し
          ます。

     :O   変数中のすべての単語をアルファベット順に順序付けます。逆の順序で単語
          をソートするためには、修飾子の `:O:[-1..1]' の組み合わせを使用しま
          す。

     :Ox  変数の単語をランダム化します。修正された変数を参照するごとに、結果
          は、異なります。そのような振る舞いを防ぐために、展開 (`:=') での代入
          を使用します。例えば、

                LIST=                   uno due tre quattro
                RANDOM_LIST=            ${LIST:Ox}
                STATIC_RANDOM_LIST:=    ${LIST:Ox}

                all:
                        @echo "${RANDOM_LIST}"
                        @echo "${RANDOM_LIST}"
                        @echo "${STATIC_RANDOM_LIST}"
                        @echo "${STATIC_RANDOM_LIST}"
          は、次のものに似た出力を生成します:

                quattro due tre uno
                tre due quattro uno
                due uno quattro tre
                due uno quattro tre

     :Q   make の再帰的な呼び出しを通して安全に渡すことができるように、変数中
          のすべてのシェルのメタ文字を引用します。

     :R   変数中の各単語をすべてのもので置き換えますが、接尾辞以外です。

     :range[=count]
          値は、オリジナルの値のワード、または供給された count を表している整
          数のシーケンスです。

     :gmtime[=utc]
          値は、gmtime(3) を使用する strftime(3) のための書式文字列です。utc
          値が提供されないか、または 0 であるなら、現在の時間が使用されます。

     :hash
          値の 32 ビットのハッシュを計算して、16 進数の数字として、それをエン
          コード (コード化) します。

     :localtime[=utc]
          値は、localtime(3) を使用する strftime(3) のための書式文字列です。
          utc 値が提供されないか、または 0 であるなら、現在の時間が使用されま
          す。

     :tA  realpath(3) を使用して、変数を絶対パスに変換することを試みます、それ
          が失敗するなら、値は、変更されません。

     :tl  変数を小文字に変換します。

     :tsc
          変数中の単語は、通常、展開で空白によって区切られます。この修飾子は、
          分離記号 (separator) 文字を c に設定します。c が省略されるなら、分離
          記号は、使用されません。(8 進法の数値のコードを含む) 共通のエスケー
          プは、予想通りに動作します。

     :tu  変数を大文字に変換します。

     :tW  値は、(多分、組み込まれた空白類を含んで) 単一の単語として扱われま
          す。また、`:[*]' を参照してください。

     :tw  値は、空白類によって区切られる単語のシーケンスとして扱われます。ま
          た、`:[@]' を参照してください。

     :S/old_string/new_string/[1gW]
          変数の値の最初に見つかる old_stringnew_string で置き換えるように
          修正します。`g' がパターンの最後のスラッシュに追加されるなら、各単語
          で見つかるものはすべて、置き換えれられます。`1' がパターンの最後のス
          ラッシュに追加されるなら、最初の単語だけが影響されます。`W' がパター
          ンの最後のスラッシュに追加されるなら、値は、(多分、組み込まれた空白
          類を含んで) 単一の単語として扱われます。old_string がキャレット
          (`^') で始まるなら、old_string は、各単語の最初に固定されます。
          old_string がドル記号 (`$') で終るなら、各単語の終わりに固定されま
          す。new_string の内部で、アンパサンド (`&') は、(あらゆる `^' または
          `$' なしで) old_string によって置き換えられます。あらゆる文字は、修
          飾子の文字列の部品に対して区切り文字 (delimiter) として使用できま
          す。固定される文字 (^ と $)、アンパサンドと区切り文字は、バックス
          ラッシュ (`\') でエスケープされます。

          変数展開は、唯一の、バックスラッシュが、いつものように先行するドル記
          号がない、ドル記号 (`$') の展開を防ぐために使用されることを除いて、
          old_stringnew_string の両方の通常の内部に生じます。

     :C/pattern/replacement/[1gW]
          :C 修飾子は、単純な文字列である代わりに、old と new 文字列が、拡張正
          規表現 (regex(3) を参照) の文字列 patterned(1) スタイルの文字列
          replacement であることを除いて、ちょうど :S 修飾子に似ています。通
          常、値の各単語のパターン pattern で最初に見つかるものは、replacement
          と置き換えられます。`1' 修飾子によって、置換は、多くても 1 つの単語
          に適応します。`g' 修飾子によって、置換は、それが見つかる単語または複
          数の単語に生じるように検索パターン pattern と同数のインスタンスに適
          応します。`W' 修飾子によって、値は、単一の単語 (多分、組み込まれた空
          白類を含んで) として扱われます。`1' と `g' は、直交することに注意し
          てください。前者は、複数の単語が潜在的に影響されるかどうかを指定し、
          後者は、複数の置換が潜在的に各影響された単語内に生じることができるど
          うかを指定します。

          :S 修飾子に関して、patternreplacement は、正規表現として解析され
          る前に変数拡張の対象となります。

     :T   変数中の各単語をその最後の構成用途と置き換えます。

     :u   隣接する複製の単語を (uniq(1) のように) 削除します。

     :?true_string:false_string
          .if 条件式として解析されるとき、(その値ではない) 変数名が真と評価す
          るなら、その値として true_string を返し、そうでなければ、
          false_string を返します。変数名が式として使用されるので、:? は、変数
          名自体の後の最初の修飾子でなければなりません - もちろん、通常、変数
          の展開を含むでしょう。共通のエラーは、実際に、決定するために
          defined(NUMBERS) のテストが、何か次のようなものを使用する必要のある
          "42" と一致するあらゆる単語である、
                ${NUMBERS:M42:?match:no}
          のように表現を使用しようとします:
                ${"${NUMBERS:M42}" != "":?match:no}。

     :old_string=new_string
          これは、AT&T System V UNIX スタイルの変数置換です。それは、指定され
          た最後の修飾子でなければなりません。old_string または new_string が
          パターンマッチング文字 % を含んでいないなら、それらが、各単語の終わ
          りに固定されると仮定されるので、接尾子またはすべての単語だけが置き換
          えられます。そうでなければ、% は、new_string で置き換えられる
          old_string のサブストリング (部分文字列) です。

          変数展開は、唯一の、バックスラッシュが、いつものように先行するドル記
          号がない、ドル記号 (`$') の展開を防ぐために使用されることを除いて、
          old_stringnew_string の両方の内部の通常のやり方で生じます、

     :@temp@string@
          これは、OSF Development Environment (開発環境) (ODE) の make からの
          ループ拡張メカニズムです。.for ループと異なり、ループ拡張は、参照の
          時に生じます。変数中の各単語に temp を代入し、string を評価します。
          ODE 仕様は、temp が期間で開始して終了するべきということです。例え
          ば。
                ${LINKS:@.LINK.@${LN} ${TARGET} ${.LINK.}@}

          しかしながら、単一文字の変数は、多くの場合より読み込み可能です:
                ${MAKE_PRINT_VAR_ON_ERROR:@v@$v='${$v}'${.newline}@}

     :_[=var]
          `$_' の現在の変数の値、または後の参照のために指定された var を保存し
          ます。使用法の例:

                M_cmpv.units = 1 1000 1000000
                M_cmpv = S,., ,g:_:range:@i@+ $${_:[-$$i]} \
                \* $${M_cmpv.units:[$$i]}@:S,^,expr 0 ,1:sh

                .if ${VERSION:${M_cmpv}} < ${3.1.12:L:${M_cmpv}}

          ここで、`$_' は、後で、`:range' からインデックス値を使用して後で参照
          される `:S' 修飾子の結果を保存するために使用されます。

     :Unewval
          変数が未定義であるなら、newval は、値です。変数が定義されているな
          ら、既存の値が返されます。これは、別の ODE make の機能です。それは、
          例えば、ターゲットごとの CFLAGS を設定するために手軽です:
                ${_${.TARGET:T}_CFLAGS:U${DEF_CFLAGS}}
          値が単に必要とされるなら、そして、変数が未定義であるなら、次を使用し
          ます:
                ${VAR:D:Unewval}

     :Dnewval
          変数が定義されているなら、newval は、値です。

     :L   変数の名前は、値です。

     :P   変数と同じ名前をあるノードのパスは、値です。そのようなノードが存在し
          ないか、または、そのパスが null であるなら、変数の名前が使用されま
          す。この修飾子が動作するために、名前 (ノード) は、少なくとも依存関係
          の rhs に現われなければなりません。

     :!cmd!
          実行している cmd の出力は、値です。

     :sh  変数が空でないなら、コマンドとして実行され、出力は、新しい値になりま
          す。

     ::=str
          変数は、置換の後に、値 str を代入されます。この修飾子とその変異は、
          シェルコマンドが解析されているとき、変数を設定したいような不明瞭な状
          況で役に立ちます。これらの代入の修飾子は、常に何にも展開しません、そ
          れら自体によって規則行に現われることが make を満足し続ける何かで先行
          されるべきことです。

          ::= 形式が常に生じる置換は、曖昧に適当であるので、`::' は、AT&T
          System V UNIX スタイルの := 修飾子がある誤りのマッチを避けることを助
          けます。

     ::?=str
          ::= に関して、ただし、変数がまだ値がない場合のみです。

     ::+=str
          変数に str を追加します。

     ::!=cmd
          変数に cmd の出力を代入します。

     :[range]
          値から 1 つ以上の単語を選ぶか、または値が単語に分割される方法と関係
          する他の操作を行ないます。

          通常、値は、空白類によって区切られる単語のシーケンスとして扱われま
          す。いくつかの修飾子が、この振る舞いを抑制することによって、値は、
          (多分、組み込まれた空白類を含んで) 単一の単語として扱われます。空の
          値、または完全に空白類から成る値は、単一の単語として扱われます。
          `:[]' 修飾子の目的について、単語は、正の整数 (ここで、インデックス 1
          は、最初の単語を表わします) を使用して前方に、負の整数 (ここで、イン
          デックス -1 は、最後の単語を表わします) 使用して後方の両方にインデッ
          クス付けられます。

          range は、変数展開され、次に、展開された結果は、次のように解釈されま
          す:

          index  値から単一の単語を選択します。

          start..end
                 包括的に start から end まで、すべての単語を選択します。例え
                 ば、`:[2..-1]' は、2 番目の単語から最後の単語まですべての単語
                 を選択します。startend より大きいなら、単語は、逆の順序で
                 出力されます。例えば、`:[-1..1]' は、最後から最初まですべての
                 単語を選択します。

          *      続く修飾子は、単一の単語 (多分、組み込まれた空白類を含んで)
                 として値を扱います。Bourne シェルの "$*" の効果と類似していま
                 す。

          0      `:[*]' と同じであることを意味します。

          @      続く修飾子は、空白類よって区切られた単語のシーケンスとして値
                 を扱います。Bourne シェルの "$@" の効果と類似しています。

          #      値の中の単語の数を返します。

インクルード文、条件式と FOR ループ
     Makefile のインクルード、条件式の構造、と C プログラミング言語を連想する
     for ループは、make で提供されています。すべてのそのような構造は、単一の
     ドット (`.') 文字で始まる行で識別されます。ファイルは、.include <file> ま
     たは .include "file" のいずれかでインクルードされます。山括弧またはダブル
     クォートの間の変数は、ファイル名を形成するために展開されます。山括弧が使
     用されるなら、インクルードされる makefile は、システムの makefile ディレ
     クトリにあると見なされます。ダブルクォートが使用されるなら、インクルード
     されている makefile のディレクトリと -I オプションを使用して指定されたあ
     らゆるディレクトリは、システムの makefile ディレクトリの前に、検索されま
     す。make の他のバージョンとの互換性のために、`include file ...' も受け付
     けられます。

     インクルード文が .-include または .sinclude のように書き込まれるなら、エ
     ラーの位置および開始のインクルードファイルは、無視されます。

     include 文が .dinclude のように書かれるなら、エラーの位置および開始のイン
     クルードファイルは、無視されるだけでなく、インクルードファイル内の古い依
     存状態も、ちょうど .MAKE.DEPENDFILE のように無視されます。

     条件式も行の最初の文字として単一のドットが先行します。指定できる条件式
     は、次の通りです:

     .error message
             メッセージは、makefile の名前と行番号とともに印刷され、次に、make
             は、終了します。

     .export variable ...
             指定されたグローバル変数をエクスポートします。変数のリストが提供
             されないなら、(`.' で始まる) 内部変数を除いて、すべてのグローバル
             は、エクスポートされます。これは、-X フラグによって影響されませ
             ん、したがって、注意して使用されるべきです。他の make プログラム
             との互換性のために、`export variable=value' も受け付けられます。

             .MAKE.EXPORTED に変数名を追加することは、変数のエクスポートと同様
             です。

     .export-env variable ...
             変数が .MAKE.EXPORTED に追加されないことを除いて、`.export' と同
             じです。これによって、値は、make によって内部に使用されるものと
             は、異なる環境にエクスポートすることができます。

     .export-literal variable ...
             値の変数が展開されないことを除いて、`.export-env' と同じです。

     .info message
             メッセージは、makefile の名前と行番号とともに印刷されます。

     .undef variable
             指定されたグローバル変数を未定義とします。グローバル変数だけが未
             定義とされます。

     .unexport variable ...
             `.export' の反対。指定されたグローバル変数 variable は、
             .MAKE.EXPORTED から削除されます。変数のリストが提供されないなら、
             すべてのグローバルは、エクスポートを取り消し、.MAKE.EXPORTED は、
             削除されます。

     .unexport-env
             以前にエクスポートされたすべてのグローバルのエクスポートを取り消
             し、親から継承された環境をクリアします。この操作は、オリジナルの
             環境のメモリリークを引き起こすので、慎重に使用されるべきです。0
             である .MAKE.LEVEL のためにテストは、意味があります。また、親の環
             境を起源とするあらゆる変数は、必要なら、明示的に保存されるるべき
             であることに注意してください。例えば:

                   .if ${.MAKE.LEVEL} == 0
                   PATH := ${PATH}
                   .unexport-env
                   .export PATH
                   .endif

             最小の役に立つ環境である、単に `PATH' を含んでいる環境の結果とな
             ります。また、実際に、`.MAKE.LEVEL' は、新しい環境にプッシュ
             (push) されます。

     .warning message
             `warning:' が前に付けられたメッセージは、makefile の名前と行番号
             ともに印刷されます。

     .if [!]expression [operator expression ...]
             式の値をテストします。

     .ifdef [!]variable [operator variable ...]
             変数の値をテストします。

     .ifndef [!]variable [operator variable ...]
             変数の値をテストします。

     .ifmake [!]target [operator target ...]
             構築されているターゲットをテストします。

     .ifnmake [!] target [operator target ...]
             構築されているターゲットをテストします。

     .else   最後の条件式の意味を逆にします。

     .elif [!] expression [operator expression ...]
             `.if' が後続する `.else' の組み合わせ。

     .elifdef [!]variable [operator variable ...]
             `.ifdef' が後続する `.else' の組み合わせ。

     .elifndef [!]variable [operator variable ...]
             `.ifndef' が後続する `.else' の組み合わせ。

     .elifmake [!]target [operator target ...]
             `.ifmake' が後続する `.else' の組み合わせ。

     .elifnmake [!]target [operator target ...]
             `.ifnmake' が後続する `.else' の組み合わせ。

     .endif  条件式の本体の終り。

     operator (演算子) は、次のうちいずれかの 1 つです:

     ||     論理和 (OR)。

     &&     ``||'' より高い優先順序の論理積 (AND)。

     C でのように、make は、その値を決定するために必要である限り、単に条件式を
     評価します。括弧は、評価の順序を変更するために使用されます。ブール演算子
     `!' は、すべての条件式を論理的に否定するために使用されます。それは、`&&'
     より高い優先順序です。

     expression (式) の値は、次のいずれかです:

     defined  引数として変数名を取り、変数が定義されているなら、真と判断しま
              す。

     make     引数としてターゲット名を取り、ターゲットが make のコマンド行の一
              部として指定されたか、または条件式を含んでいる行の前にデフォルト
              のターゲット (暗黙に、または明示的に、.MAIN) を参照) を宣言され
              たなら、真と判断します。

     empty    指定できる修飾子と共に変数を取り、変数の展開が空の文字列の結果と
              なるなら、真と判断します。

     exists   引数としてファイル名を取り、ファイルが存在するなら、真と判断しま
              す。ファイルは、システム検索パスで (.PATH を参照) 検索されます。

     target   引数としてターゲット名を取り、ターゲットが定義されているなら、真
              と判断します。

     commands
              引数としてターゲット名を取り、ターゲットが定義されており、それに
              関連するコマンドがあるなら、真と判断します。

     また、expression (式) は、算術式または文字列の比較となります。変数展開
     は、整数値が比較される後に、比較の両側で行なわれます。値は、0x が先行する
     なら、16 進数として解釈され、そうでなければ、10 進数と解釈されます。8 進
     数は、サポートされていません。標準 C 関係演算子は、すべてサポートされてい
     ます。変数展開の後に、`==' または `!=' 演算子の左側または右側のいずれか
     が、整数値でないなら、文字列の比較は、展開された変数の間で行なわれます。
     関係演算子が与えられないなら、展開された変数が 0 または文字列の比較の場合
     に空の文字列と比較されると仮定されます。

     make がこれらの条件式の 1 つを評価していて、認識しない (空白類で分離され
     た) 単語に遭遇するなら、``make'' または ``defined'' 式のいずれかは、条件
     式の形式に依存して、それに適用されます。形式が `.ifdef', `.ifndef' または
     `.if' であるなら、``defined'' 式が適用されます。同様に、形式が `.ifmake'
     または `.ifnmake' であるなら、``make'' 式が適用されます。

     条件式が真と判断されるなら、これまでのように、makefile の解析は、続きま
     す。それが、偽と判断されるなら、次の行は、スキップされます。いずれにして
     も、これは、`.else' または `.endif' が見つかるまで、続きます。

     for ループは、一般的にファイルのリストに 1 組の規則を適用するために使用さ
     れます。for ループの構文は、次の通りです:

     .for variable [variable ...] in expression
     <make-rules>
     .endfor

     for expression (式) が評価される後に、それは、単語に分割されます。ループ
     の各繰り返しにおいて、1 つの単語が取られ、各 variable (変数) に順番に代入
     されます、これらの variables (変数) は、for ループの本体の内側の make-
     rules に置換されます。単語の数は、偶数の結果とならなければなりません。す
     なわち、3 つの繰り返し変数があるなら、提供される単語の数は、3 の倍数でな
     ければなりません。

コメント
     コメントは、シェルのコマンド行でないあらゆる場所で、ハッシュ (`#') 文字で
     始まり、エスケープされていない新しい行の終りに続きます。

特殊ソース (属性)
     .EXEC     ターゲットは、決して古くありませんが、とにかく常に、コマンドを
               実行します。

     .IGNORE   あたかもダッシュ (`-') が先行するかのように、このターゲットに関
               連したコマンドのあらゆるエラーを無視します。

     .MADE     最新のこととして、このターゲットのすべてのソースをマークしま
               す。

     .MAKE     たとえ、-n または -t オプションが指定されたとしても、このター
               ゲットに関連したコマンドを実行します。通常、再帰的な make を
               マークするために使用されます。

     .META     たとえ、.PHONY, .MAKE または .SPECIAL としてフラグが付けられて
               も、ターゲットのためのメタファイルを作成します。.MAKE と連動す
               る使用法が、最もあり得る場合です。"meta" モードで、ターゲット
               は、メタファイルが見つからないなら、古いものです。

     .NOMETA   ターゲットのためのメタファイルを作成しません。また、メタファイ
               ルは、.PHONY, .MAKE または .SPECIAL に対しても作成されません。

     .NOMETA_CMP
               ターゲットが古いかどうか決定するとき、コマンドの違いを無視しま
               す。これは、コマンドが常に変更される値を含んでいるなら、役に立
               ちます。コマンドの数が変わるなら、それでも、ターゲットは、まだ
               古くなっています。同じ効果は、次のように、そうでなければ必要で
               なかったときでさえ、その目的のために使用することができる、変数
               .OODATE を使用するあらゆるコマンド行に適用します:


                     skip-compare-for-some:
                             @echo this will be compared
                             @echo this will not ${.OODATE:M.NOMETA_CMP}
                             @echo this will also be compared

               :M パターンは、望まれない変数のあらゆる式を抑制します。

     .NOPATH   .PATH によって指定されたディレクトリのターゲットを検索しませ
               ん。

     .NOTMAIN  通常、make は、ターゲットが指定されなかったなら、構築されるデ
               フォルトのターゲットとして、最初に遭遇するターゲットを選択しま
               す。このソースは、このターゲットが選択されることを防ぎます。

     .OPTIONAL
               ターゲットがこの属性でマークされ、make が、それを作成する方法を
               見つけ出すことができないなら、この事実を無視し、ファイルが必要
               でないか、またあ既に存在すると仮定します。

     .PHONY    ターゲットは、実際のファイルに対応しません。それは、常に、古い
               と見なされ、-t オプションで作成されません。接尾辞変換規則は、
               .PHONY ターゲットに適用されません。

     .PRECIOUS
               make が割り込まれるとき、通常、あらゆる部分的に作成されたター
               ゲットを削除します。このソースは、ターゲットが削除されることを
               抑制します。

     .RECURSIVE
               .MAKE と同意語。

     .SILENT   あたかもアットマーク (`@') が先行するかのように、このターゲット
               に関連したあらゆるコマンドをエコーしません。

     .USE      ターゲットを make のマクロのバージョンに変えます。ターゲットが
               別のターゲットのためのソースとして使用されるとき、別のターゲッ
               トは、コマンド、ソースとソースの属性 (.USE を除いて) を獲得しま
               す。ターゲットに既にコマンドがあるなら、.USE ターゲットのコマン
               ドは、それらに追加されます。

     .USEBEFORE
               .USE とまったく同じようですが、ターゲットへの .USEBEFORE ター
               ゲットコマンドを先頭に追加します。

     .WAIT     .WAIT が依存関係の行に現われるなら、それに先行するソースは、行
               のそれに続くソースの前に行われます。ファイルそれ自体が作成され
               るまで、ファイルの依存関係は、作られないので、これは、それらが
               依存関係のツリーの別のブランチのために必要とされないなら、構築
               されている依存関係も停止します。それで、次のように与えられます:

               x: a .WAIT b
                       echo x
               a:
                       echo a
               b: b1
                       echo b
               b1:
                       echo b1

               出力は、常に `a', `b1', `b', `x' です。
               .WAIT によって課された順序は、並列の make のために単に適切で
               す。

特殊ターゲット
     特別のターゲットは、他のターゲットに含まれていません、すなわち、それら
     は、指定されたターゲットのみでなければなりません。

     .BEGIN   このターゲットにアタッチされるあらゆるコマンド行は、他のあらゆる
              ものが終了する前に、実行されます。

     .DEFAULT
              これは、make が、作成する他の方法を見つけ出すことができない、あ
              らゆるターゲット (それは、ソースとしてのみ使用された) のための
              .USE 規則のようなものです。シェルスクリプトだけが使用されます。
              .DEFAULT のコマンドを継承するターゲットの .IMPSRC 変数は、ター
              ゲット自体の名前に設定されます。

     .DELETE_ON_ERROR
              このターゲットが makefile に存在するなら、それは、グローバルに、
              make は、コマンドが失敗するターゲットを削除します。(デフォルト
              で、コマンドが実行の間に割り込まれるターゲットだけが、削除されま
              す。これは、歴史的な振る舞いです。) まわりに残され、改悪される将
              来の再構築から中途半端または不正な形式のターゲットを防止するのに
              役に立つために、この設定を使用することができます。

     .END     このターゲットにアタッチされたあらゆるコマンド行は、他のすべての
              もの行われた後に、実行されます。

     .ERROR   このターゲットにアタッチされたあらゆるコマンド行は、別のターゲッ
              トが失敗するとき、実行されます。.ERROR_TARGET 変数は、失敗した
              ターゲットに設定されます。MAKE_PRINT_VAR_ON_ERROR も参照してくだ
              い。

     .IGNORE  .IGNORE の属性でそれぞれのソースをマークします。ソースが指定され
              ないなら、これは、-i オプションを指定することと同等です。

     .INTERRUPT
              make が割り込まれるなら、このターゲットのためのコマンドは、実行
              されます。

     .MAIN    make が呼び出されるとき、ターゲットが指定されなければ、このター
              ゲットが構築されます。

     .MAKEFLAGS
              このターゲットは、makefile が使用されるとき、make のためのフラグ
              を指定する方法を提供しています。フラグは、あたかもシェルにタイプ
              されるかのようですが、-f オプションは、効果がありません。

     .NOPATH  あらゆる指定されたソースに .NOPATH 属性を適用します。

     .NOTPARALLEL
              並列モードを無効にします。

     .NO_PARALLEL
              他の pmake の変異型との互換性のための .NOTPARALLEL と同意語。

     .OBJDIR  ソースは、`.OBJDIR' のための新しい値です。それが存在するなら、
              make は、それに chdir(2) し、`.OBJDIR' の値を更新します。

     .ORDER   指定されたターゲットは、順序どおりに作成されます。この順序は、
              ターゲットを作成されるターゲットのリストに追加しません。ターゲッ
              トの依存関係は、ターゲットそれ自体が構築することができるまで、取
              得されないので、`a' が依存関係のグラフの別の部分によって構築され
              ないなら、次は、依存関係のループです:

              .ORDER: b a
              b: a

              .ORDER によって課される順序は、並列の make のためだけに適切で
              す。

     .PATH    ソースは、カレントディレクトリで見つからないファイルを検索される
              ことになっているディレクトリです。ソースが指定されないなら、あら
              ゆる以前に指定されたディレクトリは、削除されます。ソースが特別の
              .DOTLAST ターゲットであるなら、現在の作業ディレクトリは、最後に
              検索されます。

     .PATH.suffix
              .PATH に似ていますが、特別の接尾辞があるファイルにのみに適応しま
              す。接尾辞は、以前は .SUFFIXES で宣言されなければなりませんでし
              た。

     .PHONY   あらゆる指定されたソースに .PHONY 属性を適用します。

     .PRECIOUS
              あらゆる指定されたソースに .PRECIOUS 属性を適用します。ソースが
              指定されないなら、.PRECIOUS 属性は、ファイル中のすべてのターゲッ
              トに適用されます。

     .SHELL   make がコマンドを実行するために使用するシェルを設定します。ソー
              スは、1 組の field=value ペアです。

              name        これは、組み込みのシェル仕様の 1 つを選択するために
                          使用される、最小の仕様書です。sh, kshcshpath        シェルへのパスを指定します。

              hasErrCtl   シェルがエラーで終了をサポートしているかどうかを示し
                          ます。

              check       エラーチェックをオンにするコマンド。

              ignore      エラーチェックを無効にするコマンド。

              echo        実行されたコマンドのエコーをオンにするコマンド。

              quiet       実行されたコマンドのエコーをオフにするコマンド。

              filter      quiet コマンドを発行した後に、フィルタリングする出
                          力。それは、通常、quiet と同一です。

              errFlag     エラーチェックを有効にするシェルに渡すフラグ。

              echoFlag    コマンドのエコーを有効にするシェルに渡すフラグ。

              newline     任意の引用する文字の外部で使用されるとき、単一の改行
                          文字の結果となるシェルに渡す文字列のリテラル。
              使用例:

              .SHELL: name=ksh path=/bin/ksh hasErrCtl=true \
                      check="set -e" ignore="set +e" \
                      echo="set -v" quiet="set +v" filter="set +v" \
                      echoFlag=v errFlag=e newline="'\n'"

     .SILENT  あらゆる指定されたソースに .SILENT 属性を適用します。ソースが指
              定されないなら、.SILENT 属性は、ファイル中のすべてのコマンドに適
              用されます。

     .STALE   このターゲットは、その依存関係のファイルの名前に設定する .ALLSRC
              がある、依存関係のファイルが古くなったエントリを含んでいるとき、
              実行状態になります。

     .SUFFIXES
              各ソースは、make への接尾辞を指定します。ソースが指定されないな
              ら、あらゆる以前に指定された接尾辞は、削除されます。それは、接尾
              辞変換規則の生成を許可します。

              使用例:

              .SUFFIXES: .o
              .c.o:
                      cc -o ${.TARGET} -c ${.IMPSRC}

環境変数
     make は、それらが存在するなら、次の環境変数を使用します: MACHINE,
     MACHINE_ARCH, MAKE, MAKEFLAGS, MAKEOBJDIR, MAKEOBJDIRPREFIX, MAKESYSPATH,
     PWD と TMPDIR。

     MAKEOBJDIRPREFIX と MAKEOBJDIR は、makefile の変数としてではなく、make へ
     の環境変数またはコマンド行でのみ設定されます。より詳しい情報については、
     `.OBJDIR' の説明を参照してください。

関連ファイル
     .depend        依存関係のリスト
     Makefile       依存関係のリスト
     makefile       依存関係のリスト
     sys.mk         システム makefile
     /usr/share/mk  システム makefile のディレクトリ

互換性
     基本的な make の構文は、make の異なったバージョンの間で互換性があります。
     しかしながら、特別な変数、変数修飾子と条件式は、そうではありません。

   古いバージョン
     make の古いバージョンの変更の不完全なリストは、次の通りです:

     まだ変数展開であるように思えることができるように、.for ループ変数である方
     法は、NetBSD 5.0 の後に変更される予定です。特に、これは、構文として扱われ
     ているそれらを停止し、.if ステートメントで、それらを使用して、いくつかの
     不明瞭な問題を取り除きます。

     並列に make する方法は、.ORDER と .WAIT が、依存するノードに再帰的に適用
     できるように、NetBSD 4.0 で変更される予定です。使用されるアルゴリズムは、
     将来、再び変更するかもしれません。

   他の make 方言
     他の make 方言 (GNU make、SVR4 make、POSIX make、その他) は、このマニュア
     ルで説明したような、make の機能のほとんどをサポートしません。最も明白に:

           •   .WAIT.ORDER 宣言と並列化に関連するほとんどの機能。(GNU make
               は、並列化をサポートしますが、これらの不足した機能は、効率的に
               それを制御する必要がありました。)

           •   ループと条件式とインクルードファイルの形式のほとんどを含んでい
               る、指示。(GNU make は、それ自体の互換性と条件式のためのそれほ
               ど強力ではない構文があります。)

           •   ドットで始まるすべての組み込み変数。

           •   .PHONY, .PRECIOUS.SUFFIXES の明らかな例外がある、ドットで始
               まるほとんどの特別なソースとターゲット。

           •   `%' でグロブ (ファイル名置換) を移植性があるようにサポートしな
               い、
                     :old=new
               文字列置換を除いて、変数修飾子は、歴史的に、宣言された接尾辞で
               のみ動作します。

           •   その短い形式でさえ $> 変数。ほとんどの make は、この機能をサ
               ポートしますが、その名前は、変化します。

     いくつかの機能は、+=, ?=, と != で割り当てるように、いくらかより移植性が
     あります。.PATH 機能は、GNU make と SVR4 make の多くのバージョンにある古
     い機能の VPATH に基づいています。しかしながら、歴史的に、その振る舞いは、
     信頼するには、あまりに不明確 (で、バグだらけ) です。

     $@$< 変数は、$(MAKE) 変数であるように、多かれ少なかれ一般に移植性があ
     ります。また、(カレントディレクトリのみのファイル、ともに変換をつなごうと
     試みない、その他のための) 接尾辞の規則の基本的な使用は、適度に移植性があ
     ります。

関連項目
     mkdep(1)

歴史
     make コマンドは、Version 7 AT&T UNIX で登場しました。この make の実装は、
     Berkeley の Sprite のために書かれた、Adam De Boor の pmake プログラムに基
     づいています。それは、``customs'' と呼ばれるデーモンを使用して、異なるマ
     シンでジョブを実行する並列に分散される make となるように設計されていま
     す。

     歴史的に、ターゲット/依存性 ``FRC'' は、(ターゲット/依存性は、存在しない
     ので ... 誰も ``FRC'' ファイルを作成しないなら) FoRCe の再構築するために
     使用されていました。

バグ
     make の構文は、データを実際に動作せずに解析することは困難です。例えば、変
     数の使用の終りを見つけることは、各フィールドのための正確な終端子を使用す
     る修飾子を、それぞれスキャンすることを含んでいるべきです、多くの場所で、
     make は、変数展開の終りを見つけるために順番に {} と () を単にカウントしま
     す。

     ファイル中の空白文字をエスケープ (escape) する方法はありません。

FreeBSD 11.2                     June 22, 2017                    FreeBSD 11.2

Table of Contents

FreeBSD マニュアル検索