/* config.h.in.  Generated from configure.ac by autoheader.  */


#ifndef CODA_CONFIG_H
#define CODA_CONFIG_H


/* Define if building universal (internal helper macro) */
#cmakedefine AC_APPLE_UNIVERSAL_BUILD ${AC_APPLE_UNIVERSAL_BUILD}

/* Define to enable name mangling of symbols for the built-in expat library.
   */
#cmakedefine CODA_EXPAT_NAME_MANGLE ${CODA_EXPAT_NAME_MANGLE}

/* This is the current version of coda */
#cmakedefine CODA_VERSION ${CODA_VERSION}

/* Define to 1 if HDF4 Vdata/Vgroup attributes can be used (only enable if
   CODA is linked against HDF4 library version 4.2r2 or higher). */
#cmakedefine ENABLE_HDF4_VDATA_ATTRIBUTES ${ENABLE_HDF4_VDATA_ATTRIBUTES}

/* Define to 1 if you have the `bcopy' function. */
#cmakedefine HAVE_BCOPY ${HAVE_BCOPY}

/* Define to 1 if you have the <dirent.h> header file. */
#cmakedefine HAVE_DIRENT_H ${HAVE_DIRENT_H}

/* Define to 1 if you have the <dlfcn.h> header file. */
#cmakedefine HAVE_DLFCN_H ${HAVE_DLFCN_H}

/* Define to 1 if you have the `floor' function. */
#cmakedefine HAVE_FLOOR ${HAVE_FLOOR}

/* Define to 1 if you have the `getpagesize' function. */
#cmakedefine HAVE_GETPAGESIZE ${HAVE_GETPAGESIZE}

/* Define to 1 if HDF4 is available. */
#cmakedefine HAVE_HDF4 ${HAVE_HDF4}

/* Define to 1 if HDF5 is available. */
#cmakedefine HAVE_HDF5 ${HAVE_HDF5}

/* Define to 1 if you have the <hdf5.h> header file. */
#cmakedefine HAVE_HDF5_H ${HAVE_HDF5_H}

/* Define to 1 if you have the <hdf.h> header file. */
#cmakedefine HAVE_HDF_H ${HAVE_HDF_H}

/* Define to 1 if you have the <idl_export.h> header file. */
#cmakedefine HAVE_IDL_EXPORT_H ${HAVE_IDL_EXPORT_H}

/* Define to 1 if you have the <inttypes.h> header file. */
#cmakedefine HAVE_INTTYPES_H ${HAVE_INTTYPES_H}

/* Define to 1 if you have the `m' library (-lm). */
#cmakedefine HAVE_LIBM ${HAVE_LIBM}

/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
   to 0 otherwise. */
#cmakedefine HAVE_MALLOC ${HAVE_MALLOC}

/* Define to 1 if you have the `memmove' function. */
#cmakedefine HAVE_MEMMOVE ${HAVE_MEMMOVE}

/* Define to 1 if you have the <mex.h> header file. */
#cmakedefine HAVE_MEX_H ${HAVE_MEX_H}

/* Define to 1 if you have the <mfhdf.h> header file. */
#cmakedefine HAVE_MFHDF_H ${HAVE_MFHDF_H}

/* Define to 1 if you have a working `mmap' system call. */
#cmakedefine HAVE_MMAP ${HAVE_MMAP}

/* Define to 1 if you have the <netcdf.h> header file. */
#cmakedefine HAVE_NETCDF_H ${HAVE_NETCDF_H}

/* Define to 1 if you have the `pread' function. */
#cmakedefine HAVE_PREAD ${HAVE_PREAD}

/* Define to 1 if your system has a GNU libc compatible `realloc' function,
   and to 0 otherwise. */
#cmakedefine HAVE_REALLOC ${HAVE_REALLOC}

/* Define to 1 if you have the `stat' function. */
#cmakedefine HAVE_STAT ${HAVE_STAT}

