Most of the options to configure (which are to do with building) are similar for every program which uses this script. Here the options that are particular to Gnuastro are discussed. The next topics explain the usage of other configure options which can be applied to any program using the GNU build system (through the configure script).
Compile/build Gnuastro with debugging information, no optimization and without shared libraries.
In order to allow more efficient programs when using Gnuastro (after the
installation), by default Gnuastro is built with a 3rd level (a very high
level) optimization and no debugging information. By default, libraries are
also built for static and shared linking (see
Linking). However, when there are crashes or unexpected behavior,
these three features can hinder the process of localizing the problem. This
configuration option is identical to manually calling the configuration
CFLAGS="-g -O0" --disable-shared.
In the (rare) situations where you need to do your debugging on the shared
libraries, don’t use this option. Instead run the configure script by
CFLAGS like this:
$ ./configure CFLAGS="-g -O0"
make check tests through Valgrind. Therefore, if any
crashes or memory-related issues (segmentation faults in particular) occur
in the tests, the output of Valgrind will also be put in the
tests/test-suite.log file without having to manually modify the
check scripts. This option will also activate Gnuastro’s debug mode (see
the --enable-debug configure-time option described above).
Valgrind is free software. It is a program for easy checking of
memory-related issues in programs. It runs a program within its own
controlled environment and can thus identify the exact line-number in the
program’s source where a memory-related issue occurs. However, it can
significantly slow-down the tests. So this option is only useful when a
segmentation fault is found during
Only build and install progname along with any other program that is enabled in this fashion. progname is the name of the executable without the ast, for example crop for Crop (with the executable name of astcrop).
Note that by default all the programs will be installed. This option (and the --disable-progname options) are only relevant when you don’t want to install all the programs. Therefore, if this option is called for any of the programs in Gnuastro, any program which is not explicitly enabled will not be built or installed.
Do not build or install the program named progname. This is very similar to the --enable-progname, but will build and install all the other programs except this one.
Enable checks on the GNU Portability Library (Gnulib). Gnulib is used
by Gnuastro to enable users of non-GNU based operating systems (that
don’t use GNU C library or glibc) to compile and use the advanced
features that this library provides. We make extensive use of such
functions. If you give this option to
$ ./configure, when
$ make check, first the functions in Gnulib will be
tested, then the Gnuastro executables. If your operating system does
not support glibc or has an older version of it and you have problems
in the build process (
$ make), you can give this flag to
configure to see if the problem is caused by Gnulib not supporting
your operating system or Gnuastro, see Known issues.
Do not print a guiding message during the GNU Build process of Quick start. By default, after each step, a message is printed guiding the user
what the next command should be. Therefore, after
will suggest running
make, it will suggest
make check and so on. If Gnuastro is configured with this
option, for example
$ ./configure --disable-guide-message
Then these messages will not be printed after any step (like most programs). For people who are not yet fully accustomed to this build system, these guidelines can be very useful and encouraging. However, if you find those messages annoying, use this option.
Note: If some programs are enabled and some are disabled, it is equivalent to simply enabling those that were enabled. Listing the disabled programs is redundant.
The tests of some programs might depend on the outputs of the tests of
other programs. For example MakeProfiles is one the first programs to be
tested when you run
$ make check. MakeProfiles’ test outputs
(FITS images) are inputs to many other programs (which in turn provide
inputs for other programs). Therefore, if you don’t install MakeProfiles
for example, the tests for many the other programs will be skipped. To
avoid this, in one run, you can install all the programs and run the tests
but not install. If everything is working correctly, you can run configure
again with only the programs you want. However, don’t run the tests and
directly install after building.