Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNext file
Installing and Building Your SourcePro C++ Products
Rogue Wave web site:  Home Page  |  Main Documentation Page

3.5 General Buildspec Questions

Two question types exist in RCB: general and module-specific. Whenever you create a buildspec, you must always answer the general questions. Module-specific questions depend on the modules selected on the Select Components screen.

The following sections explain the general and module-specific questions you may encounter while creating a buildspec. Section 3.5 explains general buildspec questions. Section 3.6 explains module-specific questions.

The descriptions assume that the default option Restrict available answers to support matrix is turned on, as explained in Section 3.4.4.

3.5.1 Select Buildspec

You must specify whether you want to create a new buildspec file or edit an existing buildspec file. If there are no buildspec files available to RCB, you can only create a new buildspec file.

Three options are available:

If you have never created a buildspec, you must choose Create a new buildspec from scratch. If previously created buildspecs are available to RCB, you can choose to edit those buildspecs or go directly to the Build Queue screen.

3.5.2 Select Buildspace

A buildspace is the location where SourcePro components are installed and buildspecs are stored. RCB provides two buildspace options: local and export. This section explains local and export buildspaces. Additional information on buildspaces is in Chapter 4.

In RCB, you must specify the Local buildspace, the directory that contains all the Rogue Wave components used in the creation of the buildspec. The results of executed buildspecs are also placed here unless otherwise stated. Optionally, you can select an Export Buildspace, a separate location where you want the executed buildspecs to be stored.


RCB does not support symbolic links. If you use symbolic links, you are likely to see this error message when you submit a buildspec: "Unable to verify Buildspace is properly homed." This means RCB cannot verify that the buildspec being processed is correctly located in the buildspace it specifies, a consequence of RCB being unable to follow the symbolic link. RCB then aborts the build.

3.5.2.1 Local Buildspace

The local buildspace must be a directory into which the installation scripts have installed Rogue Wave components. RCB will not accept other selections.

The choice you make determines

3.5.2.2 Copying Buildspecs

Running the RCB GUI across a network can be slow. Also, certain combinations of Java Virtual Machine implementations and display environments do not seam together well, sometimes yielding bugs in the GUI rendering process.

RCB allows a buildspec file to be created on one RCB installation and then executed on another. This allows you to work around the GUI rendering problems.

You can copy a local build or an export build. An example of each is listed below. For the purposes of the example, two definitions must be defined:

Local Installation: The on site installation of RCB, preferably displayed on the same machine it is being run on.

Remote Installation: The installation of RCB in which builds need to be executed.

Copying Local Buildspecs

This example assumes that you are working on a Windows platform.

Copying Export Buildspecs

This example assumes that you are working on a Windows platform.

3.5.2.3 Export Buildspace

To place the build results in a buildspace different than the local buildspace, click Export the build and specify a path in Export buildspace field. This is the buildspace where buildspec results will be placed from now on.

If you choose to export the build, all of the resources needed for the build — buildspec, source code, component data — are still taken from the local buildspace, but the build results — compiled components, object files and makefiles — are placed in the specified export buildspace. By default, RCB also copies the header files to the export buildspace. If you select Headers and source from the Copy these files pulldown menu, the source code is copied as well.

If you select a preexisting location as the export buildspace, and that location already contains Rogue Wave source code, RCB forces Headers and Source to be selected in the Copy these files pulldown menu. This requirement prevents a situation where the source code in a buildspace is not the same code used to create the built components in that buildspace. Likewise, you cannot export into an existing export buildspace that was created from a different source buildspace.

3.5.3 Select Components

In RCB, the components you can build are listed in a tree structure with clickable boxes. Components that can be installed include products, modules, libraries, and examples. To select a component for installation, click the box beside it to create a check mark. At build time, makefiles are created for all components with check marks beside them.

3.5.3.1 Dependency Checking

RCB checks that all dependent components are installed before continuing with the buildspec question sequence. A popup screen appears to inform you of the additional necessary components.

Dependency checking requires that all needed components be checked, even if you have installed and built some of these components previously.

RCB arrives at this decision based on its detailed knowledge of Rogue Wave components and their requirements. If previously built components are safe to use, RCB will use these components. If there is a risk of compatibility problems with the selected component, it will rebuild that component.

3.5.4 Select Build Action

When you have selected the components that you want to build, select the build action to be followed by the build manager when processing the buildspec.

Three choices are available:

3.5.5 Select Operating System

The drop-down list of operating systems makes available only those systems for which all selected components have been certified. If your operating system does not appear on the list or is greyed out, go back to the component selection screen and check the selected components against the Rogue Wave support matrix. The support matrix is available from your account representative and in your CD release notes.

If all selected components appear to be certified but the operating system is still not available, please contact Rogue Wave Technical Services as explained in Section 1.9, "Technical Support," in the Introduction to SourcePro C++.

3.5.6 Select Compiler

The drop-down list of compiler versions contains only those compilers for which all selected components have been certified. If your compiler version does not appear on the list, go back to the component selection screen and check the selected components against the Rogue Wave support matrix. The support matrix is available from your account representative and in your CD release notes.

If all selected components appear to have been certified but the compiler is still not available, please contact Rogue Wave Technical Services as explained in Section 1.9, "Technical Support," in the Introduction to SourcePro C++.

3.5.7 Select Bitwidth

This option allows you to select whether the libraries and executables resulting from the build are compatible with 32-bit or 64-bit systems. The default value is 32-bit. If only a single choice is available, it is because the platform supports only that choice.

3.5.8 Select Linking

The choices are static and dynamic (also known as shared or DLL). If only a single choice is available, it is because your response to an earlier question either requires or forbids dynamic linking.