/* Define to 1 if you have the <stdint.h> header file. */
#cmakedefine HAVE_STDINT_H ${HAVE_STDINT_H}

/* Define to 1 if you have the <stdio.h> header file. */
#cmakedefine HAVE_STDIO_H ${HAVE_STDIO_H}

/* Define to 1 if you have the <stdlib.h> header file. */
#cmakedefine HAVE_STDLIB_H ${HAVE_STDLIB_H}

/* Define to 1 if you have the `strcasecmp' function. */
#cmakedefine HAVE_STRCASECMP ${HAVE_STRCASECMP}

/* Define to 1 if you have the `strdup' function. */
#cmakedefine HAVE_STRDUP ${HAVE_STRDUP}

/* Define to 1 if you have the <strings.h> header file. */
#cmakedefine HAVE_STRINGS_H ${HAVE_STRINGS_H}

/* Define to 1 if you have the <string.h> header file. */
#cmakedefine HAVE_STRING_H ${HAVE_STRING_H}

/* Define to 1 if you have the `strncasecmp' function. */
#cmakedefine HAVE_STRNCASECMP ${HAVE_STRNCASECMP}

/* Define to 1 if you have the <sys/mman.h> header file. */
#cmakedefine HAVE_SYS_MMAN_H ${HAVE_SYS_MMAN_H}

/* Define to 1 if you have the <sys/param.h> header file. */
#cmakedefine HAVE_SYS_PARAM_H ${HAVE_SYS_PARAM_H}

/* Define to 1 if you have the <sys/socket.h> header file. */
#cmakedefine HAVE_SYS_SOCKET_H ${HAVE_SYS_SOCKET_H}

/* Define to 1 if you have the <sys/stat.h> header file. */
#cmakedefine HAVE_SYS_STAT_H ${HAVE_SYS_STAT_H}

/* Define to 1 if you have the <sys/types.h> header file. */
#cmakedefine HAVE_SYS_TYPES_H ${HAVE_SYS_TYPES_H}

/* Define to 1 if you have the <unistd.h> header file. */
#cmakedefine HAVE_UNISTD_H ${HAVE_UNISTD_H}

/* Define to 1 if you have the `vsnprintf' function. */
#cmakedefine HAVE_VSNPRINTF ${HAVE_VSNPRINTF}

/* Define to the sub-directory where libtool stores uninstalled libraries. */
#cmakedefine LT_OBJDIR ${LT_OBJDIR}

/* Name of package */
#cmakedefine PACKAGE ${PACKAGE}

/* Define to the address where bug reports for this package should be sent. */
#cmakedefine PACKAGE_BUGREPORT ${PACKAGE_BUGREPORT}

/* Define to the full name of this package. */
#cmakedefine PACKAGE_NAME ${PACKAGE_NAME}

/* Define to the full name and version of this package. */
#cmakedefine PACKAGE_STRING ${PACKAGE_STRING}

/* Define to the one symbol short name of this package. */
#cmakedefine PACKAGE_TARNAME ${PACKAGE_TARNAME}

/* Define to the home page for this package. */
#cmakedefine PACKAGE_URL ${PACKAGE_URL}

/* Define to the version of this package. */
#cmakedefine PACKAGE_VERSION ${PACKAGE_VERSION}

/* Define to the compiler attribute to test for printf format compliance */
#cmakedefine PRINTF_ATTR ${PRINTF_ATTR}

/* Define to 1 if all of the C90 standard headers exist (not just the ones
   required in a freestanding environment). This macro is provided for
   backward compatibility; new code need not use it. */
#cmakedefine STDC_HEADERS ${STDC_HEADERS}

/* thread local storage (TLS) keyword */
#cmakedefine THREAD_LOCAL ${THREAD_LOCAL}

/* Define to 1 if your <sys/time.h> declares `struct tm'. */
#cmakedefine TM_IN_SYS_TIME ${TM_IN_SYS_TIME}

