SAOTrace External Dependencies


Packages

Perl Modules

Module Version Source Note
IO::Pager any http://search.cpan.org/~jpierce/IO-Pager/  
Getopt::Long any http://search.cpan.org/~jv/Getopt-Long/  
Pod::Parser any http://search.cpan.org/~marekr/Pod-Parser/  
Params::Validate any http://search.cpan.org/~drolsky/Params-Validate/  
Sub::Uplevel any http://search.cpan.org/~dagolden/Sub-Uplevel/  
Test::Exception any http://search.cpan.org/~adie/Test-Exception/  
Test::Simple any http://search.cpan.org/~mschwern/Test-Simple/  
Text::Glob any http://search.cpan.org/~rclamp/Text-Glob/  

Everything Else

Package Version Source Manual .pc Note
cfitsio 3.006 http://heasarc.gsfc.nasa.gov/docs/software/fitsio/fitsio.html DONE DONE
funtools >=1.30b21 http://hea-www.harvard.edu/RD/funtools/    
gsl any http://www.gnu.org/software/gsl/   DONE
lua 3.1 http://www.lua.org DONE DONE
ndiff 2.00 http://www.math.utah.edu/~beebe/software/ndiff/   DONE
pcre any http://www.pcre.org/    
pkg-config any http://pkgconfig.freedesktop.org/wiki/   DONE
bash > 2.05b http://www.gnu.org/software/bash/   DONE
gmp any http://www.swox.com/gmp/ DONE  

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

  1. provides support for $exec_prefix
  2. 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.

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

  2. This version of Lua should be installed in the SAOTrace destination directory so that it does not conflict with more modern versions.

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

 
Powered by Optics TWiki
The CXC Optics group is part of the Chandra X-Ray Center (CXC), which is operated for NASA by the Smithsonian Astrophysical Observatory.
60 Garden Street, Cambridge, MA 02138 USA. Email: cxcopticsweb@head.cfa.harvard.edu
Copyrighted by the Smithsonian Institution. All rights reserved.