/*
 * This file is used by 'autoheader' to generate the list of symbols
 * defined in the 'configure' script.
 */

/* Define if .type asm directive must be inside a .def directive */
#undef NEED_TYPE_IN_DEF

/* Define if symbols declared in assembly code need an underscore prefix */
#undef NEED_UNDERSCORE_PREFIX

/* Define to use .string instead of .ascii */
#undef HAVE_ASM_STRING

/* Define if struct msghdr contains msg_accrights */
#undef HAVE_MSGHDR_ACCRIGHTS

/* Define if struct sockaddr_un contains sun_len */
#undef HAVE_SOCKADDR_SUN_LEN

/* Define if you have the XKB extension */
#undef HAVE_XKB

/* Define if you have the Xxf86dga library (-lXxf86dga).  */
#undef HAVE_LIBXXF86DGA

/* Define if you have the Xxf86dga library version 2.0 (-lXxf86dga).  */
#undef HAVE_LIBXXF86DGA2

/* Define if you have the X Shm extension */
#undef HAVE_LIBXXSHM

/* Define if you have the X Shape extension */
#undef HAVE_LIBXSHAPE

/* Define if you have the Xxf86vm library */
#undef HAVE_LIBXXF86VM

/* Define if you have the Xpm library */
#undef HAVE_LIBXXPM

/* Define if you have the Open Sound system.  */
#undef HAVE_OSS

/* Define if you have the Open Sound system (MIDI interface).  */
#undef HAVE_OSS_MIDI

/* Define if X libraries are not reentrant (compiled without -D_REENTRANT).  */
#undef NO_REENTRANT_X11

/* Define to the name of the function returning erro for reentrant libc */
#undef ERRNO_LOCATION

/* Define if all debug messages are to be compiled out */
#undef NO_DEBUG_MSGS

/* Define if TRACE messages are to be compiled out */
#undef NO_TRACE_MSGS

/* Define if the struct statfs has the member bavail */
#undef STATFS_HAS_BAVAIL

/* Define if the struct statfs has the member bfree */
#undef STATFS_HAS_BFREE

/* Define if the struct statfs is defined by <sys/vfs.h> */
#undef STATFS_DEFINED_BY_SYS_VFS

/* Define if the struct statfs is defined by <sys/statfs.h> */
#undef STATFS_DEFINED_BY_SYS_STATFS

/* Define if the struct statfs is defined by <sys/mount.h> */
#undef STATFS_DEFINED_BY_SYS_MOUNT

/* Define if we can use ncurses for full-screen access */
#undef HAVE_LIBNCURSES

/* Define if we can use curses (if no ncurses) for full-screen access */
#undef HAVE_LIBCURSES

/* Define if ncurses have the new resizeterm function */
#undef HAVE_RESIZETERM

/* Define if ncurses have the new getbkgd function */
#undef HAVE_GETBKGD

/* Define if we can a compatible xterm program */
#undef XTERM_PROGRAM

/* Define if IPX should use netipx/ipx.h from libc */
#undef HAVE_IPX_GNU

/* Define if IPX includes are taken from Linux kernel */
#undef HAVE_IPX_LINUX

/* Define if OpenGL is present on the system or not */
#undef HAVE_OPENGL

/* Define if the system has dynamic link library support with the dl* API */
#undef HAVE_DL_API

/* Define if <linux/joystick.h> defines the Linux 2.2 joystick API */
#undef HAVE_LINUX_22_JOYSTICK_API

/* Define if the OpenGL library supports the glXGetProcAddressARB call */
#undef HAVE_GLX_GETPROCADDRESS

/* Define if the OpenGL headers define extension typedefs */
#undef HAVE_GLEXT_PROTOTYPES

/* Define if the X libraries support XVideo */
#undef HAVE_XVIDEO

/* Define if Mesa's OSMesa (off-screen rendering) library is present */
#undef HAVE_OSMESA

/* Define if Linux-style gethostbyname_r and gethostbyaddr_r are available */
#undef HAVE_LINUX_GETHOSTBYNAME_R_6

/* Define if we have linux/input.h AND it contains the INPUT event API */
#undef HAVE_CORRECT_LINUXINPUT_H
