Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNext file
Stingray Studio Getting Started Guide
Rogue Wave web site:  Home Page  |  Main Documentation Page

2.3 Building from the Command Line with nmake

When you build from Microsoft Visual Studio, Visual Studio invokes nmake against the product's .mak file as an external makefile, with a command line argument that reflects the library you want to build. In the <stingray-installdir>\Src directory, there are makefiles for each product by supported compiler version. For example, the file toolkit10.mak is for building Toolkit with the MSVC 10.0 compiler. In the corresponding solution file, Toolkit10.sln for the above example, you can look in the project settings to find the command line invocation used.

Each product's .mak file invokes a back-end make file named bldback##.mak, which performs the actual build. The bldback##.mak files are located per product in the <stingray-installdir>\Src\<StingrayProduct>\BkEndMak subdirectory. Both the .mak files and bldback##.mak files are affected by the Build Wizard.


Some issues have been discovered in building with nmake on Vista and Windows 7. Please refer to the release notes for up-to-date information on these issues.

2.3.1 Using nmake Directly

Here is the syntax for using the nmake command:

To build a particular library denoted by <Target>, where <Target> = <ProductAbbrev><BuildConfig>, or the values ansi, unicode, or all. See below for values of <ProductAbbrev> and <BuildConfig>. Build is 32-bit unless the optional macro is included, in which case it is 64-bit.

To build all library variants described below. Builds are 32-bit unless the optional macro is included, in which case it is 64-bit.

To remove all intermediary files created by the build.

The <ProductName> variable corresponds to the product name as found in each product's make file name, e.g., toolkit. Make files are located in <stingray-installdir>\Src.

The ## variable refers to one of the supported compiler versions as used in the make file names, which are 80, 90 or 10, corresponding to the MSVC 8.0, 9.0, and 10.0 compilers respectively.

The values for <ProductAbbrev> as used in the <Target> specification are two- or three-character abbreviations of the product names, as shown in Table 3 below.

Table 3: Product Abbreviations used in nmake targets

Product Abbreviation Product Name
oc Chart
oe Edit
og Grid
ot Toolkit
ov Views
sfl Stingray Foundation Library

Table 4 shows the different possible target specifications, and describes the resulting build.

Table 4: Build target specifications

Target specification Resulting build
<ProductAbbrev> MFC Lib, Stingray Lib, Release
<ProductAbbrev>d MFC Lib, Stingray Lib, Debug
<ProductAbbrev>a MFC DLL, Stingray Lib, Release
<ProductAbbrev>ad MFC DLL, Stingray Lib, Debug
<ProductAbbrev>as MFC DLL, Stingray DLL, Release
<ProductAbbrev>asd MFC DLL, Stingray DLL, Debug
<ProductAbbrev>u MFC Lib, Stingray Lib, Unicode, Release
<ProductAbbrev>ud MFC Lib, Stingray Lib, Unicode, Debug
<ProductAbbrev>au MFC DLL, Stingray Lib, Unicode, Release
<ProductAbbrev>aud MFC DLL, Stingray Lib, Unicode, Debug
<ProductAbbrev>asu MFC DLL, Stingray DLL, Unicode, Release
<ProductAbbrev>asud MFC DLL, Stingray DLL, Unicode, Debug
ansi All ANSI (non-Unicode) build variants
unicode All Unicode build variants
all All ANSI and Unicode build variants

2.3.2 Compiling with 1-Byte Structure Alignment

The Stingray Studio product libraries are compiled using the default 8-byte structure alignment flag by default. If your application requires another alignment, such as 1-byte, you need to recompile the Stingray Studio product libraries to match it.

For a given library, you need to open the back-end make file, described above. So, for example, <stingray-installdir>\Src\Toolkit\BkEndMak\bldback10 if you want to build Toolkit with the MSVC 10.0 compiler. In this file, you will find an entry something like this:

To build with 1-byte structure alignment, add the flag /Zp1 to this set of flags:

2.3.3 Cleaning Generated Object Files

The intermediary object files that are produced from the Stingray Studio product libraries can appropriate significant disk space on your computer. After building the libraries, we recommend deleting these object files to reclaim the space on your hard drive. The pattern for the location of generated object files is:

For example, the build objects for Toolkit built with the MSVC 10.0 compiler would be something like:



Previous fileTop of DocumentContentsNo linkNext file

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

The Rogue Wave name and logo, and Stingray, 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.