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

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

/* Define to empty if the keyword does not work.  */
#undef const

/* 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 a working `mmap' system call.  */
#undef HAVE_MMAP

/* Define as __inline if that's what the C compiler calls it.  */
#undef inline

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

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

/* 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 if you can safely include both <sys/time.h> and <time.h>.  */
#undef TIME_WITH_SYS_TIME

/* Define if you have the __argz_count function.  */
#undef HAVE___ARGZ_COUNT

/* Define if you have the __argz_next function.  */
#undef HAVE___ARGZ_NEXT

/* Define if you have the __argz_stringify function.  */
#undef HAVE___ARGZ_STRINGIFY

/* Define if you have the dcgettext function.  */
#undef HAVE_DCGETTEXT

/* Define if you have the fcntl function.  */
#undef HAVE_FCNTL

/* Define if you have the fdopen function.  */
#undef HAVE_FDOPEN

/* Define if you have the fseeko function.  */
#undef HAVE_FSEEKO

/* Define if you have the fseeko64 function.  */
#undef HAVE_FSEEKO64

/* Define if you have the ftello function.  */
#undef HAVE_FTELLO

/* Define if you have the ftello64 function.  */
#undef HAVE_FTELLO64

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

/* Define if you have the getgid function.  */
#undef HAVE_GETGID

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

/* Define if you have the getuid function.  */
#undef HAVE_GETUID

/* Define if you have the madvise function.  */
#undef HAVE_MADVISE

/* Define if you have the mprotect function.  */
#undef HAVE_MPROTECT

/* Define if you have the munmap function.  */
#undef HAVE_MUNMAP

/* Define if you have the putenv function.  */
#undef HAVE_PUTENV

/* Define if you have the setenv function.  */
#undef HAVE_SETENV

/* Define if you have the setitimer function.  */
#undef HAVE_SETITIMER

/* Define if you have the setlocale function.  */
#undef HAVE_SETLOCALE

/* Define if you have the stpcpy function.  */
#undef HAVE_STPCPY

/* 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 strtoull function.  */
#undef HAVE_STRTOULL

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

/* Define if you have the <argz.h> header file.  */
#undef HAVE_ARGZ_H

/* Define if you have the <dirent.h> header file.  */
#undef HAVE_DIRENT_H

/* Define if you have the <fcntl.h> header file.  */
#undef HAVE_FCNTL_H

/* Define if you have the <limits.h> header file.  */
#undef HAVE_LIMITS_H

/* Define if you have the <locale.h> header file.  */
#undef HAVE_LOCALE_H

/* Define if you have the <malloc.h> header file.  */
#undef HAVE_MALLOC_H

/* Define if you have the <ndir.h> header file.  */
#undef HAVE_NDIR_H

/* Define if you have the <nl_types.h> header file.  */
#undef HAVE_NL_TYPES_H

/* Define if you have the <stddef.h> header file.  */
#undef HAVE_STDDEF_H

/* 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/dir.h> header file.  */
#undef HAVE_SYS_DIR_H

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

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

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

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

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

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

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

/* Define if you have the <values.h> header file.  */
#undef HAVE_VALUES_H

/* Name of package */
#undef PACKAGE

/* Version number of package */
#undef VERSION

/* Define if you have the stpcpy function */
#undef HAVE_STPCPY

/* Define if your locale.h file contains LC_MESSAGES. */
#undef HAVE_LC_MESSAGES

/* Define to 1 if NLS is requested */
#undef ENABLE_NLS

/* Define as 1 if you have gettext and don't want to use GNU gettext. */
#undef HAVE_GETTEXT

/* The number of bytes in type long long */
#undef SIZEOF_LONG_LONG

/* The number of bytes in type long */
#undef SIZEOF_LONG

/* Use b modifier when opening binary files? */
#undef USE_BINARY_FOPEN

/* Define if strstr is not declared in system header files. */
#undef NEED_DECLARATION_STRSTR

/* Define if malloc is not declared in system header files. */
#undef NEED_DECLARATION_MALLOC

/* Define if realloc is not declared in system header files. */
#undef NEED_DECLARATION_REALLOC

/* Define if free is not declared in system header files. */
#undef NEED_DECLARATION_FREE

/* Define if getenv is not declared in system header files. */
#undef NEED_DECLARATION_GETENV

/* Define if struct core_dumpx has member c_impl */
#undef HAVE_ST_C_IMPL

/* Define if <sys/procfs.h> has prstatus_t. */
#undef HAVE_PRSTATUS_T

/* Define if <sys/procfs.h> has prstatus32_t. */
#undef HAVE_PRSTATUS32_T

/* Define if <sys/procfs.h> has prstatus_t.pr_who. */
#undef HAVE_PRSTATUS_T_PR_WHO

/* Define if <sys/procfs.h> has prstatus32_t.pr_who. */
#undef HAVE_PRSTATUS32_T_PR_WHO

/* Define if <sys/procfs.h> has pstatus_t. */
#undef HAVE_PSTATUS_T

/* Define if <sys/procfs.h> has pxstatus_t. */
#undef HAVE_PXSTATUS_T

/* Define if <sys/procfs.h> has pstatus32_t. */
#undef HAVE_PSTATUS32_T

/* Define if <sys/procfs.h> has prpsinfo_t. */
#undef HAVE_PRPSINFO_T

/* Define if <sys/procfs.h> has prpsinfo32_t. */
#undef HAVE_PRPSINFO32_T

/* Define if <sys/procfs.h> has psinfo_t. */
#undef HAVE_PSINFO_T

/* Define if <sys/procfs.h> has psinfo32_t. */
#undef HAVE_PSINFO32_T

/* Define if <sys/procfs.h> has lwpstatus_t. */
#undef HAVE_LWPSTATUS_T

/* Define if <sys/procfs.h> has lwpxstatus_t. */
#undef HAVE_LWPXSTATUS_T

/* Define if <sys/procfs.h> has lwpstatus_t.pr_context. */
#undef HAVE_LWPSTATUS_T_PR_CONTEXT

/* Define if <sys/procfs.h> has lwpstatus_t.pr_reg. */
#undef HAVE_LWPSTATUS_T_PR_REG

/* Define if <sys/procfs.h> has win32_pstatus_t. */
#undef HAVE_WIN32_PSTATUS_T

/* Name of host specific header file to include in trad-core.c. */
#undef TRAD_HEADER

/* The number of bytes in type off_t */
#undef SIZEOF_OFF_T

/* Use mmap if it's available? */
#undef USE_MMAP

