1 # libxml.m4 serial 5 (gettext-0.18)
2 dnl Copyright (C) 2006, 2008 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
11 AC_REQUIRE([AM_ICONV_LINK])
13 AC_MSG_CHECKING([whether included libxml is requested])
14 AC_ARG_WITH([included-libxml],
15 [ --with-included-libxml use the libxml2 included here],
16 [gl_cv_libxml_force_included=$withval],
17 [gl_cv_libxml_force_included=no])
18 AC_MSG_RESULT([$gl_cv_libxml_force_included])
20 gl_cv_libxml_use_included="$gl_cv_libxml_force_included"
24 if test "$gl_cv_libxml_use_included" != yes; then
25 dnl Figure out whether we can use a preinstalled libxml2, or have to use
27 AC_CACHE_VAL([gl_cv_libxml], [
33 LIBS="$LIBS $LIBICONV"
34 dnl Search for libxml2 and define LIBXML2, LTLIBXML2 and INCXML2
36 dnl Don't use xml2-config nor pkg-config, since it doesn't work when
37 dnl cross-compiling or when the C compiler in use is different from the
38 dnl one that built the library.
39 AC_LIB_LINKFLAGS_BODY([xml2])
40 LIBS="$gl_save_LIBS $LIBXML2 $LIBICONV"
41 AC_TRY_LINK([#include <libxml/xmlversion.h>],
42 [xmlCheckVersion (0);],
44 gl_cv_LIBXML="$LIBXML2 $LIBICONV"
45 gl_cv_LTLIBXML="$LTLIBXML2 $LTLIBICONV"
47 if test "$gl_cv_libxml" != yes; then
48 gl_save_CPPFLAGS="$CPPFLAGS"
49 CPPFLAGS="$CPPFLAGS $INCXML2"
50 AC_TRY_LINK([#include <libxml/xmlversion.h>],
51 [xmlCheckVersion (0);],
53 gl_cv_LIBXML="$LIBXML2 $LIBICONV"
54 gl_cv_LTLIBXML="$LTLIBXML2 $LTLIBICONV"
55 gl_cv_INCXML="$INCXML2"
57 if test "$gl_cv_libxml" != yes; then
58 dnl Often the include files are installed in /usr/include/libxml2.
59 dnl In libxml2-2.5, <libxml/xmlversion.h> is self-contained.
60 dnl In libxml2-2.6, it includes <libxml/xmlexports.h> which is
63 AC_TRY_CPP([#include <libxml2/libxml/xmlexports.h>],
64 [gl_ABSOLUTE_HEADER([libxml2/libxml/xmlexports.h])
65 libxml2_include_dir=`echo "$gl_cv_absolute_libxml2_libxml_xmlexports_h" | sed -e 's,.libxml.xmlexports\.h$,,'`
67 if test -z "$libxml2_include_dir"; then
68 AC_TRY_CPP([#include <libxml2/libxml/xmlversion.h>],
69 [gl_ABSOLUTE_HEADER([libxml2/libxml/xmlversion.h])
70 libxml2_include_dir=`echo "$gl_cv_absolute_libxml2_libxml_xmlversion_h" | sed -e 's,.libxml.xmlversion\.h$,,'`
73 if test -n "$libxml2_include_dir" && test -d "$libxml2_include_dir"; then
74 CPPFLAGS="$gl_save_CPPFLAGS -I$libxml2_include_dir"
75 AC_TRY_LINK([#include <libxml/xmlversion.h>],
76 [xmlCheckVersion (0);],
78 gl_cv_LIBXML="$LIBXML2 $LIBICONV"
79 gl_cv_LTLIBXML="$LTLIBXML2 $LTLIBICONV"
80 gl_cv_INCXML="-I$libxml2_include_dir"
84 CPPFLAGS="$gl_save_CPPFLAGS"
88 AC_MSG_CHECKING([for libxml])
89 AC_MSG_RESULT([$gl_cv_libxml])
90 if test $gl_cv_libxml = yes; then
91 LIBXML="$gl_cv_LIBXML"
92 LTLIBXML="$gl_cv_LTLIBXML"
93 INCXML="$gl_cv_INCXML"
95 gl_cv_libxml_use_included=yes
101 AC_MSG_CHECKING([whether to use the included libxml])
102 AC_MSG_RESULT([$gl_cv_libxml_use_included])
104 if test "$gl_cv_libxml_use_included" = yes; then
106 LIBXML_H="$LIBXML_H libxml/DOCBparser.h"
107 LIBXML_H="$LIBXML_H libxml/HTMLparser.h"
108 LIBXML_H="$LIBXML_H libxml/HTMLtree.h"
109 LIBXML_H="$LIBXML_H libxml/SAX2.h"
110 LIBXML_H="$LIBXML_H libxml/SAX.h"
111 LIBXML_H="$LIBXML_H libxml/c14n.h"
112 LIBXML_H="$LIBXML_H libxml/catalog.h"
113 LIBXML_H="$LIBXML_H libxml/chvalid.h"
114 LIBXML_H="$LIBXML_H libxml/debugXML.h"
115 LIBXML_H="$LIBXML_H libxml/dict.h"
116 LIBXML_H="$LIBXML_H libxml/encoding.h"
117 LIBXML_H="$LIBXML_H libxml/entities.h"
118 LIBXML_H="$LIBXML_H libxml/globals.h"
119 LIBXML_H="$LIBXML_H libxml/hash.h"
120 LIBXML_H="$LIBXML_H libxml/list.h"
121 LIBXML_H="$LIBXML_H libxml/nanoftp.h"
122 LIBXML_H="$LIBXML_H libxml/nanohttp.h"
123 LIBXML_H="$LIBXML_H libxml/parser.h"
124 LIBXML_H="$LIBXML_H libxml/parserInternals.h"
125 LIBXML_H="$LIBXML_H libxml/pattern.h"
126 LIBXML_H="$LIBXML_H libxml/relaxng.h"
127 LIBXML_H="$LIBXML_H libxml/schemasInternals.h"
128 LIBXML_H="$LIBXML_H libxml/schematron.h"
129 LIBXML_H="$LIBXML_H libxml/threads.h"
130 LIBXML_H="$LIBXML_H libxml/tree.h"
131 LIBXML_H="$LIBXML_H libxml/uri.h"
132 LIBXML_H="$LIBXML_H libxml/valid.h"
133 LIBXML_H="$LIBXML_H libxml/xinclude.h"
134 LIBXML_H="$LIBXML_H libxml/xlink.h"
135 LIBXML_H="$LIBXML_H libxml/xmlIO.h"
136 LIBXML_H="$LIBXML_H libxml/xmlautomata.h"
137 LIBXML_H="$LIBXML_H libxml/xmlerror.h"
138 LIBXML_H="$LIBXML_H libxml/xmlexports.h"
139 LIBXML_H="$LIBXML_H libxml/xmlmemory.h"
140 LIBXML_H="$LIBXML_H libxml/xmlmodule.h"
141 LIBXML_H="$LIBXML_H libxml/xmlreader.h"
142 LIBXML_H="$LIBXML_H libxml/xmlregexp.h"
143 LIBXML_H="$LIBXML_H libxml/xmlsave.h"
144 LIBXML_H="$LIBXML_H libxml/xmlschemas.h"
145 LIBXML_H="$LIBXML_H libxml/xmlschemastypes.h"
146 LIBXML_H="$LIBXML_H libxml/xmlstring.h"
147 LIBXML_H="$LIBXML_H libxml/xmlunicode.h"
148 LIBXML_H="$LIBXML_H libxml/xmlversion.h"
149 LIBXML_H="$LIBXML_H libxml/xmlwriter.h"
150 LIBXML_H="$LIBXML_H libxml/xpath.h"
151 LIBXML_H="$LIBXML_H libxml/xpathInternals.h"
152 LIBXML_H="$LIBXML_H libxml/xpointer.h"
153 AC_CHECK_HEADERS([arpa/inet.h ctype.h dlfcn.h dl.h errno.h \
154 fcntl.h float.h limits.h malloc.h math.h netdb.h \
155 netinet/in.h signal.h stdlib.h string.h \
156 strings.h sys/select.h sys/socket.h sys/stat.h \
157 sys/time.h sys/types.h time.h unistd.h])
158 AC_CHECK_HEADERS([arpa/nameser.h], [], [], [
160 # include <sys/types.h>
163 AC_CHECK_HEADERS([resolv.h], [], [], [
165 # include <sys/types.h>
167 #if HAVE_NETINET_IN_H
168 # include <netinet/in.h>
170 #if HAVE_ARPA_NAMESER_H
171 # include <arpa/nameser.h>
174 AC_CHECK_FUNCS([dlopen getaddrinfo localtime shlload stat _stat strftime])
175 dnl This relies on the va_copy replacement from the stdarg module.
176 AC_DEFINE([VA_COPY], [va_copy],
177 [Define to a working va_copy macro or replacement.])
178 dnl Don't bother checking for pthread.h and other multithread facilities.
179 dnl Don't bother checking for zlib.h and how to link with libz.
185 AM_CONDITIONAL([INCLUDED_LIBXML],
186 [test "$gl_cv_libxml_use_included" = yes])