Author: Attila Kovacs <attila[AT]sigmyne.com>
Last updated: 6 January 2018
Introduction
Prerequisites
Rebuild Instructions
This is a simple guide meant for developers, who wish to modify and/or rebuild CRUSH from the source code.
As of version 2.40, the CRUSH source code – including the crushtools
and the jnum
sub-packages, all configuration files, instrument data, shell wrappers, and documentation – is distributed as a separate tarball or ZIP archive. You can find the source distributions at
http://www.sigmyne.com/crush
under the Download tab.
You need a Java Developers Kit (JDK), 1.8.0 or later, containing the javac
compiler. If you do not have javac on your system, grab a JDK e.g. from
java.oracle.com
The CRUSH source package includes build files to use with the Apache Ant build system. If you don’t already have Ant on your machine, you’ll probably want to install it. You can find it at:
ant.apache.org
CRUSH requires the excellent nom.tam.fits libraries both for (re)building and for running. Since the FITS libraries are an external dependence, they are not bundled with the source code of CRUSH. Grab a recent release (>= 1.15.0) from:
https://github.com/nom-tam-fits/nom-tam-fits/releases
Alternatively, the FITS libraries are also readily provided for Debian-based Linux distros (e.g. Ubuntu), altough these may not be the latest. You can install these via:
> sudo apt-get install libfits-java
Unpack the source tarball, e.g.
> tar xzf crush-src-<version>.tar.gz
(Subsitute the appropariate CRUSH version for <version>
, e.g. 2.41-1
)
Now, go inside the freshly unpacked directory:
> cd crush-src-<version>
Place fits.jar
(the nom.tam.fits library) inside deps/
. You may skip this step on Linux if it is readily available as /usr/share/java/fits.jar
.
> ant
Note, that you might get an error about JAVA_HOME
not being correctly set. If necesssary, set JAVA_HOME
to the main Java SDK folder (the one that has bin/
inside it containing javac
) before running ant.
This step will recompile the source code in src/
and place binary jars into dist/crush/lib
.
The crush
sub-directory inside the dist
folder contains your own ready-to-go version of CRUSH.
On Linux, if you have fits.jar
and commons-compress.jar
in /usr/share/java
, you can skip this step.
Otherwise, copy/symlink fits.jar
(the same one you used for compiling) into dist/crush/lib
.
Optionally, for wider FITS compression support, copy/symlink commons-compress.jar
(Apache compression libraries) into dist/crush/lib/
. (Or, on Linux, you can simply install the apache-commons-compress
package.)
Go into the dist/crush
directory, e.g.:
> cd dist/crush
and run crush
with your freshly minted JARs:
> ./crush
From the top of the unpacked source folder, run:
> ant clean
to remove the contents of the build/
directory, which are no longer necessary after the binary JARs were created.
Copyright (C)2018 – Attila Kovacs