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

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

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

