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

/* Define to 0 if the target shouldn't use #pragma weak */
#undef GTHREAD_USE_WEAK

/* Define to 1 if you have the `access' function. */
#undef HAVE_ACCESS

/* Define to 1 if you have the `acos' function. */
#undef HAVE_ACOS

/* Define to 1 if you have the `acosf' function. */
#undef HAVE_ACOSF

/* Define to 1 if you have the `acosh' function. */
#undef HAVE_ACOSH

/* Define to 1 if you have the `acoshf' function. */
#undef HAVE_ACOSHF

/* Define to 1 if you have the `acoshl' function. */
#undef HAVE_ACOSHL

/* Define to 1 if you have the `acosl' function. */
#undef HAVE_ACOSL

/* Define to 1 if you have the `alarm' function. */
#undef HAVE_ALARM

/* Define to 1 if you have the `asin' function. */
#undef HAVE_ASIN

/* Define to 1 if you have the `asinf' function. */
#undef HAVE_ASINF

/* Define to 1 if you have the `asinh' function. */
#undef HAVE_ASINH

/* Define to 1 if you have the `asinhf' function. */
#undef HAVE_ASINHF

/* Define to 1 if you have the `asinhl' function. */
#undef HAVE_ASINHL

/* Define to 1 if you have the `asinl' function. */
#undef HAVE_ASINL

/* Define to 1 if you have the `atan' function. */
#undef HAVE_ATAN

/* Define to 1 if you have the `atan2' function. */
#undef HAVE_ATAN2

/* Define to 1 if you have the `atan2f' function. */
#undef HAVE_ATAN2F

/* Define to 1 if you have the `atan2l' function. */
#undef HAVE_ATAN2L

/* Define to 1 if you have the `atanf' function. */
#undef HAVE_ATANF

/* Define to 1 if you have the `atanh' function. */
#undef HAVE_ATANH

/* Define to 1 if you have the `atanhf' function. */
#undef HAVE_ATANHF

/* Define to 1 if you have the `atanhl' function. */
#undef HAVE_ATANHL

/* Define to 1 if you have the `atanl' function. */
#undef HAVE_ATANL

/* Define to 1 if the target supports __attribute__((alias(...))). */
#undef HAVE_ATTRIBUTE_ALIAS

/* Define to 1 if the target supports __attribute__((visibility(...))). */
#undef HAVE_ATTRIBUTE_VISIBILITY

/* Define if AVX instructions can be compiled. */
#undef HAVE_AVX

/* Define if AVX2 instructions can be compiled. */
#undef HAVE_AVX2

/* Define if AVX512f instructions can be compiled. */
#undef HAVE_AVX512F

/* Define to 1 if you have the `cabs' function. */
#undef HAVE_CABS

/* Define to 1 if you have the `cabsf' function. */
#undef HAVE_CABSF

/* Define to 1 if you have the `cabsl' function. */
#undef HAVE_CABSL

/* Define to 1 if you have the `cacos' function. */
#undef HAVE_CACOS

/* Define to 1 if you have the `cacosf' function. */
#undef HAVE_CACOSF

/* Define to 1 if you have the `cacosh' function. */
#undef HAVE_CACOSH

/* Define to 1 if you have the `cacoshf' function. */
#undef HAVE_CACOSHF

/* Define to 1 if you have the `cacoshl' function. */
#undef HAVE_CACOSHL

/* Define to 1 if you have the `cacosl' function. */
#undef HAVE_CACOSL

/* Define to 1 if you have the `carg' function. */
#undef HAVE_CARG

/* Define to 1 if you have the `cargf' function. */
#undef HAVE_CARGF

/* Define to 1 if you have the `cargl' function. */
#undef HAVE_CARGL

/* Define to 1 if you have the `casin' function. */
#undef HAVE_CASIN

/* Define to 1 if you have the `casinf' function. */
#undef HAVE_CASINF

