]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - config-scripts/cups-dnssd.m4
Greatly simplify the man page handling.
[thirdparty/cups.git] / config-scripts / cups-dnssd.m4
index 360910a0d189c4e5920ff3434d7114626cec6fe9..19832dc1609aa418717764225349a1b57c103c20 100644 (file)
@@ -1,47 +1,76 @@
 dnl
-dnl "$Id$"
+dnl DNS Service Discovery (aka Bonjour) stuff for CUPS.
 dnl
-dnl   DNS Service Discovery (aka Bonjour) stuff for the Common UNIX Printing System (CUPS).
-dnl
-dnl   http://www.dns-sd.org
-dnl   http://www.multicastdns.org/
-dnl   http://developer.apple.com/networking/bonjour/
-dnl
-dnl   Copyright ...
+dnl Copyright © 2007-2019 by Apple Inc.
 dnl
+dnl Licensed under Apache License v2.0.  See the file "LICENSE" for more
+dnl information.
 dnl
 
-AC_ARG_ENABLE(dnssd, [  --enable-dnssd            turn on DNS Service Discovery support, default=yes])
-AC_ARG_WITH(dnssd-libs, [  --with-dnssd-libs        set directory for DNS Service Discovery library],
+AC_ARG_ENABLE(avahi, [  --disable-avahi         disable DNS Service Discovery support using Avahi])
+AC_ARG_ENABLE(dnssd, [  --disable-dnssd         disable DNS Service Discovery support using mDNSResponder])
+AC_ARG_WITH(dnssd-libs, [  --with-dnssd-libs       set directory for DNS Service Discovery library],
        LDFLAGS="-L$withval $LDFLAGS"
        DSOFLAGS="-L$withval $DSOFLAGS",)
-AC_ARG_WITH(dnssd-includes, [  --with-dnssd-includes    set directory for DNS Service Discovery includes],
+AC_ARG_WITH(dnssd-includes, [  --with-dnssd-includes   set directory for DNS Service Discovery includes],
        CFLAGS="-I$withval $CFLAGS"
-       CXXFLAGS="-I$withval $CXXFLAGS"
        CPPFLAGS="-I$withval $CPPFLAGS",)
 
 DNSSDLIBS=""
+DNSSD_BACKEND=""
+IPPFIND_BIN=""
+IPPFIND_MAN=""
+
+if test "x$PKGCONFIG" != x -a x$enable_avahi != xno -a x$host_os_name != xdarwin; then
+       AC_MSG_CHECKING(for Avahi)
+       if $PKGCONFIG --exists avahi-client; then
+               AC_MSG_RESULT(yes)
+               CFLAGS="$CFLAGS `$PKGCONFIG --cflags avahi-client`"
+               DNSSDLIBS="`$PKGCONFIG --libs avahi-client`"
+               DNSSD_BACKEND="dnssd"
+               IPPFIND_BIN="ippfind"
+               IPPFIND_MAN="ippfind.1)"
+               AC_DEFINE(HAVE_AVAHI)
+       else
+               AC_MSG_RESULT(no)
+       fi
+fi
 
-if test x$enable_dnssd != xno; then
+if test "x$DNSSD_BACKEND" = x -a x$enable_dnssd != xno; then
        AC_CHECK_HEADER(dns_sd.h, [
-               AC_DEFINE(HAVE_DNSSD)
-               case "$uname" in
-                       Darwin*)
-                               # Darwin and MacOS X...
-                               DNSSDLIBS="-framework CoreFoundation -framework SystemConfiguration"
-                               AC_DEFINE(HAVE_COREFOUNDATION)
-                               AC_DEFINE(HAVE_SYSTEMCONFIGURATION)
+               case "$host_os_name" in
+                       darwin*)
+                               # Darwin and macOS...
+                               AC_DEFINE(HAVE_DNSSD)
+                               DNSSD_BACKEND="dnssd"
+                               IPPFIND_BIN="ippfind"
+                               IPPFIND_MAN="ippfind.1"
                                ;;
                        *)
                                # All others...
-                               DNSSDLIBS="???"
+                               AC_MSG_CHECKING(for current version of dns_sd library)
+                               SAVELIBS="$LIBS"
+                               LIBS="$LIBS -ldns_sd"
+                               AC_TRY_COMPILE([#include <dns_sd.h>],
+                                       [int constant = kDNSServiceFlagsShareConnection;
+                                       unsigned char txtRecord[100];
+                                       uint8_t valueLen;
+                                       TXTRecordGetValuePtr(sizeof(txtRecord),
+                                           txtRecord, "value", &valueLen);],
+                                       AC_MSG_RESULT(yes)
+                                       AC_DEFINE(HAVE_DNSSD)
+                                       DNSSDLIBS="-ldns_sd"
+                                       DNSSD_BACKEND="dnssd",
+                                       IPPFIND_BIN="ippfind"
+                                       IPPFIND_MAN="ippfind.1"
+                                       AC_MSG_RESULT(no))
+                               LIBS="$SAVELIBS"
                                ;;
                esac
        ])
 fi
 
 AC_SUBST(DNSSDLIBS)
-
-dnl
-dnl End of "$Id$".
-dnl
+AC_SUBST(DNSSD_BACKEND)
+AC_SUBST(IPPFIND_BIN)
+AC_SUBST(IPPFIND_MAN)