1.3 Notes on Using omake

The ClearCase omake utility is based on Opus Config Builder 6.10, from OPUS Software, and is compatible with most of its makefiles. It has been extended to include the fundamental ClearCase build features. This section describes the ClearCase extensions and offers some basic usage guidelines. Other sources of help on omake:

For more information on the ClearCase build model, see Building Software and the clearmake reference page.

omake's Configuration Management Features

The features described here constitute the core of ClearCase build configuration management.

Configuration Lookup

ClearCase omake uses a build-avoidance scheme based on configuration lookup that is more sophisticated than the conventional make and Opus Make schemes, which are based on time stamps of built objects. For example, the omake build-avoidance scheme guarantees correct build behavior as C-language header files change, even if the header files are not listed as dependencies in the makefile. By default, omake uses configuration lookup when you are working in a view, and the target is located in the MVFS.

Derived Object Sharing

Developers working in different views can share the MVFS objects created by omake builds. See the clearmake reference page for details.

Configuration Record Creation

omake audits the build operations, generating software bill-of-materials records, called configuration records, that fully document a build. In the process, omake also performs automatic dependency detection. By default, configurations records are created whenever you run omake from a ClearCase view, and derived files are stored in the MVFS. See the clearmake and catcr reference pages for details.

Express Builds

You can use either omake or clearmake during an express build, which is a build that creates nonshareable derived objects. Express builds do not write DO information to the VOB, and therefore enhance site-wide performance because they do not block other users' access to the VOB. For more information on express builds, see Building Software.

Command-Line Options
Location of Temporary Files

The CCASE_AUDIT_TMPDIR environment variable controls the location of build audit temporary files. By default, these files are stored in the directory named by the TMP environment variable. If you do not set CCASE_AUDIT_TMPDIR, make sure that TMP is set to a valid temporary storage directory on a FAT, NTFS, or LAN Manager file system. Note that setting CCASE_AUDIT_TMPDIR to a location on a remote file system increases build times.

Non-MVFS Dependencies

omake supports local and remote non-MVFS dependencies:

Differences Between omake and Standard Make Tools

Running omake

Typically, you run omake from a view using the following procedure:

  1. Set a view context by assigning a drive to a view (with Tools > Map Network Drive in Windows Explorer or the net use command) and changing to that view:

  2. c:\> net use f: \\view\myview

    c:\> f:

    f:\>

  3. Change to the appropriate directory and run omake:

  4. f:\> cd myvob\src

    (\Q\myvob' is the VOB-tag)

    f:\myvob\src> omake options

    You are using a view context to prevent VOB pathnames from being dependent on the view the build occurs in. From f:, you (and your makefiles) can access versioned objects with non-view-extended, absolute VOB pathnames such as \vob2\src\main.c in either cleartool commands or standard operating system commands.

    If you work directly on M:, in view-extended namespace, full pathnames to VOB objects include a view-specific prefix, which can affect configuration lookup so as to prevent DO sharing between views.

Makefiles

There are several rules to follow when constructing, or converting, makefiles for use by omake on a Windows NT host.

Supporting Both omake and clearmake

It is possible, but not trivial, to prepare makefiles that can be used with either omake or clearmake. The general approach is to supply omake-specific macro definitions in the makefile, and to supply clearmake-specific macro overrides in a build options specification (BOS) file; clearmake reads the BOS file, but omake does not. When clearmake executes, it looks for macro definitions in two locations:

BOS files at other locations can be passed to clearmake with the -A option.

Parallel and Distributed Build Operations

Each omake build executes serially on the local Windows NT host. Parallel and distributed build operations are not available.

Build Scripts and the rm Command

It is common for a makefile to include a target whose build script invokes a command such as rm to delete files. Some Windows NT installations include rm commands that do not actually delete a file, but move it to a deleted directory instead. As a result, build script temporary files become sibling DOs of the targets. To avoid this problem, use a remove command-del, for example-that actually deletes files.

Pathnames in CRs

In a config record created on Windows NT, MVFS object pathnames begin with the VOB-tag and do not include view-tag prefixes. For example:

...
---------------------------- MVFS objects: ----------------------------
\proj1\include\cmsg.h@@\main\nt3\39 <22-Jul-94.17:49:53>
\proj1\lib\fsutl.h@@\main\12 <22-Jun-94.12:07:24>
...

Pathnames in this format can be cut and copied, and applied elsewhere as is, if you are on a drive assigned to a view (with Tools > Map Network Drive in Windows Explorer or the net use command).