/* Define to 1 if you have the `casinh' function. */
#undef HAVE_CASINH

/* Define to 1 if you have the `casinhf' function. */
#undef HAVE_CASINHF

/* Define to 1 if you have the `casinhl' function. */
#undef HAVE_CASINHL

/* Define to 1 if you have the `casinl' function. */
#undef HAVE_CASINL

/* Define to 1 if you have the `catan' function. */
#undef HAVE_CATAN

/* Define to 1 if you have the `catanf' function. */
#undef HAVE_CATANF

/* Define to 1 if you have the `catanh' function. */
#undef HAVE_CATANH

/* Define to 1 if you have the `catanhf' function. */
#undef HAVE_CATANHF

/* Define to 1 if you have the `catanhl' function. */
#undef HAVE_CATANHL

/* Define to 1 if you have the `catanl' function. */
#undef HAVE_CATANL

/* Define to 1 if you have the `ccos' function. */
#undef HAVE_CCOS

/* Define to 1 if you have the `ccosf' function. */
#undef HAVE_CCOSF

/* Define to 1 if you have the `ccosh' function. */
#undef HAVE_CCOSH

/* Define to 1 if you have the `ccoshf' function. */
#undef HAVE_CCOSHF

/* Define to 1 if you have the `ccoshl' function. */
#undef HAVE_CCOSHL

/* Define to 1 if you have the `ccosl' function. */
#undef HAVE_CCOSL

/* Define to 1 if you have the `ceil' function. */
#undef HAVE_CEIL

/* Define to 1 if you have the `ceilf' function. */
#undef HAVE_CEILF

/* Define to 1 if you have the `ceill' function. */
#undef HAVE_CEILL

/* Define to 1 if you have the `cexp' function. */
#undef HAVE_CEXP

/* Define to 1 if you have the `cexpf' function. */
#undef HAVE_CEXPF

/* Define to 1 if you have the `cexpl' function. */
#undef HAVE_CEXPL

/* Define to 1 if you have the `chdir' function. */
#undef HAVE_CHDIR

/* Define to 1 if you have the `chsize' function. */
#undef HAVE_CHSIZE

/* Define to 1 if you have the `clock_gettime' function. */
#undef HAVE_CLOCK_GETTIME

/* Define to 1 if you have the `clock_gettime' function in librt. */
#undef HAVE_CLOCK_GETTIME_LIBRT

/* libm includes clog */
#undef HAVE_CLOG

/* Define to 1 if you have the `clog10' function. */
#undef HAVE_CLOG10

/* Define to 1 if you have the `clog10f' function. */
#undef HAVE_CLOG10F

/* Define to 1 if you have the `clog10l' function. */
#undef HAVE_CLOG10L

/* Define to 1 if you have the `clogf' function. */
#undef HAVE_CLOGF

/* Define to 1 if you have the `clogl' function. */
#undef HAVE_CLOGL

/* Define to 1 if you have the <complex.h> header file. */
#undef HAVE_COMPLEX_H

/* Define to 1 if you have the `copysign' function. */
#undef HAVE_COPYSIGN

/* Define to 1 if you have the `copysignf' function. */
#undef HAVE_COPYSIGNF

/* Define to 1 if you have the `copysignl' function. */
#undef HAVE_COPYSIGNL

/* Define to 1 if you have the `cos' function. */
#undef HAVE_COS

/* Define to 1 if you have the `cosf' function. */
#undef HAVE_COSF

/* Define to 1 if you have the `cosh' function. */
#undef HAVE_COSH

/* Define to 1 if you have the `coshf' function. */
#undef HAVE_COSHF

/* Define to 1 if you have the `coshl' function. */
#undef HAVE_COSHL

/* Define to 1 if you have the `cosl' function. */
#undef HAVE_COSL

/* Define to 1 if you have the `cpow' function. */
#undef HAVE_CPOW

