A build options specification (BOS) file is a text file that contains macro definitions and/or ClearCase special targets. Place temporary macros (such as CFLAGS=–g (UNIX and Linux) or CFLAGS=/Zi (Windows) and others that you do not want to include in a makefile permanently) in a BOS file, rather than specifying them on the clearmake command line.
By default, clearmake reads BOS files in this order:
If you specify –N, clearmake does not read default BOS files.
clearmake displays the names of the BOS files it reads if you specify the –v or –d option, or if CCASE_VERBOSITY is set to 1.
The following sections describe the various kinds of BOS file entries.
A target-dependent macro definition takes this form:
Any standard macro definition can follow the := operator; the definition takes effect only when targets in target-list and their dependencies are processed. Targets in the target-list must be separated by white space. For example:
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 that clearmake considered building (whether or not clearmake actually built it).
You can use the following ClearCase special targets in a build options spec:
.DEPENDENCY_IGNORED_FOR_REUSE
.INCREMENTAL_REPOSITORY_SIBLING
.INCREMENTAL_TARGET
.NO_CMP_NON_MF_DEPS
.NO_CMP_SCRIPT
.NO_CONFIG_REC
.NO_DO_FOR_SIBLING
.NO_WINK_IN
.SIBLING_IGNORED_FOR_REUSE
.SIBLINGS_AFFECT_REUSE
On UNIX and Linux only, you can also use
For descriptions of these targets, see the makefile_ccase reference page.
By default, the order of precedence of macros and environment variables is as follows:
For example, target-dependent macro definitions override all other macro definitions, and macros specified on the clearmake command line override those set in a BOS file.
If you use the –e option to clearmake, environment variables override macro definitions in the makefile.
All BOS file macros (except those overridden on the command line) are placed in the build script's environment. If a build script recursively invokes clearmake: