Glossary

attributes

Properties that can be associated with targets. They include .MAKE, .REREAD, .SILENT and others.
base name

A file name without any directory components or extension.
build

To bring a target up to date (make it current).
build avoidance

The ability to fulfill a build request by using an existing derived object, instead of creating a new derived object by executing a build script.
build script

A command executed by omake or passed to the shell program for execution. Build scripts are used to update targets.
COMSPEC

This environment variable names the program that is the operating system command processor or shell program. For Windows NT, this is usually cmd.exe.
configuration lookup

The process by which omake determines whether to produce a derived object by performing a target rebuild (executing a build script) or by reusing an existing instance of the derived object. This involves comparing the configuration records of existing derived objects with the build configuration of the current view: its set of source versions, the current build script that would be executed, and the current build options.
default target

The first normal target defined in the first makefile. A normal target is not a directive, special target, attribute, or inference rule. It is the target that is made when omake is run without any command-line targets.
dependency

Anything a target depends on. Dependencies are themselves targets because they can be made.
dependency line

The line in a build script that indicates the dependence of a target on its dependencies. For example,

test.exe : main.obj sub.obj


declares that test.exe depends on main.obj and sub.obj.
directive

The instructions that control how omake proceeds. There are run-time directives and read-time directives, and some work both at read and run time. Directives are indicated by the appearance of either % or ! as the first non-white-space character on a makefile line, followed by the directive name. If the % (or !) is in the leftmost column of the makefile, the directive is interpreted at read time; otherwise, it is interpreted at run time.
directory separator

The character in a pathname that separates directory names and the file name. For Windows NT, the separator is either \ or /. omake uses either character as the directory separator.
dot directives

A read-time directive that modifies the operation of omake from the point at which it is encountered in the makefile.
exit status

A number returned by an executed program and testable by omake. At the command line, you can check the exit status of the last executed program by using the if errorlevel command.

By convention, programs return a zero exit status when they finish without error and nonzero when an error occurs.
explicit rule

A dependency line and build scripts that are used to make a target, in this form:

target : dependencies
build script
.
.
.

explicit dependency

A dependency declared in a dependency line. For example, def.h is an explicit dependency of main.obj in the following:

main.obj : def.h

extension

The suffix part of the file name, usually used to denote the type of file. The extension consists of the characters that follow the last period in the file name to the end of the name.
file name

The part of the pathname after the last directory separator.
header file

A file, containing source code, that is included into the body of a source file.
include file

See header file.
inference rule

A rule that generalizes the build process so that you do not have to specify how to build each target. For example, here is the built-in inference rule for making an .obj file from a .c file:

%.obj : %.c
$(CC) $(CFLAGS) -c $.SOURCE

inferred dependency

The dependency determined with an inference rule. For example, if main.obj is being built and the inference rule %.obj : %.c is used, main.c is an inferred dependency of main.obj.
INIT

An environment variable whose value is a semicolon-separated list of directory names. For example:

INIT = c:\home;c:\msc

keep working

An operating mode of omake. While updating a target, if an executed build script returns a nonzero exit status, omake stops updating this target immediately. Any other targets that depend on this target as a source are not updated. This mode maximizes the amount of safe making and is ideal for running unattended builds (for example, rebuilding a large project overnight).
macro

The association of a name and a value. The macro expansion of macro name returns the value. Macros are used at read time as a means of organizing names of files, compiler options, and so on. At run time, macros also allow you to refer to the current target being built.
makefile

A file from which omake reads its instructions. An initialization file is read first, followed by one or more makefiles. The initialization file holds instructions for all make programs and is used to customize the operation of omake. The makefile has instructions for a specific project.
module

A single file, such as a source or object file, that is combined with other files to build a project, such as an executable.
null string

A string with no characters.
PATH

The environment variable used to indicate the order in which directories are searched for executable files. For example, with a PATH of c:\bin;c:\utils, the program searches for executables in the current directory, in directory c:\bin, and in directory c:\utils in that order.
pathname

The location of a target or file on disk, including any directory components.
read time

The phase of omake in which it reads the makefiles.
read-time directive

A directive that appears in the makefile with the directive character % or ! in the leftmost column. Read-time directives are interpreted while the makefile is being read.
regular expression

A string of characters (some normal, some special) that allows the specification of a pattern to be matched.
recursion, recursive make

The act of calling a program (or function) from itself. The usual context is in the expression "call omake recursively." This means a running copy of omake uses a build script to call a second copy of omake. Recursive makes are often used for projects that are split into multiple directories.
response file

A text file used to hold long command lines. For many programs, the command-line option @file indicates that the program is to read its command line from the file response file.
root name

For a target, its pathname minus its file name extension. This pathname includes any directory components.
run time

The phase of omake when it builds targets.
run-time directive

A directive that appears as a target's build script (the directive character % or ! is indented from the leftmost column). Run-time directives are interpreted when the target's build scripts are executed.
shell line

See build script.
source

See dependency.
source file

A file containing source code that can be compiled into object code.
special target

A target whose name is of the form .NAME and that has special meaning to omake.
standard error/output

The two output streams (or file descriptors) that write to the console. Standard output is usually used to output general messages. Standard error is usually used to output error messages.
target

Something that can be made. A target is usually a file, such as a source, object, or executable. The target is said to exist if the file is present on disk.
target attribute

Properties assigned to targets.
time stamp

The time stamp of a target is the time and date that a target was last changed. It is usually the creation or modification time of the file, as stored by the operating system.
update (a target)

To execute a target's build scripts. This brings the target up to date.
up to date target

A target that is current; that is, it has been compiled, linked, and so on, and is newer than all its dependencies.
white space

One or more space or tab characters.
wildcard character

Characters used to match ambiguous part of a file name. Windows NT treats ? as a wildcard character that matches any single character and * as a wildcard character that matches any number of characters in a file name or file name extension.