Building

Building and Installing DDS Community Edition from a Source Bundle

POSIX / LINUX

POSIX / Linux Minimal Build Required Tools

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

The following tools should 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.
  • gawk - Any version is acceptable.
  • flex - Any version is acceptable.
  • bison - Any version is acceptable.
  • perl - Version 5.8 or above is required.
  • Java SDK - This is optional. Oracle SDK v1.6 or above is acceptable. If omitted no Java APIs or tools will be generated.
  • Doxygen - This is optional. If omitted the documentation for the C# and I.S.O. C++ APIs will not be generated. Version 1.8 or greater is recommended for ideal results. (v6 of OpenSplice onwards only)
  • Qt4 - Highly optional. Its only use is to build the iShapes demonstration application into the distribution, which can be used to illustrate DCPS use and verify interoperability. (v6 of DDS Community Edition onwards only). See demos/iShapes/README.md.
  • [zlib - No longer required in v6. The default version provided with all supported platforms was acceptable for previous OpenSplice versions.]

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.

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

POSIX / Linux Steps to Build DDS Community Edition from Source

  1. Extract the DDS Community Edition distribution.
  2. Set environment variables so that the above tools can be located:
    1. Optionally set either or both TAO_ROOT or JACORB_HOME if you wish to build CORBA support. Otherwise: leave either or both unset. See above.
    2. Optionally set JAVA_HOME - set to the directory that a Oracle SDK (>1.6) is installed in.
    3. All other tools will be located from the machine $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.
  5. Invoke make to compile DDS Commmunity Edition
  6. Invoke make install to build a DDS  Community Edition Distribution

tar -xzf=<Source distribution>

export TAO_ROOT=<TAO location>

export JACORB_HOME=<JacORB location>

export JAVA_HOME=<Oracle Java SDK location>

cd OpenSplice6.3

source ./configure

make

make install

Example:

sm@plutus:~> export TAO_ROOT=$PWD/TAO161_0-RedHat-EL60-gcc444-inline-64bit-111025
sm@plutus:~> export JACORB_HOME=$PWD/JacORB-v2.3.0.3
sm@plutus:~> export JAVA_HOME=/usr/java/default
sm@plutus:~> tar -xzf OpenSpliceDDSV6.3.130716OSS-src.tar.gz 
sm@plutus:~> cd OpenSpliceDDS6.3/
sm@plutus:~/OpenSpliceDDS6.3> source configure 

Setup at 13:54:28 for OpenSplice - Version V6.3.130716OSS - Date 2013-07-17

Available targets are:
1 > x86_64.linux2.6-debug
2 > x86_64.linux2.6-dev
3 > x86_64.linux2.6-gcov
4 > x86_64.linux2.6-release
5 > x86.linux2.6-debug
6 > x86.linux2.6-dev
7 > x86.linux2.6-devdat
8 > x86.linux2.6-efence
9 > x86.linux2.6-gcov
10 > x86.linux2.6-release
11 > x86.linux2.6-test
Please select a target number:4

GCC: OK - using version 4.7
GLIBC: version 2.17
MAKE: OK - using GNU Make 3.82
Perl: OK - using perl version='5.16.2';
Qt: On. Using QT tools from the path.
GAWK: OK - using GNU Awk 4.0.1
BISON: OK - using bison (GNU Bison) 2.6.5
FLEX: OK - using 2.5.37
JAVAC: OK - using JAVAC version 1.6.0_33
  JAVA_HOME is /usr/java/default
GMCS: Warning - No gmcs compiler found
   gmcs C# compiler not found, disabling SACS api build.
TAO: OK - SPLICE_ORB is TAO PrismTech Version No: TAO 1.6.1.0
  setting TAO_ROOT to /home/sm/TAO161_0-RedHat-EL60-gcc444-inline-64bit-111025
JACORB: OK
  JACORB_HOME is /home/sm/JacORB-v2.3.0.3
Doxygen: OK
Configuration OK

Variable Setup
SPLICE_TARGET = x86_64.linux2.6-release
SPLICE_HOST = x86_64.linux2.6-release
OSPL_HOME = /home/sm/OpenSpliceDDS6.3
SPLICE_ORB = DDS_OpenFusion_1_6_1
sm@plutus:~/OpenSpliceDDS6.3> make && make install

Windows