/* Define to 1 if you have the `cpowf' function. */
#undef HAVE_CPOWF

/* Define to 1 if you have the `cpowl' function. */
#undef HAVE_CPOWL

/* Define if CRLF is line terminator. */
#undef HAVE_CRLF

/* Define to 1 if you have the `csin' function. */
#undef HAVE_CSIN

/* Define to 1 if you have the `csinf' function. */
#undef HAVE_CSINF

/* Define to 1 if you have the `csinh' function. */
#undef HAVE_CSINH

/* Define to 1 if you have the `csinhf' function. */
#undef HAVE_CSINHF

/* Define to 1 if you have the `csinhl' function. */
#undef HAVE_CSINHL

/* Define to 1 if you have the `csinl' function. */
#undef HAVE_CSINL

/* Define to 1 if you have the `csqrt' function. */
#undef HAVE_CSQRT

/* Define to 1 if you have the `csqrtf' function. */
#undef HAVE_CSQRTF

/* Define to 1 if you have the `csqrtl' function. */
#undef HAVE_CSQRTL

/* Define to 1 if you have the `ctan' function. */
#undef HAVE_CTAN

/* Define to 1 if you have the `ctanf' function. */
#undef HAVE_CTANF

/* Define to 1 if you have the `ctanh' function. */
#undef HAVE_CTANH

/* Define to 1 if you have the `ctanhf' function. */
#undef HAVE_CTANHF

/* Define to 1 if you have the `ctanhl' function. */
#undef HAVE_CTANHL

/* Define to 1 if you have the `ctanl' function. */
#undef HAVE_CTANL

/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H

/* Define to 1 if you have the `dup' function. */
#undef HAVE_DUP

/* Define to 1 if you have the `erf' function. */
#undef HAVE_ERF

/* Define to 1 if you have the `erfc' function. */
#undef HAVE_ERFC

/* Define to 1 if you have the `erfcf' function. */
#undef HAVE_ERFCF

/* Define to 1 if you have the `erfcl' function. */
#undef HAVE_ERFCL

/* Define to 1 if you have the `erff' function. */
#undef HAVE_ERFF

/* Define to 1 if you have the `exp' function. */
#undef HAVE_EXP

/* Define to 1 if you have the `expf' function. */
#undef HAVE_EXPF

/* Define to 1 if you have the `expl' function. */
#undef HAVE_EXPL

/* Define to 1 if you have the `fabs' function. */
#undef HAVE_FABS

/* Define to 1 if you have the `fabsf' function. */
#undef HAVE_FABSF

/* Define to 1 if you have the `fabsl' function. */
#undef HAVE_FABSL

/* Define to 1 if you have the `fcntl' function. */
#undef HAVE_FCNTL

/* libm includes feenableexcept */
#undef HAVE_FEENABLEEXCEPT

/* Define to 1 if you have the <fenv.h> header file. */
#undef HAVE_FENV_H

/* Define if have a usable __float128 type. */
#undef HAVE_FLOAT128

/* Define to 1 if you have the <floatingpoint.h> header file. */
#undef HAVE_FLOATINGPOINT_H

/* Define to 1 if you have the `floor' function. */
#undef HAVE_FLOOR

/* Define to 1 if you have the `floorf' function. */
#undef HAVE_FLOORF

/* Define to 1 if you have the `floorl' function. */
#undef HAVE_FLOORL

/* Define to 1 if you have the `fmod' function. */
#undef HAVE_FMOD

/* Define to 1 if you have the `fmodf' function. */
#undef HAVE_FMODF

/* Define to 1 if you have the `fmodl' function. */
#undef HAVE_FMODL

/* Define to 1 if you have the `fork' function. */
#undef HAVE_FORK

/* fpresetsticky is present */
#undef HAVE_FPRESETSTICKY

/* Define if you have fpsetmask. */
#undef HAVE_FPSETMASK

/* fpsetsticky is present */
#undef HAVE_FPSETSTICKY

