C.1 Macros

This section describes general macros, state macros, and built-in macros.

Predefined General Macros

Table 21 lists predefined general macros; these macros cannot be redefined.

Table 21 General Macros


Predefined Macro

Value

.NEWSOURCES


The list of target dependencies newer than the target; all dependencies when configuration lookup is enabled and the target is not marked as .INCREMENTAL_TARGET


.SOURCE


The inferred dependency or, if none, the first explicit dependency


.SOURCES


The complete list of dependencies for a target


.TARGET


The name of the target being made


.TARGETROOT


The root name of the target being made


BUILTINS


The pathname of the built-ins file


CWD


The current working directory (the directory in which omake starts)


FIRSTTARGET


The first command-line target or the first makefile target


INPUTFILE


The current makefile being processed


MAKEARGS


All command-line arguments


MAKEDIR


The directory in which omake starts (same as CWD)


MAKEMACROS


All command-line macros


MAKESTATUS


The exit status with which omake exits


MAKETARGETS


All command-line targets


MAKEVERSION


The version of this omake executable


status


The exit status of the last build script executed

Predefined State Macros

These predefined macros return the state of omake's command-line flags and directives. In Table 22, when yes appears in the Directive column, the value of the named macro is the state of the like-named directive. The Flag column shows the command-line flag that is the equivalent of the directive (if any).

NOTE: .ALWAYS, .IGNORE, and .SILENT are actually target attributes. They look like directives when they appear on the target side of a dependency line without any dependencies. Nevertheless, the .ALWAYS, .IGNORE, and .SILENT macros have the correct value, as if these attributes were directives.

Table 22 State Macros


State Macro

Directive

Flag

Macro Value

.ALWAYS


Yes


-a


0 or 1


.CASE_MACRO


Yes



0 or 1


.CASE_TARGET


Yes



0 or 1


.DEBUG


Yes


-#


The current debug options


.DEBUG_PRINT


Yes


-p


0 or 1


.DEBUG_RUN


Yes


-d


0 or 1


.ENV_OVERRIDE


Yes


-e


0 or 1


.ENVMACROS


Yes



0 or 1


.GLOBAL_PATH


Yes



0 or 1


.IGNORE


Yes


-i


0 or 1


.IGNORE_MFLAGS



-z


0 or 1


.KEEPDIR


Yes


-D


0 or 1


.KEEPWORKING


Yes


-k


0 or 1


.MAKE_MAKEFILE


Yes


-M


0 or 1


.MS_NMAKE


Yes 1


-EN


0 or 1


.OMAKE


Yes 1


-EO


0 or 1


.OPUS_52X


Yes


-E2


The list of compatibility features


.POLY_MAKE


Yes 1


-EP


0 or 1


.REGEX_BACK




The regex literal backslash


.REGEX_CHAR


Yes



The regex escape character


.REGEX_DOT




The regex literal dot


.REGEX_WILD


Yes



The regex "match any character"


.REJECT_RULES


Yes


-r


0 or 1


.RULE_CHAR


Yes



The rule character


.SHELL


Yes



The shell program and shell flags


.SILENT


Yes


-s


0 or 1


.SUFFIXES


Yes



The list of suffixes


.UNIXPATHS


Yes



0 or 1


1. Exactly one of $(.MS_NMAKE), $(.OMAKE), or $(.POLY_MAKE) is 1.


Built-In Macros

Table 23 lists macros that are defined by omake, but can be changed.

Table 23 Built-In Macros


Built-In Macro

Definition

Default Value

AS


Assembler


masm


CC


C compiler


cl


FC


FORTRAN compiler


f77l


IMPLIB


Windows NT object librarian


lib


LINK


Object linker


link


MAKE


Pathname to command-line name



MAKEFILE


First makefile read



OS


The operating system


NT


RC


Resource compiler program


rc


SHELLCOMMANDS


List of internal shell commands


Not predefined