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

/* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */
#undef BYTEORDER

/* 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 to 1 if using `alloca.c'. */
#undef C_ALLOCA

/* Define this if you want runtime debugging enabled. */
#undef DEBUG

/* Define if system properties shouldn't be read from
   getenv("GCJ_PROPERTIES"). */
#undef DISABLE_GETENV_PROPERTIES

/* Define if java.net native functions should be stubbed out. */
#undef DISABLE_JAVA_NET

/* Define if we should ignore arguments to main(). */
#undef DISABLE_MAIN_ARGS

/* Define if you're running eCos. */
#undef ECOS

/* Define if you are using JVMPI. */
#undef ENABLE_JVMPI

/* Short GCJ version ID */
#undef GCJVERSION

/* Define if gethostbyaddr_r returns 'int'. */
#undef GETHOSTBYADDR_R_RETURNS_INT

/* Define if gethostbyname_r returns 'int'. */
#undef GETHOSTBYNAME_R_RETURNS_INT

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

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

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

/* Define to 1 if you have the <arpa/inet.h> header file. */
#undef HAVE_ARPA_INET_H

/* Define if your platform has a working backtrace() function. */
#undef HAVE_BACKTRACE

/* Define if Boehm GC in use. */
#undef HAVE_BOEHM_GC

/* Define if you have u_int32_t */
#undef HAVE_BSD_INT32_DEFINED

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

/* Define to 1 if you have the `chmod' function. */
#undef HAVE_CHMOD

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

/* Define if you have dladdr() */
#undef HAVE_DLADDR

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

/* Define if dlopen is available */
#undef HAVE_DLOPEN

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

/* Define to 1 if you have the `execvp' function. */
#undef HAVE_EXECVP

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

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

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

/* Define to 1 if you have the `fsync' function. */
#undef HAVE_FSYNC

/* Define to 1 if you have the `ftime' function. */
#undef HAVE_FTIME

/* 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 if you have the 'gethostbyaddr_r' function. */
#undef HAVE_GETHOSTBYADDR_R

/* Define if you have the 'gethostbyname_r' function. */
#undef HAVE_GETHOSTBYNAME_R

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

/* Define if gethostname is declared in <unistd.h>. */
#undef HAVE_GETHOSTNAME_DECL

/* Define to 1 if you have the `getpagesize' function. */
#undef HAVE_GETPAGESIZE

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

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

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

/* Define if you have the iconv() function. */
#undef HAVE_ICONV

/* Define if inet6 structures are defined in netinet/in.h. */
#undef HAVE_INET6

/* Define to 1 if you have the `inet_addr' function. */
#undef HAVE_INET_ADDR

/* Define to 1 if you have the `inet_aton' function. */
#undef HAVE_INET_ATON

/* Define to 1 if you have the `inet_ntoa' function. */
#undef HAVE_INET_NTOA

/* Define to 1 if you have the `inet_pton' function. */
#undef HAVE_INET_PTON

/* Define if you have int32_t and uint32_t. */
#undef HAVE_INT32_DEFINED

/* Define if <inttypes.h> is available */
#undef HAVE_INTTYPES_H

/* Define to 1 if 'in_addr_t' is defined in sys/types.h or netinet/in.h. */
#undef HAVE_IN_ADDR_T

/* Define to 1 if you have the `ioctl' function. */
#undef HAVE_IOCTL

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

/* Define if your <locale.h> file defines LC_MESSAGES. */
#undef HAVE_LC_MESSAGES

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

/* Define is you have 'localtime' in <time.h> */
#undef HAVE_LOCALTIME

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

/* Define to 1 if you have the `memcpy' function. */
#undef HAVE_MEMCPY

/* Define to 1 if you have the `memmove' function. */
#undef HAVE_MEMMOVE

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

/* Define to 1 if you have the `mkdir' function. */
#undef HAVE_MKDIR

/* Define is you have 'mktime' in <time.h> */
#undef HAVE_MKTIME

/* Define to 1 if you have a working `mmap' system call. */
#undef HAVE_MMAP

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

/* Define to 1 if you have the <netinet/in.h> header file. */
#undef HAVE_NETINET_IN_H

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

/* Define to 1 if you have the `nl_langinfo' function. */
#undef HAVE_NL_LANGINFO

/* Define to 1 if you have the `open' function. */
#undef HAVE_OPEN

/* Define to 1 if you have the `opendir' function. */
#undef HAVE_OPENDIR

/* Define to 1 if you have the `pipe' function. */
#undef HAVE_PIPE

/* Define if you have /proc/self/exe */
#undef HAVE_PROC_SELF_EXE

/* Define if using POSIX threads that have the mutexattr functions. */
#undef HAVE_PTHREAD_MUTEXATTR_INIT

/* Define to 1 if you have the `pthread_mutexattr_setkind_np' function. */
#undef HAVE_PTHREAD_MUTEXATTR_SETKIND_NP

/* Define to 1 if you have the `pthread_mutexattr_settype' function. */
#undef HAVE_PTHREAD_MUTEXATTR_SETTYPE

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

/* Define to 1 if you have the `readdir_r' function. */
#undef HAVE_READDIR_R

