5.6 BOS File Entries

The following sections describe the entries you can put in BOS files.

Standard Macro Definitions

A standard macro definition has the same form as a make macro defined in a makefile:

macro_name = string

For example:

CDEBUGFLAGS = /Zi

Target-Dependent Macro Definitions

A target-dependent macro definition takes this form:

target-pattern-list := macro_name = string

Any standard macro definition can follow the := operator; the definition takes effect only when targets matching patterns in target-pattern-list and their dependencies are processed. Patterns in the target-pattern-list must be separated by white space. For example:

foo.o bar.o := CDEBUGFLAGS=/Zi

Two or more higher-level targets can have a common dependency. If the targets have different target-dependent macro definitions, the dependency is built using the macros for the first higher-level target clearmake considered building (whether or not clearmake actually built it).

Shell Command Macro Definitions

A shell command macro definition replaces a macro name with the output of a shell command:

macro_name :sh = string

This defines the value of macro_name to be the output of string, any shell command. In command output, <NL> characters are replaced by <SPACE> characters. For example:

NT_VER :sh = VER

Special Targets

You can use some ClearCase special targets in a build options spec. See Special Targets for Use in Makefiles or BOS Files.

Include Directives

To include one BOS file in another, use the include or sinclude (silent include) directive. For example:

include \lib\aux.options

sinclude $(OPTS_DIR)\pm_build.options

Comments

A BOS file can contain comment lines, which begin with a number sign (#).