NMAKE32 provides directives that:

Each of these directives controls description file processing, rather than target processing. Read-time directives should begin with an exclamation point (!) and must start in column one. Run-time directives must be preceded by one or more spaces and must start with a percent sign (%). Spaces may exist between the conditional character and the rest of the line. For example, "! if expression" is the same as "!if expression".

The list below describes the directives:

Note: This table shows directives defined using an exclamation point.

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿³Directive syntax              ³Usage                         ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³!if expression                ³Processes the statements      ³
³                              ³between the !if keyword and   ³
³                              ³the next !else, !elif, or     ³
³                              ³!endif directive if expression³
³                              ³evaluates to a non-zero value ³
³                              ³(TRUE). Otherwise, the lines  ³
³                              ³are ignored.                  ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³!else                         ³Processes the statements      ³
³                              ³between the !else and the     ³
³                              ³!elif or !endif directive if  ³
³                              ³the preceeding !if, !elif,    ³
³                              ³!ifdef, or !ifndef expression ³
³                              ³evaluated to zero (FALSE).    ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³!elif expression              ³Is identical to !else         ³
³                              ³processing except that the    ³
³                              ³lines which follow are        ³
³                              ³processed only if the new     ³
³                              ³expression evaluates to a     ³
³                              ³non-zero value.               ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ !elseif expression           ³Is a synonym for !elif        ³
³                              ³expression.                   ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³!endif                        ³Marks the end of a !if,       ³
³                              ³!ifdef, or !ifndef block of   ³
³                              ³statements.                   ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³!foreach var [in] word_list   ³Processes all statements up   ³
³                              ³through the ending !endfor    ³
³                              ³once for each word in         ³
³                              ³word_list. During each        ³
³                              ³iteration the variable var    ³
³                              ³will be set to the            ³
³                              ³corresponding word from the   ³
³                              ³list. This macro can be       ³
³                              ³referenced as any other macro ³
³                              ³would be referenced, via      ³
³                              ³$(var). After all iterations  ³
³                              ³are complete, the macro will  ³
³                              ³retain the last value.        ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³!endfor                       ³Marks the end of a !foreach   ³
³                              ³block of statements.          ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³!ifdef macro                  ³Is identical to !if           ³
³                              ³processing, except that the   ³
³                              ³statements which follow are   ³
³                              ³processed only if the macro   ³
³                              ³variable is currently defined.³
³                              ³Note that variables defined to³
³                              ³be the null string are still  ³
³                              ³considered to be defined for  ³
³                              ³!ifdef processing. For        ³
³                              ³compatibility with previous   ³
³                              ³versions of MAKE, the form    ³
³                              ³!ifdef $(macro) is still      ³
³                              ³supported.                    ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³!ifndef macro                 ³Is identical to !ifdef        ³
³                              ³processing, except that the   ³
³                              ³lines which follow are        ³
³                              ³processed only if the macro   ³
³                              ³variable is not currently     ³
³                              ³defined. Note that variables  ³
³                              ³defined to be the null string ³
³                              ³are still considered to be    ³
³                              ³defined for !ifndef           ³
³                              ³processing.                   ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³!undef macro                  ³Undefines a previously defined³
³                              ³macro. Subsequent references  ³
³                              ³to $(macro) will return an    ³
³                              ³empty string, and !ifdef macro³
³                              ³will evaluate to zero.        ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³!error text                   ³Prints out text (macros are   ³
³                              ³expanded) and then immediately³
³                              ³terminates NMAKE32 with a     ³
³                              ³return code of 1.             ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³!include [<filename>]         ³Reads and evaluates the file  ³
³                              ³filename before continuing    ³
³                              ³with the current description  ³
³                              ³file. If filename is enclosed ³
³                              ³by angle brackets (<>),       ³
³                              ³NMAKE32 searches for the file ³
³                              ³in the directories specified  ³
³                              ³by the INCLUDE macro;         ³
³                              ³otherwise, it looks only in   ³
³                              ³the directory specified. The  ³
³                              ³INCLUDE macro is initially set³
³                              ³to the value of the INCLUDE   ³
³                              ³environment variable.         ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³!tryinclude [<filename>]      ³Similar to !include, except if³
³                              ³the file does not exist,      ³
³                              ³NMAKE32 will ignore the error ³
³                              ³and continue.                 ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³!cmdswitches {+|-}<opt>       ³Turns on or off one of four   ³
³                              ³NMAKE32 options: /D, /I, /N,  ³
³                              ³and /S. If no options are     ³
³                              ³specified, the options are    ³
³                              ³reset to the values they had  ³
³                              ³when NMAKE32 was started. To  ³
³                              ³turn an option on, precede it ³
³                              ³with a plus sign (+); to turn ³
³                              ³it off precede it with a minus³
³                              ³sign (-). This directive      ³
³                              ³updates the MAKEFLAGS macro.  ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ


[Back] [Next]