1# libxml.m4 serial 4 (gettext-0.17) 2dnl Copyright (C) 2006 Free Software Foundation, Inc. 3dnl This file is free software; the Free Software Foundation 4dnl gives unlimited permission to copy and/or distribute it, 5dnl with or without modifications, as long as this notice is preserved. 6 7dnl From Bruno Haible. 8 9AC_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 AC_TRY_LINK([#include <libxml2/libxml/xmlversion.h>], 60 [xmlCheckVersion (0);], 61 [gl_ABSOLUTE_HEADER([libxml2/libxml/xmlversion.h]) 62 libxml2_include_dir=`echo "$gl_cv_absolute_libxml2_libxml_xmlversion_h" | sed -e 's,.libxml.xmlversion\.h$,,'` 63 if test -d "$libxml2_include_dir"; then 64 gl_cv_libxml=yes 65 gl_cv_LIBXML="$LIBXML2 $LIBICONV" 66 gl_cv_LTLIBXML="$LTLIBXML2 $LTLIBICONV" 67 gl_cv_INCXML="-I$libxml2_include_dir" 68 fi 69 ]) 70 fi 71 CPPFLAGS="$gl_save_CPPFLAGS" 72 fi 73 LIBS="$gl_save_LIBS" 74 ]) 75 AC_MSG_CHECKING([for libxml]) 76 AC_MSG_RESULT([$gl_cv_libxml]) 77 if test $gl_cv_libxml = yes; then 78 LIBXML="$gl_cv_LIBXML" 79 LTLIBXML="$gl_cv_LTLIBXML" 80 INCXML="$gl_cv_INCXML" 81 else 82 gl_cv_libxml_use_included=yes 83 fi 84 fi 85 AC_SUBST([LIBXML]) 86 AC_SUBST([LTLIBXML]) 87 AC_SUBST([INCXML]) 88 AC_MSG_CHECKING([whether to use the included libxml]) 89 AC_MSG_RESULT([$gl_cv_libxml_use_included]) 90 91 if test "$gl_cv_libxml_use_included" = yes; then 92 LIBXML_H= 93 LIBXML_H="$LIBXML_H libxml/DOCBparser.h" 94 LIBXML_H="$LIBXML_H libxml/HTMLparser.h" 95 LIBXML_H="$LIBXML_H libxml/HTMLtree.h" 96 LIBXML_H="$LIBXML_H libxml/SAX2.h" 97 LIBXML_H="$LIBXML_H libxml/SAX.h" 98 LIBXML_H="$LIBXML_H libxml/c14n.h" 99 LIBXML_H="$LIBXML_H libxml/catalog.h" 100 LIBXML_H="$LIBXML_H libxml/chvalid.h" 101 LIBXML_H="$LIBXML_H libxml/debugXML.h" 102 LIBXML_H="$LIBXML_H libxml/dict.h" 103 LIBXML_H="$LIBXML_H libxml/encoding.h" 104 LIBXML_H="$LIBXML_H libxml/entities.h" 105 LIBXML_H="$LIBXML_H libxml/globals.h" 106 LIBXML_H="$LIBXML_H libxml/hash.h" 107 LIBXML_H="$LIBXML_H libxml/list.h" 108 LIBXML_H="$LIBXML_H libxml/nanoftp.h" 109 LIBXML_H="$LIBXML_H libxml/nanohttp.h" 110 LIBXML_H="$LIBXML_H libxml/parser.h" 111 LIBXML_H="$LIBXML_H libxml/parserInternals.h" 112 LIBXML_H="$LIBXML_H libxml/pattern.h" 113 LIBXML_H="$LIBXML_H libxml/relaxng.h" 114 LIBXML_H="$LIBXML_H libxml/schemasInternals.h" 115 LIBXML_H="$LIBXML_H libxml/schematron.h" 116 LIBXML_H="$LIBXML_H libxml/threads.h" 117 LIBXML_H="$LIBXML_H libxml/tree.h" 118 LIBXML_H="$LIBXML_H libxml/uri.h" 119 LIBXML_H="$LIBXML_H libxml/valid.h" 120 LIBXML_H="$LIBXML_H libxml/xinclude.h" 121 LIBXML_H="$LIBXML_H libxml/xlink.h" 122 LIBXML_H="$LIBXML_H libxml/xmlIO.h" 123 LIBXML_H="$LIBXML_H libxml/xmlautomata.h" 124 LIBXML_H="$LIBXML_H libxml/xmlerror.h" 125 LIBXML_H="$LIBXML_H libxml/xmlexports.h" 126 LIBXML_H="$LIBXML_H libxml/xmlmemory.h" 127 LIBXML_H="$LIBXML_H libxml/xmlmodule.h" 128 LIBXML_H="$LIBXML_H libxml/xmlreader.h" 129 LIBXML_H="$LIBXML_H libxml/xmlregexp.h" 130 LIBXML_H="$LIBXML_H libxml/xmlsave.h" 131 LIBXML_H="$LIBXML_H libxml/xmlschemas.h" 132 LIBXML_H="$LIBXML_H libxml/xmlschemastypes.h" 133 LIBXML_H="$LIBXML_H libxml/xmlstring.h" 134 LIBXML_H="$LIBXML_H libxml/xmlunicode.h" 135 LIBXML_H="$LIBXML_H libxml/xmlversion.h" 136 LIBXML_H="$LIBXML_H libxml/xmlwriter.h" 137 LIBXML_H="$LIBXML_H libxml/xpath.h" 138 LIBXML_H="$LIBXML_H libxml/xpathInternals.h" 139 LIBXML_H="$LIBXML_H libxml/xpointer.h" 140 AC_CHECK_HEADERS([arpa/inet.h ctype.h dlfcn.h dl.h errno.h \ 141 fcntl.h float.h limits.h malloc.h math.h netdb.h \ 142 netinet/in.h signal.h stdlib.h string.h \ 143 strings.h sys/select.h sys/socket.h sys/stat.h \ 144 sys/time.h sys/types.h time.h unistd.h]) 145 AC_CHECK_HEADERS([arpa/nameser.h], [], [], [ 146 #if HAVE_SYS_TYPES_H 147 # include <sys/types.h> 148 #endif 149 ]) 150 AC_CHECK_HEADERS([resolv.h], [], [], [ 151 #if HAVE_SYS_TYPES_H 152 # include <sys/types.h> 153 #endif 154 #if HAVE_NETINET_IN_H 155 # include <netinet/in.h> 156 #endif 157 #if HAVE_ARPA_NAMESER_H 158 # include <arpa/nameser.h> 159 #endif 160 ]) 161 AC_CHECK_FUNCS([dlopen getaddrinfo localtime shlload stat _stat strftime]) 162 dnl This relies on the va_copy replacement from the stdarg module. 163 AC_DEFINE([VA_COPY], [va_copy], 164 [Define to a working va_copy macro or replacement.]) 165 dnl Don't bother checking for pthread.h and other multithread facilities. 166 dnl Don't bother checking for zlib.h and how to link with libz. 167 else 168 LIBXML_H= 169 fi 170 AC_SUBST([LIBXML_H]) 171 172 AM_CONDITIONAL([INCLUDED_LIBXML], 173 [test "$gl_cv_libxml_use_included" = yes]) 174]) 175