CCfits  2.5
Installing the Package

## Platforms

CCfits is generally supported on the same platforms as HEASOFT, and on Windows with VC++ 7.0 or later. See the HEASOFT supported platforms page.

## Building

To build and install CCfits from source code on a UNIX-like (e.g. UNIX, Linux, or Cygwin) platform, take the following steps. For building on a Microsoft Windows platform with Visual Developer Studio, see below.

### Instructions for Building CCfits on UNIX-like platforms:

1. Configure

By default, the GCC compiler and linker will be used. If you want to compile and link with a different compiler and linker, you can set some environment variable before running the configure script. For example, to use Sun's C++ compiler, do the following:

> setenv CXX CC (csh syntax)

or

> export CXX=CC (bash syntax)

You can set the absolute path to the compiler you want to use if necessary.

CCfits requires that the CFITSIO package, version 3.08 or later, is available on your system. See

http://heasarc.gsfc.nasa.gov/docs/software/fitsio/fitsio.html

for more information. The configure script that you will run takes an option to specify the location of the CFITSIO package.

If the CFITSIO package is installed in a directory consisting of a 'lib' subdirectory containing "libcfitsio.a" or "libcfitsio.so" and an 'include' subdirectory containing "fitsio.h", then you can run the configure script with a single option. For example, if the cfitsio package is installed in this fashion in /usr/local/cfitsio/ then the configure script option will be

--with-cfitsio=/usr/local/cfitsio

If the CFITSIO package is not installed in the above manner, then you need to run the configure script with two options, one to specify the include directory and the other to specify the library directory. For example, if the cfitsio package was built in /home/user/cfitsio/ then the two options will be

--with-cfitsio-include=/home/user/cfitsio --with-cfitsio-libdir=/home/user/cfitsio

For users of HEASOFT (instead of stand-alone CFITSIO): Note that modern distributions of HEASOFT only include a "libcfitsio_X.XX.so" library by default, but the configure script needs to find "libcfitsio.so", so you will need to create a symbolic link in $HEADAS/lib/ linking libcfitsio.so -> libcfitsio_X.XX.so in order for CCfits to configure properly. You can then configure CCfits using "--with-cfitsio=$HEADAS/lib".

You have the option of carrying out the build in a separate directory from the source directory or in the same directory as the source. In either case, you need to run the configure script in the directory where the build will occur. For example, if building in the source directory with the cfitsio directory in /usr/local/cfitsio/ then the configure command should be issued like this:

> ./configure --with-cfitsio=/usr/local/cfitsio

If you do the build in a separate directory from the source, you may need to issue the configure command something like this:

> ../CCfits/configure --with-cfitsio=/usr/local/cfitsio

The configure script will create the Makefile with the path to the compiler you choose (or GCC by default), and the path to the CFITSIO package. The configure script has other options, such as the install location. To see these options type

> ./configure --help

2. Build

Building the C++ shared library and Java classes will be done automatically by running make without arguments like this:

> gmake

3. Install

To install, type:

> make install

The default install location will be /usr/local/lib for the library and /usr/local/include for the header files. You can change this with the --prefix option when you configure, or with something like...

> make DESTDIR=/usr/local/CCfits install

### Instructions for Microsoft Windows build:

These instructions follow similar steps to the building of the CFITSIO library on Windows, described at

a) Microsoft Visual Studio b) The CMake build system available from http://www.cmake.org c) The CFITSIO library available from

http://heasarc.gsfc.nasa.gov/docs/software/fitsio/fitsio.html

1. After unzipping and untarring the CCfits source code tarball, the source code will appear in a new \CCfits subdirectory.

2. Open the Visual Studio Developer Command Prompt window and create a directory named "CCfits.build" parallel to this CCfits source code directory.

mkdir CCfits.build cd CCfits.build

This will be the directory from which CMake generate its files and performs the build.

3. Decide which CMake generator you will want to use. The full list is shown by doing

cmake.exe /?

We've done successful builds using Visual Studio's 'nmake' utility, and so recommend choosing "NMake Makefiles" as the generator option. However if you wish to perform the build inside a Visual Studio IDE, you should choose the appropriate "Visual Studio <version>" generator.

4. Now run cmake.exe to generate the necessary Makefiles. With this command you must specify the path to your CFITSIO library and header files by setting the '-DCMAKE_PREFIX_PATH' option. This path should be set to the root directory of your CFITSIO installation, from which it will look in \lib and \include subdirectories for the library and header files respectively. Your full cmake command may then look like:

CCfits.build>cmake.exe -G"NMake Makefiles" -DCMAKE_PREFIX_PATH=C:\path\to\your\CFITSIO ..\CCfits

If you wish to eventually install CCfits at any place other than the default location ("C:\Program Files"), you should pass an additional flag to the cmake command above:

-DCMAKE_INSTALL_PREFIX=C:\path\to\your\CCfits\installation

5. Build and install CCfits:

CCfits.build> nmake

If all goes well you should now have a CCfits.lib library and cookbook.exe executable in your CCfits.build directory. To test the build you can run cookbook.exe, which should generate 3 output FITS files: atestfil, btestfil, and ctestfil.fit.

Now install CCfits.lib and its header files into the default installation location, or the directory you specified in step 4:

CCfits.build> nmake install

Author: Paul_Kunz@slac.stanford.edu Revised 1 Nov 2006 by Bryan Irby Revised Jan 2016 by Craig Gordon