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

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

/* Define if you need to in order for stat and other things to work.  */
#undef _POSIX_SOURCE

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

/* Define if the `S_IS*' macros in <sys/stat.h> do not work properly.  */
#undef STAT_MACROS_BROKEN

/* Define if you have the ANSI C header files.  */
#undef STDC_HEADERS

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

/* Define if you have the memmove function.  */
#undef HAVE_MEMMOVE

/* Define if you have the tcgetattr function.  */
#undef HAVE_TCGETATTR

/* Define if you have the usleep function.  */
#undef HAVE_USLEEP
