AstrOmatic software (formerly part of TERAPIX software) is meant to be portable. The main code is written in ANSI C, system function calls conform to POSIX, and the build system relies on GNU Autotools.
In principle, on Unix and Unix-like systems, all is needed to compile and install the source code is
sudo make install
The configure step can be customized using configure options (type configure --help for a list of options).
Modern operating system distributions come with binary package management tools to install binary packages and handle possible inter-package dependencies. The RPM system is available for most Linux distributions and makes for instance the installation/update of SExtractor as simple as:
sudo rpm -U sextractor-2.8.6-1.x86_64.rpm
In some cases, you may have to add the --force and --nodeps options to the command above. Linux users who have installed RPM binary releases of AstrOmatic software may have noticed that they are packaged differently from older (TERAPIX) releases. Here are the main changes:
- The installation root path for binaries and data is now the /usr/ instead of /usr/local/, as for regular Linux distribution packages.
- All executables are now dynamically linked with common system libraries (libc, libpthread). Linking with the PLplot library is now dynamic as well, which means that the PLplot package must be installed for running AstrOmatic software that depends on it (e.g. SCAMP). Most Linux distributions include binary versions of PLplot now; but if you intend to produce large quantities of plots in PNG format I strongly suggest you install PLplot from the source code, and turn on the basic gd-based PNG driver in the PLplot configuration (unfortunately the gd-based PNG driver is deactivated in recent binary releases of PLplot, and as a consequence some plots take >10× more time to complete).
- Linking with the ATLAS and FFTW libraries is still static; installing these libraries is therefore not required to operate AstrOmatic software. But this sets some minimum requirements on the processor's instruction set, especially SIMD instructions (you may need to recompile the source code to run on older processors):
- 32 bit x86 processors: INTEL Pentium IV processors (2001) or later, AMD Athlon 64 processors (2003) or later (SSE2 instructions)
- 64 bit x86-64 processors: AMD Athlon 64 90nm processors (2005) or later, INTEL Pentium D (2005) or later (SSE3 instructions). Note that first generation Athlon64s (130nm process) are not compatible.
- Current RPMs are compiled on a Fedora 9 Linux system, and should be compatible with most Linux distributions released from 2006 till now. They are optimized for machines with an INTEL Core2 architecture, and up to 8 processor cores.
Is it better to install from the source or from the binary package?The honest answer is: it depends.
- On the one hand, building from the source distribution is not always the most convenient and efficient way to install software. Most problems occur because of external libraries. A growing number of AstrOmatic packages (currently PSFEx, SCAMP, SExtractor and SkyMaker) rely on external libraries, such as ATLAS or FFTW. Although the development versions of these libraries can themselves be compiled and installed from their source code, experience shows that configuration and compilation is often a lengthy (up to several hours for ATLAS!) and frustrating process. Basically, if the AstrOmatic binary package you installed works reliably, and does it fast enough for you, then you're done.
- On the other hand, installing from the source package makes it possible to tune up the configuration (number of threads, library versions). It may be the only available option if your system is not compatible with the precompiled binary releases (e.g. too old, or too recent), or if you want to run unstable versions from the AstrOmatic SubVersion repositories. However, on x86 systems, compiling the code yourself may lead to slower executables if you don't have the INTEL C compiler (icc). The reason is that icc is able to vectorise code that gcc can't, like transcendental functions in loops. The gain in speed can be as much as 4× in some parts of the code. By default, all AstrOmatic binary packages are compiled using icc. If you decide to compile the source code of an AstrOmatic package that depends on the ATLAS and/or FFTW external libraries, I strongly suggest you also install these libraries from the source code, and do not rely on pre-compiled binaries. This will allow these packages to be optimized for your computer architecture (e.g., number of threads in ATLAS), and take advantage of specific processor features (instruction set, number of registers, cache size).