osrf / opensplice

This is the OpenSplice DDS Community Edition source repository. For build & installation instructions please see http://www.prismtech.com/opensplice/opensplice-dds-community/building
http://www.opensplice.org/
Apache License 2.0
7 stars 9 forks source link

OpenSplice

This is a fork of PrismTech's OpenSplice package, with changes primarily to improve the build process. Vortex OpenSplice a full implementaiton of the OMG DDS Standard licensed under Apache 2. The DDS standard is used today across a large range of application domains ranging from autonomous vehicles, medical devices, robotic platforms, software defined networking, network switches, IoT Gateways, military and aerospace systems, Air Traffic Control and Management, smart grids, smart farms, etc.

Building

POSIX / Linux

POSIX / Linux Minimal Build Required Tools

NOTE: The list of tools below is the minimal set required to build Vortex OpenSplice Community Edition without CORBA ORB collocation support. See the required tools section below for details of the additional dependencies to build Vortex OpenSplice 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:

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.

POSIX / Linux Steps to Build Vortex OpenSplice Community Edition from Source

$ export TAO_ROOT=`<TAO location>`
$ export JACORB_HOME=`<JacORB location>`
$ export JAVA_HOME=`<Oracle Java SDK location>`
$ export GSOAPHOME=`<gSOAP location>`
$ source ./configure
$ make
$ make install

Example

sm@plutus:~/opensplice> export GSOAPHOME=/usr/gsoap/2.8.60
sm@plutus:~/opensplice> source configure

Setup at 10:37:10 for Vortex - Version 6.9.181127OSS - Date 2018-12-06

GCC: OK - Using version 7
  NOTE - Enable link-time optimizations (for release build)
GLIBC: version 2.27
MAKE: OK - using GNU Make 4.1
Perl: OK - using perl version='5.26.1';
Qt: On. Using QT tools from the path (with -qt4 suffix).
GAWK: OK - using GNU Awk 4.1.4, API: 1.1 (GNU MPFR 4.0.1, GNU MP 6.1.2)
BISON: OK - using 3.0.4
FLEX: OK - using 2.6.4
JAVAC: OK - using JAVAC version 1.8.0_191
  JAVA_HOME is /usr/lib/jvm/java-8-openjdk-amd64
GMCS: Warning - No gmcs compiler found
   gmcs C# compiler not found, disabling SACS api build.
TAO: Warning - No TAO found
   TAO environment not set, disabling TAO related features.
JACORB: Warning - JACORB_HOME not set
   JACORB environment not set, disabling JACORB related features.
GSOAP: OK - using GSOAP version 2.8.60
  setting GSOAPHOME to /usr
DOXYGEN: OK - no doxygen installed, will attempt to retreive docs from git repo
GOOGLE PROTOCOL BUFFERS: PROTOBUF_HOME has not been set
Warning - Protobuf compiler environment not set, building of all protobuf related features is disabled.
C99: OK - supported
Python3: OK - Using /usr/bin/python3 v3.6.7
    Warning: Cython module not found. Cannot build Python DCPS API
    Warning: wheel module not found. Cannot build Python DCPS API
NODEJS: nodejs install dir not found - skipping build of NodeJS DCPS API and unit tests.
MAVEN: OK - Using Apache Maven 3.5.2
Key-value store implementations - SQLITE: Warning - Not found, LEVELDB: Warning - Not found
Configuration OK

Variable Setup
SPLICE_TARGET = x86_64.linux-dev
SPLICE_HOST = x86_64.linux-dev
OSPL_HOME = /home/sm/opensplice
SPLICE_ORB =

sm@plutus:~/opensplice> make && make install

Windows

Windows Minimal Build Required Tools

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

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.

Windows Steps to build Vortex OpenSplice Community Edition from Source

Example

sm@plutus ~/opensplice
$ export VS_HOME='/cygdrive/C/Program Files (x86)/Microsoft Visual Studio 14.0'

sm@plutus ~/opensplice
$ export WINDOWSSDKDIR='/cygdrive/C/Program Files (x86)/Windows Kits/10'

