Building

Building and Installing OpenSplice DDS from a Source Bundle

POSIX / Linux Minimal Build Required Tools

NOTE: The below list of tools is the minimal set required to build OpenSplice DDS without CORBA ORB collocation support. See the required tools section below for details of the additional dependencies to build OpenSplice DDS with support for sharing DDS types with a C++ or Java CORBA ORB.

The following tools must be installed and available on the machine executable / library search path.

  • bash shell
  • A suitable C / C++ compiler, e.g:
    • gcc - 3.2.x or above
    • Sun Studio - At this time only v12 of this compiler has been tested
  • gmake - 3.80 or above.
  • Java SDK - Sun SDK v1.5 or above. N.B. Can be omitted if you do not wish to build any Java language support.
  • gawk - Any version is acceptable.
  • flex - Any version is acceptable.
  • bison - Any version is acceptable.
  • gtar - The source archive is produced by git export and so uses extended pax headers.
  • zlib - The default version provided with all supported platforms is acceptable.

POSIX / Linux Build with Optional CORBA Collocation Support Required Tools

In addition to the above dependencies the following may also be optionally installed and used to enable support for sharing data types with a CORBA ORB.

  • OpenFusion TAO - Available from the downloads page. See the installation instructions for how to install and configure the build environment.
    • Install and set TAO_ROOT to the directory that the OpenFusion TAO C++ ORB is installed in, before sourcing configure to enable C++ CORBA support.
  • OpenFusion JacORB - Available from the downloads page. See the installation instructions for how to install and configure the build environment.
    • Install and set JACORB_HOME to the directory that the OpenFusion JacORB Java ORB is installed in, before sourcing configure to enable Java CORBA support.

POSIX / Linux Steps to Build OpenSplice DDS from Source

  1. Extract the OpenSplice DDS Community Edition distribution.
  2. Set environment variables so that the above tools can be located.
  3. Optionally set either or both TAO_ROOT or JACORB_HOME if you wish to build CORBA support. Otherwise: set neither. See above.
  4. JAVA_HOME - set to the directory that a Sun SDK (>1.5) is installed in.
  5. All other tools will be located from the machine $PATH
  6. Source the OpenSplice configure script to set-up your build environment. N.B. You must source this script each time you wish to configure a new shell as a build environment. The configuration choices are not persistent.
  7. Choose the target platform configuration.
  8. Invoke make to build OpenSplice DDS
  9. Invoke make in the install directory to build an OpenSplice DDS Distribution
gtar -xzf <ospl_source_distrib>
export TAO_ROOT=<TAO_installed_dir>
export JACORB_HOME=<JacORB_installed_dir>
export JAVA_HOME=<JDK_install_dir>
cd OpenSplice
source ./configure
<choose target platform>
make
cd install
make

Example:

 

$  tar -xzf OpenSpliceDDSV4.1-src.tar.gz

$ export TAO_ROOT=$PWD/tao161

$ export JACORB_HOME=$PWD/jacorb2303

$ export JAVA_HOME=/usr/local/jdk1.5.0_15

$ cd OpenSplice

$ source configure

 

Setup for OpenSplice DDS - Version V4.1 - Date 2009-04-16

 

Available targets are:

1 > x86_64.linux2.6-dev

2 > x86_64.linux2.6-release

3 > x86.linux2.6-debug

4 > x86.linux2.6-dev

5 > x86.linux2.6-devdat

6 > x86.linux2.6-efence

7 > x86.linux2.6-release

8 > x86.linux2.6-test

Please select a target number:7

 

... <snipped build output>...

* SPLICE RTS Ready

Making linux builder for Runtime_System, platform x86.linux2.6, environment -release

RTS Runtime_System x86.linux2.6 linux release.com -release getlic_info

Making builder for Runtime_System (RTS, x86.linux2.6, linux)

Release is V4.1

Date is 2009-04-16

/usr/local/bin/tar -cf /home/tao/rhel51a/sm/OpenSplice/install/VC/OpenSpliceDDSV4.1-x86.linux2.6-RTS.tar RTS

$

