メイクファイルのコマンド
記述ブロックまたは推論規則によって、依存関係が古くなっている場合に実行するコマンドのブロックを指定します。 /S
、.SILENT
、!CMDSWITCHES
、または @
が使用されていない限り、NMAKE では実行前に各コマンドが表示されます。 記述ブロックの後にコマンド ブロックがない場合、NMAKE は一致する推論規則を検索します。
コマンド ブロックには、それぞれ独立した行に、1 つ以上のコマンドが含まれています。 依存関係または規則とコマンド ブロックの間に空白行を挿入することはできません。 ただし、スペースまたはタブだけを含む行は挿入できます。この行は null コマンドとして解釈され、エラーは発生しません。 コマンド ライン間で空白行を使うことはできます。
コマンド ラインは、1 つ以上のスペースまたはタブで開始します。 コマンド内で円記号 (\
) の後に改行文字を入力すると、スペースとして解釈されます。 次の行にコマンドを続ける場合は、行の末尾に円記号を入力します。 NMAKE では、スペースやタブなどの他の文字が円記号の後に続く場合、その円記号は文字どおりに解釈されます。
コマンド ブロックが後に続くかどうかに関係なく、セミコロン (;
) で始まるコマンドを依存関係の行または推論規則に挿入できます。
project.obj : project.c project.h ; cl /c project.c
コマンド修飾子
コマンドの前に 1 つ以上のコマンド修飾子を指定できます。必要に応じて、スペースまたはタブで区切ります。 コマンドと同様に、修飾子もインデントする必要があります。
修飾子 | 目的 |
---|---|
@ コマンド |
コマンドが表示されないようにします。 コマンドによる表示は抑制されません。 既定では、NMAKE では実行したすべてのコマンドがエコーされます。 メイクファイル全体の表示を抑制するには、/S を使用します。メイクファイルの一部が表示されないようにするには、.SILENT を使用します。 |
- [<数字>] <コマンド> |
<コマンド> に対するエラー チェックをオフにします。 既定では、コマンドから 0 以外の終了コードが返されると、NMAKE は停止します。 -<数字> を使う場合、終了コードが <数字> を超えていると NMAKE は停止します。 ダッシュと <数字> の間にスペースやタブを挿入することはできません。<数字> と <コマンド> の間には、少なくとも 1 つのスペースまたはタブを挿入する必要があります。 メイクファイル全体のエラー チェックをオフにするには、/I を使用します。メイクファイルの一部のエラー チェックを無効にするには、.IGNORE を使用します。 |
! command |
<コマンド> で $** (依存関係内のすべての依存ファイル) または $? (ターゲットより後のタイムスタンプを持つ依存関係内のすべての依存ファイル) が使用されている場合、各依存ファイルに対して <コマンド> を実行します。 |
ファイル名分割構文
コマンドのファイル名分割構文は、最初の依存ファイル名のコンポーネントを表します (暗黙的な依存の場合があります)。 ファイル名のコンポーネントは、ディスク上に存在するものではなく、指定されたファイルのドライブ、パス、ベース名、拡張子です。 完全なファイル名を表すには、%s
を使います。 %|
[<部分>]F
(パーセント記号の後に縦棒文字を続ける) を使って、ファイル名の部分を表します。<部分> には、次の文字を、任意の順序で 0 個以上指定できます。
レター | 説明 |
---|---|
文字なし | 完全な名前 (%s と同じ) |
d |
ドライブ |
p |
Path |
f |
ファイルのベース名 |
e |
[ファイル拡張子] |
たとえば、ファイル名が c:\prog.exe
の場合:
%s
はc:\prog.exe
になります。%|F
はc:\prog.exe
になります%|dF
はc
になります%|pF
はc:\
になります%|fF
はprog
になります%|eF
はexe
になります。