/* Define to 1 if you have the <fptrap.h> header file. */
#undef HAVE_FPTRAP_H

/* Define to 1 if you have the <fpxcp.h> header file. */
#undef HAVE_FPXCP_H

/* fp_enable is present */
#undef HAVE_FP_ENABLE

/* Define to 1 if the system has the type `fp_except'. */
#undef HAVE_FP_EXCEPT

/* Define to 1 if the system has the type `fp_except_t'. */
#undef HAVE_FP_EXCEPT_T

/* Define to 1 if the system has the type `fp_rnd'. */
#undef HAVE_FP_RND

/* Define to 1 if the system has the type `fp_rnd_t'. */
#undef HAVE_FP_RND_T

/* fp_trap is present */
#undef HAVE_FP_TRAP

/* Define to 1 if you have the `freelocale' function. */
#undef HAVE_FREELOCALE

/* Define to 1 if you have the `frexp' function. */
#undef HAVE_FREXP

/* Define to 1 if you have the `frexpf' function. */
#undef HAVE_FREXPF

/* Define to 1 if you have the `frexpl' function. */
#undef HAVE_FREXPL

/* Define to 1 if you have the `fstat' function. */
#undef HAVE_FSTAT

/* Define to 1 if you have the `ftruncate' function. */
#undef HAVE_FTRUNCATE

/* Define to 1 if you have the `getcwd' function. */
#undef HAVE_GETCWD

/* Define to 1 if you have the `getegid' function. */
#undef HAVE_GETEGID

/* Define to 1 if you have the `geteuid' function. */
#undef HAVE_GETEUID

/* Define to 1 if you have the `getgid' function. */
#undef HAVE_GETGID

/* Define to 1 if you have the `gethostname' function. */
#undef HAVE_GETHOSTNAME

/* Define to 1 if you have the `getlogin' function. */
#undef HAVE_GETLOGIN

/* Define to 1 if you have the `getpid' function. */
#undef HAVE_GETPID

/* Define to 1 if you have the `getpwuid' function. */
#undef HAVE_GETPWUID

/* Define to 1 if you have the `getpwuid_r' function. */
#undef HAVE_GETPWUID_R

/* Define to 1 if you have the `getrusage' function. */
#undef HAVE_GETRUSAGE

/* Define to 1 if you have the `gettimeofday' function. */
#undef HAVE_GETTIMEOFDAY

/* Define to 1 if you have the `getuid' function. */
#undef HAVE_GETUID

/* Define to 1 if you have the `gmtime_r' function. */
#undef HAVE_GMTIME_R

/* Define to 1 if you have the `hypot' function. */
#undef HAVE_HYPOT

/* Define to 1 if you have the `hypotf' function. */
#undef HAVE_HYPOTF

/* Define to 1 if you have the `hypotl' function. */
#undef HAVE_HYPOTL

/* Define to 1 if you have the <ieeefp.h> header file. */
#undef HAVE_IEEEFP_H

/* Define to 1 if the system has the type `intptr_t'. */
#undef HAVE_INTPTR_T

/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H

/* Define to 1 if you have the `j0' function. */
#undef HAVE_J0

/* Define to 1 if you have the `j0f' function. */
#undef HAVE_J0F

/* Define to 1 if you have the `j1' function. */
#undef HAVE_J1

/* Define to 1 if you have the `j1f' function. */
#undef HAVE_J1F

/* Define to 1 if you have the `jn' function. */
#undef HAVE_JN

/* Define to 1 if you have the `jnf' function. */
#undef HAVE_JNF

/* Define to 1 if you have the `jnl' function. */
#undef HAVE_JNL

/* Define to 1 if you have the `kill' function. */
#undef HAVE_KILL

/* Define to 1 if you have the `ldexp' function. */
#undef HAVE_LDEXP

/* Define to 1 if you have the `ldexpf' function. */
#undef HAVE_LDEXPF