Windows Minimal Build Required Tools

NOTE: The below list of tools is the minimal set required to build OpenSplice DDS without CORBA ORB collocation support. See the required tools section below for details of the additional dependencies to build OpenSplice DDS with support for sharing DDS types with a C++ or Java CORBA ORB.

 

  • Microsoft Visual Studio 2005 or Microsoft Visual Studio 2008
  • cygwin - The latest available version is recommended. The following packages should be installed in addition to the recommended base selection:
    • gcc-core
    • gmake
    • bison
    • flex
    • gawk
    • zip
    • unzip
  • Java SDK - Sun SDK v1.5 or above.
  • zlib 1.2.4 from zlib.net - Other versions may work however this version is the one tested. After install define ZLIB_HOME to the location unzipped to.  Using the version of zlib in cygwin has not been tested.

Windows Build with Optional CORBA Collocation Support Required Tools

In addition to the above dependencies the following may also be optionally installed and used to enable support for sharing data types with a CORBA ORB.

  • OpenFusion TAO - Available from the downloads page. See the installation instructions for how to install and configure the build environment.
    • Install and set TAO_ROOT to the directory that the OpenFusion TAO C++ ORB is installed in, before sourcing configure to enable C++ CORBA support.
  • OpenFusion JacORB - Available from the downloads page. See the installation instructions for how to install and configure the build environment.
    • Install and set JACORB_HOME to the directory that the OpenFusion JacORB Java ORB is installed in, before sourcing configure to enable Java CORBA support.

Windows Steps to build OpenSplice DDS from Source

  1. Extract the OpenSplice DDS Community Edition source distribution zip file using Windows Explorer or a similar zip extraction utility (e.g. Cygzin unzip).
  2. In a Cygwin shell set environment variables so that the required build tools can be located.
    1. VS_HOME - set to the installation directory of Visual Studio 2005 or 2008.
    2.  ZLIB_HOME - set to the directory the zlib.net distribution has been unzipped to (see above).
    3. Optionally set either or both TAO_ROOT or JACORB_HOME if you wish to build CORBA support. Otherwise: set neither. See above.
    4. JAVA_HOME - set to the directory that a Sun SDK (>1.5) is installed in.
    5. All other tools will be located from the cygwin shell $PATH
  3. Source the OpenSplice configure script to set-up your build environment. N.B. You must source this script each time you wish to configure a new shell as a build environment. The configuration choices are not persistent.
  4. Choose the target platform configuration. N.B - 32 bit debug (dev) or release (release) builds are available.
    1. Note that if you wish to build 'dev' and you wish to build C++ CORBA support then you must have installed a debug version of OpenFusion TAO. If you wish to build release then the OpenFusion TAO installed and indicated by the TAO_ROOT variable must also be release.
  5. Invoke make to build OpenSplice DDS
  6. Invoke make in the install directory to build an OpenSplice DDS Distribution
<extract distribution zip>
export TAO_ROOT=<TAO_installed_dir>
export JACORB_HOME=<JacORB_installed_dir>
export JAVA_HOME=<JDK_install_dir>
export VS_HOME=<Location of Visual Studio installation>
export ZLIB_HOME=<Location where zlib.net zlib is installed>
cd OpenSplice
source ./configure
<choose target platform (1 or 2)>
make
cd install
make

Example:

bash-3.2$ unzip OpenSpliceDDSV4.1.090615-src.zip

bash-3.2$ export VS_HOME='/cygdrive/C/Program Files/Microsoft Visual Studio 8'

bash-3.2$ export ZLIB_HOME=$PWD/zlib-1.2.4

bash-3.2$ export JAVA_HOME='/cygdrive/C/Program Files/Java/jdk1.6.0_14'

bash-3.2$ export JACORB_HOME='/cygdrive/C/Program Files/JacORB_v2.3.0.3'

bash-3.2$ export TAO_ROOT=$PWD/TAO161_0-Windows-vc8-inline-32bit-090505

bash-3.2$ cd OpenSplice                          

bash-3.2$ source configure 

 

