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.1963
1 files changed, 0 insertions, 963 deletions
diff --git a/ja_JP.eucJP/man/man1/make.1 b/ja_JP.eucJP/man/man1/make.1
deleted file mode 100644
index c44f6086a5..0000000000
--- a/ja_JP.eucJP/man/man1/make.1
+++ /dev/null
@@ -1,963 +0,0 @@
-.\" 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
-.\"
-.\" Copyright (c) 1990, 1993
-.\" jpman %Id: make.1,v 1.2 1997/05/27 00:42:17 mutoh Stab %
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" from: @(#)make.1 8.4 (Berkeley) 3/19/94
-.\" %Id: make.1,v 1.6.2.3 1997/09/15 09:20:40 jkh Exp %
-.\"
-.Dd March 19, 1994
-.Dt MAKE 1
-.Os
-.Sh 名称
-.Nm make
-.Nd プログラムの依存関係をメンテナンスする
-.Sh 書式
-.Nm make
-.Op Fl Beiknqrst
-.Op Fl D Ar variable
-.Op Fl d Ar flags
-.Op Fl f Ar makefile
-.Op Fl I Ar directory
-.Bk -words
-.Op Fl j Ar max_jobs
-.Op Fl m Ar directory
-.Ek
-.Op Fl V Ar variable
-.Op Ar variable=value
-.Op Ar target ...
-.Sh 解説
-.Nm make
-は、プログラムのメンテナンスを単純化するためのツールです。その入力は
-ファイル毎の依存関係指定のリストで、それぞれのファイルがどのプログラム、
-どのファイルに依存するか記述されています。
-その指定リストとして、ファイル
-.Ql Pa makefile
-が存在すればそれを、無ければ
-.Ql Pa Makefile
-を読み込みます。
-.Ql Pa .depend
-というファイルがあれば、それも読み込みます
-.Pq Xr mkdep 1 を参照
-。
-.Pp
-本マニュアルはリファレンスのためのみのドキュメントです。
-.Nm make
-と makefile に関する詳しい記述は
-.%T "Make \- A Tutorial"
-を参照してください
-.\" (
-.\" .Dq /usr/src/usr.bin/make/PSD.doc
-.\" に、本
-.\" .Nm make
-.\" の元になった pmake に関する
-.\" .Xr nroff 1
-.\" でフォーマットできるドキュメントがあります)
-。
-.Pp
-オプションは以下のとおりです。
-.Bl -tag -width Ds
-.It Fl B
-シーケンス中の依存行のソースを作成するために、各コマンドに対して
-一つのシェルを実行する、バックワード互換モードで実行しようとします。
-.It Fl D Ar variable
-大域変数
-.Ar variable
-を 1 と定義します。
-.It Fl d Ar flags
-デバッグモードを有効にし、
-.\" .Ar flags
-.\" で指定されたデバッグ情報を出力します。
-.Nm
-が表示するデバッグ情報の種類を指定します。
-.Ar flags
-には、以下のうち 1 つ以上を指定できます。
-.Bl -tag -width Ds
-.It Ar A
-すべてのデバッグ情報を出力します。他のフラグをすべて指定したことと
-等価です。
-.It Ar a
-アーカイブ検索とキャッシュに関する情報を表示します。
-.It Ar c
-条件評価に関する情報を表示します。
-.It Ar d
-ディレクトリ検索とキャッシュに関する情報を表示します。
-.It Ar "g1"
-処理を行う前に、入力のグラフを表示します。
-.It Ar "g2"
-すべての処理を行ったあと、あるいはエラーにより終了する前に入力のグラフを
-表示します。
-.It Ar j
-複数のシェルを起動する場合の情報を表示します。
-.It Ar m
-ターゲットの作成と変更日付に関する情報を表示します。
-.It Ar s
-拡張子解釈に関する情報を表示します。
-.It Ar t
-ターゲットリストのメンテナンスに関する情報を表示します。
-.It Ar v
-変数の値に関する情報を表示します。
-.El
-.It Fl e
-環境変数で makefile 中の変数の値を上書きするように指示します。
-.It Fl f Ar makefile
-デフォルトの
-.Ql Pa makefile
-と
-.Ql Pa Makefile
-のかわりに、読み込むファイルを指定します。もし
-.Ar makefile
-が
-.Ql Fl
-なら標準入力から読み込みます。複数のファイルが指定可能で、
-指定した順に読み込まれます。
-.It Fl I Ar directory
-makefile と、インクルードされる makefile を検索するためのディレクトリを
-指定します。システムで定義してある makefile のあるディレクトリ (または、
-複数のディレクトリ;
-.Fl m
-オプションを参照) は自動的にリストに含まれ、検索されます。
-.It Fl i
-makefile から実行されたシェルコマンドが 0 でない終了ステータスを返し
-ても無視します。makefile 中でコマンドの先頭に
-.Ql Fl
-を指定するのと同じです。
-.It Fl j Ar max_jobs
-.Nm make
-が同時に起動できるジョブの数を指定します。互換性モードをオフにするには、
-.Ar B
-フラグも指定してください。
-.It Fl k
-エラーが発生しても処理を続行します。ただし、発生したエラーによって作成
-が不能になったターゲットに依存したターゲットに関しては処理が中断されます。
-.It Fl m Ar directory
-<...> 形式で読み込まれる sys.mk や makefile を検索するための
-ディレクトリを指定します。複数のディレクトリを検索パスに加えることが
-できます。このパスは、デフォルトのシステムインクルードパス
-/usr/share/mk を上書きします。
-さらに、システムインクルードパスを "..."形式のインクルードによって
-追加することができます(
-.Fl I
-オプションを参照)。
-.It Fl n
-make が実行するであろうコマンド内容の表示のみを行い、実行はしません。
-.It Fl q
-いっさいのコマンドを実行せず、指定されたターゲットが最新のものであれば 0
-を、そうでなければ 1 を終了ステータスとして返します。
-.It Fl r
-システムの makefile で定義された組み込みのルールを使用しません。
-.It Fl s
-実行するコマンドを表示しません。makefile のなかで、コマンドの先頭に
-.Ql Ic @
-を指定するのと同じです。
-.It Fl t
-makefile で指定されたターゲットを作り直すのではなく、ターゲットを作成
-するか、あるいは最終更新日付を現在の時刻に設定することにより、
-ターゲットが最新であるかのようにします。
-.It Fl V Ar variable
-グローバルな文脈での
-.Nm make
-の
-.Ar variable
-の値を表示します。如何なるターゲットも生成しません。
-このオプションで複数のインスタンスを指定することができます。
-変数は、各行毎に表示されます。未定義もしくは空の変数は、空行で
-表現されます。
-.It Ar variable=value
-変数
-.Ar variable
-の値を
-.Ar value
-に設定します。
-.El
-.Pp
-makefile には 7 種類の行があります: 依存関係記述、シェルコマンド、変数
-代入、インクルード文、条件命令、for ループ、コメントです。
-.Pp
-一般に、行は行末にバックスラッシュ
-.Pq Ql \e
-を置くことにより次行へ継続させることがで
-きます。この場合、バックスラッシュ直後の改行と、次の行の先頭の
-空白部分は 1 つの空白に置き換えられます。
-.Sh ファイル依存関係記述
-入力ファイルにおける依存関係記述行は、1 つ以上のターゲット、オペレータ、
-0個 以上のソースからなります。
-これは、ターゲットがソースに「依存」しているという関係を
-定義しており、通常は、ソースからターゲットが作成されます。ターゲットと
-ソースとの厳密な関係はオペレータによって、両者間に指定します。
-オペレータには以下の種類があります。
-.Bl -tag -width flag
-.It Ic \&:
-ターゲットの最終更新日付が、いずれかのソースの最終更新日付よりも
-古いものであれば、ターゲットは古いものであり、作り直されるべきものと
-判断されます。
-別の行でこのオペレータによる同じターゲットに関するソースの記述があれば、
-それらはすべて 1 つにまとめられます。ターゲットの作成中に
-.Nm make
-が中断されると、ターゲットは削除されます。
-.It Ic \&!
-ターゲットはつねに作り直されます。ただし、作り直されるのは、
-すべてのソースが検査され、必要と判断されたソースが作り直されたあとです。
-このオペレータによる同じターゲットに関するソースの記述が別の行にもあれば、
-それらはすべて 1 つにまとめられます。ターゲットの作成中に
-.Nm make
-が中断されると、ターゲットは削除されます。
-.It Ic \&::
-ソースが指定されていなかった場合、つねにターゲットは作り直されます。
-指定されていた場合にはソースのいずれかがターゲットよりも新しい時だけ
-ターゲットは作り直されます。本オペレータでは、別の行において同じ
-ターゲットに関するソースの記述があっても 1 つにまとめません。
-ターゲットの作成中に
-.Nm make
-が中断されるても、ターゲットは削除されません。
-.El
-.Pp
-ターゲットとソースは、シェルのワイルドカードとして
-.Ql ? ,
-.Ql * ,
-.Ql [] ,
-.Ql {}
-を含むこ
-とができます。
-.Ql ? ,
-.Ql * ,
-.Ql []
-は、ターゲットまたはソースの最後の要素として記述でき、
-存在するファイルを指定するものでなければなりません。
-.Ql {}
-はファイルが存在しなくてもかまいません。シェルのように辞書順に並べられて
-展開されることはなく、ファイルシステム上に並んでいる順番のまま行われます。
-.Sh シェルコマンド
-ターゲットは、シェルコマンドの列と関連付けることができ、通常はそれによって
-ターゲットを作成します。
-これに含まれる各コマンドは、
-.Em 必ず
-行頭のタブに続けて記述します。同一のターゲットに
-対して複数の依存記述行がある場合、
-.Ql Ic ::
-オペレータを使用したのでなければ、それらのうちの 1 つにのみコマンド行を
-続けることができます。
-.Pp
-もし最初の文字が
-.Ql Ic @
-または
-.Ql Ic \-
-ならば
-.Pq 2\ 文字とも指定することも可能
-、コマンドは特別な扱いを受けます。
-.Ql Ic @
-は、コマンドが実行される前にコマンド内容が表示されることを抑制します。
-.Ql Ic \-
-は、コマンドの 0 ではない終了ステータスを無視するように指示します。
-.Sh 変数代入
-.Nm make
-で使われる変数はシェルでの変数に類似しています。そして、歴史的な経緯から、
-すべて大文字からなる名前が用いられます。変数代入には以下の 5 通りの
-オペレータを使用できます。
-.Bl -tag -width Ds
-.It Ic \&=
-変数に値を代入します。その時点までの値は失われます。
-.It Ic \&+=
-現在の変数の値に、右辺の値を追加します。
-.It Ic \&?=
-変数が未定義の場合のみ、値を代入します
-.It Ic \&:=
-右辺を展開した値を代入します。つまり、変数に代入する前に値の展開を行います。
-通常、値の展開は代入時には行われず、変数が参照されるときに行われます。
-.It Ic \&!=
-右辺を展開した値をシェルに実行させ、実行結果を左辺の変数に代入します。
-結果のなかに含まれる改行は空白に置き換えられます。
-.El
-.Pp
-いずれの場合も、値の前にある空白は無視されます。値が追加される場合、
-変数の直前の値と追加する値との間に空白が挿入されます。
-.Pp
-変数は、ドル記号
-.Pq Ql $
-に続いて中括弧
-.Pq Ql {}
-または小括弧
-.Pq Ql ()
-で囲まれた変数名を置くことにより展開されます
-.\" .Pq 例: ${LIBS}
-。もし変数名が 1 文字な
-ら、変数名を囲む括弧は省略できますが、このような省略形は推奨できません。
-.Pp
-変数置換は、変数が用いられている場所により、 2 つの別々のタイミングで
-行われます。依存関係記述行で用いられた変数は、その行が読み込まれたときに
-展開されます。シェルコマンド内で用いられた変数は、シェルコマンド実行時に
-展開されます。
-.Pp
-変数には、優先度に従って、4 つの異なるクラスがあります:
-.Bl -tag -width Ds
-.It 環境変数
-.Nm make
-の環境中で有効な変数
-.It グローバル変数
-makefile とインクルードされた makefile 内で有効な変数。
-.It コマンドライン変数
-コマンドラインで指定された変数。
-.It ローカル変数
-あるターゲットのみに対して定義される変数。ローカル変数には、
-以下の 7 種類があります:
-.Bl -tag -width ".ARCHIVE"
-.It Va .ALLSRC
-このターゲットに対するすべてのソースのリスト。
-.Ql Va \&> .
-も同じです。
-.It Va .ARCHIVE
-アーカイブファイル名
-.It Va .IMPSRC
-ターゲット名に変換するのに使用するソースのファイル名またはパス名
-.Pq 「暗黙の」ソース
-.\" .Pq ターゲットが foo.o なら foo.c 等
-。
-.Ql Va \&< .
-も同じです。
-.It Va .MEMBER
-アーカイブのメンバー
-.It Va .OODATE
-ターゲットよりも新しいソースのリスト。
-.Ql Va \&? .
-も同じ。
-.It Va .PREFIX
-ターゲットのディレクトリ名と拡張子を取り除いた名前。
-.Ql Va * .
-も同じ。
-.It Va .TARGET
-ターゲットの名前。
-.Ql Va @ .
-も同じ。
-.El
-.Pp
-短い形式
-.Ql Va @ ,
-.Ql Va ? ,
-.Ql Va \&> ,
-.Ql Va *
-は古い makefile での互換性のためのものですが、利用することは推奨できません。
-また、
-.Ql Va "@F" ,
-.Ql Va "@D" ,
-.Ql Va "<F" ,
-.Ql Va "<D" ,
-.Ql Va "*F" ,
-.Ql Va "*D"
-は
-.At V
-の makefile との互換性のために存在していますが、利用することは
-推奨できません。
-.Pp
-次の 4 つのローカル変数は依存関係記述行のソースに使うことができます。
-これらは、その行のターゲット毎の値に展開されます。
-これらのローカル変数は
-.Ql Va .TARGET ,
-.Ql Va .PREFIX ,
-.Ql Va .ARCHIVE ,
-.Ql Va .MEMBER
-です。
-.Pp
-さらに、
-.Nm make
-では以下の変数を利用することができます。
-.Bl -tag -width MAKEFLAGS
-.It Va \&$
-単一のドル記号
-.Ql \&$
-。すなわち、
-.Ql \&$$
-は単一のドル記号に置換されます。
-.It Va .MAKE
-.Nm make
-の起動に使用された名前
-.Pq Va argv Op 0
-。
-.It Va .CURDIR
-.Nm make
-が実行されたディレクトリ。
-.It Ev PWD
-現在のディレクトリへの異なったパス。
-.Nm make
-は普通、
-.Ql Va .CURDIR
-を
-.Xr getcwd 2
-で得られたパスに設定します。しかしながら、環境変数
-.Ql Ev PWD
-が設定されており、与えられたパスがカレントディレクトリの時、
-.Nm make
-は、
-.Ql Va .CURDIR
-を
-.Ql Ev PWD
-の値に設定します。
-.Ql Ev PWD
-は、
-.Nm make
-が実行している全てのプログラムに対して、
-.Ql Va .OBJDIR
-の値を設定します。
-.El
-.Pp
-変数展開において、その変数内の単語を選択したり、変更したりすることが
-できます
-.Pq 単語とは空白で区切られた文字列です
-。変数展開の一般形は、次のとおりです。
-.Pp
-.Dl {variable[:modifier[:...]]}
-.Pp
-各修飾子は、コロンと以下に示すいずれかの文字のうち 1 文字からなります。
-リテラルなコロン
-.Pq Ql \&:
-を指定するにはコロンの前にバックスラッシュ
-.Pq Ql \e
-を置きます。
-.Bl -tag -width Cm E\&
-.It Cm E
-変数中の各単語を拡張子で置換します。
-.It Cm H
-変数中の各単語を、パスの最後の要素
-.\" (最後のスラッシュ
-.\" .Pq Ql /
-.\" より後の部分)
-を除いた部分で置換します。
-.It Cm M Ns Ar pattern
-pattern にマッチする単語を選択します。標準的なワイルドカード
-.Pf ( Ql * ,
-.Ql ? ,
-.Ql Op )
-が使用できます。ワイルドカード文字はバックスラッシュ
-.Pq Ql \e
-によりエスケープできます。
-.It Cm N Ns Ar pattern
-pattern にマッチしない単語を選択します。それ以外は
-.Ql Cm M
-と同様です。
-.It Cm R
-変数中の各単語から拡張子を取り除きます。
-.Sm off
-.It Cm S No \&/ Ar old_pattern Xo
-.No \&/ Ar new_pattern
-.No \&/ Op Cm g
-.Xc
-.Sm on
-各単語中の最初の
-.Ar old_pattern
-を
-.Ar new_pattern
-に置換します。もし、最後のスラッシュのあとに
-.Ql g
-が指定されていれば、各単語中に出現したすべての
-.Ar old_pattern
-が
-.Ar new_pattern
-に置換されます。
-.Ar old_pattern
-が
-.Ql ^
-で始まっているなら、そのパタンを各単語の先頭からマッチさせることを
-意味します。
-.Ar old_pattern
-がドル記号
-.Pq Ql $
-で終わっているなら、そのパタンを各単語の終端にマッチさせることを
-意味します。
-.Ar new_string
-中のアンド記号
-.Pq Ql &
-は
-.Ar old_pattern
-に置換されます。修飾文字列の区切りにはどんな文字を使ってもかまいません。
-.Ql ^
-,
-.Ql $
-,
-.Ql &
-と区切り文字はバックスラッシュ
-.Pq Ql \e
-によりエスケープできます。
-.Pp
-.Ar old_string
-と
-.Ar new_string
-中では通常の変数置換が行われます。ただし、ドル記号
-.Pq Ql \&$
-の展開を抑制するためには、通常のドル記号の前置ではなく、
-バックスラッシュでエスケープします。
-.It Cm T
-変数中の各単語をパスの最後の要素
-.\" (最後のスラッシュ
-.\" .Pq Ql /
-.\" より後の部分)
-で置換します。
-.It Ar old_string=new_string
-これは
-.At V
-での変数置換の形式です。これは最後の修飾子として指定する必要があります。
-もし、パタンマッチ文字
-.Ar %
-が
-.Ar new_string
-にも
-.Ar old_string
-にも含まれないなら、
-.Ar new_string
-と
-.Ar old_string
-はどちらも単語の最後にマッチするものとみなされます。すなわち、
-拡張子のみか、または単語全部が置換されることになります。そうでなければ、
-.Ar %
-が
-.Ar old_string
-に含まれており、それは
-.Ar new_string
-に置換されます。
-.\" .Pp
-.\" たとえば、以下の例において、
-.\" .Bd -literal -offset indent
-.\" OBJS+= ${SRCS:N*.h:N*.sh:R:S/$/.o/g}
-.\" .Ed
-.\" OBJS は、 SRCS の各単語のうち、
-.\" .Ql *.h
-.\" 、
-.\" .Ql *.sh
-.\" にマッチするものを除き、さらに拡
-.\" 張子のかわりに
-.\" .Ql .o
-.\" を付加した単語のリストになります。
-.\" .Pp
-.\" もし、
-.\" .Bd -literal -offset indent
-.\" SRCS = foo.c bar.c foo.h
-.\" .Ed
-.\" ならば、
-.\" .Bd -literal -offset indent
-.\" OBJS = foo.o bar.o
-.\" .Ed
-.\" となります。
-.El
-.Sh インクルード文、条件式、FOR ループ
-.Nm make
-では、C 言語を彷彿させるインクルード、条件文、for ループを使用することが
-できます。これらの制御構造は、行頭に単一のドット
-.Pq Ql \&.
-がくることで識別されます。ファイルのインクルードは
-.Ql .include <file>
-または、
-.Ql .include \*qfile\*q
-により行います。ブラケット
-.Pq Ql <>
-と ダブルクォート
-.Pq Ql \*q\*q
-中の変数はファイル名に展開されます。もし、ブラケットが使用されたなら、
-makefile はシステムの makefile ディレクトリにあるものを用います。
-ダブルクォートなら、makefile が存在するディレクトリ、
-.Fl I
-オプションで指定されたディレクトリ、システムの makefile ディレクトリの
-順に検索します。
-.Pp
-条件式も、行頭のドットから開始します。条件式には以下のものがあります:
-.Bl -tag -width Ds
-.It Ic .undef Ar variable
-グローバル変数を未定義とします。グローバル変数以外は未定義とすることが
-できません。
-.It Xo
-.Ic \&.if
-.Oo \&! Oc Ns Ar expression
-.Op Ar operator expression ...
-.Xc
-式の値をテストします。
-.It Xo
-.Ic .ifdef
-.Oo \&! Oc Ns Ar variable
-.Op Ar operator variable ...
-.Xc
-変数の値をテストします。
-.It Xo
-.Ic .ifndef
-.Oo \&! Oc Ns Ar variable
-.Op Ar operator variable ...
-.Xc
-変数の値をテストします。
-.It Xo
-.Ic .ifmake
-.Oo \&! Oc Ns Ar target
-.Op Ar operator target ...
-.Xc
-ターゲット
-.Ar target
-が作成中かどうかをテストします。
-.It Xo
-.Ic .ifnmake
-.Oo \&! Oc Ar target
-.Op Ar operator target ...
-.Xc
-ターゲット
-.Ar target
-が作成中かどうかをテストします。
-.It Ic .else
-最後に行った条件文の意味を逆にします。
-.It Xo
-.Ic .elif
-.Oo \&! Oc Ar expression
-.Op Ar operator expression ...
-.Xc
-.Ql Ic .else
-と直後の
-.Ql Ic .if
-を対にしたものです。
-.It Xo
-.Ic .elifdef
-.Oo \&! Oc Ns Ar variable
-.Op Ar operator variable ...
-.Xc
-.Ql Ic .else
-と直後の
-.Ql Ic .ifdef
-を対にしたものです。
-.It Xo
-.Ic .elifndef
-.Oo \&! Oc Ns Ar variable
-.Op Ar operator variable ...
-.Xc
-.Ql Ic .else
-と直後の
-.Ql Ic .ifndef
-を対にしたものです。
-.It Xo
-.Ic .elifmake
-.Oo \&! Oc Ns Ar target
-.Op Ar operator target ...
-.Xc
-.Ql Ic .else
-と直後の
-.Ql Ic .ifmake
-を対にしたものです。
-.It Xo
-.Ic .elifnmake
-.Oo \&! Oc Ns Ar target
-.Op Ar operator target ...
-.Xc
-.Ql Ic .else
-と直後の
-.Ql Ic .ifnmake
-を対にしたものです。
-.It Ic .endif
-条件文の本体を終了させます。
-.El
-.Pp
-オペレータ
-.Ar operator
-は、以下のうちのいずれかです。
-.Bl -tag -width "Cm XX"
-.It Cm \&|\&|
-論理 OR。
-.It Cm \&&&
-論理 AND。
-.Ic ||
-より優先順位が上です。
-.El
-.Pp
-C 言語と同様、
-.Nm make
-は条件式を、式の値を決定するのに必要なところまでしか評価しません。
-評価順序を変更するには括弧を使います。論理オペレータ
-.Ql Ic \&!
-は条件式全体の値を反転するのに使用します。
-.Ql Ic \&!
-は
-.Ql Ic \&&&
-より優先順位が上です。
-.Pp
-式
-.Ar expression
-は、以下のいずれかの形式です:
-.Bl -tag -width Ic defined
-.It Ic defined
-引数として変数名をとり、変数が定義されていれば true となる。
-.It Ic make
-引数としてターゲット名をとり、そのターゲットが
-.Nm make
-のコマンドライン引数に指定されているか、デフォルトのターゲット
-.Pq 明示的なものも暗黙的なものも含む。 Va .MAIN の項を参照
-として宣言されている場合に true となる。
-.It Ic empty
-引数として変数名
-.Pq と修飾子
-をとり、展開した結果が空文字列ならば true となる。
-.It Ic exists
-引数としてファイル名をとり、ファイルが存在すれば true となる。
-ファイルはシステム検索パス
-.Pq Va .PATH の項を参照
-にそって検索される。
-.It Ic target
-引数としてターゲット名をとり、ターゲットが定義されているなら true となる。
-.El
-.Pp
-条件式
-.Ar expression
-としては、数値あるいは文字列の比較を用いることもできます。比較オペレータの
-両辺は、変数展開が適用されたあとに比較されます。値が 0x で始まるなら 16 進数
-であると解釈し、さもなければ 10 進数と解釈します。8 進数はサポートして
-いません。標準的な C 言語の関係オペレータは全て利用可能です。
-変数展開後、
-.Ql Ic ==
-または
-.Ql Ic "!="
-の左辺値または右辺値のいずれかが数値とは認められない場合、文字列として
-比較を行います。関係オペレータが指定されなかった場合、展開された変数と 0 とを
-比較します。
-.Pp
-条件式を評価中に、評価できない単語が出現した場合は、条件式の形式によって、
-.Dq make
-または
-.Dq defined
-オペレータを適用します。条件式が
-.Ql Ic .ifdef
-または
-.Ql Ic .ifndef
-ならば
-.Dq defined
-を、条件式が
-.Ql Ic .ifmake
-または
-.Ql Ic .ifnmake
-ならば
-.Dq make
-を、それぞれ適用します。
-.Pp
-条件式が true と評価されたなら、makefile の解析はそのまま続行されます。
-false と評価されたなら、
-.Ql Ic .else
-または
-.Ql Ic .endif
-が見つかるまで
-makefile の解析をスキップします。
-.Pp
-for ループは、いくつかのルールを一連のファイルに適用するのによく
-用いられます。以下がループの形式です:
-.Bl -tag -width Ds
-.It Xo
-.Ic \&.for
-.Ar variable
-.Ic in
-.Ar expression
-.Xc
-.It Xo
-<make-rules>
-.Xc
-.It Xo
-.Ic \&.endfor
-.Xc
-.El
-.Ic expression
-は評価されたあとに単語に分解され、それぞれを
-.Ic variable
-に代入
-しながら、
-.Ic make-rules
-部分を繰り返し展開します。
-.Sh コメント
-コメントはハッシュ記号
-.Pq Ql \&#
-から始まり、シェルコマンド行以外のどこにでも置くことができます。
-コメントは改行で終わります。
-.Sh 特殊ソース
-.Bl -tag -width Ic .IGNORE
-.It Ic .IGNORE
-本ターゲットに関連したコマンドでのエラーを無視します。シェルコマンドの
-先頭にダッシュ
-.Ql \-
-を指定したのと等価です。
-.It Ic .MAKE
-たとえ、
-.Fl n や
-.Fl t
-オプションが指定されていても、このターゲットに関連したシェルコマンドを
-実行します。通常、再帰的な
-.Nm make
-のために用いられます。
-.It Ic .NOTMAIN
-通常
-.Nm make
-は、最初に発見したターゲットをデフォルトのターゲットとみなします。
-.Ic .NOTMAIN
-が指定されたターゲットはデフォルトのターゲットとはみなされなくなります。
-.It Ic .OPTIONAL
-もし
-.Ic .OPTIONAL
-が指定されたターゲットの作り方がわからなくても、エラーとはせず、
-そのターゲットは必要ないか、すでに存在しているものとみなします。
-.It Ic .PRECIOUS
-通常
-.Nm make
-が中断されたときは、作成途中のターゲットは削除されます。本ソースを
-指定することで、そのターゲットを削除しなくなります。
-.It Ic .SILENT
-指定されたターゲットに関連づけられたシェルコマンドを実行するときに
-エコーを行いません。シェルコマンドの先頭に
-.Ql @
-を指定したのと等価です。
-.It Ic .USE
-指定されたターゲットをマクロ的に扱います。
-.Ic .USE
-をソースに持つターゲット
-.Pq 以下ではマクロと呼びます
-が別のターゲットのソースとなった場合、その
-ターゲットはコマンド、ソース、属性(
-.Ic .USE
-は除く)
-をマクロから受け取ります。もし、すでにターゲットにコマンドが指定されていた
-場合は、マクロのコマンドが追加されます。
-.It Ic .WAIT
-特別な
-.Ic .WAIT
-ソースが依存関係行に現れた時には、ソースはその行中でソースが
-作成されるまで待ちます。ループは検出されず、ループ形式のターゲットは
-単に無視されます。
-.El
-.Sh 特殊ターゲット
-特殊ターゲットは、他のターゲットとともに使用してはいけません。すなわち、
-依存関係記述行の唯一のターゲットとして指定する必要があります。
-.Bl -tag -width Ic .BEGIN
-.It Ic .BEGIN
-本ターゲットに指定されたシェルコマンドは他の処理に先立って実行されます。
-.It Ic .DEFAULT
-これは、作成方法がわからないどんなターゲットにも適用される
-.Ic .USE
-ルールのようなものです。シェルスクリプトのみを使用します。
-.Ic .DEFAULT
-に指定されたコマンド中の
-.Ic .IMPSRC
-変数はターゲット自身の名前に置換されます。
-.It Ic .END
-本ターゲットに指定されたシェルコマンドは、他のすべての処理の終了後に
-実行されます。
-.It Ic .IGNORE
-指定されたソースに
-.Ic .IGNORE
-属性を付与します。もしソースが指定されていなければ、
-.Fl i
-オプションを指定したのと同じ意味になります。
-.It Ic .INTERRUPT
-.Nm make
-が中断されたとき、本ターゲットに指定されたコマンドを実行します。
-.It Ic .MAIN
-ターゲットを指定せずに
-.Nm make
-が起動された場合、本ターゲットを処理します。
-.It Ic .MAKEFLAGS
-ソースにおいて、
-.Nm make
-に指定するフラグを指定します。フラグはシェルでタイプしたのと同様に
-渡されますが、
-.Fl f
-オプションは無効になります。
-.\" XXX: NOT YET!!!!
-.\" .It Ic .NOTPARALLEL
-.\" この名前のターゲットは、並列モードを使わすに実行されます。
-.\" ターゲットが指定されていない時には、全てのターゲットが非並列モード
- \" で実行されます。
-.It Ic .NOTPARALLEL
-並列モードを使いません。
-.It Ic .NO_PARALLEL
-上と同じですが、 pmake の変種のための互換性のためにあります。
-.It Ic .ORDER
-シーケンス中の名前付きターゲットが作成されます。
-.\" XXX: NOT YET!!!!
-.\" .It Ic .PARALLEL
-.\" 名前付きターゲットが並列モードで実行されます。
-.\" ターゲットが指定されない時には、全てのターゲットが並列モードで実行
-.\" されます。
-.It Ic .PATH
-カレントディレクトリに発見できなかったときのファイルの検索パスを、
-本ターゲットのソースとして指定します。ソースが指定されなかった場合、
-以前に設定されていたディレクトリが無効になります。
-.It Ic .PHONY
-.Ic .PHONY
-属性を指定したソースに適用します。この属性を持ったターゲットは
-いつでも更新されていると考えられます。
-.It Ic .PRECIOUS
-指定されたソースに
-.Ic .PRECIOUS
-属性を付与します。もし、ソースが指定されなかった場合、
-すべてのターゲットに
-.Ic .PRECIOUS
-属性を与えます。
-.It Ic .SILENT
-指定されたソースに
-.Ic .SILENT
-属性を付与します。もし、ソースが指定されなかった場合、
-ファイル中のすべてのコマンドに
-.Ic .SILENT
-属性を与えます。
-.It Ic .SUFFIXES
-ソースにおいて、
-.Nm make
-で用いる拡張子を指定します。ソースが指定されなかった場合は、
-以前の指定が無効になります。
-.Sh 環境変数
-.Nm make
-は以下の環境変数の値を用います:
-.Ev MACHINE ,
-.Ev MAKE ,
-.Ev MAKEFLAGS ,
-.Ev MAKEOBJDIR ,
-.Ev MAKEOBJDIRPREFIX ,
-.Ev PWD
-.Sh 関連ファイル
-.Bl -tag -width /usr/share/doc/psd/12.make -compact
-.It .depend
-依存関係リスト
-.It Makefile
-依存関係リスト
-.It makefile
-依存関係リスト
-.It sys.mk
-システム定義の makefile
-.It /usr/share/mk
-システム定義の makefile が置かれるディレクトリ
-.It /usr/share/doc/psd/12.make
-PMake のチュートリアル
-.El
-.Sh 関連項目
-.Xr mkdep 1
-.Rs
-.%T "PMake - A Tutorial"
-.Re
-.Sh 歴史
-.Nm make
-は
-.At v7
-において追加されました。