Installing and Building Your SourcePro® C++ Products : Chapter 1 Introduction : Features
Features
RCB is a sophisticated tool that lets you manage builds, work with multiple buildspecs and multiple buildspaces, and reuse data. This section describes the features that RCB provides.
Wizard-Like Interface
RCB has a straightforward yet flexible wizard-like interface. By answering a sequence of questions, you create a buildspec containing everything the build manager needs to know to build the selected components in the given configuration.
At any point in the process, you can jump back to earlier questions and make changes. RCB instantly adjusts the buildspec sequence to conform to the new requirements.
Built-In Intelligence
RCB’s behavior is grounded in an XML-based repository containing detailed information about Rogue Wave components and their build requirements. Access to this information allows RCB to behave intelligently in some important ways:
RCB understands inter-component dependencies and can therefore guarantee that the component set you are building contains all required components.
RCB knows the exact parameter set that must be defined to build a given set of components, and so presents only pertinent questions. In addition, if a given parameter has an enumerated value set, RCB knows which of the enumerated values are valid for the given build and allows only those choices, greying out the other values.
RCB can automatically answer some questions based on previous answers. This streamlines the buildspec creation process.
Understanding Your Environment
At the beginning of a build, the RCB build manager runs a series of characterization tests to determine the capabilities of your compiler environment. It uses the resulting data to further fine-tune the buildspec to your system’s requirements.
The build manager also acts intelligently. It runs only the tests needed by the set of components you build. These tests optimize the build process.
Selectable Component Set
RCB allows you to select just the components you want to build. For instance, in a large example set, where only a few examples might be relevant, you can select just those examples you want.
As described in “Built-In Intelligence”, RCB’s awareness of product dependencies guards against selecting an incomplete component set.
Sequential Multiple Builds
You can loop through the RCB wizard to create any number of buildspecs. When you finish creating a buildspec, it is placed in a build queue. At that point, you have the choice of building the components (by running the buildspecs that are in the queue), or creating more buildspecs. buildspecs in the queue are processed consecutively.
You can reuse a buildspec, either as a starting point for creating a different specification, or by adding an existing buildspec to the build queue if you need to rebuild. For more information on build specifications, see Chapter 3, “Buildspec Details.”
Single, Multipurpose Buildspace
All RCB activities center around a Rogue Wave buildspace. The installation scripts install your Rogue Wave components in a buildspace of your choosing. The RCB build manager performs builds of the components in this same space. You can establish more than one buildspace and export buildspaces.
RCB can run any number of buildspecs within the same buildspace. The build data, log files, and results of different buildspecs coexist within a fairly simple, easy-to-navigate directory structure.
Chapter 3, “Buildspec Details,” and Chapter 4, “Working with Buildspaces,” provide more detailed information on build specifications and buildspaces.
Three Selectable Build Activities
You can attach one of three build options to a buildspec:
Build all selected components.
Stop after generating makefiles. This option supports command line builds and fine control of the build process through hand editing of makefiles before running make.
Create makefiles and build libraries. This option produces makefiles for the libraries and examples, but only builds the libraries. You can then build the examples on your own by typing make in the appropriate directory.
Command Line Interface
RCB provides a command-line interface that allows you to execute an existing buildspec from the command line. Buildspecs executed from the command line are built more quickly than those executed through the GUI.
For more information, see “Executing a Buildspec from the Command Line.”
Flexible Naming Conventions
RCB provides a choice of three naming conventions for indicating the build configuration of a built component:
The classic Software Parts Manager (SPM) build tags, which provide compatibility with pre-RCB builds of Rogue Wave components.
Simple RCB build tags, which are concise, single-letter build tags for indicating build options.
Verbose RCB build tags, which are build tags with long, but easy-to-read, sequences for indicating build options.
You can also specify an additional “user tag” to be added to the build tag generated by any of the naming conventions; for example, rms_solaris, where rms is the build tag and solaris is the user tag.
The naming conventions are described in “Select Naming Convention.”
Reusable Data for Building Applications
Each RCB build creates a number of resources to help you build applications that depend on SourcePro C++ components:
A build-specific header file correctly defines all Rogue Wave command line and internal macros required by the SourcePro C++ component. This header file can be included in your application build by defining a single command line macro, D_RWCONFIG=buildtype.
The makefile generated by a build can serve as a starting point for creating the makefile for your application.
The log file for a build tells you which system compiler flags are required for the given build configuration.
For more information, see Rogue Wave Component Builder (RCB): Building Your Applications, listed in “Resources”.
Information Exchange Capabilities
Customers can send specific build information back to Rogue Wave via the Platform Information Exchange. The transmitted information includes:
Operating system and compiler choices
Database and standard library choices
Debugging and threading options
Number of RCB users at a host company
The Platform Information Exchange will not send sensitive information to Rogue Wave. The only information transmitted is non-sensitive build content which pertains only to a build that was just completed.
Rogue Wave uses this buildspec information to better understand its customers’ needs. The analysis ensures the continued certification of Rogue Wave products on the various systems used by its customers. Active product combinations influence the priority given to elements in the Support Matrix.