3.5.9 Select Threading

If you choose None, a single-threaded build is created. The other choices available depend on the threading libraries supported by your choice of operating system (for example, Windows supports only Win32, but Solaris supports posix, and solaris threads).

If None is missing or the only choice, it is because a response to an earlier question either requires or forbids multithreading.

3.5.10 Select Debugging

Selecting No indicates you do not want debugging enabled. Disabling debugging signals the creation of a release version of the component. In this case, the compiler's default level of optimization is enabled. Selecting Yes indicates you want debugging enabled.

If only one choice is available, it is because your response to some earlier question either requires or forbids debugging.

3.5.11 C++ Standard Library Selection Screen

This screen appears only if you have selected one of the Solaris operating systems, in which case it follows the Debugging Options screen.

Two choices are available:

3.5.12 Select Compile and Link Options

Specify the compile and link options that you want to use. Options can be added to the compile, link, and library creation command lines. In each case, you can add your options either before or after the options specified by the RCB build manager.


This is an advanced question that is only visible when the Show advanced questions box is selected on the Options dialog's Advanced Questions tab.

If any of your options conflict with those specified by the build manager, the location of options specified on this screen determines which specification takes precedence. Order of precedence is compiler-specific. Consult your compiler documentation to determine how your compiler behaves.

3.5.13 Select Naming Convention

These questions determine the string that is used in the built component names to indicate the build type. For example, in the library name tls12s.lib, the build tag part is 12s.

When you select a convention, the Build tag and Description fields are filled in automatically based on answers to previous questions. The User-defined tag field allows you to add your own identifier to the component name.


The build tag also determines the buildspec name; that is, a build tag of 12s creates a buildspec of the name 12s.bsf. If your buildspace already contains a buildspec for the configuration you are defining, the new buildspec will overwrite the existing one unless you specify a different naming convention or supply a user-defined tag.

The easiest solution is to define a user-defined tag, which becomes part of the buildspec name, making it different from the existing one. For example, the user-defined tag "_solaris" would change the buildspec name 12s.bsf to 12s_solaris.bsf, thus preserving the existing buildspec.

3.5.13.1 Naming Conventions

The Select a naming convention drop-down menu offers three choices. Table 2 summarizes the types of build tags each choice generates.

Table 3: RCB component naming conventions

Convention Description
SPM Tags used by Software Parts Manager (SPM), such as the 12s tag shown above. This choice is provided for backwards compatibility so you can produce components through RCB with the same naming conventions as those produced through SPM.
RCB A system of one-letter codes to indicate certain build options. The advantage is concise component names, but a drawback is the need to remember the codes. The codes are explained in Table 4.
Verbose RCB A long but clear sequence of strings, delimited by underscores, for indicating a component's build characteristics.

Table 4 lists the codes used in the RCB convention.

Table 4: Codes used in the abbreviated RCB build tag convention

Code Meaning
s
no code
Using STLPort on Solaris platforms
Using the compiler's native standard library
m
no code
Multithreaded build
Single-threaded build
s
no code
Static binding
Dynamic binding (also called shared or DLL)
d
no code
Debugging build
Release build

Note that there is some ambiguity due to the use of 's' to denote either static builds or the use of STLPort on Solaris. However, in practice the chance for confusion is minimal. Solaris is the only platform where the ambiguity might occur, and even there the library extension should disambiguate whether a lone 's' in the library name stands for a static build (.a extension) or the use of STLPort (.so extension).

3.5.13.2 Build Tags

Table 5 summarizes the build tags created by the different conventions.

Table 5: Summary of build tags

Build Options Build Tags
Dynamic Threads Debug RCB1 Verbose RCB2 SPM
N N N s _NativeStdLib
_NoThrLib_Static_Release
8s
Y N N no tag _NativeStdLib
_NoThrLib_Dynamic_Release
8d
N N Y sd _NativeStdLib
_NoThrLib_Static_Debug
11s
Y N Y d _NativeStdLib
_NoThrLib_Dynamic_Debug
11d
N Y N ms _NativeStdLib
_Win32ThrLib_Static_Release
12s
Y Y N m _NativeStdLib
_Win32ThrLib_Dynamic_Release
12d
N Y Y msd _NativeStdLib
_Win32ThrLib_Static_Debug
15s
Y Y Y md _NativeStdLib
_Win32ThrLib_Dynamic_Debug
15d
  1. The values for the RCB convention assume use of the native standard library. On Solaris platforms, the option to use STLPort exists, and also results in an 's' tag. Thus you could even end up with a library name having two 's' tags. A static, single-threaded build of Essential Tools using STLPort would result in the library name tls<ver>-ss.so.
  2. The Verbose RCB examples are based on a Windows installation, so the ones with threading enabled have _Win32ThrLib. On other systems, different threading tags are generated. One tag on most UNIX systems, for example, is _PosixThrLib. If STLPort is used on Solaris platforms, the tag _NativeStdLib would change to _STLPortStdLib.

3.5.14 Select Clean Options

Clean options cause particular items, such as logs and object files, to be removed from the buildspace. You can specify either prebuild clean options, postbuild clean options, or both.

3.5.14.1 Prebuild Clean Options

The prebuild clean options are:

3.5.14.2 Postbuild Clean Options

The postbuild options available are:



Previous fileTop of DocumentContentsNo linkNext file

Copyright © Rogue Wave Software, Inc. All Rights Reserved.

The Rogue Wave name and logo, and SourcePro, are registered trademarks of Rogue Wave Software. All other trademarks are the property of their respective owners.
Provide feedback to Rogue Wave about its documentation.