Skip to content

Latest commit

 

History

History
118 lines (79 loc) · 4.15 KB

build.md

File metadata and controls

118 lines (79 loc) · 4.15 KB

Building UDA

Dependencies

Name Version Required for
cmake ≥ 3.0 core build
OpenSSL ≥ 1.0.2 core build
swig 3.0.0 Python wrapper
Boost ≥ 3.0 C++ & Python wrappers
Java jdk Java wrapper
IDL IDL wrapper

Note: The dependencies not marked as for the core build are optional and the build will still work without them; it will just build without the functionality that the dependencies are for.

On Linux

First you will need to install the dependencies.

When using yum the command to run is:

LANG=C sudo yum -y groupinstall 'Development Tools'
sudo yum -y install openssl-devel boost-devel swig-devel python-devel \
    postgresql-devel libxml2-devel gsl-devel libgcrypt-devel bzip2-devel \
    java-1.8.0-openjdk-devel

When using apt-get the command to run is:

sudo apt-get install git python3-dev libssl-dev libboost-dev python3-numpy python3-matplotlib

Next, run cmake to configure the build (in the UDA root directory):

cmake -Bbuild -H.

See CMake Options for more options.

After configuring with cmake run make to build:

make -C build

And install using:

make -C build install

On Mac OS

You can install the dependencies using macports:

sudo port install openssl boost swig-python 

You can then install UDA in the same way as for Linux.

On Windows

To build on Windows you will need to first build the extlibs, then build the main source.

Building the extlibs

In the UDA extlibs directory run (in Powershell):

mkdir build
cd build
cmake.exe .. -G"MinGW Makefiles" -DBUILD_SHARED_LIBS=ON
mingw32-make.exe
cd ..
.\install.bat

Next, in the UDA root directory run (in Powershell):

mkdir build
cd build
..\scripts\cmake-win.bat
mingw32-make.exe
mingw32-make.exe install

In install the Python client you will need to run (in Powershell):

$python_dir = (Get-Item (Get-Command python).Source).DirectoryName
rm $python_dir\Lib\site-packages\pyuda
copy -Recurse .\include\pyuda  $python_dir\Lib\site-packages\
cp .\extlib\lib\libxdr.dll $python_dir\Lib\site-packages\pyuda\

Once you have done this, you can run UDA in Python by running (in Powershell):

Set-Item -Path env:UDA_HOST -Value "rca.fusion.org.uk"
Set-Item -Path env:UDA_PORT -Value "56565"
python

CMake Options

Some useful standard CMake options are (others can be found at cmake.org):

Name Type Default Description
-DCMAKE_INSTALL_PREFIX PATH /usr/local The location where UDA will be installed

You can also specify the type of build files generated by CMake using the -G option, i.e. -G"Unix Makefiles" to generate GNU makefiles (the default on Linux) or -GNinja to generate Ninja makefiles.

The UDA specific configuration options are:

Name Type Default Description
TARGET_TYPE STRING None The name of the target machine, this is used to provide machine specific configuration options (see below).
CLIENT_ONLY BOOL FALSE Only build the client
NO_WRAPPERS BOOL FALSE Do not build any of the language wrappers, only the C client API is built
NO_MODULES BOOL FALSE Do not build any of the internal server legacy modules
FAT_IDL BOOL FALSE Build the IDL wrapper using the fat-client library

Target Types

In the cmake/Config directory found in the UDA route directory you will find a number of target-<NAME>.cmake files. These files are used to provide machine specific compilation options to UDA. These options can be overridden at run-time but are useful as a set of defaults that UDA will fall back to. The file to use is specified by the TARGET_TYPE configuration option, i.e. if -DTARGET_TYPE=MAST is used then the target-MAST.cmake file will be included. You can add a new configuration file simply by creating a new file following the naming convention target-<MY_TARGET>.cmake and then you can use your new <MY_TARGET> as the value for TARGET_TYPE.