/* Define to 1 if you have the `realpath' function. */
#undef HAVE_REALPATH

/* Define to 1 if you have the `rename' function. */
#undef HAVE_RENAME

/* Define to 1 if you have the `rmdir' function. */
#undef HAVE_RMDIR

/* Define to 1 if you have the `sched_yield' function. */
#undef HAVE_SCHED_YIELD

/* Define to 1 if you have the `select' function. */
#undef HAVE_SELECT

/* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE

/* Define to 1 if you have the `sigaction' function. */
#undef HAVE_SIGACTION

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

/* Define it socklen_t typedef is in sys/socket.h. */
#undef HAVE_SOCKLEN_T

/* 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' function. */
#undef HAVE_STRERROR

/* 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 if struct hostent_data is defined in netdb.h */
#undef HAVE_STRUCT_HOSTENT_DATA

/* Define if struct ipv6_mreq is defined in netinet/in.h. */
#undef HAVE_STRUCT_IPV6_MREQ

/* Define if struct ip_mreq is defined in netinet/in.h. */
#undef HAVE_STRUCT_IP_MREQ

/* Define to 1 if `tm_zone' is member of `struct tm'. */
#undef HAVE_STRUCT_TM_TM_ZONE

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

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

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

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

/* Define to 1 if you have the <sys/socket.h> header file. */
#undef HAVE_SYS_SOCKET_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/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 <sys/wait.h> that is POSIX.1 compatible. */
#undef HAVE_SYS_WAIT_H

/* Define to 1 if you have the `time' function. */
#undef HAVE_TIME

/* Define if global 'timezone' exists. */
#undef HAVE_TIMEZONE

/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
   `HAVE_STRUCT_TM_TM_ZONE' instead. */
#undef HAVE_TM_ZONE

/* Define to 1 if you don't have `tm_zone' but do have the external array
   `tzname'. */
#undef HAVE_TZNAME

/* Define to 1 if you have the `uname' function. */
#undef HAVE_UNAME

/* Define if your platform has the global _timezone variable. */
#undef HAVE_UNDERSCORE_TIMEZONE

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

/* Define to 1 if you have the `unlink' function. */
#undef HAVE_UNLINK

/* Define to 1 if you have the `usleep' function. */
#undef HAVE_USLEEP

/* Define if usleep is declared in <unistd.h>. */
#undef HAVE_USLEEP_DECL

/* Define to 1 if you have the `utime' function. */
#undef HAVE_UTIME

/* Define to 1 if you have the file `AC_File'. */
#undef HAVE__PROC_SELF_EXE

/* Define if the host machine stores words of multi-word integers in
   big-endian order. */
#undef HOST_WORDS_BIG_ENDIAN

/* Define as const if the declaration of iconv() needs const. */
#undef ICONV_CONST

/* Define if you want a bytecode interpreter. */
#undef INTERPRETER

/* API compatibility version string */
#undef JV_API_VERSION

/* Define if hash synchronization is in use */
#undef JV_HASH_SYNCHRONIZATION

/* Define if <inttypes.h> is available */
#undef JV_HAVE_INTTYPES_H

/* Indicate that linker is not able to 8-byte align static data */
#undef JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS

/* Compatibility version string */
#undef JV_VERSION

/* Define if we want to use debug calls into the garbage collector. */
#undef LIBGCJ_GC_DEBUG

/* Define if using POSIX threads on Linux. */
#undef LINUX_THREADS

/* Define if MinGW libgcj uses the Windows UNICODE OS API. */
#undef MINGW_LIBGCJ_UNICODE

/* Define if getuid() and friends are missing. */
#undef NO_GETUID

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

/* Name of package */
#undef PACKAGE

/* 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 version of this package. */
#undef PACKAGE_VERSION

/* Define if pthread_mutex_t has m_count member. */
#undef PTHREAD_MUTEX_HAVE_M_COUNT

/* Define if pthread_mutex_t has __m_count member. */
#undef PTHREAD_MUTEX_HAVE___M_COUNT

/* The number of bytes in type void * */
#undef SIZEOF_VOID_P

/* Define if the compiler is configured for setjmp/longjmp exceptions. */
#undef SJLJ_EXCEPTIONS

/* Define if if the synchronization code should try to avoid pthread_self
   calls by caching thread IDs in a hashtable. */
#undef SLOW_PTHREAD_SELF

/* 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 to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS

/* Define if struct tm has tm_gmtoff field. */
#undef STRUCT_TM_HAS_GMTOFF

/* Define to 1 if your <sys/time.h> declares `struct tm'. */
#undef TM_IN_SYS_TIME

/* Define if we're to use libffi. */
#undef USE_LIBFFI

/* Define if libltdl is in use. */
#undef USE_LTDL

/* Version number of package */
#undef VERSION

/* whether byteorder is bigendian */
#undef WORDS_BIGENDIAN

/* Define to 1 if the X Window System is missing or not being used. */
#undef X_DISPLAY_MISSING

/* Required define if using POSIX threads */
#undef _POSIX_PTHREAD_SEMANTICS

/* Required define if using POSIX threads */
#undef _REENTRANT

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