The gnuastro/config.h header contains information about the full Gnuastro installation on your system. Gnuastro developers should note that this is the only header that is not available within Gnuastro, it is only available to a Gnuastro library user after installation. Within Gnuastro, config.h (which is included in every Gnuastro .c file, see Coding conventions) has more than enough information about the overall Gnuastro installation.
This macro can be used as a string literal142 containing the version of Gnuastro that is being used. See Version numbering for the version formats. For example:
printf("Gnuastro version: %s\n", GAL_CONFIG_VERSION);
Libgit2 is an optional dependency of Gnuastro (see Optional dependencies). When it is installed and detected at configure time, this
macro will have a value of
1 (one). Otherwise, it will have a value
0 (zero). Gnuastro also comes with some wrappers to make it
easier to use libgit2 (see Git wrappers (git.h)).
WCSLIB is the reference library for world coordinate system transformation
(see WCSLIB and World Coordinate System (wcs.h)). However, only more
recent versions of WCSLIB also provide its version number. If the WCSLIB
that is installed on the system provides its version (through the possibly
wcslib_version function), this macro will have a value of
one, otherwise it will have a value of zero.
The POSIX threads standard define barriers as an optional
requirement. Therefore, some operating systems choose to not include it. As
one of the
./configure step checks, Gnuastro we check if your
system has this POSIX thread barriers. If so, this macro will have a value
1, otherwise it will have a value of
pthread_barrier for more.
The size of (number of bytes in) the system’s
types. Their values are commonly either 4 or 8 for 32-bit and 64-bit
systems. You can also get this value with the expression ‘
size_t’ for example without having to include this header.