NMAKE メイクファイルの内容と機能
メイクファイルには次のものが含まれます。
サンプルについては、「サンプル メイクファイル」を参照してください。
NMAKE では、ワイルドカード、長いファイル名、コメント、特殊文字のエスケープなど、その他の機能もサポートされています。
ワイルドカードと NMAKE
NMAKE では、依存関係の行のファイル名のワイルドカード (*
と ?
) が展開されます。 コマンドに指定されたワイルドカードはコマンドに渡されます。NMAKE では拡張されません。
メイクファイルでの長いファイル名
次のように、長いファイル名を二重引用符で囲みます。
all : "VeryLongFileName.exe"
メイクファイルのコメント
コメントの前に番号記号 (#
) を付けます。 NMAKE では、番号記号から次の改行文字までのテキストが無視されます。
例 :
# Comment on line by itself
OPTIONS = /MAP # Comment on macro definition line
all.exe : one.obj two.obj # Comment on dependency line
link one.obj two.obj
# Comment in commands block
# copy *.obj \objects # Command turned into comment
copy one.exe \release
.obj.exe: # Comment on inference rule line
link $<
my.exe : my.obj ; link my.obj # Err: cannot comment this
# Error: # must be the first character
.obj.exe: ; link $< # Error: cannot comment this
リテラルの番号記号を指定するには、次のようにキャレット (^
) を前に付けます。
DEF = ^#define #Macro for a C preprocessing directive
メイクファイルの特殊文字
NMAKE の特殊文字をリテラル文字として使用するには、その前にエスケープとしてキャレット (^
) を付けます。 NMAKE では、他の文字の前にあるキャレットが無視されます。 特殊文字は次のとおりです。
: ; # ( ) $ ^ \ { } ! @ —
引用符で囲まれた文字列内のキャレット (^
) は、リテラルのキャレット文字として扱われます。 行末にあるキャレットでは、リテラルの改行文字が文字列またはマクロに挿入されます。
マクロでは、円記号 (\
) の後に改行文字が続くと、スペースで置き換えられます。
コマンドでは、パーセント記号 (%
) はファイル指定子です。 コマンドでリテラルの %
を表すには、1 つではなく 2 つのパーセント記号 (%%
) を指定します。 その他の状況では、NMAKE は 1 つの %
をリテラルに解釈しますが、2 つの %%
は常に 1 つの %
として解釈します。 したがって、リテラルの %%
を表すには、3 つのパーセント記号 (%%%
) を指定するか、4 つのパーセント記号 (%%%%
) を指定します。
コマンドでドル記号 ($
) をリテラル文字として使用するには、2 つのドル記号 ($$
) を指定します。 この方法は、^$
が機能する他の状況でも使用できます。