Install

License

Before installing, carefully read the licensing terms.

Obtaining the Source Code

There is no periodical release. The source code is only available from the Sourceforge version control server:

git clone https://github.com/renauddetry/nuklei.git

Quick Install

At the top level directory (named nuklei if the line above was used to download the code), type

./scons.py install

If you run into trouble, before asking any question, please read the rest of this page!

Requirements

Supported platforms:

Supported compilers:

Note that some older versions of the libraries that can be used by Nuklei will not work with clang (e.g., PCL <1.6).

Nuklei is exclusively written in C++.

System requirements: As usual, GCC or Clang, GNUmake, python, pkg-config, bash.

Required nonstandard libraries:

Do not forget to install the development packages for these libraries. Most distributions provide libraries in one package, and header files in another package. In Debian/Ubuntu, development package have a name that ends with -dev. For instance, the development package of Boost is called boost-all-dev.

If you are using Ubuntu:

sudo apt-get install gcc g++ make pkg-config python libgsl0-dev libblas-dev liblapack-dev libboost-all-dev

Optional nonstandard libraries:

Do not forget to install the development packages for these libraries. Most distributions provide libraries in one package, and header files in another package. In Debian/Ubuntu, development package have a name that ends with -dev. For instance, the development package of Boost is called boost-all-dev.

Build and Install

At the top level, type

  ./scons.py install

If you wish to install under a nonstandard path, e.g., ~/usr, type

  ./scons.py prefix=$HOME/usr install

Boost library names aren't reliable. For example, for the thread library, one may find

depending on which install/distribution one is using. The library name format may be specified to SCons through the boost_format argument. This argument defaults to "%s", which will search for Boost libraries named, e.g., under Linux, "libboost_thread.so". If your boost libraries are named, e.g., "libboost_thread-gcc41-mt.so", set this argument to "%s-gcc41-mt" :

  ./scons.py boost_format=%s-gcc41-mt

When Boost is compiled from source, it installs headers in $INCPATH/boost_X_XX/boost. A symlink ‘boost -> boost_X_XX/boost’ should be created in $INCPATH.

All libraries are expected to be installed in standard locations. If not, make use of the variables CPPFLAGS and LDFLAGS to reference their install path in your environment. For instance, if your GSL is installed under /sw, and your shell is bash, do

  export CPPFLAGS="-I/sw/include $CPPFLAGS"
  export LDFLAGS="-L/sw/lib $LDFLAGS"

The install procedure generates a pkg-config file. After install, you will be able to obtain configuration commands for Nuklei as:

$ pkg-config --cflags --libs nuklei

On my system, this command produces

-I/usr/local/devel/include -L/usr/local/devel/lib -DNUKLEI_TRSL_USE_BSD_BETTER_RANDOM_GENERATOR -lnuklei -lboost_system-mt -lboost_serialization-mt -lboost_iostreams-mt -lboost_thread-mt -lboost_filesystem-mt

Building the Documentation

Nuklei is documented in Doxygen-style. The doc stylesheets are written for Doxygen 1.7.

© Copyright 2007-2013 Renaud Detry.
Distributed under the terms of the GNU General Public License (GPL).
(See accompanying file LICENSE.txt or copy at http://www.gnu.org/copyleft/gpl.html.)
Revised Sun Sep 13 2020 19:10:07.