/* include/GyotoConfig.h.  Generated from GyotoConfig.h.in by configure.  */
/**
 * \file GyotoConfig.h
 * \brief Compile-time configuration
 *
 * Codes based on Gyoto and Gyoto plug-ins must have access to the
 * flags used when compiling Gyoto. This files is generated by Gyoto's
 * configure script and holds influential variables such as
 * HAVE_SINCOS.
 *
 * The values determined by configure when this documentation was
 * built are documented, replaced by "(undefined)" if the macro was
 * undefined.
 */
/*
    Copyright 2012-2015, 2018 Thibaut Paumard

    This file is part of Gyoto.

    Gyoto is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Gyoto is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Gyoto.  If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef __GyotoConfig_H_
#define __GyotoConfig_H_

/** \def GYOTO_DEBUG_ENABLED
    \brief Whether debugging information gathering code was enabled. */
#define GYOTO_DEBUG_ENABLED 1
#ifdef DOXYGEN_RUN
# ifndef GYOTO_DEBUG_ENABLED
#  define GYOTO_DEBUG_ENABLED 1
# endif
#endif

/** \def GYOTO_PLUGIN_SFX
    \brief Suffix for Gyoto plug-ins. */
#define GYOTO_PLUGIN_SFX "so"
#ifdef DOXYGEN_RUN
# ifndef GYOTO_PLUGIN_SFX
#  define GYOTO_PLUGIN_SFX "so"
# endif
#endif

/** \def GYOTO_PREFIX
    \brief Gyoto prefix. */
/* #undef GYOTO_PREFIX */
#ifdef DOXYGEN_RUN
# ifndef GYOTO_PREFIX
#  define GYOTO_PREFIX (undefined)
# endif
#endif

/** \def GYOTO_PKGLIBDIR
    \brief Gyoto pkglibdir, usually GYOTO_PREFIX/lib/gyoto */
/* #undef GYOTO_PKGLIBDIR */
#ifdef DOXYGEN_RUN
# ifndef GYOTO_PKGLIBDIR
#  define GYOTO_PKGLIBDIR (undefined)
# endif
#endif

/** \def GYOTO_SIZE__T_IS_UNSIGNED_LONG
    \brief Define to 1 if size_t and unsigned long are the same */
#define GYOTO_SIZE__T_IS_UNSIGNED_LONG 1
#ifdef DOXYGEN_RUN
# ifndef GYOTO_SIZE__T_IS_UNSIGNED_LONG
#  define GYOTO_SIZE__T_IS_UNSIGNED_LONG 1
# endif
#endif

/** \def GYOTO_SOVERS
    \brief Gyoto ABI version.

    Updated in stable releases, not during dev. cycle. */
#define GYOTO_SOVERS "9-mp-2.0.2-20251105-nompi"
#ifdef DOXYGEN_RUN
# ifndef GYOTO_SOVERS
#  define GYOTO_SOVERS "9-mp-2.0.2-20251105-nompi"
# endif
#endif

/** \def GYOTO_USE_FLINT
 *  \brief Whether flint support is compiled-in.
 *
 *  One of FLIT, ARBLIB or AEAE is necessary for Astrobj::Jet.
 */
#define GYOTO_USE_FLINT 1
#ifdef DOXYGEN_RUN
# ifndef GYOTO_USE_FLINT
#  define GYOTO_USE_FLINT 1
# endif
#endif

/** \def GYOTO_USE_ARBLIB
 *  \brief Whether arblib support is compiled-in.
 *
 *  One of ARBLIB or AEAE is necessary for Astrobj::Jet.
 */
/* #undef GYOTO_USE_ARBLIB */
#ifdef DOXYGEN_RUN
# ifndef GYOTO_USE_ARBLIB
#  define GYOTO_USE_ARBLIB (undefined)
# endif
#endif

/** \def GYOTO_USE_AEAE
 *  \brief Whether aeae support is compiled-in.
 *
 *  One of ARBLIB or AEAE is necessary for Astrobj::Jet.
 */
/* #undef GYOTO_USE_AEAE */
#ifdef DOXYGEN_RUN
# ifndef GYOTO_USE_AEAE
#  define GYOTO_USE_AEAE (undefined)
# endif
#endif

/** \def GYOTO_USE_CFITSIO
 *  \brief Whether cfitsio support is compiled-in.
 *
 *  Necessary for FITS file format i/o, used in the Gyoto tool and
 *  optional in Gtyoto::PatternDisk.
 */
#define GYOTO_USE_CFITSIO 1
#ifdef DOXYGEN_RUN
# ifndef GYOTO_USE_CFITSIO
#  define GYOTO_USE_CFITSIO 1
# endif
#endif

