/* xmlrpc_amconfig.h is generated by 'configure' from the template
   xmlrpc_amconfig.h.in, by virtue of the AM_CONFIG_HEADER() macro in
   configure.in.

   We'd like to replace it some day with something that doesn't use
   such a special tool, to make the build understandable by dumber
   developers.  
*/

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

/* Define if you have the setgroups function.  */
#cmakedefine HAVE_SETGROUPS @HAVE_SETGROUPS@

#cmakedefine HAVE_ASPRINTF @HAVE_ASPRINTF@

/* Define if you have the wcsncmp function.  */
#cmakedefine HAVE_WCSNCMP @HAVE_WCSNCMP@

/* Define if you have the <stdarg.h> header file.  */
#cmakedefine HAVE_STDARG_H @HAVE_STDARG_H@

/* Define if you have the <sys/filio.h> header file.  */
#cmakedefine HAVE_SYS_FILIO_H @HAVE_SYS_FILIO_H@

/* Define if you have the <sys/ioctl.h> header file.  */
#cmakedefine HAVE_SYS_IOCTL_H @HAVE_SYS_IOCTL_H@

/* Define if you have the <wchar.h> header file.  */
#cmakedefine HAVE_WCHAR_H @HAVE_WCHAR_H@

/* Define if you have the socket library (-lsocket).  */
#cmakedefine HAVE_LIBSOCKET @HAVE_LIBSOCKET@

/* Name of package */
#cmakedefine PACKAGE @PACKAGE@
