SAOTrace External Dependencies
Packages
Perl Modules
Everything Else
Manual .pc indicates that the package does not generate a
pkg-config meta file, so manual installation of the package into a non-standard location will require it.
mkpkg-config
mkpkg-config is a program which will create
pkg-config metadata
files. It is only useful if you choose to manually install external
dependencies which do not automatically create these files or if a package is not in the standard system location.
If you choose to go this route, you must first install
mkpkg-config.
It is packaged using GNU
autoconf, so follow the instructions in
Manual Installation of packages which use GNU autoconf
to build and install it.
It is a Perl program, and requires a number of Perl modules which are
part of the standard distribution on modern versions of Perl. The installation
will not proceed if they are not available, so the easiest path is to
simply run
configure and see if it complains. See
Installing CPAN Perl Modules for more information on installation of
Perl modules available from CPAN.
Notes
bash
There is currently one
hard dependency on
bash:
- The Lua build script uses
bash
and several
soft dependencies:
- Test scripts are written to be compatible with either
bash or ksh. (This is the real ksh, like what is shipped with Solaris, not the pdksh that often ships with GNU/Linux).
CFITSIO
A patch against version 3.006 is required which
- provides support for
$exec_prefix
- installs a
pkg-config meta-file
The patch is provided in the OTS directory. The provided
make-world package list entry for CFITSIO will apply the patch automatically.
CFITSIO in a nonstandard place
If CFITSIO is installed in a non-standard location, or you are installing it manually, you will need
to create the
pkg-config metadata file using
mkpkg-config. Assuming that
CFITSIO lives in the directory
$CFITSIODIR (meaning there exists directories
$CFITSIODIR/include and
$CFITSIODIR/lib), the following
commands will create the metadata file:
mkdir $INSTALLDIR/lib/pkgconfig
$INSTALLDIR/bin/mkpkg-config \
--output=$INSTALLDIR/lib/pkgconfig/cfitsio.pc \
--prefix=$CFITSIODIR \
--name cfitsio \
--desc "FITS File Subroutine Library" \
--pversion 3.006 \
--libs '-lcfitsio -lm'
Note: For Solaris, change
--libs to
--libs -lcfitsio lsocket -lnsl -lm
GSL
gsl version 1.9 fails to compile on Solaris 10 using the Sun Studio 10 compiler. A patch is provided in the OTS directory which fixes this. The provided
make-world package list entry for
gsl will apply the patch automatically.
Lua
Lua is used by
raygen and
aperture.
- Version 3.1 (yes that's really old) is required. Later versions have a different API. Note that in version 3.1, trignometric functions take arguments in degrees, not radians.
- This version of Lua should be installed in the SAOTrace destination directory so that it does not conflict with more modern versions.
- A special build script is provided which creates a
libtool .la file as well as a pkg-config meta file, which are required by the SAOTrace build system. The script has only been tested on Solaris and GNU/Linux; it will explicitly fail if it is run on another system.
The build script is provided in the OTS directory. The provided
make-world package list entry for Lua will use this script.
Building Lua manually
First unpack the source archive, then change into the created directory (named
lua) and execute
the following commands:
$ROOT/export/build-lua-3.1 --prefix=$INSTALLDIR --version=3.1 config
$ROOT/export/build-lua-3.1 --prefix=$INSTALLDIR --version=3.1 build
$ROOT/export/build-lua-3.1 --prefix=$INSTALLDIR --version=3.1 install
ndiff
ndiff must be compiled against the GNU multiprecision library (
gmp) or else many SAOTrace tests will fail. Look for the
following line during the configuration phase of the
ndiff installation:
checking GNU multiple-precision library (gmp)... yes
If it ends with
no instead of
yes, you'll need to install
gmp.
pkg-config
If your operating system or distribution provides
pkg-config, use that. The provided
make-world package list entry for
pkg-config will check for an existing version.