/** \def GYOTO_USE_UDUNITS
 *  \brief Whether libudunits2 support is compiled in.
 *
 *  Foundation for the Gyoto::Units framework. Gyoto ought to build
 *  and work without it, but with restricted unit conversion
 *  capabilities.
 */
#define GYOTO_USE_UDUNITS 1
#ifdef DOXYGEN_RUN
# ifndef GYOTO_USE_UDUNITS
#  define GYOTO_USE_UDUNITS 1
# endif
#endif

/** \def HAVE_UDUNITS
 *  \brief Whether libudunits2 support is compiled in.
 *
 *  Foundation for the Gyoto::Units framework. Gyoto ought to build
 *  and work without it, but with restricted unit conversion
 *  capabilities.
 */
#ifdef GYOTO_USE_UDUNITS
# define HAVE_UDUNITS
#endif

/** \def GYOTO_USE_XERCES
    \brief Whether Xerces support (XML i/o) is compiled-in.

    Used only in the Gyoto::Factory but Gyoto build is not often
    tested without it.
 */
#define GYOTO_USE_XERCES 1
#ifdef DOXYGEN_RUN
# ifndef GYOTO_USE_XERCES
#  define GYOTO_USE_XERCES 1
# endif
#endif

/** \def HAVE_DLFCN_H
    \brief Whether <dlfcn.h> header file was found. */
#define HAVE_DLFCN_H 1
#ifdef DOXYGEN_RUN
# ifndef
#  define  (undefined)
# endif
#endif

/** \def HAVE_INTTYPES_H
    \brief Whether <inttypes.h> header file was found. */
#define HAVE_INTTYPES_H 1
#ifdef DOXYGEN_RUN
# ifndef HAVE_INTTYPES_H
#  define HAVE_INTTYPES_H 1
# endif
#endif

/** \def HAVE_LIBDL
    \brief Whether the `dl' library (-ldl) was found.

    Plug-in support.
 */
#define HAVE_LIBDL 1
#ifdef DOXYGEN_RUN
# ifndef HAVE_LIBDL
#  define HAVE_LIBDL 1
# endif
#endif

/** \def HAVE_MEMORY_H
    \brief Whether the <memory.h> header file was found. */
/* #undef HAVE_MEMORY_H */
#ifdef DOXYGEN_RUN
# ifndef HAVE_MEMORY_H
#  define HAVE_MEMORY_H (undefined)
# endif
#endif

/** \def HAVE_MPI
 *  \brief Whether MPI support is compiled in.
 *
 *  Message-passing interface, used in multi-process ray-tracing
 */
/* #undef HAVE_MPI */
#ifdef DOXYGEN_RUN
# ifndef HAVE_MPI
#  define HAVE_MPI (Undefined)
# endif
#endif

/** \def HAVE_PTHREAD
 *  \brief Whether POSIX threads support is compiled-in.
 *
 *  Multi-threading support, see Gyoto::Scenery::nthreads_.
 */
#define HAVE_PTHREAD 1
#ifdef DOXYGEN_RUN
# ifndef HAVE_PTHREAD
#  define HAVE_PTHREAD 1
# endif
#endif

/** \def HAVE_PTHREAD_PRIO_INHERIT
    \brief Have PTHREAD_PRIO_INHERIT. */
#define HAVE_PTHREAD_PRIO_INHERIT 1
#ifdef DOXYGEN_RUN
# ifndef HAVE_PTHREAD_PRIO_INHERIT
#  define HAVE_PTHREAD_PRIO_INHERIT 1
# endif
#endif

/** \def HAVE_SINCOS
 *  \brief Whether the `sincos' function is available.
 *
 *  Else Gyoto provides it as a macro in GyotoDefs.h.
 */
/* #undef HAVE_SINCOS */
#ifdef DOXYGEN_RUN
# ifndef HAVE_SINCOS
#  define HAVE_SINCOS (undefined)
# endif
#endif

/** \def HAVE_STDINT_H
    \brief Whether the <stdint.h> header file was found. */
#define HAVE_STDINT_H 1
#ifdef DOXYGEN_RUN
# ifndef HAVE_STDINT_H
#  define HAVE_STDINT_H 1
# endif
#endif

/** \def HAVE_STDLIB_H
    \brief Whether the <stdlib.h> header file was found. */
#define HAVE_STDLIB_H 1
#ifdef DOXYGEN_RUN
# ifndef HAVE_STDLIB_H
#  define HAVE_STDLIB_H 1
# endif
#endif

/** \def HAVE_STRINGS_H
    \brief Whether the <strings.h> header file was found. */
#define HAVE_STRINGS_H 1
#ifdef DOXYGEN_RUN
# ifndef HAVE_STRINGS_H
#  define HAVE_STRINGS_H 1
# endif
#endif

