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

/* Name of default AWT toolkit */
#undef AWT_TOOLKIT

/* 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 the <arpa/inet.h> header file. */
#undef HAVE_ARPA_INET_H

/* 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 the target assembler supports thread-local storage. */
#undef HAVE_CC_TLS

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

/* Define if you have clock_gettime() */
#undef HAVE_CLOCK_GETTIME

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

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

/* Define if _Unwind_GetIPInfo is available. */
#undef HAVE_GETIPINFO

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

/* Define if you have the 'gmtime_r' function */
#undef HAVE_GMTIME_R

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

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

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

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

/* Define if magic.h declares magic_t */
#undef HAVE_MAGIC_T

/* 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 to 1 if you have the `mmap' function. */
#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 if you have /proc/self/exe */
#undef HAVE_PROC_SELF_EXE

/* Define if you have /proc/self/maps */
#undef HAVE_PROC_SELF_MAPS

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

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

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

/* Define to 1 if you have the <sys/rw_lock.h> header file. */
#undef HAVE_SYS_RW_LOCK_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 the `time' function. */
#undef HAVE_TIME

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

/* Define to 1 if the target supports thread-local storage. */
#undef HAVE_TLS

/* 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 to 1 if you have the file `AC_File'. */
#undef HAVE__PROC_SELF_MAPS

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

/* Installation prefix */
#undef LIBGCJ_PREFIX

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

/* Define to the name of the environment variable that determines the dynamic
   library search path. */
#undef LTDL_SHLIBPATH_VAR

/* Define to the sub-directory in which libtool stores uninstalled libraries.
   */
#undef LT_OBJDIR

/* 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 size of a `void *', as computed by sizeof. */
#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

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

/* Define to 1 if your processor stores words with the most significant byte
   first (like Motorola and SPARC, unlike Intel and VAX). */
#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
