1 つのファイルを複数の記述ブロックでターゲットとして使用すると、NMAKE は終了します。この制限は、ターゲット/従属ファイルの区切り文字としてコロンを 1 つではなく、2 つ (::) 使用することによって克服することができます。
以下のような記述ブロックは許可されます。
X :: A command X :: B command
次の記述ブロックでは、NMAKE が終了します。
X : A command X : B command
ターゲット/従属ファイルの行が同じコマンドの上にグループ化されている場合は、単一コロンの使用が認められます。次の記述ブロックは認められます。
X : A X : B command
2 重コロン (::) ターゲット/従属ファイルの区切り文字の例
target.lib :: a.asm b.asm c.asm
ml a.asm b.asm c.asm
ilib target a.obj b.obj c.obj
target.lib :: d.pli e.pli
pli d.pli
pli e.pli
ilib target d.obj e.obj
これら 2 つの記述ブロックは、どちらも target.lib という名前のライブラリーを更新します。アセンブリー言語ファイルの中に、ライブラリー・ファイルよりも後に変更されたものがある場合、NMAKE は最初のブロックのコマンドを実行し、ソース・ファイルをアセンブルしてライブラリーを更新します。同様に、PL/I 言語ファイルに変更されたものがある場合、NMAKE は 2 番目のグループのコマンドを実行し、PL/I ファイルをコンパイルしてライブラリーを更新します。