Installation

Dependencies

Jacal has two main dependencies (which in turn might require a lot more):

  • The DALiuGE execution framework, and

  • The Yandasoft libraries

Installation for both dependencies is covered below:

DALiuGE

DALiuGE is written in python and has publicly available releases in PyPI:

pip install daliuge

Alternatively one can install it directly from its GitHub repository:

pip install git+https://github.com/ICRAR/daliuge

In both cases all dependencies will automatically be built and installed. Most are offered as binary wheels and require no compilation, but some do; hence a compiler will be needed.

Yandasoft

Yandasoft is written in C++ and uses the CMake build system for its installation. The source code that makes up Yandasoft is not contained in a single repository but in a few, which can be found here. However, a separate “integrated” repo brings them all together into a single build pass, with options to skip building some of the repositories if one doesn’t need them.

Note

At the moment of writing, jacal builds against the develop branch of Yandasoft.

Not all Yandasoft components are required by jacal. Therefore to build Yandasoft in preparation for jacal the following instructions would be required:

git clone https://github.com/rtobar/all_yandasoft
cd all_yandasoft
./git-do clone
mkdir build
cd build
cmake .. -DBUILD_ANALYSIS=OFF -DBUILD_PIPELINE=OFF
make
make install

Note that Yandasoft has a list of dependencies on its own. These include:

  • casacore and casarest

  • wcslib

  • cfitsio

  • fftw

  • boost

  • log4cxx

  • gsl

These need to be installed before attempting to install Yandasoft, but instructions to do so are outside the scope of this document.

jacal

Once all dependencies are installed, jacal itself can be built. jacal uses the CMake build system, hence the build instructions are those one would expect:

git clone https://gitlab.com/ska-telescope/jacal
cd jacal
mkdir build
cd build
cmake ..
make

This process should generate a libjacal.so shared library which one can use within DALiuGE’s DynlibApp components. Two stand-alone executables are also produced under test which are used for testing the code outside the context of DALiuGE.