/* Define to 1 if you have the `ldexpl' function. */
#undef HAVE_LDEXPL

/* Define to 1 if you have the `lgamma' function. */
#undef HAVE_LGAMMA

/* Define to 1 if you have the `lgammaf' function. */
#undef HAVE_LGAMMAF

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

/* Define to 1 if you have the `link' function. */
#undef HAVE_LINK

/* Define to 1 if you have the `llround' function. */
#undef HAVE_LLROUND

/* Define to 1 if you have the `llroundf' function. */
#undef HAVE_LLROUNDF

/* Define to 1 if you have the `llroundl' function. */
#undef HAVE_LLROUNDL

/* Define to 1 if you have the `localtime_r' function. */
#undef HAVE_LOCALTIME_R

/* Define to 1 if you have the `log' function. */
#undef HAVE_LOG

/* Define to 1 if you have the `log10' function. */
#undef HAVE_LOG10

/* Define to 1 if you have the `log10f' function. */
#undef HAVE_LOG10F

/* Define to 1 if you have the `log10l' function. */
#undef HAVE_LOG10L

/* Define to 1 if you have the `logf' function. */
#undef HAVE_LOGF

/* Define to 1 if you have the `logl' function. */
#undef HAVE_LOGL

/* Define to 1 if you have the `lround' function. */
#undef HAVE_LROUND

/* Define to 1 if you have the `lroundf' function. */
#undef HAVE_LROUNDF

/* Define to 1 if you have the `lroundl' function. */
#undef HAVE_LROUNDL

/* Define to 1 if you have the `lstat' function. */
#undef HAVE_LSTAT

/* Define to 1 if you have the <math.h> header file. */
#undef HAVE_MATH_H

/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H

/* Define if you have __mingw_snprintf. */
#undef HAVE_MINGW_SNPRINTF

/* Define to 1 if you have the `mkostemp' function. */
#undef HAVE_MKOSTEMP

/* Define to 1 if you have the `mkstemp' function. */
#undef HAVE_MKSTEMP

/* Define to 1 if you have the `newlocale' function. */
#undef HAVE_NEWLOCALE

/* Define to 1 if you have the `nextafter' function. */
#undef HAVE_NEXTAFTER

/* Define to 1 if you have the `nextafterf' function. */
#undef HAVE_NEXTAFTERF

/* Define to 1 if you have the `nextafterl' function. */
#undef HAVE_NEXTAFTERL

/* Define to 1 if we have POSIX getpwuid_r which takes 5 arguments. */
#undef HAVE_POSIX_GETPWUID_R

/* Define to 1 if you have the `pow' function. */
#undef HAVE_POW

/* Define to 1 if you have the `powf' function. */
#undef HAVE_POWF

/* Define to 1 if the system has the type `ptrdiff_t'. */
#undef HAVE_PTRDIFF_T

/* Define to 1 if you have the <pwd.h> header file. */
#undef HAVE_PWD_H

/* Define to 1 if you have the `round' function. */
#undef HAVE_ROUND

/* Define to 1 if you have the `roundf' function. */
#undef HAVE_ROUNDF

/* Define to 1 if you have the `roundl' function. */
#undef HAVE_ROUNDL

/* Define to 1 if you have the `scalbn' function. */
#undef HAVE_SCALBN

/* Define to 1 if you have the `scalbnf' function. */
#undef HAVE_SCALBNF

/* Define to 1 if you have the `scalbnl' function. */
#undef HAVE_SCALBNL

/* Define to 1 if you have the `secure_getenv' function. */
#undef HAVE_SECURE_GETENV

/* Define to 1 if you have the `setmode' function. */
#undef HAVE_SETMODE

/* Define to 1 if you have the `sin' function. */
#undef HAVE_SIN

/* Define to 1 if you have the `sinf' function. */
#undef HAVE_SINF

/* Define to 1 if you have the `sinh' function. */
#undef HAVE_SINH