/** \def HAVE_STRING_H
    \brief Whether the <string.h> header file was found. */
#define HAVE_STRING_H 1
#ifdef DOXYGEN_RUN
# ifndef HAVE_STRING_H
#  define HAVE_STRING_H 1
# endif
#endif

/** \def HAVE_SYS_STAT_H
    \brief Whether the <sys/stat.h> header file was found. */
#define HAVE_SYS_STAT_H 1
#ifdef DOXYGEN_RUN
# ifndef HAVE_SYS_STAT_H
#  define HAVE_SYS_STAT_H 1
# endif
#endif

/** \def HAVE_SYS_TYPES_H
    \brief Whether the <sys/types.h> header file was found. */
#define HAVE_SYS_TYPES_H 1
#ifdef DOXYGEN_RUN
# ifndef HAVE_SYS_TYPES_H
#  define HAVE_SYS_TYPES_H 1
# endif
#endif

/** \def HAVE_BOOST
 *  \brief Whether Boost is available
 *
 */
#define HAVE_BOOST 1
#ifdef DOXYGEN_RUN
# ifndef HAVE_BOOST
#  define HAVE_BOOST 1
# endif
#endif

/** \def HAVE_BOOST_ARRAY_HPP
 *  \brief Whether boost::array is available
 *
 */
#define HAVE_BOOST_ARRAY_HPP 1
#ifdef DOXYGEN_RUN
# ifndef HAVE_BOOST_ARRAY_HPP
#  define HAVE_BOOST_ARRAY_HPP 1
# endif
#endif

/** \def HAVE_BOOST_ARRAY_HPP
 *  \brief Whether Boost spectial functions are available
 *
 */
#define HAVE_BOOST_ARRAY_HPP 1
#ifdef DOXYGEN_RUN
# ifndef HAVE_BOOST_ARRAY_HPP
#  define HAVE_BOOST_ARRAY_HPP 1
# endif
#endif

/** \def HAVE_BOOST_MULTIPRECISION_CPP_DEC_FLOAT_HPP
 *  \brief Whether support for arbitrary precision arithmetics is present
 *
 */
#define HAVE_BOOST_MULTIPRECISION_CPP_DEC_FLOAT_HPP 1
#ifdef DOXYGEN_RUN
# ifndef HAVE_BOOST_MULTIPRECISION_CPP_DEC_FLOAT_HPP
#  define HAVE_BOOST_MULTIPRECISION_CPP_DEC_FLOAT_HPP 1
# endif
#endif

/** \def GYOTO_HAVE_BOOST_INTEGRATORS
 *  \brief Whether Boost.odeint is present, as well as C++11
 *
 *  Advanced integrators from boost/numeric/odeint/.
 */
#define GYOTO_HAVE_BOOST_INTEGRATORS 1
#ifdef DOXYGEN_RUN
# ifndef GYOTO_HAVE_BOOST_INTEGRATORS
#  define GYOTO_HAVE_BOOST_INTEGRATORS 1
# endif
#endif

/** \def HAVE_UNISTD_H
    \brief Whether the <unistd.h> header file was found. */
#define HAVE_UNISTD_H 1
#ifdef DOXYGEN_RUN
# ifndef HAVE_UNISTD_H
#  define HAVE_UNISTD_H 1
# endif
#endif

/** \def HAVE_FENV_H
    \brief Define to 1 to use fenv.h. */
/* #undef HAVE_FENV_H */
#ifdef DOXYGEN_RUN
# ifndef HAVE_FENV_H
#  define HAVE_FENV_H (undefined)
# endif
#endif

/** \def HAVE__BOOL
    \brief Whether the system has the type `_Bool'. */
/* #undef HAVE__BOOL */
#ifdef DOXYGEN_RUN
# ifndef HAVE__BOOL
#  define HAVE__BOOL (undefined)
# endif
#endif

/** \def PTHREAD_CREATE_JOINABLE
    \brief Define to necessary symbol if this constant uses a non-standard name on your system. */
/* #undef PTHREAD_CREATE_JOINABLE */
#ifdef DOXYGEN_RUN
# ifndef PTHREAD_CREATE_JOINABLE
#  define PTHREAD_CREATE_JOINABLE (undefined)
# endif
#endif

/** \def STDC_HEADERS
    \brief Whether the ANSI C header files were found. */
#define STDC_HEADERS 1
#ifdef DOXYGEN_RUN
# ifndef STDC_HEADERS
#  define STDC_HEADERS 1
# endif
#endif

/** \def size_t
    \brief If not defined in <sys/types.h>. */
/* #undef size_t */
#ifdef DOXYGEN_RUN
# ifndef size_t
#  define size_t (undefined)
# endif
#endif

#endif
