Here is the list of differences with the HEASARC, NASA/GSFC cfitsio upstream [1]:
Almost all changes to the build system are included in the configure.ac and Makefile.am files. Compare these files to the original configure.in and Makefile.in, or read below for a list of changes.
-
Use of libtool which adds portability for compiler and linker platform wrapping, shared libraries building with PIC, static without PIC.
-
zlib is unbundled and cfitsio is linked to zlib system libraries.
-
The executable tools fpack, funpack, imcopy, fitscopy, and listhead are built by default. The compiling can be disabled at configure time with the option "--without-tools". The listhead exec has been re-introduced (it was removed from upstream 3.270 and above).
-
An option to build cfitsio without fortran (--disable-fortran) has been introduced.
-
An option to build cfitsio without bzip2 (--without-bzip2) has been introduced.
-
The Globus ftp detection (--with-gsiftp option) has been rewritten to be more portable.
-
Threading uses a more standard autoconf macro ax_pthread.m4 from the autoconf archive [2], resulting in the more standard, more portable (and intuitive) option "--enable-threads" instead of "--enable-reentrant".
-
Simple unit testing (the cookbook) can be compiled and executed with "make check".
-
Modern and portable autoconf macros are used to check existing functions and libraries.
-
Use of autoheader to generate config.h at configure time that will be used at compile time for the preprocessing HAVE_* definitions.
-
The generated parsing files are now built using the BUILT_SOURCES feature of automake for robustness.
-
The cfitsio.pc pkg-config file generated by configure uses all libraries and is versioned at configure time.
We try to keep the main code synchronized with upstream. Some patches might be applied to the C code itself if we think they are necessary. All patches are located in the addons/patches directory. Some are from Gentoo, other are inspired from users or other distributions ([3],[4]).