aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man1/make.1
diff options
context:
space:
mode:
Diffstat (limited to 'ja_JP.eucJP/man/man1/make.1')
-rw-r--r--ja_JP.eucJP/man/man1/make.1377
1 files changed, 236 insertions, 141 deletions
diff --git a/ja_JP.eucJP/man/man1/make.1 b/ja_JP.eucJP/man/man1/make.1
index d1fd0c5e88..40eccf56ab 100644
--- a/ja_JP.eucJP/man/man1/make.1
+++ b/ja_JP.eucJP/man/man1/make.1
@@ -30,14 +30,14 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)make.1 8.8 (Berkeley) 6/13/95
-.\" %FreeBSD: src/usr.bin/make/make.1,v 1.67 2004/04/12 18:00:54 ru Exp %
+.\" %FreeBSD: src/usr.bin/make/make.1,v 1.78 2004/08/09 16:13:54 harti Exp %
.\"
.\" this file based on that translated to japanese on NetBSD Japanese Reference
.\" Manual Project, and modefied to fit FreeBSD Reference Manual
.\" by Mochida Shuji 1996/04/26
.\" $FreeBSD$
.\"
-.Dd April 12, 2004
+.Dd August 4, 2004
.Dt MAKE 1
.Os
.Sh 名称
@@ -65,7 +65,7 @@
その入力はファイルの生成とプログラムとの間の依存関係を指定する
リストが記述されています。
カレントディレクトリまたは特別なオブジェクトディレクトリ
-.Va ( .OBJDIR
+.Pf ( Va .OBJDIR
参照)
のどちらか一方において
.Pa BSDmakefile ,
@@ -74,8 +74,8 @@
の最初に見つかった方から、この指定のリストが読み込まれます。
.Pa .depend
というファイルが見つかれば、それも読み込みます
-.Pq Xr mkdep 1 を参照
-。
+.Pf ( Xr mkdep 1
+を参照)。
.Pp
本マニュアルはリファレンスのためのみのドキュメントです。
.Nm
@@ -115,8 +115,8 @@ makefile の読み取りや他のなにかをする前に、
には、以下のうち 1 つ以上を指定できます。
.Bl -tag -width Ds
.It Ar A
-すべてのデバッグ情報を出力します。他のフラグをすべて指定したことと
-等価です。
+すべてのデバッグ情報を出力します。
+他のフラグをすべて指定したことと等価です。
.It Ar a
アーカイブ検索とキャッシュに関する情報を表示します。
.It Ar c
@@ -154,21 +154,24 @@ for ループの実行に関するデバッグ情報を表示します。
.Pa makefile
.Pa Makefile
-のかわりに、読み込むファイルを指定します。もし
+のかわりに、読み込むファイルを指定します。
+もし
.Ar makefile
.Sq Fl
-なら標準入力から読み込みます。複数のファイルが指定可能で、
-指定した順に読み込まれます。
+なら標準入力から読み込みます。
+複数のファイルが指定可能で、指定した順に読み込まれます。
.It Fl I Ar directory
makefile と、インクルードされる makefile を検索するためのディレクトリを
-指定します。システムで定義してある makefile のあるディレクトリ (または、
+指定します。
+システムで定義してある makefile のあるディレクトリ (または、
複数のディレクトリ;
.Fl m
オプションを参照) は自動的にリストに含まれ、検索されます。
.It Fl i
-makefile から実行されたシェルコマンドが 0 でない終了ステータスを返し
-ても無視します。makefile 中でコマンドの先頭に
+makefile から実行されたシェルコマンドが 0 でない終了ステータスを
+返しても無視します。
+makefile 中でコマンドの先頭に
.Sq Ic \-
を指定するのと同じです。
.It Fl j Ar max_jobs
@@ -177,14 +180,16 @@ makefile から実行されたシェルコマンドが 0 でない終了ステータスを返し
.Ar B
フラグを指定しなければ、互換性モードはオフになります。
.It Fl k
-エラーが発生しても処理を続行します。ただし、発生したエラーによって作成
-が不能になったターゲットに依存したターゲットに関しては処理が中断されます。
+エラーが発生しても処理を続行します。
+ただし、発生したエラーによって作成が不能になったターゲットに
+依存したターゲットに関しては処理が中断されます。
.It Fl m Ar directory
<...> 形式で読み込まれる
.Pa sys.mk
や makefile を検索するための
-ディレクトリを指定します。複数のディレクトリを検索パスに加えることが
-できます。このパスは、デフォルトのシステムインクルードパス
+ディレクトリを指定します。
+複数のディレクトリを検索パスに加えることができます。
+このパスは、デフォルトのシステムインクルードパス
.Pa /usr/share/mk
を上書きします。
さらに、システムインクルードパスを "..." 形式のインクルードによって
@@ -206,12 +211,13 @@ make が実行するであろうコマンド内容の表示のみを行い、実行はしません。
システムの makefile で定義された組み込みのルールを使用しません。
.It Fl S
エラーが起きた時に処理を中止します。
-デフォルトの動作です。このオプションは
-再帰的な構築の際に
+デフォルトの動作です。
+このオプションは再帰的な構築の際に
.Fl k
オプションを打ち消すのに必要となります。
.It Fl s
-実行するコマンドを表示しません。makefile のなかで、コマンドの先頭に
+実行するコマンドを表示しません。
+makefile のなかで、コマンドの先頭に
.Sq Ic @
を指定するのと同じです。
.It Fl t
@@ -225,7 +231,8 @@ makefile で指定されたターゲットを作り直すのではなく、ターゲットを作成
.Ar variable
の値を表示します。如何なるターゲットも生成しません。
このオプションで複数のインスタンスを指定することができます。
-変数は、各行毎に表示されます。未定義もしくは空の変数は、空行で
+変数は、各行ごとに表示されます。
+未定義もしくは空の変数は、空行で
表現されます。
.It Fl v
特に冗長表示させます。
@@ -246,8 +253,8 @@ makefile には 7 種類の行があります: 依存関係記述、シェルコマンド、変数
.Pp
一般に、行は行末にバックスラッシュ
.Pq Ql \e
-を置くことにより次行へ継続させることがで
-きます。この場合、バックスラッシュ直後の改行と、次の行の先頭の
+を置くことにより次行へ継続させることができます。
+この場合、バックスラッシュ直後の改行と、次の行の先頭の
空白部分は 1 つの空白に置き換えられます。
.Sh ファイル依存関係記述
入力ファイルにおける依存関係記述行は、1 つ以上のターゲット、オペレータ、
@@ -255,7 +262,8 @@ makefile には 7 種類の行があります: 依存関係記述、シェルコマンド、変数
これは、ターゲットがソースに
.Dq 依存
しているという関係を
-定義しており、通常は、ソースからターゲットが作成されます。ターゲットと
+定義しており、通常は、ソースからターゲットが作成されます。
+ターゲットと
ソースとの厳密な関係はオペレータによって、両者間に指定します。
オペレータには以下の種類があります。
.Bl -tag -width flag
@@ -264,20 +272,24 @@ makefile には 7 種類の行があります: 依存関係記述、シェルコマンド、変数
古いものであれば、ターゲットは古いものであり、作り直されるべきものと
判断されます。
別の行でこのオペレータによる同じターゲットに関するソースの記述があれば、
-それらはすべて 1 つにまとめられます。ターゲットの作成中に
+それらはすべて 1 つにまとめられます。
+ターゲットの作成中に
.Nm
が中断されると、ターゲットは削除されます。
.It Ic \&!
-ターゲットはつねに作り直されます。ただし、作り直されるのは、
+ターゲットはつねに作り直されます。
+ただし、作り直されるのは、
すべてのソースが検査され、必要と判断されたソースが作り直されたあとです。
このオペレータによる同じターゲットに関するソースの記述が別の行にもあれば、
-それらはすべて 1 つにまとめられます。ターゲットの作成中に
+それらはすべて 1 つにまとめられます。
+ターゲットの作成中に
.Nm
が中断されると、ターゲットは削除されます。
.It Ic \&::
ソースが指定されていなかった場合、つねにターゲットは作り直されます。
指定されていた場合にはソースのいずれかがターゲットよりも新しい時だけ
-ターゲットは作り直されます。本オペレータでは、別の行において同じ
+ターゲットは作り直されます。
+本オペレータでは、別の行において同じ
ターゲットに関するソースの記述があっても 1 つにまとめません。
ターゲットの作成中に
.Nm
@@ -297,33 +309,41 @@ makefile には 7 種類の行があります: 依存関係記述、シェルコマンド、変数
存在するファイルを指定するものでなければなりません。
表記
.Ql {}
-はファイルが存在しなくてもかまいません。シェルのように辞書順に並べられて
+はファイルが存在しなくてもかまいません。
+シェルのように辞書順に並べられて
展開されることはなく、ファイルシステム上に並んでいる順番のまま行われます。
.Sh シェルコマンド
ターゲットは、シェルコマンドの列と関連付けることができ、通常はそれによって
ターゲットを作成します。
これに含まれる各コマンドは、
.Em 必ず
-行頭のタブに続けて記述します。同一のターゲットに
+行頭のタブに続けて記述します。
+同一のターゲットに
対して複数の依存記述行がある場合、
.Sq Ic ::
オペレータを使用したのでなければ、それらのうちの 1 つにのみコマンド行を
続けることができます。
.Pp
-コマンドラインの先頭もしくは先頭 2 文字が
-.Sq Ic @
-や
-.Sq Ic \-
+コマンドラインの先頭の文字が
+.Sq Ic @ ,
+.Sq Ic \- ,
+.Sq Ic +
+のいずれか
ならば、コマンドは特別な扱いを受けます。
.Sq Ic @
-は、コマンドが実行前に、コマンド内容の表示を抑制します。
+は、コマンド実行前のコマンド内容表示を抑制します。
.Sq Ic \-
は、コマンドの 0 ではない終了ステータスを無視するように指示します。
+.Sq Ic +
+は、たとえ
+.Fl n
+がコマンドラインで指定されていたとしても、
+コマンドを実行するようにします。
.Sh 変数代入
.Nm
-で使われる変数はシェルでの変数に類似しています。そして、歴史的な経緯から、
-すべて大文字からなる名前が用いられます。変数代入には以下の 5 通りの
-オペレータを使用できます。
+で使われる変数はシェルでの変数に類似しています。
+そして、歴史的な経緯から、すべて大文字からなる名前が用いられます。
+変数代入には以下の 5 通りのオペレータを使用できます。
.Bl -tag -width Ds
.It Ic \&=
変数に値を代入します。その時点までの値は失われます。
@@ -339,21 +359,25 @@ makefile には 7 種類の行があります: 依存関係記述、シェルコマンド、変数
結果のなかに含まれる改行は空白に置き換えられます。
.El
.Pp
-いずれの場合も、値の前にある空白は無視されます。値が追加される場合、
+いずれの場合も、値の前にある空白は無視されます。
+値が追加される場合、
変数の直前の値と追加する値との間に空白が挿入されます。
.Pp
変数は、ドル記号
-.Pq Ql $
+.Pq Ql \&$
に続いて中括弧
.Pq Ql {}
または小括弧
.Pq Ql ()
-で囲まれた変数名を置くことにより展開されます。もし変数名が 1 文字な
-ら、変数名を囲む括弧は省略できますが、このような省略形は推奨できません。
+で囲まれた変数名を置くことにより展開されます。
+もし変数名が 1 文字なら、変数名を囲む括弧は省略できますが、
+このような省略形は推奨できません。
.Pp
変数置換は、変数が用いられている場所により、 2 つの別々のタイミングで
-行われます。依存関係記述行で用いられた変数は、その行が読み込まれたときに
-展開されます。シェルコマンド内で用いられた変数は、シェルコマンド実行時に
+行われます。
+依存関係記述行で用いられた変数は、その行が読み込まれたときに
+展開されます。
+シェルコマンド内で用いられた変数は、シェルコマンド実行時に
展開されます。
.Pp
変数には、優先度に従って、4 つの異なるクラスがあります:
@@ -364,10 +388,14 @@ makefile には 7 種類の行があります: 依存関係記述、シェルコマンド、変数
.It グローバル変数
makefile とインクルードされた makefile 内で有効な変数。
.It コマンドライン変数
-コマンドラインで指定された変数。
+コマンドラインの中で指定された変数、および、
+.Ev MAKEFLAGS
+環境変数または
+.Ic .MAKEFLAGS
+ターゲットから取得した変数。
.It ローカル変数
-あるターゲットのみに対して定義される変数。ローカル変数には、
-以下の 7 種類があります:
+あるターゲットのみに対して定義される変数。
+ローカル変数には、以下の 7 種類があります:
.Bl -tag -width ".ARCHIVE"
.It Va .ALLSRC
このターゲットに対するすべてのソースのリスト。
@@ -407,17 +435,17 @@ makefile とインクルードされた makefile 内で有効な変数。
.Sq Va \&! ,
.Sq Va \&< ,
.Sq Va \&% ,
-.Sq Va ? ,
+.Sq Va \&? ,
.Sq Va \&> ,
.Sq Va *
は互換性のためのものですが、利用することは推奨できません。
また、
-.Sq Va "@F" ,
-.Sq Va "@D" ,
-.Sq Va "<F" ,
-.Sq Va "<D" ,
-.Sq Va "*F" ,
-.Sq Va "*D"
+.Sq Va @F ,
+.Sq Va @D ,
+.Sq Va <F ,
+.Sq Va <D ,
+.Sq Va *F ,
+.Sq Va *D
.At V
の makefile との互換性のために存在していますが、利用することは
@@ -436,11 +464,12 @@ makefile とインクルードされた makefile 内で有効な変数。
さらに、
.Nm
では以下の内部変数または環境変数を利用することができます。
-.Bl -tag -width MAKEFLAGS
+.Bl -tag -width ".Va MAKEFILE_LIST"
.It Va \&$
単一のドル記号
.Ql \&$
-。すなわち、
+。
+すなわち、
.Ql \&$$
は単一のドル記号に置換されます。
.It Va MAKE
@@ -496,13 +525,31 @@ obj
.Nm
が残った 3 つのディレクトリのいずれにも移動できなかった場合、
カレントディレクトリが使われます。
+.Ev MAKEOBJDIRPREFIX
+と
+.Ev MAKEOBJDIR
+とは環境変数でなければならず、
+.Nm
+のコマンドラインで設定してはいけません。
.Pp
.Nm
ユーティリティは、
.Xr getcwd 3
-で与えられる公式パスを
+で与えられる正規化されたパスを
.Va .OBJDIR
へ設定します。
+.It Va .MAKEFILE_LIST
+デフォルトファイルや、コマンドラインや、
+.Ic .include
+ディレクティブから得られた makefile も含め、
+.Nm
+がさまざまな makefile を読み込むときに、
+.Va .MAKEFILE_LIST
+変数にそれらの名前が自動的に追加されます。
+現在の makefile の名前がこの変数の末尾の単語となるようにするため、
+これらは、
+.Nm
+がパーズ開始する前に右側に追加されます。
.It Va .MAKEFLAGS
環境変数
.Ev MAKEFLAGS
@@ -510,20 +557,23 @@ obj
.Nm
のコマンドラインにて指定されるあらゆるものを含みます。
その中身は
-.Va MAKEFLAGS
+.Va .MAKEFLAGS
変数に記憶されます。
.Nm
-のコマンドラインにて指定されるあらゆるものは
-.Va MAKEFLAGS
+のコマンドラインで指定されたオプションと変数代入のすべてが
+.Va .MAKEFLAGS
変数に追加され、
.Nm
が実行する全プログラムの環境にこの変数が
.Ev MAKEFLAGS
として組み込まれます。
.It Va MFLAGS
-下位互換性のために
-.Va .MAKEFLAGS
-の同意語として提供されます。
+下位互換性のために提供されます。
+この変数は、
+.Ev MAKEFLAGS
+環境変数から得たオプションすべてに加え、
+.Nm
+のコマンドラインで指定されたオプションすべてを含みます。
.It Va .TARGETS
.Nm
が現在構築しているターゲットのリスト。
@@ -575,18 +625,17 @@ Makefile はコロンで区切られたディレクトリのリストを
.No \&/ Op Cm 1g
.Xc
.Sm on
-.Cm C
-修飾子は
-.Cm S
-修飾子に似ていますが、単純な置換の代りに
-拡張正規表現 (
-.Xr re_format 7
-を参照してください) を旧文字列に使用することと、
+拡張正規表現
+.Ar pattern
+.Ns ( Xr re_format 7
+を参照) に一致する部分それぞれを、
.Xr ed 1
-スタイルの置換文字列を新文字列に使用することが違います。
+スタイルの
+.Ar replacement
+文字列と置換することで、その値の各語を変更します。
通常、値中の各語の最初のパターンを置換します。
.Ql 1
-修飾子は、置換対象を最大 1 語に制限します。
+修飾子は、置換対象をたかだか 1 語に制限します。
.Ql g
修飾子は、置換対象の個数が、
語 (または複数の語) 中で見つかる検索パターン数と同じになるようにします。
@@ -604,15 +653,18 @@ Makefile はコロンで区切られたディレクトリのリストを
.It Cm L
変数を小文字に変換します。
.It Cm M Ns Ar pattern
-pattern にマッチする単語を選択します。標準的なワイルドカード
+pattern にマッチする単語を選択します。
+標準的なワイルドカード
.Pf ( Ql * ,
.Ql \&? ,
.Ql [] )
-が使用できます。ワイルドカード文字はバックスラッシュ
+が使用できます。
+ワイルドカード文字はバックスラッシュ
.Pq Ql \e
によりエスケープできます。
.It Cm N Ns Ar pattern
-pattern にマッチしない単語を選択します。それ以外は
+pattern にマッチしない単語を選択します。
+それ以外は
.Cm M
と同様です。
.It Cm O
@@ -633,7 +685,8 @@ pattern にマッチしない単語を選択します。それ以外は
.Ar old_string
.Ar new_string
-に置換します。もし、最後のスラッシュのあとに
+に置換します。
+もし、最後のスラッシュのあとに
.Ql g
が指定されていれば、各単語中に出現したすべての
.Ar old_string
@@ -670,7 +723,8 @@ pattern にマッチしない単語を選択します。それ以外は
.Ar old_string
.Ar new_string
-中では通常の変数置換が行われます。ただし、ドル記号
+中では通常の変数置換が行われます。
+ただし、ドル記号
.Pq Ql \&$
の展開を抑制するためには、通常のドル記号の前置ではなく、
バックスラッシュでエスケープします。
@@ -688,8 +742,10 @@ pattern にマッチしない単語を選択します。それ以外は
.Ar new_string
.Ar old_string
-はどちらも単語の最後にマッチするものとみなされます。すなわち、
-拡張子のみか、または単語全部が置換されることになります。そうでなければ、
+はどちらも単語の最後にマッチするものとみなされます。
+すなわち、
+拡張子のみか、または単語全部が置換されることになります。
+そうでなければ、
.Ar %
.Ar old_string
@@ -705,9 +761,11 @@ pattern にマッチしない単語を選択します。それ以外は
.Sh ディレクティブ、条件式、FOR ループ
.Nm
では、C 言語を彷彿させるディレクティブ、条件文、ループを使用することが
-できます。これらの制御構造は、行頭に単一のドット
+できます。
+これらの制御構造は、行頭に単一のドット
.Pq Ql \&.
-がくることで識別されます。以下のディレクティブがサポートされています:
+がくることで識別されます。
+以下のディレクティブがサポートされています:
.Bl -tag -width Ds
.It Ic \&.include Ar <file>
.It Ic \&.include Ar \*qfile\*q
@@ -719,19 +777,18 @@ makefile が存在するディレクトリ、
.Fl I
オプションで指定されたディレクトリ、システムの makefile ディレクトリの
順に検索します。
-.It Ic \&.undef Ar variable
+.It Ic .undef Ar variable
指定したグローバル変数を未定義とします。
グローバル変数のみ、未定義とすることができます。
-.It Ic \&.error Ar message
+.It Ic .error Ar message
makefile の処理を即座に終了します。
makefile のファイル名と、どの行でエラーとなったかと、
-指定したエラーメッセージとを、標準エラー出力に表示し、
+指定したエラーメッセージとを、標準出力に表示し、
.Nm
は終了コード 1 で終了します。
-メッセージ中の変数は展開されます。
.It Ic \&.warning Ar message
警告メッセージを発します。
-makefile のファイル名と、どの行でエラーとなったかと、
+makefile のファイル名、どの行でエラーになったかと、
指定したエラーメッセージとを、標準エラー出力に表示します。
メッセージ中の変数は展開されます。
.El
@@ -741,7 +798,7 @@ C プリプロセッサがサポートする条件文と同様に使用されます。
以下の条件文がサポートされています:
.Bl -tag -width Ds
.It Xo
-.Ic \&.if
+.Ic .if
.Oo \&! Oc Ns Ar expression
.Op Ar operator expression ...
.Xc
@@ -829,27 +886,27 @@ C プリプロセッサがサポートする条件文と同様に使用されます。
.Ar operator
は、以下のうちのいずれかです。
.Bl -tag -width "Cm XX"
-.It Cm \&|\&|
+.It Cm ||
論理
.Tn OR
-.It Cm \&&&
+.It Cm &&
論理
.Tn AND
-.Ql Ic ||
+.Sq Ic ||
より優先順位が上です。
.El
.Pp
C 言語と同様、
.Nm
は条件式を、式の値を決定するのに必要なところまでしか評価しません。
-評価順序を変更するには括弧を使います。論理オペレータ
-.Ql Ic !\&
+評価順序を変更するには括弧を使います。
+論理オペレータ
+.Sq Ic !\&
は条件式全体の値を反転するのに使用します。
-.Ql Ic !\&
-は
-.Ql Ic \&&&
+これは
+.Sq Ic &&
より優先順位が上です。
.Pp
@@ -862,16 +919,18 @@ C 言語と同様、
引数としてターゲット名をとり、そのターゲットが
.Nm
のコマンドライン引数に指定されているか、デフォルトのターゲット
-.Pq 明示的なものも暗黙的なものも含む。 Va .MAIN の項を参照
+(明示的なものも暗黙的なものも含む。
+.Va .MAIN
+の項を参照)
として宣言されている場合に真となる。
.It Ic empty
-引数として変数名
-.Pq と修飾子
+引数として変数名 (と修飾子)
をとり、展開した結果が空文字列ならば真となる。
.It Ic exists
引数としてファイル名をとり、ファイルが存在すれば真となる。
ファイルはシステム検索パス
-.Pq Va .PATH の項を参照
+.Pf ( Va .PATH
+の項を参照)
にそって検索される。
.It Ic target
引数としてターゲット名をとり、ターゲットが定義されているなら真となる。
@@ -882,22 +941,26 @@ C 言語と同様、
としては、数値あるいは文字列の比較を用いることもでき、
左辺には変数展開を使用可能です。
比較オペレータの
-両辺は、変数展開が適用されたあとに比較されます。値が 0x で始まるなら 16 進数
-であると解釈し、さもなければ 10 進数と解釈します。8 進数はサポートして
-いません。標準的な C 言語の関係オペレータは全て利用可能です。
+両辺は、変数展開が適用されたあとに比較されます。
+値が 0x で始まるなら 16 進数であると解釈し、
+さもなければ 10 進数と解釈します。
+8 進数はサポートしていません。
+標準的な C 言語の関係オペレータは全て利用可能です。
変数展開後、
-.Ql Ic ==
+.Sq Ic ==
または
-.Ql Ic "!="
+.Sq Ic !=
の左辺値または右辺値のいずれかが数値とは認められない場合、文字列として
-比較を行います。関係オペレータが指定されなかった場合、展開された変数と 0 とを
+比較を行います。
+関係オペレータが指定されなかった場合、展開された変数と 0 とを
比較します。
.Pp
条件式を評価中に、評価できない単語が出現した場合は、条件式の形式によって、
.Dq make
または
.Dq defined
-オペレータを適用します。条件式が
+オペレータを適用します。
+条件式が
.Ic .if ,
.Ic .ifdef
または
@@ -921,12 +984,13 @@ C 言語と同様、
makefile の解析をスキップします。
.Pp
for ループは、いくつかのルールを一連のファイルに適用するのによく
-用いられます。以下がループの形式です:
+用いられます。
+以下がループの形式です:
.Pp
.Bl -tag -width indent -compact
.It Ic .for Ar variable Ic in Ar expression
.It <make-rules>
-.It Ic \&.endfor
+.It Ic .endfor
.El
.Pp
.Ar expression
@@ -938,14 +1002,14 @@ for ループは、いくつかのルールを一連のファイルに適用するのによく
部分を繰り返し展開します。
.Sh コメント
コメントはハッシュ記号
-.Pq Ql \&#
+.Pq Ql #
から始まり、シェルコマンド行以外のどこにでも置くことができます。
コメントは改行で終わります。
.Sh 特殊ソース
.Bl -tag -width Ic
.It Ic .IGNORE
-本ターゲットに関連したコマンドでのエラーを無視します。シェルコマンドの
-先頭にダッシュ
+本ターゲットに関連したコマンドでのエラーを無視します。
+シェルコマンドの先頭にダッシュ
.Ql \-
を指定したのと等価です。
.It Ic .MAKE
@@ -954,7 +1018,8 @@ for ループは、いくつかのルールを一連のファイルに適用するのによく
.Fl t
オプションが指定されていても、このターゲットに関連したシェルコマンドを
-実行します。通常、再帰的な
+実行します。
+通常、再帰的な
.Nm
のために用いられます。
.It Ic .NOTMAIN
@@ -971,11 +1036,12 @@ for ループは、いくつかのルールを一連のファイルに適用するのによく
.It Ic .PRECIOUS
通常
.Nm
-が中断されたときは、作成途中のターゲットは削除されます。本ソースを
-指定することで、そのターゲットを削除しなくなります。
+が中断されたときは、作成途中のターゲットは削除されます。
+本ソースを指定することで、そのターゲットを削除しなくなります。
.It Ic .SILENT
指定されたターゲットに関連づけられたシェルコマンドを実行するときに
-エコーを行いません。シェルコマンドの先頭に
+エコーを行いません。
+シェルコマンドの先頭に
.Ql @
を指定したのと等価です。
.It Ic .USE
@@ -987,17 +1053,19 @@ for ループは、いくつかのルールを一連のファイルに適用するのによく
ターゲットはコマンド、ソース、属性(
.Ic .USE
は除く)
-をマクロから受け取ります。もし、すでにターゲットにコマンドが指定されていた
+をマクロから受け取ります。
+もし、すでにターゲットにコマンドが指定されていた
場合は、マクロのコマンドが追加されます。
.It Ic .WAIT
特別な
.Ic .WAIT
ソースが依存関係行に現れた時には、ソースはその行中でソースが
-作成されるまで待ちます。ループは検出されず、ループ形式のターゲットは
-単に無視されます。
+作成されるまで待ちます。
+ループは検出されず、ループ形式のターゲットは単に無視されます。
.El
.Sh 特殊ターゲット
-特殊ターゲットは、他のターゲットとともに使用してはいけません。すなわち、
+特殊ターゲットは、他のターゲットとともに使用してはいけません。
+すなわち、
依存関係記述行の唯一のターゲットとして指定する必要があります。
.Bl -tag -width Ic
.It Ic .BEGIN
@@ -1016,7 +1084,8 @@ for ループは、いくつかのルールを一連のファイルに適用するのによく
.It Ic .IGNORE
指定されたソースに
.Ic .IGNORE
-属性を付与します。もしソースが指定されていなければ、
+属性を付与します。
+もしソースが指定されていなければ、
.Fl i
オプションを指定したのと同じ意味になります。
.It Ic .INCLUDES
@@ -1037,8 +1106,9 @@ for ループは、いくつかのルールを一連のファイルに適用するのによく
が中断されたとき、本ターゲットに指定されたコマンドを実行します。
.It Ic .LIBS
.Ic .INCLUDES
-が include ファイルに対して行なうことと同じことを
-ライブラリに対して行ないます。ただし
+が include ファイルに対して行うことと同じことを
+ライブラリに対して行います。
+ただし
.Fl L
フラグが使われます。
.It Ic .MAIN
@@ -1052,10 +1122,13 @@ for ループは、いくつかのルールを一連のファイルに適用するのによく
.It Ic .MAKEFLAGS
ソースにおいて、
.Nm
-に指定するフラグを指定します。フラグはシェルでタイプしたのと同様に
+に指定するフラグを指定します。
+フラグはシェルでタイプしたのと同様に
渡されますが、
.Fl f
オプションは無効になります。
+.It Ic .MFLAGS
+上と同様です。下位互換性のためのものです。
.\" XXX: NOT YET!!!!
.\" .It Ic .NOTPARALLEL
.\" この名前のターゲットは、並列モードを使わすに実行されます。
@@ -1076,7 +1149,8 @@ for ループは、いくつかのルールを一連のファイルに適用するのによく
.\" されます。
.It Ic .PATH
カレントディレクトリに発見できなかったときのファイルの検索パスを、
-本ターゲットのソースとして指定します。ソースが指定されなかった場合、
+本ターゲットのソースとして指定します。
+ソースが指定されなかった場合、
以前に設定されていたディレクトリが無効になります。
可能であれば
.Ic .PATH
@@ -1096,26 +1170,30 @@ suffix のついたファイルの検索パスをソースとして指定します。
が動作するために必要です。
.It Ic .PHONY
.Ic .PHONY
-属性を指定したソースに適用します。この属性を持ったターゲットは
+属性を指定したソースに適用します。
+この属性を持ったターゲットは
いつでも更新されていると考えられます。
.It Ic .PRECIOUS
指定されたソースに
.Ic .PRECIOUS
-属性を付与します。もし、ソースが指定されなかった場合、
+属性を付与します。
+もし、ソースが指定されなかった場合、
すべてのターゲットに
.Ic .PRECIOUS
属性を与えます。
.It Ic .SILENT
指定されたソースに
.Ic .SILENT
-属性を付与します。もし、ソースが指定されなかった場合、
+属性を付与します。
+もし、ソースが指定されなかった場合、
ファイル中のすべてのコマンドに
.Ic .SILENT
属性を与えます。
.It Ic .SUFFIXES
ソースにおいて、
.Nm
-で用いる拡張子を指定します。ソースが指定されなかった場合は、
+で用いる拡張子を指定します。
+ソースが指定されなかった場合は、
以前の指定が無効になります。
.El
.Sh 互換性
@@ -1133,12 +1211,13 @@ suffix のついたファイルの検索パスをソースとして指定します。
と同じ値が代入されます ;
この機能は将来削除されるかもしれません。
.Pp
+ここに書かれている以上の
.Nm
-のたくさんの秘密にされている機能の多くは、
+の奥義のほとんどは、
より多くの互換性を保つために使用を避けるべきです。
.Sh 環境変数
.Nm
-ユーティリティは次の環境変数の値を用います:
+ユーティリティは、存在する場合、次の環境変数の値を用います:
.Ev MACHINE ,
.Ev MAKE ,
.Ev MAKEFLAGS ,
@@ -1156,7 +1235,8 @@ suffix のついたファイルの検索パスをソースとして指定します。
オブジェクトディレクトリ
.It Pa sys.mk
システム定義の makefile
-(他のすべてのファイルよりも前に処理されます。これには
+(他のすべてのファイルよりも前に処理されます。
+これには
.Pa makefile
.Pa Makefile
@@ -1170,6 +1250,10 @@ PMake のチュートリアル
.Ev MAKEOBJDIRPREFIX
ディレクトリ
.El
+.Sh 使用例
+インクルードされた makefile すべてを、訪問順にリストする。
+.Pp
+.Dl "make -V .MAKEFILE_LIST | tr \e\ \e\en"
.Sh バグ
.Va .OBJDIR
の決定は不条理といっていいほどまで曲解されます。
@@ -1181,32 +1265,43 @@ PMake のチュートリアル
は最初のもの以外は黙って無視します。
.Pp
.Nm
-がターゲット名なしに起動された場合と
+がターゲット名なしに起動され、かつ、
.Ic .MAIN
特殊ターゲットが存在しなかった場合、
.Va .TARGETS
-は設定されません。
+にデフォルトターゲットは設定されません。
.Pp
-テスト時の
+テストにおける
.Ar expression
-の評価はあまり気が配られていません。今のところ、
+の評価は非常に単純です。
+今のところ、
.Ql .if ${VAR} op something
という形式でしか動きません。
例えば、テストは
-.Ql .if ${VAR} = "string"
+.Ql .if ${VAR} == "string"
のように書かなければなりません。
-他の書き方では動きません。
+他の書き方ではエラーになります。
.Pp
for ループはテストされる前に展開されるため、
.Bd -literal -offset indent
-\&.for TMACHINE in ${SHARED_ARCHS}
-\&.if ${TMACHINE} = ${MACHINE}
+\&.for ARCH in ${SHARED_ARCHS}
+\&.if ${ARCH} == ${MACHINE}
+ ...
+\&.endif
+\&.endfor
+.Ed
+.Pp
+のような断片は動きません。
+例えば、
+.Bd -literal -offset indent
+\&.for ARCH in ${SHARED_ARCHS}
+\&.if ${MACHINE} == ${ARCH}
...
\&.endif
\&.endfor
.Ed
.Pp
-のような断片は動きません。他の方法を使って書き直す必要があります。
+のように書き直す必要があります。
.Pp
コロンの後のセミコロンの扱いに関して解析コードが壊れているため、
.Bd -literal -offset indent
@@ -1231,4 +1326,4 @@ all:
.Nm
PWB UNIX
-において追加されました。
+ではじめて現れました。