Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
A makefile contains:
For a sample, see Sample makefile.
NMAKE supports other features, such as wildcards, long filenames, comments, and escapes for special characters.
Wildcards and NMAKE
NMAKE expands filename wildcards (* and ?) in dependency lines. A wildcard specified in a command is passed to the command; NMAKE doesn't expand it.
Long filenames in a makefile
Enclose long filenames in double quotation marks, as follows:
all : "VeryLongFileName.exe"
Comments in a makefile
Precede a comment with a number sign (#). NMAKE ignores text from the number sign to the next newline character.
Examples:
# 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
To specify a literal number sign, precede it with a caret (^), as follows:
DEF = ^#define #Macro for a C preprocessing directive
Special characters in a makefile
To use an NMAKE special character as a literal character, place a caret (^) in front of it as an escape. NMAKE ignores carets that precede other characters. The special characters are:
: ; # ( ) $ ^ \ { } ! @ —
A caret (^) within a quoted string is treated as a literal caret character. A caret at the end of a line inserts a literal newline character in a string or macro.
In macros, a backslash (\) followed by a newline character is replaced by a space.
In commands, a percent symbol (%) is a file specifier. To represent % literally in a command, specify a double percent sign (%%) in place of a single one. In other situations, NMAKE interprets a single % literally, but it always interprets a double %% as a single %. Therefore, to represent a literal %%, specify either three percent signs, %%%, or four percent signs, %%%%.
To use the dollar sign ($) as a literal character in a command, specify two dollar signs ($$). This method can also be used in other situations where ^$ works.