Setup for OpenSplice DDS - Version V4.1.090615 - Date 2009-06-15

 

Available targets are:

1 > x86.win32-dev

2 > x86.win32-release

Please select a target number:2

 

... <snipped build output>...

  adding: RTS/x86.win32/redist/vcredist_x86/vcredist_x86.exe (deflated 1%)

  adding: RTS/x86.win32/release.bat (deflated 38%)

bash-3.2$

 

 


Rebuilding the OpenSplice DDS Custom Libraries on POSIX / Linux

Binary distributions of OpenSplice DDS are shipped containing pre-built C++ and Java language binding libraries. These are known as the OpenSplice DDS Custom Libraries.

For maximum assurance of compatibility with your deployment platform the OpenSplice DDS Custom Libraries of an OpenSplice DDS Community Edition binary distribution can be rebuilt. In this way you can be confident that these language binding libraries have matching linkage with the toolchain you plan to develop and deploy your application with.

Rebuilding the Standalone C++ Custom Libraries on POSIX / Linux

  • Configure the environment for the OpenSplice DDS as per the installation instructions.
  • Change directory to the Standalone C++ Custom Libraries source directory in the binary OpenSplice distribution.
  • Make the directory.
  • Copy the new library into place in the distribution.
cd HDE/<<target_platform>>/custom_lib/sacpp/
make
cp -f ./libdcpssacpp.so ../../lib/.

Rebuilding the CORBA Co-habitation C++ Custom Libraries on POSIX / Linux

  1. Configure the environment for the OpenFusion TAO C++ ORB as per the installation instructions.
  2. Change directory to the CORBA Co-habitation C++ Custom Libraries source directory in the binary OpenSplice distribution.
  3. Make the directory.
  4. Copy the new library into place in he distribution.
cd HDE/<<target_platform>>/custom_lib/ccpp/
make
cp -f ./libdcpsccpp.so ../../lib/.

Scoreboard and Archive for PrismTech builds of OpenSplice DDS

Latest Windows and Linux builds of OpenSpliceDDS from PrismTech.

 

The above link takes you to snapshot pages taken from PrismTech's build system. The initial page lists any build posted since 00:00 GMT. These builds take place daily, but will run at various times depending on resource availability within the PrismTech build infrastructure. However, the codebase built is always the same as it is taken from a sha1 key at 00:00 GMT to ensure consistency across machines.

 

In the initial page, the 'setup type' column is the splice target (which you will be familiar with if you had built from source). The postfix on the 'setup type' value indicates the type of build:

 

  • -dev is a debug
  • -release is a non-debug

If there were changes to the opensplice repository since the previous day's build then there will be a change log briefly describing what changes were made, by whom and with links to the git-web to see the diffs. If there are missing builds, this maybe because of a hardware failure or because the build is still queued waiting to run.

 

The current status is indicated via the 'results' column, which can vary from Cloning and Configuring to Pass, Failed or Examples Failed. There are many stati and colours used internally within PrismTech, but hopefully they are self-explanatory. Clicking the status icon will bring up a page with detailed info about the stage in progress. From this page, you will be able to get specifics about the build. The columns here indicate:

  • BUILD - compilation stage. Clicking on this icon will allow you access to the logs
  • BUILD_DIST - packaging stage which creates a tar/zip file. Clicking on this icon will allow you access to the logs
  • KEEP_DIST - copy step to internal PrismTech holding location for built distributions. If this step was successful then clicking this will give you access to the built distributions, both Host Development Environment and Run Time System variants. If unsuccessful then a log is displayed.
  • BUILD/DBT, RUN/DBT, BUILD/RBT, RUN/RBT - These are skipped at present.
  • BUILD/EXAMPLES - Building the examples from an installed distribution, not a build structure. Clicking on this icon gives access to the logs.
  • RUN/EXAMPLES - Running the examples from an installed distribution, not a build structure. Clicking on this icon gives access to the logs.
  • Logs - Top level log directory.

Each night's build logs and distributions are archived here  they are stored via date structure 'Year -> Month -> Day'. Distributions are only archived for a maximum of 7 days, after that they are removed.