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 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+

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 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.


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
cd all_yandasoft
./git-do clone
mkdir build
cd build
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.


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
cd jacal
mkdir build
cd build
cmake ..

This process should generate a 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.