複数の記述ブロックに含まれるターゲット

異なるコマンドを使用している複数の記述ブロック中で 1 つのターゲットを更新するには,ターゲットと依存ファイルの間に 2 つの連続したコロン (::) を指定します。次に例を示します。

	target.lib :: one.f90 two.f90 three.f90
		df one.f90 two.f90 three.f90
		lib target one.obj two.obj three.obj
	target.lib :: four.c five.c
		df /c four.for five.for
		lib target four.obj five.obj

依存関係の副作用

ターゲットが 2 つの異なる場所の 2 つの依存関係行中で,コロン (:) を使って指定されており,これらの行のうち 1 行だけにコマンドがある場合,NMAKE はこれらの依存関係を隣接したもの,または結合されたものとして解釈します。コマンドを持たない依存関係については推論規則を使用せず,すべての依存関係が 1 つの記述ブロックに属するものと判断し,他の依存関係で指定されているコマンドを次のように実行します。

評価のされ方
bounce.exe : jump.obj
   echo Building
bounce.exe...
bounce.exe : up.obj
bounce.exe : jump.obj
up.obj
   echo Building
bounce.exe...

2 つのコロン (::) が以下のように使用されている場合,このような効果はありません。

評価のされ方
bounce.exe :: jump.obj
   echo Building
bounce.exe...

bounce.exe :: up.obj
bounce.exe : jump.obj
   echo Building
bounce.exe...

bounce.exe : up.obj
# invokes an inference rule