summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2007-12-16 20:23:22 +0000
committerLennart Poettering <lennart@poettering.net>2007-12-16 20:23:22 +0000
commit0cbfefdb155c5b79f63ebb19196e783c4cb48afc (patch)
tree869843b7b660aad627207ece7987344897b3d6d3
parent56a980b3e895c22ad9870a7de29b66f922e468f1 (diff)
Allow compilation against bsdxml instead of Expat. Patch from zml. (Closes #159)
git-svn-id: file:///home/lennart/svn/public/avahi/trunk@1585 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
-rw-r--r--avahi-daemon/Makefile.am6
-rw-r--r--avahi-daemon/static-services.c6
-rw-r--r--avahi-dnsconfd/Makefile.am2
-rw-r--r--configure.ac66
4 files changed, 59 insertions, 21 deletions
diff --git a/avahi-daemon/Makefile.am b/avahi-daemon/Makefile.am
index 2bb2325..622b4de 100644
--- a/avahi-daemon/Makefile.am
+++ b/avahi-daemon/Makefile.am
@@ -23,7 +23,7 @@ AM_CFLAGS=-I$(top_srcdir)
AM_CFLAGS+='-DDEBUG_TRAP=__asm__("int $$3")'
if HAVE_LIBDAEMON
-if HAVE_EXPAT
+if HAVE_XML
pkgsysconfdir=$(sysconfdir)/avahi
servicedir=$(pkgsysconfdir)/services
@@ -56,8 +56,8 @@ avahi_daemon_SOURCES = \
../avahi-client/check-nss.c \
inotify-nosys.h
-avahi_daemon_CFLAGS = $(AM_CFLAGS) $(LIBDAEMON_CFLAGS)
-avahi_daemon_LDADD = $(AM_LDADD) ../avahi-common/libavahi-common.la ../avahi-core/libavahi-core.la $(LIBDAEMON_LIBS) -lexpat
+avahi_daemon_CFLAGS = $(AM_CFLAGS) $(LIBDAEMON_CFLAGS) $(XML_CFLAGS)
+avahi_daemon_LDADD = $(AM_LDADD) ../avahi-common/libavahi-common.la ../avahi-core/libavahi-core.la $(LIBDAEMON_LIBS) $(XML_LIBS)
ini_file_parser_test_SOURCES = \
ini-file-parser.c ini-file-parser.h \
diff --git a/avahi-daemon/static-services.c b/avahi-daemon/static-services.c
index b9a852c..e123a21 100644
--- a/avahi-daemon/static-services.c
+++ b/avahi-daemon/static-services.c
@@ -31,7 +31,13 @@
#include <fcntl.h>
#include <unistd.h>
+#ifdef USE_EXPAT_H
#include <expat.h>
+#endif /* USE_EXPAT_H */
+
+#ifdef USE_BSDXML_H
+#include <bsdxml.h>
+#endif /* USE_BSDXML_H */
#include <avahi-common/llist.h>
#include <avahi-common/malloc.h>
diff --git a/avahi-dnsconfd/Makefile.am b/avahi-dnsconfd/Makefile.am
index 18b3adf..d358734 100644
--- a/avahi-dnsconfd/Makefile.am
+++ b/avahi-dnsconfd/Makefile.am
@@ -17,7 +17,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA.
-if HAVE_EXPAT
+if HAVE_XML
if HAVE_LIBDAEMON
pkgsysconfdir=$(sysconfdir)/avahi
diff --git a/configure.ac b/configure.ac
index 43b1f65..7dc4170 100644
--- a/configure.ac
+++ b/configure.ac
@@ -612,23 +612,55 @@ AM_CONDITIONAL(HAVE_DBUS, test "x$HAVE_DBUS" = "xyes")
#
# Expat
#
-AC_ARG_ENABLE(expat,
- AS_HELP_STRING([--disable-expat],[Disable use of Expat]),
- [case "${enableval}" in
- yes) HAVE_EXPAT=yes ;;
- no) HAVE_EXPAT=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for --enable-expat) ;;
- esac],
- [HAVE_EXPAT=yes])
+AC_ARG_WITH(xml, AS_HELP_STRING([--with-xml=[expat/bsdxml/none]],[XML library to use]))
+use_expat=false
+use_bsdxml=false
+
+# See what we have
+AC_CHECK_LIB(expat, XML_ParserCreate, [ AC_CHECK_HEADERS(expat.h, have_expat=true, have_expat=false) ], have_expat=false)
+AC_CHECK_LIB(bsdxml, XML_ParserCreate, [ AC_CHECK_HEADERS(bsdxml.h, have_bsdxml=true, have_bsdxml=false) ], have_bsdxml=false)
+
+if test "x$with_xml" = "xnone"; then
+elif test "x$with_xml" = "xexpat"; then
+ use_expat=true
+ if ! $have_expat ; then
+ AC_MSG_ERROR([*** libexpat requested, but not found ***])
+ fi
+elif test "x$with_xml" = "xbsdxml"; then
+ use_bsdxml=true
+ if ! $have_bsdxml ; then
+ AC_MSG_ERROR([*** libbsdxml requested, but not found ***])
+ fi
+elif test "x$with_xml" != "x"; then
+ AC_MSG_ERROR([*** unknown with-xml option ***])
+else
+ if $have_expat ; then
+ use_expat=true
+ elif $have_bsdxml ; then
+ use_bsdxml=true
+ else
+ AC_MSG_ERROR([*** neither libexpat not libbsdxml could be found ***])
+ fi
+fi
-if test "x$HAVE_EXPAT" = "xyes" ; then
- AC_CHECK_LIB(expat, XML_ParserCreate, [ AC_CHECK_HEADERS(expat.h, have_expat=true, have_expat=false) ], have_expat=false)
+if $use_expat; then
+ with_xml=expat
+ XML_CLAGS=-DUSE_EXPAT_H
+ XML_LIBS=-lexpat
+fi
+if $use_bsdxml; then
+ with_xml=bsdxml
+ XML_CFLAGS=-DUSE_BSDXML_H
+ XML_LIBS=-lbsdxml
+fi
+AC_SUBST(XML_LIBS)
+AC_SUBST(XML_CFLAGS)
- if ! $have_expat ; then
- AC_MSG_ERROR([*** libexpat not found ***])
- fi
+if $use_expat || $use_bsdxml; then
+ HAVE_XML=yes
fi
-AM_CONDITIONAL(HAVE_EXPAT, test "x$HAVE_EXPAT" = "xyes")
+
+AM_CONDITIONAL(HAVE_XML, test "x$HAVE_XML" = "xyes")
#
# GDBM
@@ -1053,7 +1085,7 @@ echo "
Enable GLIB GObject: ${HAVE_GOBJECT}
Enable GTK: ${HAVE_GTK}
Enable D-Bus: ${HAVE_DBUS}
- Enable Expat: ${HAVE_EXPAT}
+ With XML: ${with_xml}
Enable GDBM: ${HAVE_GDBM}
Enable DBM: ${HAVE_DBM}
Enable libdaemon: ${HAVE_LIBDAEMON}
@@ -1075,9 +1107,9 @@ echo "
Enable stack-smashing protection: ${enable_ssp}
"
-BUILD_DAEMON="no (You need libdaemon and expat!)"
+BUILD_DAEMON="no (You need libdaemon and expat/bsdxml!)"
-if test "x$HAVE_EXPAT" = "xyes" -a "x$HAVE_LIBDAEMON" = "xyes" ; then
+if test "x$HAVE_XML" = "xyes" -a "x$HAVE_LIBDAEMON" = "xyes" ; then
BUILD_DAEMON=yes
fi