Imported Upstream version 0.18.1.1
[platform/upstream/gettext.git] / gettext-tools / gnulib-m4 / libxml.m4
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.
6
7 dnl From Bruno Haible.
8
9 AC_DEFUN([gl_LIBXML],
10 [
11   AC_REQUIRE([AM_ICONV_LINK])
12
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])
19
20   gl_cv_libxml_use_included="$gl_cv_libxml_force_included"
21   LIBXML=
22   LTLIBXML=
23   INCXML=
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
26     dnl the included one.
27     AC_CACHE_VAL([gl_cv_libxml], [
28       gl_cv_libxml=no
29       gl_cv_LIBXML=
30       gl_cv_LTLIBXML=
31       gl_cv_INCXML=
32       gl_save_LIBS="$LIBS"
33       LIBS="$LIBS $LIBICONV"
34       dnl Search for libxml2 and define LIBXML2, LTLIBXML2 and INCXML2
35       dnl accordingly.
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);],
43         [gl_cv_libxml=yes
44          gl_cv_LIBXML="$LIBXML2 $LIBICONV"
45          gl_cv_LTLIBXML="$LTLIBXML2 $LTLIBICONV"
46         ])
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);],
52           [gl_cv_libxml=yes
53            gl_cv_LIBXML="$LIBXML2 $LIBICONV"
54            gl_cv_LTLIBXML="$LTLIBXML2 $LTLIBICONV"
55            gl_cv_INCXML="$INCXML2"
56           ])
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
61           dnl self-contained.
62           libxml2_include_dir=
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$,,'`
66             ])
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$,,'`
71               ])
72           fi
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);],
77               [gl_cv_libxml=yes
78                gl_cv_LIBXML="$LIBXML2 $LIBICONV"
79                gl_cv_LTLIBXML="$LTLIBXML2 $LTLIBICONV"
80                gl_cv_INCXML="-I$libxml2_include_dir"
81               ])
82           fi
83         fi
84         CPPFLAGS="$gl_save_CPPFLAGS"
85       fi
86       LIBS="$gl_save_LIBS"
87     ])
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"
94     else
95       gl_cv_libxml_use_included=yes
96     fi
97   fi
98   AC_SUBST([LIBXML])
99   AC_SUBST([LTLIBXML])
100   AC_SUBST([INCXML])
101   AC_MSG_CHECKING([whether to use the included libxml])
102   AC_MSG_RESULT([$gl_cv_libxml_use_included])
103
104   if test "$gl_cv_libxml_use_included" = yes; then
105     LIBXML_H=
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], [], [], [
159       #if HAVE_SYS_TYPES_H
160       # include <sys/types.h>
161       #endif
162     ])
163     AC_CHECK_HEADERS([resolv.h], [], [], [
164       #if HAVE_SYS_TYPES_H
165       # include <sys/types.h>
166       #endif
167       #if HAVE_NETINET_IN_H
168       # include <netinet/in.h>
169       #endif 
170       #if HAVE_ARPA_NAMESER_H 
171       # include <arpa/nameser.h>
172       #endif
173     ])
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.
180   else
181     LIBXML_H=
182   fi
183   AC_SUBST([LIBXML_H])
184
185   AM_CONDITIONAL([INCLUDED_LIBXML],
186     [test "$gl_cv_libxml_use_included" = yes])
187 ])