/* Version number of package */
#cmakedefine VERSION ${VERSION}

/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
   significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
#  define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
#cmakedefine WORDS_BIGENDIAN ${WORDS_BIGENDIAN}
# endif
#endif

/* Define to 1 if your Fortran compiler adds an additional underscore to an
   identifier in the object file if the identifier contains an underscore. */
#cmakedefine WRAPFORTRAN_USE_ADDITIONAL_UNDERSCORE ${WRAPFORTRAN_USE_ADDITIONAL_UNDERSCORE}

/* Define to 1 if your Fortran compiler generates object files containing
   uppercase identifiers. */
#cmakedefine WRAPFORTRAN_USE_UPPERCASE_IDENTIFIERS ${WRAPFORTRAN_USE_UPPERCASE_IDENTIFIERS}

/* Define to specify how much context to retain around the current parse
   point. */
#cmakedefine XML_CONTEXT_BYTES ${XML_CONTEXT_BYTES}

/* Define to make parameter entity parsing functionality available. */
#cmakedefine XML_DTD ${XML_DTD}

/* Define to set the size of the XML_Size and XML_Index integer types to be at
   least 64 bits in size. */
#cmakedefine XML_LARGE_SIZE ${XML_LARGE_SIZE}

/* Define to make XML Namespaces functionality available. */
#cmakedefine XML_NS ${XML_NS}

/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
   `char[]'. */
#cmakedefine YYTEXT_POINTER ${YYTEXT_POINTER}

/* Number of bits in a file offset, on hosts where this is settable. */
#cmakedefine _FILE_OFFSET_BITS ${_FILE_OFFSET_BITS}

/* Define for large files, on AIX-style hosts. */
#cmakedefine _LARGE_FILES ${_LARGE_FILES}

/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
   <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
   #define below would cause a syntax error. */
#cmakedefine _UINT32_T ${_UINT32_T}

/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>,
   <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
   #define below would cause a syntax error. */
#cmakedefine _UINT64_T ${_UINT64_T}

/* Define for Solaris 2.5.1 so the uint8_t typedef from <sys/synch.h>,
   <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
   #define below would cause a syntax error. */
#cmakedefine _UINT8_T ${_UINT8_T}

/* Define to the type of a signed integer type of width exactly 16 bits if
   such a type exists and the standard includes do not define it. */
#cmakedefine int16_t ${int16_t}

/* Define to the type of a signed integer type of width exactly 32 bits if
   such a type exists and the standard includes do not define it. */
#cmakedefine int32_t ${int32_t}

/* Define to the type of a signed integer type of width exactly 64 bits if
   such a type exists and the standard includes do not define it. */
#cmakedefine int64_t ${int64_t}

/* Define to the type of a signed integer type of width exactly 8 bits if such
   a type exists and the standard includes do not define it. */
#cmakedefine int8_t ${int8_t}

/* Define to rpl_malloc if the replacement function should be used. */
#cmakedefine malloc ${malloc}

/* Define to rpl_realloc if the replacement function should be used. */
#cmakedefine realloc ${realloc}

/* Define to `unsigned int' if <sys/types.h> does not define. */
#cmakedefine size_t ${size_t}

/* Define to the type of an unsigned integer type of width exactly 16 bits if
   such a type exists and the standard includes do not define it. */
#cmakedefine uint16_t ${uint16_t}

/* Define to the type of an unsigned integer type of width exactly 32 bits if
   such a type exists and the standard includes do not define it. */
#cmakedefine uint32_t ${uint32_t}

/* Define to the type of an unsigned integer type of width exactly 64 bits if
   such a type exists and the standard includes do not define it. */
#cmakedefine uint64_t ${uint64_t}

/* Define to the type of an unsigned integer type of width exactly 8 bits if
   such a type exists and the standard includes do not define it. */
