+# -- Functions --
+
+AC_FUNC_FORK
+AC_FUNC_STRFTIME
+
+AC_CHECK_FUNCS([ \
+ bind gethostbyaddr gethostbyname gethostname inet_ntoa malloc memmove \
+ memset realloc setsid setsockopt socket strcasecmp strchr strcspn strerror \
+ strstr waitpid],,AC_MSG_ERROR([required function missing!]))
+
+AC_CHECK_FUNCS(inet_aton isdigit sigaction snprintf vsnprintf strdup strlcpy strlcat)
+
+AC_CHECK_FUNCS(select,[AC_CHECK_HEADERS(sys/select.h)],
+ AC_MSG_ERROR([required function select() is missing!])
+)
+
+# -- Configuration options --
+
+x_syslog_on=no
+AC_ARG_WITH(syslog,
+ [ --without-syslog disable syslog (autodetected by default)],
+ [ if test "$withval" != "no"; then
+ if test "$withval" != "yes"; then
+ CFLAGS="-I$withval/include $CFLAGS"
+ CPPFLAGS="-I$withval/include $CPPFLAGS"
+ LDFLAGS="-L$withval/lib $LDFLAGS"
+ fi
+ AC_CHECK_LIB(be, syslog)
+ AC_CHECK_FUNCS(syslog, x_syslog_on=yes,
+ AC_MSG_ERROR([Can't enable syslog!])
+ )
+ fi
+ ],
+ [
+ AC_CHECK_LIB(be, syslog)
+ AC_CHECK_FUNCS(syslog, x_syslog_on=yes)
+ ]
+)
+if test "$x_syslog_on" = "yes"; then
+ AC_DEFINE(SYSLOG, 1)
+ AC_CHECK_HEADERS(syslog.h,,AC_MSG_ERROR([required C header missing!]))
+fi
+
+x_zlib_on=no
+AC_ARG_WITH(zlib,
+ [ --without-zlib disable zlib compression (autodetected by default)],
+ [ if test "$withval" != "no"; then
+ if test "$withval" != "yes"; then
+ CFLAGS="-I$withval/include $CFLAGS"
+ CPPFLAGS="-I$withval/include $CPPFLAGS"
+ LDFLAGS="-L$withval/lib $LDFLAGS"
+ fi
+ AC_CHECK_LIB(z, deflate)
+ AC_CHECK_FUNCS(deflate, x_zlib_on=yes,
+ AC_MSG_ERROR([Can't enable zlib!])
+ )
+ fi
+ ],
+ [ AC_CHECK_LIB(z, deflate)
+ AC_CHECK_FUNCS(deflate, x_zlib_on=yes)
+ ]
+)
+if test "$x_zlib_on" = "yes"; then
+ AC_DEFINE(ZLIB, 1)
+ AC_CHECK_HEADERS(zlib.h,,AC_MSG_ERROR([required C header missing!]))
+fi
+
+
+x_io_backend=select\(\)
+AC_ARG_WITH(poll,
+ [ --without-poll disable poll support (autodetected by default)],
+ [ if test "$withval" != "no"; then
+ if test "$withval" != "yes"; then
+ CFLAGS="-I$withval/include $CFLAGS"
+ CPPFLAGS="-I$withval/include $CPPFLAGS"
+ LDFLAGS="-L$withval/lib $LDFLAGS"
+ fi
+ AC_CHECK_FUNCS(poll, x_io_backend=poll\(\),
+ AC_MSG_ERROR([Can't enable poll support!])
+ )
+ fi
+ ],
+ [
+ AC_CHECK_FUNCS(poll, x_io_backend=poll\(\))
+ ]
+)
+
+
+AC_ARG_WITH(devpoll,
+ [ --without-devpoll disable /dev/poll support (autodetected by default)],
+ [ if test "$withval" != "no"; then
+ if test "$withval" != "yes"; then
+ CFLAGS="-I$withval/include $CFLAGS"
+ CPPFLAGS="-I$withval/include $CPPFLAGS"
+ LDFLAGS="-L$withval/lib $LDFLAGS"
+ fi
+
+ AC_CHECK_HEADERS(sys/devpoll.h,,AC_MSG_ERROR([required C header missing!]))
+ fi
+ ],
+ [
+ AC_CHECK_HEADERS(sys/devpoll.h,x_io_backend=/dev/poll,)
+ ]
+)
+
+AC_ARG_WITH(epoll,
+ [ --without-epoll disable epoll support (autodetected by default)],
+ [ if test "$withval" != "no"; then
+ if test "$withval" != "yes"; then
+ CFLAGS="-I$withval/include $CFLAGS"
+ CPPFLAGS="-I$withval/include $CPPFLAGS"
+ LDFLAGS="-L$withval/lib $LDFLAGS"
+ fi
+ AC_CHECK_FUNCS(epoll_create, x_io_backend=epoll\(\),
+ AC_MSG_ERROR([Can't enable epoll support!])
+ )
+ fi
+ ],
+ [
+ AC_CHECK_FUNCS(epoll_create, x_io_backend=epoll\(\))
+ ]
+)
+
+
+AC_ARG_WITH(kqueue,
+ [ --without-kqueue disable kqueue support (autodetected by default)],
+ [ if test "$withval" != "no"; then
+ if test "$withval" != "yes"; then
+ CFLAGS="-I$withval/include $CFLAGS"
+ CPPFLAGS="-I$withval/include $CPPFLAGS"
+ LDFLAGS="-L$withval/lib $LDFLAGS"
+ fi
+ AC_CHECK_FUNCS(kqueue, x_io_backend=kqueue\(\),
+ AC_MSG_ERROR([Can't enable kqueue support!])
+ )
+ fi
+ ],
+ [
+ AC_CHECK_FUNCS(kqueue, x_io_backend=kqueue\(\))
+ ]