/* Define to 1 if you have the `sinhf' function. */
#undef HAVE_SINHF

/* Define to 1 if you have the `sinhl' function. */
#undef HAVE_SINHL

/* Define to 1 if you have the `sinl' function. */
#undef HAVE_SINL

/* Define to 1 if you have the `sleep' function. */
#undef HAVE_SLEEP

/* Define to 1 if you have the `snprintf' function. */
#undef HAVE_SNPRINTF

/* Define to 1 if you have the `sqrt' function. */
#undef HAVE_SQRT

/* Define to 1 if you have the `sqrtf' function. */
#undef HAVE_SQRTF

/* Define to 1 if you have the `sqrtl' function. */
#undef HAVE_SQRTL

/* Define to 1 if you have the `stat' function. */
#undef HAVE_STAT

/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H

/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H

/* Define to 1 if you have the `strerror_l' function. */
#undef HAVE_STRERROR_L

/* Define if strerror_r is available in <string.h>. */
#undef HAVE_STRERROR_R

/* Define if strerror_r takes two arguments and is available in <string.h>. */
#undef HAVE_STRERROR_R_2ARGS

/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H

/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H

/* Define to 1 if you have the `strndup' function. */
#undef HAVE_STRNDUP

/* Define to 1 if you have the `strnlen' function. */
#undef HAVE_STRNLEN

/* Define to 1 if you have the `strtof' function. */
#undef HAVE_STRTOF

/* Define to 1 if you have the `strtold' function. */
#undef HAVE_STRTOLD

/* Define to 1 if `struct stat' is a member of `st_blksize'. */
#undef HAVE_STRUCT_STAT_ST_BLKSIZE

/* Define to 1 if `struct stat' is a member of `st_blocks'. */
#undef HAVE_STRUCT_STAT_ST_BLOCKS

/* Define to 1 if `struct stat' is a member of `st_rdev'. */
#undef HAVE_STRUCT_STAT_ST_RDEV

/* Define to 1 if you have the `symlink' function. */
#undef HAVE_SYMLINK

/* Define to 1 if the target supports __sync_fetch_and_add */
#undef HAVE_SYNC_FETCH_AND_ADD

/* Define to 1 if you have the <sys/resource.h> header file. */
#undef HAVE_SYS_RESOURCE_H

/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H

/* Define to 1 if you have the <sys/times.h> header file. */
#undef HAVE_SYS_TIMES_H

/* Define to 1 if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H

/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H

/* Define to 1 if you have the <sys/wait.h> header file. */
#undef HAVE_SYS_WAIT_H

/* Define to 1 if you have the `tan' function. */
#undef HAVE_TAN

/* Define to 1 if you have the `tanf' function. */
#undef HAVE_TANF

/* Define to 1 if you have the `tanh' function. */
#undef HAVE_TANH

/* Define to 1 if you have the `tanhf' function. */
#undef HAVE_TANHF

/* Define to 1 if you have the `tanhl' function. */
#undef HAVE_TANHL

/* Define to 1 if you have the `tanl' function. */
#undef HAVE_TANL

/* Define to 1 if you have the `tgamma' function. */
#undef HAVE_TGAMMA

/* Define to 1 if you have the `tgammaf' function. */
#undef HAVE_TGAMMAF

/* Define to 1 if you have the `times' function. */
#undef HAVE_TIMES

/* Define to 1 if you have the `trunc' function. */
#undef HAVE_TRUNC

/* Define to 1 if you have the `truncf' function. */
#undef HAVE_TRUNCF

/* Define to 1 if you have the `truncl' function. */
#undef HAVE_TRUNCL

/* Define to 1 if you have the `ttyname' function. */
#undef HAVE_TTYNAME

/* Define to 1 if you have the `ttyname_r' function. */
#undef HAVE_TTYNAME_R

/* Define to 1 if the system has the type `uintptr_t'. */
#undef HAVE_UINTPTR_T

