/*! \libinternal \file * \brief * Include file for configuration macros from the build system. * * This header is not installed, so headers must not reference macros defined * here. * * \inlibraryapi */ #include "gromacs/utility/gmx_header_config.h" /* TODO: For now, disable Doxygen warnings from here */ /*! \cond */ /* Disable warnings about double-to-float conversion accuracy loss on MSVC */ #ifdef _MSC_VER #pragma warning (disable : 4305) #pragma warning (disable : 4244) #pragma warning (disable : 4101) #pragma warning (disable : 4996) #pragma warning (disable : 4267) #pragma warning (disable : 4090) #endif /* Name of package (translate from cmake to autoconf macro name) */ #define PACKAGE "@PROJECT_NAME@" /* Version number of package (translate from cmake to autoconf macro name) */ #define VERSION "@PROJECT_VERSION@" /* Use extra version information generated with git */ #cmakedefine GMX_GIT_VERSION_INFO /* Default location of data files */ #define GMXLIBDIR "@GMXLIBDIR@" /* Binary suffix for the created binaries */ #define GMX_BINARY_SUFFIX "@GMX_BINARY_SUFFIX@" /* Source directory for the build */ #cmakedefine CMAKE_SOURCE_DIR "@CMAKE_SOURCE_DIR@" /* Binary directory for the build */ #cmakedefine CMAKE_BINARY_DIR "@CMAKE_BINARY_DIR@" /* Turn off water-water neighborlist optimization only - not used right now */ #cmakedefine DISABLE_WATERWATER_NLIST /* Turn off all water neighborlist optimization - not used right now */ #cmakedefine DISABLE_WATER_NLIST /* IEEE754 floating-point format. Memory layout is defined by macros * GMX_IEEE754_BIG_ENDIAN_BYTE_ORDER and GMX_IEEE754_BIG_ENDIAN_WORD_ORDER. */ #cmakedefine GMX_FLOAT_FORMAT_IEEE754 /* Work around broken calloc() */ #cmakedefine GMX_BROKEN_CALLOC /* Enable special hacks for Cray XT3 */ #cmakedefine GMX_CRAY_XT3 /* Do not optimize FFTW setups (not needed with SSE FFT kernels) */ #cmakedefine GMX_DISABLE_FFTW_MEASURE /* Compile in double precision */ #cmakedefine GMX_DOUBLE /* Use Built-in FFTPACK FFT library */ #cmakedefine GMX_FFT_FFTPACK /* Use FFTW3 FFT library */ #cmakedefine GMX_FFT_FFTW3 /* Use Intel MKL FFT library */ #cmakedefine GMX_FFT_MKL /* Use AMD core math library */ #cmakedefine GMX_FFT_ACML /* SSE2 instructions available */ #cmakedefine GMX_X86_SSE2 /* SSE4.1 instructions available */ #cmakedefine GMX_X86_SSE4_1 /* AVX 128-bit FMA instructions available */ #cmakedefine GMX_X86_AVX_128_FMA /* AVX 256-bit instructions available */ #cmakedefine GMX_X86_AVX_256 /* GCC bug in AVX maskload/maskstore arguments - worked around internally */ #cmakedefine GMX_X86_AVX_GCC_MASKLOAD_BUG /* SSE2 was selected as CPU acceleration level */ #cmakedefine GMX_CPU_ACCELERATION_X86_SSE2 /* SSE4.1 was selected as CPU acceleration level */ #cmakedefine GMX_CPU_ACCELERATION_X86_SSE4_1 /* AVX 128-bit FMA was selected as CPU acceleration level */ #cmakedefine GMX_CPU_ACCELERATION_X86_AVX_128_FMA /* AVX 256-bit was selected as CPU acceleration level */ #cmakedefine GMX_CPU_ACCELERATION_X86_AVX_256 /* IBM QPX was selected as CPU acceleration type (e.g. BlueGene/Q) */ #cmakedefine GMX_CPU_ACCELERATION_IBM_QPX /* String for CPU acceleration choice (for writing to log files and stdout) */ #define GMX_CPU_ACCELERATION_STRING "@GMX_CPU_ACCELERATION@" /* Integer byte order is big endian. */ #cmakedefine GMX_INTEGER_BIG_ENDIAN /* Use our own instead of system XDR libraries */ #cmakedefine GMX_INTERNAL_XDR /* Use MPI (with mpicc) for parallelization */ #cmakedefine GMX_LIB_MPI /* MPI_IN_PLACE exists for collective operations */ #cmakedefine MPI_IN_PLACE_EXISTS /* Make a parallel version of GROMACS using message passing (MPI or thread_mpi) */ #cmakedefine GMX_MPI /* Use threads_mpi for parallelization */ #cmakedefine GMX_THREAD_MPI /* Use OpenMP multithreading */ #cmakedefine GMX_OPENMP /* Ignore calls to nice(3) */ #cmakedefine GMX_NO_NICE /* Ignore calls to system(3) */ #cmakedefine GMX_NO_SYSTEM /* Use (modified) Gamess-UK for QM-MM calculations */ #cmakedefine GMX_QMMM_GAMESS /* Use (modified) Gaussian0x for QM-MM calculations */ #cmakedefine GMX_QMMM_GAUSSIAN /* Use (modified) Mopac 7 for QM-MM calculations */ #cmakedefine GMX_QMMM_MOPAC /* Use the GROMACS software 1/sqrt(x) */ #cmakedefine GMX_SOFTWARE_INVSQRT /* Use sub-counters */ #cmakedefine GMX_CYCLE_SUBCOUNTERS /* Compile with plugin support */ #cmakedefine GMX_USE_PLUGINS /* Fallback path for VMD plug-ins */ #define GMX_VMD_PLUGIN_PATH "@GMX_VMD_PLUGIN_PATH@" /* Define when pthreads are used */ #cmakedefine THREAD_PTHREADS /* Define when Windows threads are used */ #cmakedefine THREAD_WINDOWS /* Define when thread-MPI atomic operations are available */ #cmakedefine TMPI_ATOMICS /* Define for busy wait option */ #cmakedefine TMPI_WAIT_FOR_NO_ONE /* Define for copy buffer option */ #cmakedefine TMPI_COPY_BUFFER /* Define for profiling option */ #cmakedefine TMPI_PROFILE /* Define for Linux pthread_setaffinity */ #cmakedefine HAVE_PTHREAD_SETAFFINITY /* Define for sysconf() */ #cmakedefine HAVE_SYSCONF /* Enable x86 gcc inline assembly */ #cmakedefine GMX_X86_GCC_INLINE_ASM /* Use GPU native acceleration */ #cmakedefine GMX_GPU /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ #cmakedefine HAVE_FSEEKO /* Define to 1 if _fseeki64 (and presumably _fseeki64) exists and is declared. */ #cmakedefine HAVE__FSEEKI64 /* Define to 1 if you have the gsl library (-lgsl). */ #cmakedefine HAVE_LIBGSL /* Have io.h (windows)*/ #cmakedefine HAVE_IO_H /* Define to 1 if you have the strdup() function. */ #cmakedefine HAVE_STRDUP /* Define to 1 if you have the posix_memalign() function. */ #cmakedefine HAVE_POSIX_MEMALIGN /* Define to 1 if you have the memalign() function. */ #cmakedefine HAVE_MEMALIGN /* Define to 1 if you have the MSVC _aligned_malloc() function. */ #cmakedefine HAVE__ALIGNED_MALLOC /* Define to 1 if you have the gettimeofday() function. */ #cmakedefine HAVE_GETTIMEOFDAY /* Define to 1 if you have the cbrt() function. */ #cmakedefine HAVE_CBRT /* Define to 1 if you have the isfinite() function. */ #cmakedefine HAVE_ISFINITE /* Define to 1 if you have the _isfinite() function. */ #cmakedefine HAVE__ISFINITE /* Define to 1 if you have the _finite() function. */ #cmakedefine HAVE__FINITE /* Define to 1 if you have the fsync() function. */ #cmakedefine HAVE_FSYNC /* Define to 1 if you have the Windows _commit() function. */ #cmakedefine HAVE__COMMIT /* Define to 1 if you have the fileno() function. */ #cmakedefine HAVE_FILENO /* Define to 1 if you have the _fileno() function. */ #cmakedefine HAVE__FILENO /* Define to 1 if you have the sigaction() function. */ #cmakedefine HAVE_SIGACTION /* Define to 1 if you have the rsqrt() function. */ #cmakedefine HAVE_RSQRT /* Define to 1 if you have the rsqrtf() function. */ #cmakedefine HAVE_RSQRTF /* Define to 1 if you have the sqrtf() function. */ #cmakedefine HAVE_SQRTF /* Define to 1 if yo have the header file. */ #cmakedefine HAVE_UNISTD_H /* Define to 1 if yo have the header file. */ #cmakedefine HAVE_PWD_H /* Define to 1 if yo have the header file. */ #cmakedefine HAVE_PTHREAD_H /* Define to 1 if yo have the header file. */ #cmakedefine HAVE_DIRENT_H /* Define to 1 if you have the header file. */ #cmakedefine HAVE_SYS_TIME_H /* Define to 1 if you have the header file */ #cmakedefine HAVE_X86INTRIN_H /* Define to 1 if you have the header file */ #cmakedefine HAVE_INTRIN_H /* Define to 1 if you have the header */ #cmakedefine HAVE_SCHED_H /* Define to 1 if you have the POSIX header file. */ #cmakedefine HAVE_POSIX_REGEX /* Define to 1 if you have the C++11 header file. */ #cmakedefine HAVE_CXX11_REGEX /* Define to 1 if you have the sysconf() function */ #cmakedefine HAVE_SYSCONF /* Define to 1 if you have the sched_getaffinity() function */ #cmakedefine HAVE_SCHED_GETAFFINITY /* Define to 1 if you have the sched_setaffinity() function */ #cmakedefine HAVE_SCHED_SETAFFINITY /* Bytes in IEEE fp word are in big-endian order if set, little-endian if not. Only relevant when FLOAT_FORMAT_IEEE754 is defined. */ #cmakedefine GMX_IEEE754_BIG_ENDIAN_BYTE_ORDER /* The two words in a double precision variable are in b ig-endian order if set, little-endian if not. Do NOT assume this is the same as the byte order! Only relevant when FLOAT_FORMAT_IEEE754 is defined. */ #cmakedefine GMX_IEEE754_BIG_ENDIAN_WORD_ORDER /* Define if SIGUSR1 is present */ #cmakedefine HAVE_SIGUSR1 /* The size of int, as computed by sizeof. */ #cmakedefine SIZEOF_INT @SIZEOF_INT@ /* The size of long int, as computed by sizeof. */ #cmakedefine SIZEOF_LONG_INT @SIZEOF_LONG_INT@ /* The size of long long int, as computed by sizeof. */ #cmakedefine SIZEOF_LONG_LONG_INT @SIZEOF_LONG_LONG_INT@ /* The size of off_t, as computed by sizeof. */ #cmakedefine SIZEOF_OFF_T @SIZEOF_OFF_T@ /* The size of void*, as computed by sizeof. */ #cmakedefine SIZEOF_VOIDP @SIZEOF_VOIDP@ /* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ #cmakedefine _LARGEFILE_SOURCE /* Define for large files, on AIX-style hosts. */ #cmakedefine _LARGE_FILES /* Some systems requires this to be set to 64 for large file support */ #cmakedefine _FILE_OFFSET_BITS @_FILE_OFFSET_BITS@ /* Define to __inline__ or __inline if that is what the C compiler calls it, or to nothing if inline is not supported under any name. Please do NOT remove the gmx_inline keyword from here. The classical C++ inline keyword is merely a recommendation to the compiler, and many compilers support stronger alternatives (e.g. __forceinline) that we might want to use. */ #define gmx_inline ${INLINE_KEYWORD} #ifndef __cplusplus #define inline ${INLINE_KEYWORD} #endif /* Define to __restrict__ or __restrict if that is what the C compiler calls it, unless we are on C99 when it is simply called restrict. Since restrict is a reserved key word in C99 we are not allowed to redefine the word itself, so call this gmx_restrict to avoid having to identify the language standard level. If it is not supported, it is still defined to an empty string here. */ #define gmx_restrict ${RESTRICT_KEYWORD} /* Build special-purpose mdrun library */ #cmakedefine GMX_FAHCORE /* Enable gromacs quotes */ #cmakedefine GMX_COOL_QUOTES #ifdef GMX_FAHCORE #define FULLINDIRECT 1 #define USE_FAH_XDR 1 #include "swindirect.h" #endif /* default name mangling maybe wrong on exotic plattforms */ #define F77_FUNC(name,NAME) name ## _ /* Define if we have pipes */ #cmakedefine HAVE_PIPES /* Catch stupid CMake problems on OS X */ #ifdef __APPLE__ # if ((defined(__LP64__) && __LP64__ && defined(SIZEOF_VOIDP) && SIZEOF_VOIDP<8) || ( (!defined(__LP64__) || __LP64__==0) && (defined(SIZEOF_VOIDP) && SIZEOF_VOIDP>4))) # error "Inconsistency between current OS X architecture and the one used to generate original" # error "CMake configuration. This is probably caused by starting CMake with the default value" # error "for CMAKE_OSX_ARCHITECTURES (blank), and then changing it. In this case all the tests" # error "will have been performed with the original (now incorrect) architecture." # error "To fix this, set CMAKE_OSX_ARCHITECTURES on the _command_line_ before starting CMake," # error "or create a new such entry with your choice in the GUI _before_ hitting 'configure'." # endif #endif /*! \endcond */