# USA.
AC_PREREQ(2.57)
-AC_INIT([avahi],[0.5],[avahi (at) lists (dot) freedesktop (dot) org])
+AC_INIT([avahi],[0.6],[avahi (at) lists (dot) freedesktop (dot) org])
AC_CONFIG_SRCDIR([avahi-core/server.c])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE([foreign 1.9 -Wall])
AC_SUBST(LIBAVAHI_GLIB_VERSION_INFO, [0:1:0])
AC_SUBST(LIBAVAHI_QT3_VERSION_INFO, [0:0:0])
AC_SUBST(LIBAVAHI_QT4_VERSION_INFO, [0:0:0])
+AC_SUBST(LIBAVAHI_COMPAT_LIBDNS_SD_VERSION_INFO, [1:0:0])
+AC_SUBST(LIBAVAHI_COMPAT_HOWL_VERSION_INFO, [0:0:0])
+AC_SUBST(HOWL_COMPAT_VERSION, [0.9.8])
if type -p stow > /dev/null && test -d /usr/local/stow ; then
AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
# libtool stuff
AC_PROG_LIBTOOL
+ACX_PTHREAD(,AC_MSG_ERROR([Missing POSIX Threads support]))
+
+#
+# Host specific stuffs
+#
+case "$host" in
+ *-netbsd* | *-knetbsd*-gnu)
+ AC_DEFINE([NETBSD],[],[ Support for NetBSD])
+ avahi_platform=netbsd
+ ;;
+ *-openbsd*)
+ AC_DEFINE([OPENBSD],[],[ Support for OpenBSD])
+ avahi_platform=openbsd
+ ;;
+ *-solaris*)
+ AC_DEFINE([SOLARIS],[],[ Support for Sun Solaris])
+ avahi_platform=solaris
+ ;;
+ *-linux*)
+ AC_DEFINE([LINUX],[],[ Support for GNU/Linux])
+ avahi_platform=linux
+ ;;
+ *-freebsd* | *-kfreebsd*-gnu)
+ AC_DEFINE([FREEBSD],[],[ Support for FreeBSD])
+ avahi_platform=freebsd
+ ;;
+ *-apple-darwin*)
+ AC_DEFINE([DARWIN],[],[ Support for AppleDarwin])
+ avahi_platform=darwin
+ ;;
+esac
+
+#
+# Check for netlink.h
+#
+AC_CHECK_HEADER(linux/netlink.h,
+HAVE_NETLINK=yes
+AC_DEFINE([HAVE_NETLINK],[],[Support for Linux netlink])
+, [], [
+#include <sys/socket.h>
+#include <asm/types.h>
+])
+
+AM_CONDITIONAL(HAVE_NETLINK, [ test x"$HAVE_NETLINK" = xyes ])
+
+#
+# Check for net/route.h
+#
+AC_CHECK_HEADER(net/route.h,
+HAVE_PF_ROUTE=yes
+AC_DEFINE([HAVE_PF_ROUTE],[],[Support for PF_ROUTE])
+, [], [
+#include <sys/types.h>
+#include <sys/socket.h>
+])
+
+AM_CONDITIONAL(HAVE_PF_ROUTE, [ test x"$HAVE_PF_ROUTE" = xyes ])
+
+#
+# Check for struct ip_mreqn
+#
+AC_MSG_CHECKING(for struct ip_mreqn)
+AC_TRY_COMPILE([#include <netinet/in.h>], [
+ struct ip_mreqn mreq;
+ mreq.imr_address.s_addr = 0;
+], [
+ # Yes, we have it...
+ AC_MSG_RESULT(yes)
+ AC_DEFINE([HAVE_STRUCT_IP_MREQN],[],[Support for struct ip_mreqn])
+], [
+ # We'll just have to try and use struct ip_mreq
+ AC_MSG_RESULT(no)
+ AC_MSG_CHECKING(for struct ip_mreq)
+ AC_TRY_COMPILE([#include <netinet/in.h>], [
+ struct ip_mreq mreq;
+ mreq.imr_interface.s_addr = 0;
+ ], [
+ # Yes, we have it...
+ AC_MSG_RESULT(yes)
+ AC_DEFINE([HAVE_STRUCT_IP_MREQ],[],[Support for struct ip_mreq])
+ ], [
+ # No multicast support
+ AC_MSG_RESULT(no)
+ ])
+])
+
#
# Detecting the linux distribution for specific things like init scripts.
#
AC_FUNC_SELECT_ARGTYPES
AC_FUNC_MALLOC
AC_FUNC_REALLOC
-AC_CHECK_FUNCS([gethostname memchr memmove memset mkdir select socket strchr strcspn strdup strerror strrchr strspn strstr uname setresuid setreuid strcasecmp gettimeofday putenv strncasecmp])
+AC_CHECK_FUNCS([gethostname memchr memmove memset mkdir select socket strchr strcspn strdup strerror strrchr strspn strstr uname setresuid setreuid strcasecmp gettimeofday putenv strncasecmp strclpy])
AC_FUNC_CHOWN
AC_FUNC_STAT
AC_TYPE_MODE_T
AC_TYPE_PID_T
+AC_CHECK_DECLS(environ)
+
# Check for pkg-config manually first, as if its not installed the
# PKG_PROG_PKG_CONFIG macro won't be defined.
AC_CHECK_PROG(have_pkg_config, pkg-config, yes, no)
fi
AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
-
-
#
# D-BUS
#
if ! test -z "$with_dbus_system_address" ; then
DBUS_SYSTEM_BUS_DEFAULT_ADDRESS="$with_dbus_system_address"
else
- # Note this default path is hardcoded in D-BUS and should
- # not use $localstatedir
+ # This is ugly, but D-BUS doesn't export this address for us
+ # so we have to guess, pretty much all setups i've seen have
+ # it in /var/lib/dbus or /var/run/dbus, and its defaulted to
+ # /var/run upstream so we will try guess first then default
+ # to /var/run/dbus
+
DBUS_SYSTEM_BUS_DEFAULT_ADDRESS="unix:path=/var/run/dbus/system_bus_socket"
+ TRY_SOCKETS="/var/lib/dbus/system_bus_socket /var/run/dbus/system_bus_socket"
+ for sock in $TRY_SOCKETS; do
+ if test -S $sock; then
+ DBUS_SYSTEM_BUS_DEFAULT_ADDRESS="unix:path=$sock"
+ fi
+ done
fi
AC_SUBST(DBUS_SYSTEM_BUS_DEFAULT_ADDRESS)
esac],
[HAVE_MONO=yes])
+AC_ARG_ENABLE(monodoc,
+ AS_HELP_STRING([--disable-monodoc],[Disable documentation for mono bindings]),
+ [case "${enableval}" in
+ yes) HAVE_MONODOC=yes ;;
+ no) HAVE_MONODOC=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --enable-monodoc) ;;
+ esac],
+ [HAVE_MONODOC=yes])
+
if test "x$HAVE_MONO" = "xyes" ; then
AC_PATH_PROG(MCS, mcs)
if test "x$MCS" = "x" ; then
AC_PATH_PROG(GACUTIL, gacutil)
if test "x$GACUTIL" = "x" ; then
- AC_MSG_ERROR([Can not find "gacutil" in your PATH])
+ AC_MSG_ERROR([Can not find "gacutil" in your PATH])
fi
AC_SUBST(MCS)
fi
AM_CONDITIONAL(HAVE_MONO, test "x$HAVE_MONO" = "xyes")
+#
+# Check for monodoc stuff
+#
+if test "x$HAVE_MONODOC" = "xyes" ; then
+ PKG_CHECK_MODULES(MONODOC, [monodoc >= 1.1.8])
+ MONODOC_DIR=`$PKG_CONFIG --variable=sourcesdir monodoc`
+
+ AC_PATH_PROG(MONODOCER, monodocer)
+ AC_PATH_PROG(MDASSEMBLER, mdassembler)
+
+ AC_SUBST(MONODOC_DIR)
+ AC_SUBST(MONODOCER)
+ AC_SUBST(MDASSEMBLER)
+fi
+AM_CONDITIONAL(HAVE_MONODOC, test "x$HAVE_MONODOC" = "xyes")
+
#
# Defining Avahi User and Group.
#
AC_SUBST(avahi_runtime_dir)
AC_SUBST(avahi_socket)
-
#
# Avahi interfaces dir
#
AC_SUBST(interfacesdir)
fi
-
#
# Doxygen
#
AM_CONDITIONAL([USE_XMLTOMAN], [test "x$xmltoman" = xyes])
+#
+# Conditionally compile test and example programs
+#
+AC_ARG_ENABLE(tests,
+ AS_HELP_STRING([--enable-tests],[Enable building of tests and examples]),
+ [case "${enableval}" in
+ yes) ENABLE_TESTS=yes ;;
+ no) ENABLE_TESTS=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --enable-tests) ;;
+ esac],
+ [ENABLE_TESTS=no])
+
+AM_CONDITIONAL([ENABLE_TESTS], [test "x$ENABLE_TESTS" = "xyes"])
+
+#
+# Optionally enable libdns_sd compatibility support
+#
+AC_ARG_ENABLE(compat-libdns_sd,
+ AS_HELP_STRING([--enable-compat-libdns_sd],[Enable compatibility layer for libdns_sd]),
+ [case "${enableval}" in
+ yes) ENABLE_COMPAT_LIBDNS_SD=yes ;;
+ no) ENABLE_COMPAT_LIBDNS_SD=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --enable-compat-libdns_sd) ;;
+ esac],
+ [ENABLE_COMPAT_LIBDNS_SD=no])
+
+AM_CONDITIONAL([ENABLE_COMPAT_LIBDNS_SD], [test "x$ENABLE_COMPAT_LIBDNS_SD" = "xyes"])
+
+#
+# Optionally enable HOWL compatibility support
+#
+AC_ARG_ENABLE(compat-howl,
+ AS_HELP_STRING([--enable-compat-howl],[Enable compatibility layer for HOWL]),
+ [case "${enableval}" in
+ yes) ENABLE_COMPAT_HOWL=yes ;;
+ no) ENABLE_COMPAT_HOWL=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --enable-compat-howl) ;;
+ esac],
+ [ENABLE_COMPAT_HOWL=no])
+
+AM_CONDITIONAL([ENABLE_COMPAT_HOWL], [test "x$ENABLE_COMPAT_HOWL" = "xyes"])
+
+
# ==========================================================================
AC_CONFIG_FILES([
Makefile
tests/Makefile
service-type-database/Makefile
avahi-sharp/Makefile
+avahi-compat-libdns_sd/Makefile
+avahi-compat-howl/Makefile
+avahi-compat-howl/samples/Makefile
])
AC_OUTPUT
BUILD_CLIENT=yes
fi
+if test "x$ENABLE_COMPAT_LIBDNS_SD" = "xyes" -a "x$BUILD_CLIENT" != "xyes" ; then
+ AC_MSG_ERROR([building avahi-compat-libdns_sd without building libavahi-client doesn't work])
+fi
+if test "x$ENABLE_COMPAT_HOWL" = "xyes" -a "x$BUILD_CLIENT" != "xyes" ; then
+ AC_MSG_ERROR([building avahi-compat-howl without building libavahi-client doesn't work])
+fi
+
+
echo "
Building libavahi-core yes
Building avahi-daemon: ${BUILD_DAEMON}
Building libavahi-qt3: ${HAVE_QT3}
Building libavahi-qt4: ${HAVE_QT4}
Building avahi-sharp: ${HAVE_MONO}
+ Building avahi-compat-libdns_sd: ${ENABLE_COMPAT_LIBDNS_SD}
+ Building avahi-compat-howl: ${ENABLE_COMPAT_HOWL}
+ Building tests: ${ENABLE_TESTS}
"