/* Define to 1 if you have the `umask' function. */
#undef HAVE_UMASK

/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H

/* Define if target can unlink open files. */
#undef HAVE_UNLINK_OPEN_FILE

/* Define to 1 if you have the `uselocale' function. */
#undef HAVE_USELOCALE

/* Define to 1 if you have the `vsnprintf' function. */
#undef HAVE_VSNPRINTF

/* Define if target has a reliable stat. */
#undef HAVE_WORKING_STAT

/* Define to 1 if you have the <xlocale.h> header file. */
#undef HAVE_XLOCALE_H

/* Define to 1 if you have the `y0' function. */
#undef HAVE_Y0

/* Define to 1 if you have the `y0f' function. */
#undef HAVE_Y0F

/* Define to 1 if you have the `y1' function. */
#undef HAVE_Y1

/* Define to 1 if you have the `y1f' function. */
#undef HAVE_Y1F

/* Define to 1 if you have the `yn' function. */
#undef HAVE_YN

/* Define to 1 if you have the `ynf' function. */
#undef HAVE_YNF

/* Define to 1 if you have the `ynl' function. */
#undef HAVE_YNL

/* Define to 1 if you have the `__secure_getenv' function. */
#undef HAVE___SECURE_GETENV

/* Define to the sub-directory in which libtool stores uninstalled libraries.
   */
#undef LT_OBJDIR

/* Define to 1 if your C compiler doesn't accept -c and -o together. */
#undef NO_MINUS_C_MINUS_O

/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT

/* Define to the full name of this package. */
#undef PACKAGE_NAME

/* Define to the full name and version of this package. */
#undef PACKAGE_STRING

/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME

/* Define to the home page for this package. */
#undef PACKAGE_URL

/* Define to the version of this package. */
#undef PACKAGE_VERSION

/* The size of `char', as computed by sizeof. */
#undef SIZEOF_CHAR

/* The size of `int', as computed by sizeof. */
#undef SIZEOF_INT

/* The size of `long', as computed by sizeof. */
#undef SIZEOF_LONG

/* The size of `short', as computed by sizeof. */
#undef SIZEOF_SHORT

/* The size of `void *', as computed by sizeof. */
#undef SIZEOF_VOID_P

/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS

/* Define to 1 if the target supports #pragma weak */
#undef SUPPORTS_WEAK

/* Define to 1 if the target supports weakref */
#undef SUPPORTS_WEAKREF

/* Enable extensions on AIX 3, Interix.  */
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE
#endif
/* Enable GNU extensions on systems that have them.  */
#ifndef _GNU_SOURCE
# undef _GNU_SOURCE
#endif
/* Enable threading extensions on Solaris.  */
#ifndef _POSIX_PTHREAD_SEMANTICS
# undef _POSIX_PTHREAD_SEMANTICS
#endif
/* Enable extensions on HP NonStop.  */
#ifndef _TANDEM_SOURCE
# undef _TANDEM_SOURCE
#endif
/* Enable general extensions on Solaris.  */
#ifndef __EXTENSIONS__
# undef __EXTENSIONS__
#endif


/* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS

/* Define for large files, on AIX-style hosts. */
#undef _LARGE_FILES

/* Define to 1 if on MINIX. */
#undef _MINIX

/* Define to 2 if the system does not provide POSIX.1 features except with
   this defined. */
#undef _POSIX_1_SOURCE

/* Define to 1 if you need to in order for `stat' and other things to work. */
#undef _POSIX_SOURCE

/* Define to the type of a signed integer type wide enough to hold a pointer,
   if such a type exists, and if the system does not define it. */
#undef intptr_t

/* Define to `long int' if <sys/types.h> does not define. */
#undef off_t

/* Define to the type of an unsigned integer type wide enough to hold a
   pointer, if such a type exists, and if the system does not define it. */
#undef uintptr_t