sm@plutus ~/opensplice
$ export GSOAPHOME=/home/dds/INSTALLED_FOR_DDS/gsoap-v2.7

sm@plutus ~/opensplice
$ export JACORB_HOME=/home/dds/INSTALLED_FOR_DDS/JacORB-v2.3.1.0

sm@plutus ~/opensplice
$ export JAVA_HOME='/cygdrive/C/Program Files/Java/jdk1.8.0_191'

sm@plutus ~/opensplice
$ export QTDIR=/home/dds/INSTALLED_FOR_DDS/Qt/4.8.4_vs2010_64bit

sm@plutus ~/opensplice
$ export PROTOBUF_HOME=/home/dds/INSTALLED_FOR_DDS/protobuf-2.6.0-vs2015

sm@plutus ~/opensplice
$ unset tmp && unset TEMP && unset TMP && unset temp

sm@plutus ~/opensplice
$ source ./configure

Setup at 11:27:13 for Vortex - Version 6.9.181127OSS - Date 2018-12-06

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

VS: OK - using compiler version: 19.00.24215.1 for VS: 2015 and .Net 4.6 and Program Files C:\Program Files (x86)
Visual Studio builder: OK - using devenv.com
C#: OK - using version 1.3.1.60616
MAKE: OK - using GNU Make 4.2.1
Perl: OK - using perl version='5.26.3';
Qt: at_check (1) and QT_VERSION is 4
OK. $QTDIR was /home/dds/INSTALLED_FOR_DDS/Qt/4.8.4_vs2010_64bit,
set to /home/dds/INSTALLED_FOR_DDS/Qt/4.8.4_vs2010_64bit
GAWK: OK - using GNU Awk 4.1.3, API: 1.1 (GNU MPFR 3.1.4, GNU MP 6.1.0)
BISON: OK - using 3.0.4
FLEX: OK - using 2.5.39
JAVAC: OK - using JAVAC version 1.8.0_191
  JAVA_HOME is /cygdrive/c/PROGRA~1/Java/JDK18~1.0_1
TAO: Warning - No TAO found
TAO environment not set, disabling TAO related features.
JACORB: OK
JACORB_HOME is /home/dds/INSTALLED_FOR_DDS/JacORB-v2.3.1.0
GSOAP: OK - using GSOAP version 2.8
  setting GSOAPHOME to /home/dds/INSTALLED_FOR_DDS/gsoap-2.8
DOXYGEN: OK
GOOGLE PROTOCOL BUFFERS: OK - using PROTOC version 2.6.0
PROTOBUF_HOME is /home/dds/INSTALLED_FOR_DDS/protobuf-2.6.0-vs2015
C99: OK - supported
Python3: Warning: Python3 not available. Cannot build Python DCPS API.
MAVEN: OK - Using Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T20:41:47+02:00)
Key-value store implementations - SQLITE: Warning - Not found, LEVELDB: Disabled pending Windows port
Configuration OK

Variable Setup
SPLICE_TARGET = x86_64.win64-release
SPLICE_HOST = x86_64.win64-release
OSPL_HOME = /home/dds/opensplice
SPLICE_ORB =

sm@plutus ~/opensplice
$ make && make install

Rebuilding the Vortex OpenSplice Community Edition Custom Libraries on POSIX / Linux

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

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

Rebuilding the Standalone C++ Custom Libraries on Windows

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

Installing Google Protocol Buffer

Download the source from https://github.com/google/protobuf/releases

tar -xzf protobuf-2.6.1.tar.gz
cd protobuf-2.6.1
./configure
make

Add protoc to the PATH.

For Windows download a pre-compiled protoc version and put that in your PATH

export PROTOBUF_HOME=`pwd`

Documentation

Below are a few links to learning material that will get you started quickly with Vortex OpenSplice and DDS.

Open Source Add-ons

There are plenty of Open Source add-ons for Vortex OpenSplice and they keep growing almost daily. The main place to look for add one and extensions are ADLINK-IST's GitHub repositories. Beside this, below are a few notable extensions:

Related Projects