HSTCAL uses the WAF build system. A precompiled copy of WAF has been included at the top-level of this project for your convenience.
- Linux >=RHEL6
- OS X >=10.5
- cfitsio >=3.430 (https://heasarc.gsfc.nasa.gov/fitsio/fitsio.html)
- gcc >=4.4.7 (https://gcc.gnu.org)
- openmp (http://www.openmp.org/)
- pkg-config (https://www.freedesktop.org/wiki/Software/pkg-config)
- python >=2.7 (https://www.python.org)
GCC may be supplemented by Clang under the following conditions:
- Clang must be compiled with OpenMP support
- A Fortran compiler must be available in
Must be compiled as a shared library.
libcfitsiohas been installed to a non-standard path such as
$HOME/programs/cfitsio, you will need to adjust
pkg-configis able to find it:
pkg-configis not installed, define the path to CFITSIO manually via the
./waf configure --with-cfitsio=$HOME/programs/cfitsio
MacOS / OS X
The LLVM/Clang suite provided by Apple XCode is not sufficient to compile HSTCAL. Please install GCC (C and Fortran compilers) either from source, or using a package management system such as Homebrew, MacPorts, Fink, or Conda.
For a complete listing of useful configuration and build options, run
./waf configure --prefix=$HOME/hstcal
Add HSTCAL to
To install individual parts of HSTCAL, use the
--targets option. For example, to install the
lib targets, do the following:
./waf install --targets=acs,lib
To list available build targets:
./waf configure list
Some common targets include:
|wf3||calwf3 and other WFC3-related tools|
|lib||static libraries and header files for the included libraries|
To enable support for debugging symbols run,
./waf configure --debug
Shell arguments normally passed to
./waf configure may be issued via
build.cfg. This configuration file may contain any arguments accepted by
./waf configure. An example is given in the
Notes for developers
C has two forms of
#include "foo.h" (i.e.
include/foo.h) for local include files, and
#include <foo.h> (i.e.
/usr/include/foo.h) for system include files. WAF does not track changes to system include files, so the first syntax should be used whenever including files within the project.