Building Software, Release 2002.05.00, Windows
1. ClearCase Build Concepts
1.1 Overview of the ClearCase Build Scheme
View Context Required
How Builds Work
Build Reference Time and Build Sessions
Exit Status
1.2 Dependency Tracking of MVFS and Non-MVFS Files
Automatic Detection of MVFS Dependencies
Tracking Non-MVFS Files
1.3 Derived Objects and Configuration Records
1.4 Build Avoidance
Hierarchical Builds
Automatic Dependency Detection
1.5 Express Builds
1.6 Build Auditing with clearaudit
1.7 Compatibility with Other make Programs
1.8 Parallel Building
The Parallel Build Procedure
2. Derived Objects and Configuration Records
2.1 Derived Objects Overview
Derived Object Naming
2.2 Configuration Records
Configuration Record Example
Contents of a Configuration Record
Header Section
MVFS Objects Section
Non-MVFS Objects Section
Variables and Options Section
Build Script Section
Configuration Record Hierarchies
Configuration Record Cache
2.3 Kinds of Derived Objects
Shareable DOs
Nonshareable DOs
Storage of Derived Objects
Promotion and Winkin
DO Versions
2.4 Reuse of DO-IDs
2.5 Derived Object Reference Counts
3. Pointers on Using ClearCase Build Tools
3.1 Running omake or clearmake
3.2 A Simple clearmake Build Scenario
3.3 Accommodating Build Avoidance
Increasing the Verbosity Level of a Build
Handling Temporary Changes in the Build Procedure
Specifying Build Options
Handling Targets Built in Multiple Ways
Using a Recursive Invocation of omake or clearmake
Optimizing Winkin by Avoiding Pseudotargets
Accommodating the Build Tool's Different Name
3.4 Declaring Source Dependencies in Makefiles
Source Dependencies Declared Explicitly
Explicit Dependencies on Searched-For Sources
3.5 Build-Order Dependencies
3.6 clearmake Build Script Execution and cmd.exe
3.7 Build Scripts and the rm Command
3.8 Pathnames in CRs
3.9 Problems with Forced Builds
3.10 How clearmake Interprets Double-Colon Rules
3.11 Continuing to Work During a Build
3.12 Using Config Spec Time Rules
Inappropriate Use of Time Rules
3.13 Build Sessions, Subsessions, and Hierarchical Builds
Subsessions
Versions Created During a Build Session
Coordinating Reference Times of Several Builds
Objects Written at More Than One Level
3.14 Build Auditing and Background Processes
3.15 Working with Incremental Update Tools
Example: Incremental Linking
Additional Incremental-Update Situations
3.16 Temporary Build Audit Files
3.17 Auditing 16-bit Tools
3.18 Adding a Version String or Time Stamp to an Executable
Implementing a -Ver Option
4. Working with Derived Objects and Configuration Records
4.1 Setting Correct Permissions for Derived Objects
4.2 Listing and Describing Derived Objects
Listing Derived Objects Created at a Certain Pathname
Listing a Derived Object's Kind
Displaying a DO's OID
Displaying a Description of a DO Version
4.3 Identifying the Views That Reference a Derived Object
Caching Unavailable Views
4.4 Specifying Views That Can Wink In Derived Objects
4.5 Specifying a Derived Object in Commands
4.6 Winking In a DO Manually
4.7 Preventing Winkin
Preventing Winkin to Your View
Preventing Winkin to Other Views
Using Express Builds to Prevent Winkin to Other Views
Enabling Express Builds
Configuring an Existing View for Express Builds
Creating a New View That Uses Express Builds
Preventing Winkin to or from Other Architectures
4.8 Converting Derived Objects to View-Private Files
4.9 Working with DO Versions
Creating DO Versions
Checking In DOs During a Build
Accessing DO Versions
Displaying Configuration Records for DO Versions
DOs in Unavailable Views
Releasing DOs
4.10 Converting Nonshareable DOs to Shared DOs
Automatic Conversion of Nonshareable DOs to Shareable DOs
4.11 Displaying VOB Disk Space Usage for Derived Objects
4.12 Deleting Derived Objects
Removing Data Containers for Derived Objects
Scrubbing Derived Objects and Data Containers
Degenerate Derived Objects
Data Container Deleted
DO Deleted from VOB Database
CR Unavailable
4.13 Displaying Contents of Configuration Records
4.14 Comparing Configuration Records
4.15 Attaching Labels or Attributes to Versions in a CR
4.16 Configuring a View to Select Versions Used to Build a DO
4.17 Including a Makefile Version in a Configuration Record
5. clearmake Makefiles and BOS Files
5.1 Makefile Overview
5.2 Build Options Specification Files
5.3 Format of Makefiles
Restrictions
Libraries
Command Echoing and Error Handling
Built-In Rules
Include Files
Macros
Order of Precedence of Make Macros and Environment Variables
Make Macros
Internal Macros
VPATH Macro
Special Targets
Special Targets for Use in Makefiles
Special Targets for Use in Makefiles or BOS Files
5.4 Sharing Makefiles Between UNIX and Windows
5.5 Using Makefiles on Windows
Case-Sensitivity Guidelines
Build Macros and Case-Sensitivity
Makefile Target/Dependency Pathnames
Supporting Both omake and clearmake
Using UNIX-Style Command Shells in Makefiles
5.6 BOS File Entries
Standard Macro Definitions
Target-Dependent Macro Definitions
Shell Command Macro Definitions
Special Targets
Include Directives
Comments
5.7 SHELL Environment Variable
5.8 CCASE_BRANCH0_REUSE Environment Variable
6. Using clearmake Compatibility Modes
7. Using ClearCase to Build C++ Programs
7.1 Using clearmake or omake Instead of Other make Programs
7.2 Using Visual C++ with ClearCase
omake
clearmake
Incremental Repositories in Visual C++
Alternative: Using C7 Compatible Debug Information
Using vcmake.mak to Prevent Reuse Mismatches
Browser Files
Using the winkin Command
8. Using ClearCase Build Tools with Java
8.1 ClearCase Build Problems with Java
Java Toolkits
Scope of the Problems
8.2 Benefits of Using make Tools with javac
Using javac Inside a Makefile
Using javac with clearmake or omake Instead of make
8.3 Unnecessary Rebuilds and Prevention of Winkin
8.4 Building Java Applications Successfully
Writing Correct Makefiles
No Mutually Dependent Files
Mutually Dependent Files
Allowing Rebuilds
Configuring Makefiles to Behave Like make
8.5 Java Compilers and Case-Sensitivity Issues
9. Setting Up a Parallel Build
9.1 Overview of Parallel Building
Parallel Build Scheduler
9.2 Setting Up the Client Host
9.3 Starting a Parallel Build
9.4 Preventing Parallel Builds of Targets
9.5 Preventing Exponential Invocations of abe