Windows Minimal Build Required Tools

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

  • Microsoft Visual Studio 2005 to Microsoft Visual Studio 2010
  • 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
    • doxygen (Optional - used for C# & ISO C++ API documentation)
  • Java SDK -  This is optional. Oracle SDK v1.6 or above is acceptable. If omitted no Java APIs or tools will be generated.
  • Qt4 - Highly optional. Its only use is to build the iShapes demonstration application into the distribution, which can be used to illustrate DCPS use and verify interoperability. (v6 of OpenSplice onwards only). See demos/iShapes/README.md.
  • [zlib 1.2.4 from zlib.net - No longer required. Only required if building OpenSplice v5. 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.

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

Windows Steps to build DDS Community Edition from Source

  1. Extract the 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 2008 or 2010.
    2. WINDOWSSDKDIR - set to the location of the Windows SDK directory.
    3. Optionally set either or both TAO_ROOT or JACORB_HOME if you wish to build CORBA support. Otherwise: leave either or both unset. See above.
    4. Optionally set JAVA_HOME - set to the directory that an Oracle SDK (>1.6) is installed in.
    5. All other tools will be located from the cygwin shell $PATH
  • Unset TMP and TEMP (lower and upper case) otherwise you may encouter error 256 while building the DDS Community Edition ISO C++ API. This is a known compatibility issue between Cygwin and Visual Studio. This can be done permanently by editing your /etc/profile and commenting out the setting of the variables.
  • 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.
  • Choose the target platform configuration. N.B - 32/64 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 TAO. If you wish to build release then the TAO installed and indicated by the TAO_ROOT variable must also be release.
  • Invoke make to build OpenSplice DDS
  • Invoke make install 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 WINDOWSSDKDIR=<Location of the Windows SDK>
unset tmp && unset TEMP && unset TMP && unset temp
cd OpenSplice63
source ./configure
<choose target platform>
make
make install
Example
sm@plutus ~
$ export VS_HOME='/cygdrive/C/Program Files (x86)/Microsoft Visual Studio 10.0/'

sm@plutus ~
$ export WINDOWSSDKDIR='/cygdrive/C/Program Files/Microsoft SDKs/Windows/v6.0A'

sm@plutus ~
$ export JACORB_HOME=/home/sm/JacORB-v2.3.0.3

sm@plutus ~
$ export JAVA_HOME=/cygdrive/c/jdk1.6.0_27

sm@plutus ~
$ export TAO_ROOT=/home/sm/TAO161_0-Windows-vc10-inline-64bit_110704

sm@plutus ~/OpenSpliceDDS6.3
$ unset tmp && unset TEMP && unset TMP && unset temp

sm@plutus ~
$ unzip -q OpenSpliceDDSV6.3.130716OSS-src.zip

sm@plutus ~
$ cd OpenSpliceDDS6.3/

sm@plutus ~/OpenSpliceDDS6.3
$ export QTDIR=c:/Qt/4.8.4_vs2010_64bit

sm@plutus ~/OpenSpliceDDS6.3
$ source configure

Setup at 16:27:23 for OpenSplice - Version V6.3.130716OSS - Date 2013-07-17

Available targets are:
1 > x86.win32-debug
2 > x86.win32-dev
3 > x86.win32-release
4 > x86_64.win64-dev
5 > x86_64.win64-release
Please select a target number:5

VS: OK - using VS .NET 2010 (Visual Studio 10)
Visual Studio builder: OK - using devenv.com
C#: OK - using version 2.0.50727
MAKE: OK - using GNU Make 3.82.90
Perl: OK - using perl version='5.14.2';
Qt: OK. $QTDIR was c:/Qt/4.8.4_vs2010_64bit, set to C:\Qt\4.8.4_vs2010_64bit
GAWK: OK - using GNU Awk 4.0.2
BISON: OK - using bison (GNU Bison) 2.7
FLEX: OK - using 2.5.35
JAVAC: OK - using JAVAC version 1.6.0_27
  JAVA_HOME is /cygdrive/c/JDK16~1.0_2
TAO: OK - SPLICE_ORB is TAO PrismTech Version No: TAO 1.6.1.0
  setting TAO_ROOT to /home/sm/TAO161_0-Windows-vc10-inline-64bit_110704
JACORB: OK
  JACORB_HOME is /home/sm/JacORB-v2.3.0.3
Doxygen: OK
Configuration OK

Variable Setup
SPLICE_TARGET = x86_64.win64-release
SPLICE_HOST = x86_64.win64-release
OSPL_HOME = /home/sm/OpenSpliceDDS6.3
SPLICE_ORB = DDS_OpenFusion_1_6_1

sm@plutus ~/OpenSpliceDDS6.3
$ make && make install 

Rebuilding the DDS Community Edition Custom Libraries on POSIX / Linux

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

For maximum assurance of compatibility with your deployment platform the DDS Community Edition Custom Libraries of a 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

cd HDE/<<target_platform>>/custom_lib/
make

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

  1. Configure the environment for the TAO C++ ORB as per the installation instructions.
  2. Change directory to the CORBA Co-habitation C++ Custom Libraries source directory in the binary DDS Community Edition 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/.

Rebuilding the Standalone C++ Custom Libraries on Windows

 Open the Visual Studio solution file in HDE/<<target_platform>>/custom_lib and rebuild.