#cmakedefine uint8_t ${uint8_t}


#ifdef HAVE_PREAD
/* some platforms (e.g. Linux) require this definition in order to enable support for pread */
/* Use 600 instead of 500 to prevent Mac OS X to complain about missing strdup definitions */
#define _XOPEN_SOURCE 600
#endif

#ifdef HAVE_INTTYPES_H
#include <inttypes.h>
#else
# ifdef HAVE_STDINT_H
#  include <stdint.h>
# else
#  ifdef HAVE_SYS_TYPES_H
#   include <sys/types.h>
#  endif
# endif
#endif

/* needed for expat */
#ifdef WORDS_BIGENDIAN
#define BYTEORDER 4321
#else
#define BYTEORDER 1234
#endif
#define XML_DEV_URANDOM 1

#ifndef HAVE_STRDUP
char *strdup(const char *);
#endif

#ifndef HAVE_STRCASECMP
int strcasecmp(const char *, const char *);
#endif

#if !defined(HAVE_STRNCASECMP) || !defined(HAVE_VSNPRINTF)
/* include string.h for size_t definition */
#include <string.h>
#endif

#ifndef HAVE_STRNCASECMP
int strncasecmp(const char *, const char *, size_t);
#endif

#if defined(HAVE_STRCASECMP) || defined(HAVE_STRNCASECMP)
#ifdef HAVE_STRINGS_H
/* include strings.h for definition of strcasecmp and strncasecmp */
#include <strings.h>
#endif
#endif

#ifndef HAVE_VSNPRINTF
/* include stdarg.h for va_list definition */
#include <stdarg.h>
int vsnprintf(const char *, size_t, const char *, va_list ap);
#endif

/* Make sure we use the 1.6 compatibility API for HDF 1.8 */
#define H5_USE_16_API

/* Make sure we build the PCRE library statically on Windows */
#define PCRE2_STATIC

#ifdef WIN32

/* include windows specific headers */
#include <windows.h>
#include <io.h>
#include <direct.h>

/* include sys/stat.h because we are going to override stat */
#include <sys/stat.h>

#if (_MSC_VER < 1600) && !defined(__MINGW32__)
/* For Visual Studio > 2010 and MinGW we can use stdint.h
 * For earlier versions of Visual Studio we need to provide our own defines
 */
#ifndef int8_t
#define int8_t  signed char
#endif
#ifndef int16_t
#define int16_t signed short
#endif
#ifndef int32_t
#define int32_t int
#endif
#ifndef int64_t
#define int64_t __int64
#endif

#ifndef uint8_t
#define uint8_t  unsigned char
#endif
#ifndef uint16_t
#define uint16_t unsigned short
#endif
#ifndef uint32_t
#define uint32_t unsigned int
#endif
#ifndef uint64_t
#define uint64_t unsigned __int64
#endif
#endif

/* we need to redefine ELEMENT_TYPE because it conflicts with io.h contents */
#define ELEMENT_TYPE ELEMENT_TYPE_RENAMED

/* redefines for special string handling functions */
#define strcasecmp _stricmp
#define strncasecmp _strnicmp
#if defined(_MSC_VER) && _MSC_VER < 1400
#define snprintf _snprintf
#define vsnprintf _vsnprintf
#endif

/* redefines for file handling functions */
#define open(arg1,arg2) _open(arg1,arg2)
#define close(arg1) _close(arg1)
/* WARNING: On Windows we can't read blocks larger than 4GB with the read() function */
#define read(arg1,arg2,arg3) _read(arg1,arg2,(unsigned int)arg3)
#define lseek(arg1,arg2,arg3) _lseeki64(arg1,arg2,arg3)
#define off_t __int64
#define stat _stati64
#define S_IFREG _S_IFREG

#define YYMALLOC malloc
#define YYFREE free

#endif

#endif /* !defined(CODA_CONFIG_H) */

