Software Parts Manager Builds on Unsupported/Non-GUI platforms

Article ID: 1039
Last updated: 05 Feb, 2008
Article ID: 1039
Last updated: 05 Feb, 2008
Revision: 1
Views: 3360
Posted: 05 Aug, 1997
by Dean J.
Updated: 05 Feb, 2008
by Dean J.
Problem


How do I build my Rogue Wave software products on a unsupported or non-GUI based system?


Cause


There are several reasons users cannot run the Software Parts Manager(SPM):
  1. You have an unsupported platform and the machine code associated with a particular compilation of the SPM will not run on your machine
  2. You are not able to run a GUI such as X-Windows, even on a supported platform.
In cases such as these, you must perform a command line build of the product. A successful command line build requires four steps:
  1. You must have already installed the SPM (even though the GUI will not run on your system)
  2. You must have received your RogueWave software parts either on floppy or you must have downloaded them from the web -- you cannot access the individual products from the CD.
  3. You must delete several files out of the SPM installation.
  4. You must run the rwspm script to build your library.
The following process may be used for both Windows and Unix based systems. The process is not exactly the same, but they are very similar. For instance the products are distributed as .zip instead of .tar files.


Action


1. Installing the SPM

Why install the SPM if you cannot execute it? The SPM ships with several shell scripts that are platform independent, and currently the only way to get these scripts is to install the SPM.

You can either download the SPM from our website, at http://www.roguewave.com/support/spm/ or if you have the CD, you can install it from the CD. Note that it is OK to install the SPM from the CD. Installing the individual products from the CD as mentioned above is not possible.

You must run the install utility (install.sh for Unix, setup.exe for PC's) from the korn shell (ksh) to install the SPM successfully.

2. You must delete several files out of the SPM installation

This is to trick the prodinst.sh script into believing that you don't have a partmgr executable installed. You can do this as follows:

  1. delete the file /partmgr
    rm /partmgr

  2. delete the subdirectories of /bin. You will need to leave the script /bin/wizards for user input.
    rm -rf /bin/[A-Z]*
Once this is done you can install and build products from floppy onto unsupported platforms.

3. Installing the product from the installation tar file

When you download a product from the web or get it on a floppy it contains the following:

> $ tar tvf std0121u.tar
> -r-xr-xr-x 20079/2030 12838 Jun 4 13:44 1997 prodinst.sh
> -rw-r--r-- 20079/20304503040 Jun 4 13:44 1997 data.tar
> $

prodinst.sh expects a spm directory to be present before it will install anything. If the doesn't exist, return to step 1. If it does, you need to install the product from the archive (zip or tar).

> $ prodinst.sh     
>
> Welcome to the Software Parts Manager individual product install script!
> This script will add another Rogue Wave product to your SPM installation.
>
> First, we need to determine where you have installed the Software Parts
> Manager. Please enter the name of your SPM root directory (often, this
> is c:spm or /usr/local/spm) or enter 'q' to quit:
>
> Enter SPM root: /nfs/g4/home/gorman/spm
>

> Good, you appear to have a valid SPM installation at
> '/nfs/g4/home/gorman/spm'.
>
> Excellent, you appear to have a valid archive in '.'.
>
> Let's pull some files out of the individual product's archive...
> x dd, 0 bytes, 0 tape blocks
> x dd/product, 0 bytes, 0 tape blocks
> x dd/product/std0121u, 0 bytes, 0 tape blocks
> x dd/product/std0121u/src, 0 bytes, 0 tape blocks
> x dd/product/std0121u/src/src.tar, 2043392 bytes, 3991 tape blocks
> x dd/product/std0121u/src/exam.tar, 469504 bytes, 917 tape blocks
> x dd/product/std0121u/src/docs.tar, 1934848 bytes, 3779 tape blocks
> x dd/product/std0121u/working.rep, 34452 bytes, 68 tape blocks
> x distrepo, 0 bytes, 0 tape blocks
> x distrepo/std0121u.rep, 12470 bytes, 25 tape blocks
> x support, 0 bytes, 0 tape blocks
> x support/std0121u.rw, 314 bytes, 1 tape blocks
> ...done.
>
> It looks like you don't have the SPM graphical user interface, which
> would normally be used to unpack a product's fileset into an RW root
> area. I can unpack this product's fileset for you. But first, you
> have to tell me where your RW root area is located or (if you don't
> already have an RW root area) where you would like your RW root area
> to be located. Often, RW root areas are c:
wav or /usr/local/rwav.
>
> Enter RW root:

4. You must invoke rwspm to build the product(s) you just downloaded.

To do this you must change into the /scripts directory. A brief synopsis of the rwspm script is given below:

Rogue Wave does not advise that you circumvent the Software Parts Manager interface to build your software parts. If you do, be aware that you give up the following protections Software Parts Manager offers:

Dependency checking: Software Parts Manager has complete knowledge of the dependencies between Rogue Wave software parts, and warns you if the library you propose to build depends on another library that does not exist.
Configuration checking: Software Parts Manager also checks that the build configuration is consistent with Rogue Wave's support matrix and with the configurations of dependent products.
If you do build from the command line, we strongly advise that you do so through the control script rwspm . The explanation below assumes that you are taking this safer course.

Please note: As invoked from the command line, rwspm can only be used to build libraries and create makefiles that support examples. To build example executables, you must use make to apply an examples makefile to build the desired targets. Examples makefiles are created and exported to the workspace immediately following the building of a library.

Before you compile, you must know the name of the compiler properties file that pertains to your environment. This file name is passed through the -f option when you invoke rwspm.

These files are located in scriptsplatform (/scripts/platform on UNIX platforms). The names are based on the pattern _.in. For example, the file for MSVC on Windows platforms is w32_msvc.in.

The example below shows the file w32_msvc.in as installed with Software Parts Manager. The only lines you are likely to edit would be RWCCOPTS= and RWLINKOPTS=, which allow you to specify custom compiler and link options.

# Shell script used as an input file to rwsetup

# --- General Settings ---
RWOVERWRITE=yes //leave as is

# --- Compiler Settings ---
RWCPP=cl //compiler invocation
RWCCOPTS= //custom compiler options
RWLINKOPTS= //custom link options

# --- Compiler and OS Names ---
RWOPSYS=WINNT //operating system
RWCOMPILER=MSVC //compiler

To build a part from the command line:

  1. Make scripts (/scripts on UNIX platforms) your working directory.
  2. Enter rwspm ...

The arguments to rwspm are:

-d                    (Optional) Build a shared library
-f Name of compiler properties file (DO NOT supply
the path; the file MUST be in the platform directory
-p Path to the product tree top level directory of
the part to be built

-t Numeric build type code. The number is
generated as a set of flags:
8 -Turns on Standard Library
dependancy.
4 -Turns on multithreading.
2 and 1-Together, these turn on
debugging options.

-w (Optional) Path to the workspace top level directory
if you want this to be different from the default
/workspaces/$RWOPSYS/$RWCOMPILER
An example of how to build the Standard C++ Library is shown below:
    $ cd spm/scripts
$ rwspm -d -f solaris_sunpro.in -p /package/0/rogue/parts/std0121u -t0
This article was:   Helpful | Not helpful
Report an issue
Article ID: 1039
Last updated: 05 Feb, 2008
Revision: 1
Views: 3360
Posted: 05 Aug, 1997 by Dean J.
Updated: 05 Feb, 2008 by Dean J.

Others in this category