ディレクティブを使用すると、バッチ・ファイルに似た記述ファイルを構成することができます。
NMAKE では、以下の機能を持つディレクティブを提供します。
- 条件付でコマンドを実行する。
- エラー・メッセージを表示する。
- 他のファイルの内容を組み込む。
- いくつかの NMAKE オプションをオンまたはオフに切り替える。
各ディレクティブは、記述ファイルの最初の列にあり、先頭は感嘆符 (!) から始まっています。感嘆符とディレクティブ・キーワードの間にスペースがあってもかまいません。
以下のリストで、ディレクティブを説明します。
- !IF expression
- expression がゼロ以外の値と評価される場合、!IF キーワードと、次の !ELSE または !ENDIF ディレクティブの間のステートメントを実行します。
!IF ディレクティブと共に使用される expression は、整数定数、ストリング定数、またはプログラムによって戻される終了コードで構成することができます。整数定数は、数値符号反転 (-)、1 の補数 (~)、および論理否定 (!) の C の単項演算子を使用することができます。以下にリストする C の 2 項演算子も使用可能です。
- 演算子
- 説明
- +
- 加算
- -
- 減算
- *
- 乗算
- /
- 除算
- %
- モジュラス
- &
- ビット単位の AND
- |
- ビット単位の OR
- ^^
- ビット単位の XOR
- &&
- 論理 AND
- ||
- 論理 OR
- <<
- 左シフト
- >>
- 右シフト
- ==
- 等しい
- !=
- 等しくない
- <
- より小
- >
- より大
- <=
- より小または等しい
- >=
- より大または等しい
- 括弧を使用して式をグループ化することができます。
- 先頭に 0 を付けて指定されている (8 進) か、0x をつけて指定されている (16 進) 場合を除き、値は 10 進数と見なされます。
- ストリングは引用符 ( " ) で囲みます。等号演算子 ( == ) および非等号演算子 ( != ) を使用して 2 つのストリングを比較することができます。
- プログラム名を大括弧 ([ ]) で囲むことによって、式の中でプログラムを呼び出すことができます。プログラムによって戻される終了コードが、式で使用されます。
- !ELSE
- !ELSE ディレクティブの前のステートメントが実行されなかった場合、!ELSE および !ENDIF ディレクティブの間のステートメントを実行します。
- !ENDIF
- ステートメントの !IF、!IFDEF、または !IFNDEF ブロックの終わりをマークします。
- !IFDEF macroname
- 記述ファイル内で macroname が定義されている場合、!IFDEF キーワードと、次の !ELSE または !ENDIF ディレクティブの間のステートメントを実行します。マクロがヌルとして定義された場合でも、定義されているものと見なされます。
- !IFNDEF macroname
- 記述ファイル内で macroname が定義されていない場合、!IFNDEF キーワードと、次の !ELSE または !ENDIF ディレクティブの間のステートメントを実行します。
- !UNDEF macroname
- 前に定義されたマクロの定義を解除します。
- !ERROR text
- テキストを出力して、実行を停止します。
- !INCLUDE filename
- ファイル filename を読み取り、評価してから、現行の記述ファイルの処理を再開します。filename が不等号括弧 (<>) で囲まれている場合、NMAKE は INCLUDE マクロによって指定されたディレクトリー内でファイルを探します。それ以外の場合は、現行ディレクトリーのみでファイルを探します。INCLUDE マクロは、最初に INCLUDE 環境変数の値に設定されます。
- !CMDSWITCHES {+|-}opt
- /D、/I、/N、および /S の 4 つの NMAKE オプションのいずれかをオンまたはオフに切り替えます。オプションが指定されない場合は、これらのオプションを NMAKE 始動時の値にリセットします。オプションをオンにするには、そのオプションの前に正符号 (+) を付加します。オフにする場合は、前に負符号 (-) を付加します。このディレクティブによって、MAKEFLAGS マクロが更新されます。
特殊マクロ を参照。
|
This information center is powered by Eclipse technology. (http://www.eclipse.org)