/* config.in.  Generated automatically from configure.in by autoheader.  */

/* Define if using alloca.c.  */
#undef C_ALLOCA

/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
   This function is required for alloca.c support on those systems.  */
#undef CRAY_STACKSEG_END

/* Define if you have alloca, as a function or macro.  */
#undef HAVE_ALLOCA

/* Define if you have <alloca.h> and it should be used (not on Ultrix).  */
#undef HAVE_ALLOCA_H

/* Define if you have <sys/wait.h> that is POSIX.1 compatible.  */
#undef HAVE_SYS_WAIT_H

/* Define if you have <vfork.h>.  */
#undef HAVE_VFORK_H

/* Define to `int' if <sys/types.h> doesn't define.  */
#undef pid_t

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

/* If using the C implementation of alloca, define if you know the
   direction of stack growth for your system; otherwise it will be
   automatically deduced at run-time.
 STACK_DIRECTION > 0 => grows toward higher addresses
 STACK_DIRECTION < 0 => grows toward lower addresses
 STACK_DIRECTION = 0 => direction of growth unknown
 */
#undef STACK_DIRECTION

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

/* Define vfork as fork if vfork does not work.  */
#undef vfork

/* Define if you have the sys_errlist variable.  */
#undef HAVE_SYS_ERRLIST

/* Define if you have the sys_nerr variable.  */
#undef HAVE_SYS_NERR

/* Define if you have the sys_siglist variable.  */
#undef HAVE_SYS_SIGLIST

/* Define if you have the strerror function.  */
#undef HAVE_STRERROR

/* Define if you have the asprintf function.  */
#undef HAVE_ASPRINTF

/* Define if you have the atexit function.  */
#undef HAVE_ATEXIT

/* Define if you have the basename function.  */
#undef HAVE_BASENAME

/* Define if you have the bcmp function.  */
#undef HAVE_BCMP

/* Define if you have the bcopy function.  */
#undef HAVE_BCOPY

/* Define if you have the bzero function.  */
#undef HAVE_BZERO

/* Define if you have the calloc function.  */
#undef HAVE_CALLOC

/* Define if you have the clock function.  */
#undef HAVE_CLOCK

/* Define if you have the getcwd function.  */
#undef HAVE_GETCWD

/* Define if you have the getpagesize function.  */
#undef HAVE_GETPAGESIZE

/* Define if you have the getrusage function.  */
#undef HAVE_GETRUSAGE

/* Define if you have the index function.  */
#undef HAVE_INDEX

/* Define if you have the insque function.  */
#undef HAVE_INSQUE

/* Define if you have the memchr function.  */
#undef HAVE_MEMCHR

/* Define if you have the memcmp function.  */
#undef HAVE_MEMCMP

/* Define if you have the memcpy function.  */
#undef HAVE_MEMCPY

/* Define if you have the memmove function.  */
#undef HAVE_MEMMOVE

/* Define if you have the memset function.  */
#undef HAVE_MEMSET

/* Define if you have the mkstemps function.  */
#undef HAVE_MKSTEMPS

/* Define if you have the on_exit function.  */
#undef HAVE_ON_EXIT

/* Define if you have the psignal function.  */
#undef HAVE_PSIGNAL

/* Define if you have the random function.  */
#undef HAVE_RANDOM

/* Define if you have the rename function.  */
#undef HAVE_RENAME

/* Define if you have the rindex function.  */
#undef HAVE_RINDEX

/* Define if you have the sbrk function.  */
#undef HAVE_SBRK

/* Define if you have the sigsetmask function.  */
#undef HAVE_SIGSETMASK

/* Define if you have the strcasecmp function.  */
#undef HAVE_STRCASECMP

/* Define if you have the strchr function.  */
#undef HAVE_STRCHR

/* Define if you have the strdup function.  */
#undef HAVE_STRDUP

/* Define if you have the strerror function.  */
#undef HAVE_STRERROR

/* Define if you have the strncasecmp function.  */
#undef HAVE_STRNCASECMP

/* Define if you have the strrchr function.  */
#undef HAVE_STRRCHR

/* Define if you have the strsignal function.  */
#undef HAVE_STRSIGNAL

/* Define if you have the strstr function.  */
#undef HAVE_STRSTR

/* Define if you have the strtod function.  */
#undef HAVE_STRTOD

/* Define if you have the strtol function.  */
#undef HAVE_STRTOL

/* Define if you have the strtoul function.  */
#undef HAVE_STRTOUL

/* Define if you have the sysconf function.  */
#undef HAVE_SYSCONF

/* Define if you have the times function.  */
#undef HAVE_TIMES

/* Define if you have the tmpnam function.  */
#undef HAVE_TMPNAM

/* Define if you have the vasprintf function.  */
#undef HAVE_VASPRINTF

/* Define if you have the vfprintf function.  */
#undef HAVE_VFPRINTF

/* Define if you have the vprintf function.  */
#undef HAVE_VPRINTF

/* Define if you have the vsprintf function.  */
#undef HAVE_VSPRINTF

/* Define if you have the waitpid function.  */
#undef HAVE_WAITPID

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

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

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

/* Define if you have the <sys/file.h> header file.  */
#undef HAVE_SYS_FILE_H

/* Define if you have the <sys/param.h> header file.  */
#undef HAVE_SYS_PARAM_H

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

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

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