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+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 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 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
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 https://gitlab.com/ska-telescope/ska-sdp-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
Two stand-alone executables are also produced under
which are used for testing the code outside the context of DALiuGE.