/* 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__((dllexport)). */
#undef HAVE_ATTRIBUTE_DLLEXPORT

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

/* 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 `close' function. */
#undef HAVE_CLOSE

/* 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 `dup2' function. */
#undef HAVE_DUP2

/* 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 `erfl' function. */
#undef HAVE_ERFL

/* Define to 1 if you have the `execl' function. */
#undef HAVE_EXECL

/* Define to 1 if you have the `execve' function. */
#undef HAVE_EXECVE

/* 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

/* 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

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

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

/* fp_enable is present */
#undef HAVE_FP_ENABLE

/* fp_trap is present */
#undef HAVE_FP_TRAP

/* 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 if _Unwind_GetIPInfo is available. */
#undef HAVE_GETIPINFO

/* 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 `getppid' function. */
#undef HAVE_GETPPID

/* 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 `getrlimit' function. */
#undef HAVE_GETRLIMIT

/* 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 `j0l' function. */
#undef HAVE_J0L

/* 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 `j1l' function. */
#undef HAVE_J1L

/* 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 `lgammal' function. */
#undef HAVE_LGAMMAL

/* 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 `mkstemp' function. */
#undef HAVE_MKSTEMP

/* 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 you have the `pipe' function. */
#undef HAVE_PIPE

/* 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 you have the `powl' function. */
#undef HAVE_POWL

/* 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 `readlink' function. */
#undef HAVE_READLINK

/* 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 `strcasestr' function. */
#undef HAVE_STRCASESTR

/* 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 `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 `tgammal' function. */
#undef HAVE_TGAMMAL

/* 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 `vsnprintf' function. */
#undef HAVE_VSNPRINTF

/* Define to 1 if you have the `wait' function. */
#undef HAVE_WAIT

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

/* 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 `y0l' function. */
#undef HAVE_Y0L

/* 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 `y1l' function. */
#undef HAVE_Y1L

/* 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

/* 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
