blob: c6d171550f585c1406186d921ec88664ac080c82 [file] [log] [blame]
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ([2.63])
m4_define([MAJOR_VERSION], 2)
m4_define([MINOR_VERSION], 11)
m4_define([MICRO_VERSION], 4)
AC_INIT([libxml2],[MAJOR_VERSION.MINOR_VERSION.MICRO_VERSION])
AC_CONFIG_SRCDIR([entities.c])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
AC_CANONICAL_HOST
LIBXML_MAJOR_VERSION=MAJOR_VERSION
LIBXML_MINOR_VERSION=MINOR_VERSION
LIBXML_MICRO_VERSION=MICRO_VERSION
LIBXML_MICRO_VERSION_SUFFIX=
LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION$LIBXML_MICRO_VERSION_SUFFIX
LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION
LIBXML_VERSION_NUMBER=`expr $LIBXML_MAJOR_VERSION \* 10000 + $LIBXML_MINOR_VERSION \* 100 + $LIBXML_MICRO_VERSION`
if test -d .git ; then
extra=`git describe 2>/dev/null | sed 's+LIBXML[[0-9.]]*-++'`
echo extra=$extra
if test "$extra" != ""
then
LIBXML_VERSION_EXTRA="-GIT$extra"
fi
fi
AC_SUBST(LIBXML_MAJOR_VERSION)
AC_SUBST(LIBXML_MINOR_VERSION)
AC_SUBST(LIBXML_MICRO_VERSION)
AC_SUBST(LIBXML_VERSION)
AC_SUBST(LIBXML_VERSION_INFO)
AC_SUBST(LIBXML_VERSION_NUMBER)
AC_SUBST(LIBXML_VERSION_EXTRA)
VERSION=${LIBXML_VERSION}
AM_INIT_AUTOMAKE([1.16.3 foreign no-dist-gzip dist-xz])
AM_MAINTAINER_MODE([enable])
AM_SILENT_RULES([yes])
dnl Checks for programs.
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MKDIR_P
AC_PATH_PROG(TAR, tar, /bin/tar)
AC_PATH_PROG(PERL, perl, /usr/bin/perl)
AC_PATH_PROG(WGET, wget, /usr/bin/wget)
AC_PATH_PROG(XSLTPROC, xsltproc, /usr/bin/xsltproc)
PKG_PROG_PKG_CONFIG
LT_INIT([disable-static])
LT_LIB_M
dnl
dnl We process the AC_ARG_WITH first so that later we can modify
dnl some of them to try to prevent impossible combinations. This
dnl also allows up so alphabetize the choices
dnl
AC_ARG_WITH(c14n,
[ --with-c14n add the Canonicalization support (on)])
AC_ARG_WITH(catalog,
[ --with-catalog add the Catalog support (on)])
AC_ARG_WITH(debug,
[ --with-debug add the debugging module (on)])
AC_ARG_WITH(fexceptions,
[ --with-fexceptions add GCC flag -fexceptions for C++ exceptions (off)])
AC_ARG_WITH(ftp,
[ --with-ftp add the FTP support (off)])
AC_ARG_WITH(history,
[ --with-history add history support to xmllint shell(off)])
AC_ARG_WITH(html,
[ --with-html add the HTML support (on)])
AC_ARG_WITH(http,
[ --with-http add the HTTP support (on)])
AC_ARG_WITH(iconv,
[ --with-iconv[[=DIR]] add ICONV support (on)])
AC_ARG_WITH(icu,
[ --with-icu add ICU support (off)])
AC_ARG_WITH(iso8859x,
[ --with-iso8859x add ISO8859X support if no iconv (on)])
AC_ARG_WITH(legacy,
[ --with-legacy add deprecated APIs for compatibility (off)])
AC_ARG_WITH(mem_debug,
[ --with-mem-debug add the memory debugging module (off)])
AC_ARG_WITH(minimum,
[ --with-minimum build a minimally sized library (off)])
AC_ARG_WITH(output,
[ --with-output add the serialization support (on)])
AC_ARG_WITH(pattern,
[ --with-pattern add the xmlPattern selection interface (on)])
AC_ARG_WITH(push,
[ --with-push add the PUSH parser interfaces (on)])
AC_ARG_WITH(python,
[ --with-python build Python bindings (on)])
AC_ARG_WITH(reader,
[ --with-reader add the xmlReader parsing interface (on)])
AC_ARG_WITH(readline,
[ --with-readline[[=DIR]] use readline in DIR])
AC_ARG_WITH(regexps,
[ --with-regexps add Regular Expressions support (on)])
AC_ARG_WITH(run_debug,
[ --with-run-debug add the runtime debugging module (off)])
AC_ARG_WITH(sax1,
[ --with-sax1 add the older SAX1 interface (on)])
AC_ARG_WITH(schemas,
[ --with-schemas add Relax-NG and Schemas support (on)])
AC_ARG_WITH(schematron,
[ --with-schematron add Schematron support (on)])
AC_ARG_WITH(threads,
[ --with-threads add multithread support(on)])
AC_ARG_WITH(thread-alloc,
[ --with-thread-alloc add per-thread memory(off)])
AC_ARG_WITH(tree,
[ --with-tree add the DOM like tree manipulation APIs (on)])
AC_ARG_WITH(valid,
[ --with-valid add the DTD validation support (on)])
AC_ARG_WITH(writer,
[ --with-writer add the xmlWriter saving interface (on)])
AC_ARG_WITH(xinclude,
[ --with-xinclude add the XInclude support (on)])
AC_ARG_WITH(xpath,
[ --with-xpath add the XPATH support (on)])
AC_ARG_WITH(xptr,
[ --with-xptr add the XPointer support (on)])
AC_ARG_WITH(xptr-locs,
[ --with-xptr-locs add support for XPointer locations (off)])
AC_ARG_WITH(modules,
[ --with-modules add the dynamic modules support (on)])
AC_ARG_WITH(zlib,
[ --with-zlib[[=DIR]] use libz in DIR])
AC_ARG_WITH(lzma,
[ --with-lzma[[=DIR]] use liblzma in DIR])
AC_ARG_WITH(coverage,
[ --with-coverage build for code coverage with GCC (off)])
dnl
dnl hard dependencies on options
dnl
if test "$with_c14n" = "yes"; then
if test "$with_output" = "no"; then
echo WARNING: --with-c14n overrides --without-output
fi
with_output=yes
if test "$with_xpath" = "no"; then
echo WARNING: --with-c14n overrides --without-xpath
fi
with_xpath=yes
fi
if test "$with_schemas" = "yes"; then
if test "$with_pattern" = "no"; then
echo WARNING: --with-schemas overrides --without-pattern
fi
with_pattern=yes
if test "$with_regexps" = "no"; then
echo WARNING: --with-schemas overrides --without-regexps
fi
with_regexps=yes
fi
if test "$with_schematron" = "yes"; then
if test "$with_pattern" = "no"; then
echo WARNING: --with-schematron overrides --without-pattern
fi
with_pattern=yes
if test "$with_tree" = "no"; then
echo WARNING: --with-schematron overrides --without-tree
fi
with_tree=yes
if test "$with_xpath" = "no"; then
echo WARNING: --with-schematron overrides --without-xpath
fi
with_xpath=yes
fi
if test "$with_reader" = "yes"; then
if test "$with_push" = "no"; then
echo WARNING: --with-reader overrides --without-push
fi
with_push=yes
if test "$with_tree" = "no"; then
echo WARNING: --with-reader overrides --without-tree
fi
with_tree=yes
fi
if test "$with_writer" = "yes"; then
if test "$with_output" = "no"; then
echo WARNING: --with-writer overrides --without-output
fi
with_output=yes
if test "$with_push" = "no"; then
echo WARNING: --with-writer overrides --without-push
fi
with_push=yes
fi
if test "$with_xinclude" = "yes"; then
if test "$with_xpath" = "no"; then
echo WARNING: --with-xinclude overrides --without-xpath
fi
with_xpath=yes
fi
if test "$with_xptr_locs" = "yes"; then
if test "$with_xptr" = "no"; then
echo WARNING: --with-xptr-locs overrides --without-xptr
fi
with_xptr=yes
fi
if test "$with_xptr" = "yes"; then
if test "$with_xpath" = "no"; then
echo WARNING: --with-xptr overrides --without-xpath
fi
with_xpath=yes
fi
if test "$with_minimum" = "yes"; then
dnl
dnl option to build a minimal libxml2 library
dnl
echo "Configuring for a minimal library"
test "$with_c14n" = "" && with_c14n=no
test "$with_catalog" = "" && with_catalog=no
test "$with_debug" = "" && with_debug=no
test "$with_fexceptions" = "" && with_fexceptions=no
test "$with_history" = "" && with_history=no
test "$with_html" = "" && with_html=no
test "$with_http" = "" && with_http=no
test "$with_iconv" = "" && with_iconv=no
test "$with_iso8859x" = "" && with_iso8859x=no
test "$with_mem_debug" = "" && with_mem_debug=no
test "$with_output" = "" && with_output=no
test "$with_pattern" = "" && with_pattern=no
test "$with_push" = "" && with_push=no
test "$with_python" = "" && with_python=no
test "$with_reader" = "" && with_reader=no
test "$with_readline" = "" && with_readline=no
test "$with_regexps" = "" && with_regexps=no
test "$with_run_debug" = "" && with_run_debug=no
test "$with_sax1" = "" && with_sax1=no
test "$with_schemas" = "" && with_schemas=no
test "$with_schematron" = "" && with_schematron=no
test "$with_threads" = "" && with_threads=no
test "$with_thread_alloc" = "" && with_thread_alloc=no
test "$with_tree" = "" && with_tree=no
test "$with_valid" = "" && with_valid=no
test "$with_writer" = "" && with_writer=no
test "$with_xinclude" = "" && with_xinclude=no
test "$with_xpath" = "" && with_xpath=no
test "$with_xptr" = "" && with_xptr=no
test "$with_zlib" = "" && with_zlib=no
test "$with_modules" = "" && with_modules=no
else
dnl
dnl Disable dependent modules
dnl
if test "$with_output" = "no"; then
with_c14n=no
with_writer=no
fi
if test "$with_pattern" = "no"; then
with_schemas=no
with_schematron=no
fi
if test "$with_push" = "no"; then
with_reader=no
with_writer=no
fi
if test "$with_regexps" = "no"; then
with_schemas=no
fi
if test "$with_tree" = "no"; then
with_reader=no
with_schematron=no
fi
if test "$with_xpath" = "no"; then
with_c14n=no
with_schematron=no
with_xinclude=no
with_xptr=no
fi
fi
dnl
dnl Checks for header files.
dnl
AC_CHECK_HEADERS([stdint.h inttypes.h])
AC_CHECK_HEADERS([fcntl.h unistd.h sys/stat.h])
AC_CHECK_HEADERS([sys/mman.h])
AC_CHECK_HEADERS([sys/socket.h netinet/in.h arpa/inet.h netdb.h])
AC_CHECK_HEADERS([sys/select.h poll.h])
AC_CHECK_HEADERS([sys/time.h sys/timeb.h])
AC_CHECK_HEADERS([dl.h dlfcn.h])
AC_CHECK_HEADERS([glob.h])
AM_CONDITIONAL(WITH_GLOB, test "$ac_cv_header_glob_h" = "yes")
dnl
dnl Checking types
dnl
AC_TYPE_UINT32_T
dnl
dnl Checking libraries
dnl
AC_CHECK_FUNCS(snprintf vsnprintf,, NEED_TRIO=1)
dnl Checks for library functions.
AC_CHECK_FUNCS([gettimeofday ftime stat rand_r isascii mmap munmap putenv])
AH_VERBATIM([HAVE_MUNMAP_AFTER],[/* mmap() is no good without munmap() */
#if defined(HAVE_MMAP) && !defined(HAVE_MUNMAP)
# undef /**/ HAVE_MMAP
#endif])
dnl Checking for va_copy availability
AC_MSG_CHECKING([for va_copy])
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>
va_list ap1,ap2;]], [[va_copy(ap1,ap2);]])],
have_va_copy=yes,
have_va_copy=no)
AC_MSG_RESULT($have_va_copy)
if test x"$have_va_copy" = x"yes"; then
AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available])
else
AC_MSG_CHECKING([for __va_copy])
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>
va_list ap1,ap2;]], [[__va_copy(ap1,ap2);]])],
have___va_copy=yes,
have___va_copy=no)
AC_MSG_RESULT($have___va_copy)
if test x"$have___va_copy" = x"yes"; then
AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available])
fi
fi
dnl Checking whether va_list is an array type
AC_MSG_CHECKING([whether va_list is an array type])
AC_TRY_COMPILE2([
#include <stdarg.h>
void a(va_list * ap) {}],[
va_list ap1, ap2; a(&ap1); ap2 = (va_list) ap1],[
AC_MSG_RESULT(no)],[
AC_MSG_RESULT(yes)
AC_DEFINE([VA_LIST_IS_ARRAY], [1],[Define if va_list is an array type])])
dnl
dnl Checks for inet libraries
dnl
if test "$with_http" != "no" || test "with_ftp" = "yes"; then
case "$host" in
*-*-mingw*)
dnl AC_SEARCH_LIBS doesn't work because of non-standard calling
dnl conventions on 32-bit Windows.
NET_LIBS="$NET_LIBS -lws2_32"
;;
*)
_libs=$LIBS
AC_SEARCH_LIBS(gethostbyname, [nsl], [
if test "$ac_cv_search_gethostbyname" != "none required"; then
NET_LIBS="$NET_LIBS $ac_cv_search_gethostbyname"
fi], [:], [$NET_LIBS])
AC_SEARCH_LIBS(connect, [bsd socket inet], [
if test "$ac_cv_search_connect" != "none required"; then
NET_LIBS="$NET_LIBS $ac_cv_search_connect"
fi], [:], [$NET_LIBS])
LIBS=$_libs
;;
esac
dnl Determine what socket length (socklen_t) data type is
AC_MSG_CHECKING([for type of socket length (socklen_t)])
AC_TRY_COMPILE2([
#include <stddef.h>
#ifdef _WIN32
#include <ws2tcpip.h>
#else
#include <sys/socket.h>
#endif],[
(void)getsockopt (1, 1, 1, NULL, (socklen_t *)NULL)],[
AC_MSG_RESULT(socklen_t *)
XML_SOCKLEN_T=socklen_t],[
AC_TRY_COMPILE2([
#include <stddef.h>
#include <sys/socket.h>],[
(void)getsockopt (1, 1, 1, NULL, (size_t *)NULL)],[
AC_MSG_RESULT(size_t *)
XML_SOCKLEN_T=size_t],[
AC_TRY_COMPILE2([
#include <stddef.h>
#include <sys/socket.h>],[
(void)getsockopt (1, 1, 1, NULL, (int *)NULL)],[
AC_MSG_RESULT(int *)
XML_SOCKLEN_T=int],[
AC_MSG_WARN(could not determine)
XML_SOCKLEN_T="int"])])])
AC_DEFINE_UNQUOTED(XML_SOCKLEN_T, $XML_SOCKLEN_T, [Determine what socket length (socklen_t) data type is])
dnl
dnl Checking for availability of IPv6
dnl
AC_ARG_ENABLE(ipv6, [ --enable-ipv6[[=yes/no]] enables compilation of IPv6 code [[default=yes]]],, enable_ipv6=yes)
if test "$with_minimum" = "yes"
then
enable_ipv6=no
fi
if test $enable_ipv6 = yes; then
AC_MSG_CHECKING([whether to enable IPv6])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#ifdef _WIN32
#include <winsock2.h>
#else
#include <sys/socket.h>
#ifdef HAVE_NETDB_H
#include <netdb.h>
#endif
#endif
]], [[
struct sockaddr_storage ss;
socket(AF_INET6, SOCK_STREAM, 0);
getaddrinfo(0, 0, 0, 0);
]])], [
AC_DEFINE([SUPPORT_IP6], [], [Support for IPv6])
AC_MSG_RESULT([yes])], [
AC_MSG_RESULT([no])]
)
fi
fi
dnl
dnl Extra flags
dnl
XML_LIBDIR='-L${libdir}'
XML_INCLUDEDIR='-I${includedir}/libxml2'
XML_CFLAGS=""
dnl Checking whether __attribute__((destructor)) is accepted by the compiler
AC_MSG_CHECKING([whether __attribute__((destructor)) is accepted])
AC_TRY_COMPILE2([
void __attribute__((destructor))
f(void) {}], [], [
AC_MSG_RESULT(yes)
AC_DEFINE([HAVE_ATTRIBUTE_DESTRUCTOR], [1],[Define if __attribute__((destructor)) is accepted])
AC_DEFINE([ATTRIBUTE_DESTRUCTOR], [__attribute__((destructor))],[A form that will not confuse apibuild.py])],[
AC_MSG_RESULT(no)])
dnl
dnl Linker version scripts for symbol versioning
dnl
VERSION_SCRIPT_FLAGS=
# lt_cv_prog_gnu_ld is from libtool 2.+
if test "$lt_cv_prog_gnu_ld" = yes; then
case $host in
*-*-cygwin* | *-*-mingw* | *-*-msys* )
;;
*)
dnl lld 16 defaults to --no-undefined-version but the version script
dnl can contain symbols disabled by configuration options.
AX_APPEND_LINK_FLAGS([-Wl,--undefined-version], [VERSION_SCRIPT_FLAGS])
AX_APPEND_FLAG([-Wl,--version-script=], [VERSION_SCRIPT_FLAGS])
;;
esac
else
case $host in
*-*-sunos*) VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,";;
esac
fi
AC_SUBST(VERSION_SCRIPT_FLAGS)
AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -n "$VERSION_SCRIPT_FLAGS"])
dnl
dnl Workaround for native compilers
dnl HP : http://bugs.gnome.org/db/31/3163.html
dnl DEC : Enable NaN/Inf
dnl
if test "${GCC}" != "yes" ; then
case "${host}" in
hppa*-*-hpux* )
AM_CFLAGS="${AM_CFLAGS} -Wp,-H30000"
;;
*-dec-osf* )
AM_CFLAGS="${AM_CFLAGS} -ieee"
;;
alpha*-*-linux* )
AM_CFLAGS="${AM_CFLAGS} -ieee"
;;
esac
else
if test "$with_fexceptions" = "yes"
then
#
# Not activated by default because this inflates the code size
# Used to allow propagation of C++ exceptions through the library
#
AM_CFLAGS="${AM_CFLAGS} -fexceptions"
fi
# warnings we'd like to see
AM_CFLAGS="${AM_CFLAGS} -pedantic -Wall -Wextra -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline"
# warnings we'd like to suppress
AM_CFLAGS="${AM_CFLAGS} -Wno-long-long -Wno-format-extra-args"
case "${host}" in
alpha*-*-linux* )
AM_CFLAGS="${AM_CFLAGS} -mieee"
;;
alpha*-*-osf* )
AM_CFLAGS="${AM_CFLAGS} -mieee"
;;
esac
fi
case ${host} in
*-*-solaris*)
XML_LIBDIR="${XML_LIBDIR} -R${libdir}"
;;
hppa*-hp-mpeix)
NEED_TRIO=1
;;
*-*-cygwin* | *-*-mingw* | *-*-msys* )
# If the host is Windows, and shared libraries are disabled, we
# need to add -DLIBXML_STATIC to AM_CFLAGS in order for linking to
# work properly (without it, xmlexports.h would force the use of
# DLL imports, which obviously aren't present in a static
# library).
if test "x$enable_shared" = "xno"; then
XML_CFLAGS="$XML_CFLAGS -DLIBXML_STATIC"
AM_CFLAGS="$AM_CFLAGS -DLIBXML_STATIC"
fi
;;
esac
dnl
dnl Simple API modules
dnl
if test "$with_tree" = "no" ; then
echo Disabling DOM like tree manipulation APIs
WITH_TREE=0
else
WITH_TREE=1
fi
AC_SUBST(WITH_TREE)
if test "$with_ftp" != "yes" ; then
WITH_FTP=0
else
echo Enabling FTP support
WITH_FTP=1
fi
AC_SUBST(WITH_FTP)
AM_CONDITIONAL(WITH_FTP_SOURCES, test "$WITH_FTP" = "1")
if test "$with_http" = "no" ; then
echo Disabling HTTP support
WITH_HTTP=0
else
WITH_HTTP=1
fi
AC_SUBST(WITH_HTTP)
AM_CONDITIONAL(WITH_HTTP_SOURCES, test "$WITH_HTTP" = "1")
if test "$with_legacy" != "yes" ; then
WITH_LEGACY=0
else
echo Enabling deprecated APIs
WITH_LEGACY=1
fi
AC_SUBST(WITH_LEGACY)
AM_CONDITIONAL(WITH_LEGACY_SOURCES, test "$WITH_LEGACY" = "1")
if test "$with_reader" = "no" ; then
echo Disabling the xmlReader parsing interface
WITH_READER=0
else
WITH_READER=1
fi
AC_SUBST(WITH_READER)
AM_CONDITIONAL(WITH_READER_SOURCES, test "$WITH_READER" = "1")
if test "$with_writer" = "no" ; then
echo Disabling the xmlWriter saving interface
WITH_WRITER=0
else
WITH_WRITER=1
fi
AC_SUBST(WITH_WRITER)
AM_CONDITIONAL(WITH_WRITER_SOURCES, test "$WITH_WRITER" = "1")
if test "$with_pattern" = "no" ; then
echo Disabling the xmlPattern parsing interface
WITH_PATTERN=0
else
WITH_PATTERN=1
fi
AC_SUBST(WITH_PATTERN)
AM_CONDITIONAL(WITH_PATTERN_SOURCES, test "$WITH_PATTERN" = "1")
if test "$with_sax1" = "no" ; then
echo Disabling the older SAX1 interface
WITH_SAX1=0
else
WITH_SAX1=1
fi
AC_SUBST(WITH_SAX1)
AM_CONDITIONAL(WITH_SAX1_SOURCES, test "$WITH_SAX1" = "1")
if test "$with_push" = "no" ; then
echo Disabling the PUSH parser interfaces
WITH_PUSH=0
else
WITH_PUSH=1
fi
AC_SUBST(WITH_PUSH)
if test "$with_html" = "no" ; then
echo Disabling HTML support
WITH_HTML=0
else
WITH_HTML=1
fi
AC_SUBST(WITH_HTML)
AM_CONDITIONAL(WITH_HTML_SOURCES, test "$WITH_HTML" = "1")
if test "$with_valid" = "no" ; then
echo Disabling DTD validation support
WITH_VALID=0
else
WITH_VALID=1
fi
AC_SUBST(WITH_VALID)
AM_CONDITIONAL(WITH_VALID_SOURCES, test "$WITH_VALID" = "1")
if test "$with_catalog" = "no" ; then
echo Disabling Catalog support
WITH_CATALOG=0
else
WITH_CATALOG=1
fi
AC_SUBST(WITH_CATALOG)
AM_CONDITIONAL(WITH_CATALOG_SOURCES, test "$WITH_CATALOG" = "1")
if test "$with_xptr" = "no" ; then
echo Disabling XPointer support
WITH_XPTR=0
WITH_XPTR_LOCS=0
else
WITH_XPTR=1
fi
AC_SUBST(WITH_XPTR)
AM_CONDITIONAL(WITH_XPTR_SOURCES, test "$WITH_XPTR" = "1")
if test "$with_xptr_locs" != "yes" ; then
WITH_XPTR_LOCS=0
else
echo Enabling Xpointer locations support
WITH_XPTR_LOCS=1
fi
AC_SUBST(WITH_XPTR_LOCS)
if test "$with_c14n" = "no" ; then
echo Disabling C14N support
WITH_C14N=0
else
WITH_C14N=1
fi
AC_SUBST(WITH_C14N)
AM_CONDITIONAL(WITH_C14N_SOURCES, test "$WITH_C14N" = "1")
if test "$with_xinclude" = "no" ; then
echo Disabling XInclude support
WITH_XINCLUDE=0
else
WITH_XINCLUDE=1
fi
AC_SUBST(WITH_XINCLUDE)
AM_CONDITIONAL(WITH_XINCLUDE_SOURCES, test "$WITH_XINCLUDE" = "1")
if test "$with_schematron" = "no" ; then
echo "Disabling Schematron support"
WITH_SCHEMATRON=0
else
WITH_SCHEMATRON=1
fi
AC_SUBST(WITH_SCHEMATRON)
AM_CONDITIONAL(WITH_SCHEMATRON_SOURCES, test "$WITH_SCHEMATRON" = "1")
if test "$with_xpath" = "no" ; then
echo Disabling XPATH support
WITH_XPATH=0
else
WITH_XPATH=1
fi
AC_SUBST(WITH_XPATH)
AM_CONDITIONAL(WITH_XPATH_SOURCES, test "$WITH_XPATH" = "1")
if test "$with_output" = "no" ; then
echo Disabling serialization/saving support
WITH_OUTPUT=0
else
WITH_OUTPUT=1
fi
AC_SUBST(WITH_OUTPUT)
AM_CONDITIONAL(WITH_OUTPUT_SOURCES, test "$WITH_OUTPUT" = "1")
if test "$WITH_ICONV" != "1" && test "$with_iso8859x" = "no" ; then
echo Disabling ISO8859X support
WITH_ISO8859X=0
else
WITH_ISO8859X=1
fi
AC_SUBST(WITH_ISO8859X)
if test "$with_schemas" = "no" ; then
echo "Disabling Schemas/Relax-NG support"
WITH_SCHEMAS=0
else
WITH_SCHEMAS=1
fi
AC_SUBST(WITH_SCHEMAS)
AM_CONDITIONAL(WITH_SCHEMAS_SOURCES, test "$WITH_SCHEMAS" = "1")
if test "$with_regexps" = "no" ; then
echo Disabling Regexps support
WITH_REGEXPS=0
else
WITH_REGEXPS=1
fi
AC_SUBST(WITH_REGEXPS)
AM_CONDITIONAL(WITH_REGEXPS_SOURCES, test "$WITH_REGEXPS" = "1")
if test "$with_debug" = "no" ; then
echo Disabling DEBUG support
WITH_DEBUG=0
else
WITH_DEBUG=1
fi
AC_SUBST(WITH_DEBUG)
AM_CONDITIONAL(WITH_DEBUG_SOURCES, test "$WITH_DEBUG" = "1")
if test "$with_mem_debug" = "yes" ; then
if test "$with_thread_alloc" = "yes" ; then
echo Disabling memory debug - cannot use mem-debug with thread-alloc!
WITH_MEM_DEBUG=0
else
echo Enabling memory debug support
WITH_MEM_DEBUG=1
fi
else
WITH_MEM_DEBUG=0
fi
AC_SUBST(WITH_MEM_DEBUG)
dnl
dnl Check for Python
dnl
AS_IF([test "x$with_python" != "xno"], [
AM_PATH_PYTHON
PKG_CHECK_MODULES([PYTHON], [python-${PYTHON_VERSION}])
])
AM_CONDITIONAL([WITH_PYTHON], [test "x$with_python" != "xno"])
dnl
dnl Extra Python flags for Windows
dnl
PYTHON_LDFLAGS=
if test "${PYTHON}" != ""; then
case "$host" in
*-*-cygwin* | *-*-mingw* | *-*-msys* )
PYTHON_LDFLAGS="-no-undefined -shrext .pyd"
;;
esac
fi
AC_SUBST(PYTHON_LDFLAGS)
dnl
dnl Check for DSO support
dnl
WITH_MODULES=0
if test "$with_modules" != "no" ; then
case "$host" in
*-*-cygwin* | *-*-msys* )
MODULE_EXTENSION=".dll"
;;
*-*-mingw*)
MODULE_EXTENSION=".dll"
WITH_MODULES=1
;;
*-*-hpux*)
MODULE_EXTENSION=".sl"
;;
*)
MODULE_EXTENSION=".so"
;;
esac
if test "$WITH_MODULES" = "0"; then
_libs=$LIBS
AC_SEARCH_LIBS([dlopen], [dl], [
WITH_MODULES=1
if test "$ac_cv_search_dlopen" != "none required"; then
MODULE_PLATFORM_LIBS=$ac_cv_search_dlopen
fi
AC_DEFINE([HAVE_DLOPEN], [], [Have dlopen based dso])], [
AC_SEARCH_LIBS([shl_load], [dld], [
WITH_MODULES=1
if test "$ac_cv_search_shl_load" != "none required"; then
MODULE_PLATFORM_LIBS=$ac_cv_search_shl_load
fi
AC_DEFINE([HAVE_SHLLOAD], [], [Have shl_load based dso])])])
LIBS=$_libs
fi
fi
AC_SUBST(WITH_MODULES)
AC_SUBST(MODULE_PLATFORM_LIBS)
AC_SUBST(MODULE_EXTENSION)
AM_CONDITIONAL(WITH_MODULES_SOURCES, test "$WITH_MODULES" = "1")
dnl
dnl Check for trio string functions
dnl
if test "${NEED_TRIO}" = "1" ; then
echo Adding trio library for string functions
WITH_TRIO=1
else
WITH_TRIO=0
fi
AM_CONDITIONAL(WITH_TRIO_SOURCES, test "${NEED_TRIO}" = "1")
AC_SUBST(WITH_TRIO)
dnl
dnl Thread-related stuff
dnl
THREAD_LIBS=""
BASE_THREAD_LIBS=""
WITH_THREADS=0
THREAD_CFLAGS=""
WITH_THREAD_ALLOC=0
if test "$with_threads" = "no" ; then
echo Disabling multithreaded support
else
case $host_os in
*mingw*)
dnl Default to native threads on Windows
WITH_THREADS="1"
;;
*)
dnl Use pthread by default in other cases
_libs=$LIBS
AC_CHECK_HEADERS(pthread.h,
AC_SEARCH_LIBS([pthread_join], [pthread], [
WITH_THREADS="1"
if test "$ac_cv_search_pthread_join" != "none required"; then
THREAD_LIBS=$ac_cv_search_pthread_join
fi
AC_DEFINE([HAVE_PTHREAD_H], [],
[Define if <pthread.h> is there])]))
LIBS=$_libs
;;
esac
case $host_os in
*linux*)
if test "${GCC}" = "yes" ; then
BASE_THREAD_LIBS="$THREAD_LIBS"
THREAD_LIBS=""
fi
;;
esac
if test "$WITH_THREADS" = "1" ; then
THREAD_CFLAGS="$THREAD_CFLAGS -D_REENTRANT"
fi
fi
if test "$with_thread_alloc" = "yes" && test "$WITH_THREADS" = "1" ; then
WITH_THREAD_ALLOC=1
fi
AC_SUBST(THREAD_LIBS)
AC_SUBST(BASE_THREAD_LIBS)
AC_SUBST(WITH_THREADS)
AC_SUBST(THREAD_CFLAGS)
AC_SUBST(WITH_THREAD_ALLOC)
dnl
dnl xmllint shell history
dnl
if test "$with_history" = "yes" && test "$with_readline" != "no"; then
echo Enabling xmllint shell history
dnl check for terminal library. this is a very cool solution
dnl from octave's configure.in
unset tcap
for termlib in ncurses curses termcap terminfo termlib; do
AC_CHECK_LIB(${termlib}, tputs, [tcap="-l$termlib"])
test -n "$tcap" && break
done
_cppflags=$CPPFLAGS
_libs=$LIBS
if test "$with_readline" != "" && test "$with_readline" != "yes"; then
RDL_DIR=$with_readline
CPPFLAGS="${CPPFLAGS} -I$RDL_DIR/include"
LIBS="${LIBS} -L$RDL_DIR/lib"
fi
AC_CHECK_HEADER(readline/history.h,
AC_CHECK_LIB(history, append_history,[
RDL_LIBS="-lhistory"
if test "x${RDL_DIR}" != "x"; then
RDL_CFLAGS="-I$RDL_DIR/include"
RDL_LIBS="-L$RDL_DIR/lib $RDL_LIBS"
fi
AC_DEFINE([HAVE_LIBHISTORY], [], [Define if history library is there (-lhistory)])]))
AC_CHECK_HEADER(readline/readline.h,
AC_CHECK_LIB(readline, readline,[
RDL_LIBS="-lreadline $RDL_LIBS $tcap"
if test "x$RDL_DIR" != "x"; then
RDL_CFLAGS="-I$RDL_DIR/include"
RDL_LIBS="-L$RDL_DIR/lib $RDL_LIBS"
fi
AC_DEFINE([HAVE_LIBREADLINE], [], [Define if readline library is there (-lreadline)])], , $tcap))
CPPFLAGS=$_cppflags
LIBS=$_libs
fi
AC_SUBST(RDL_CFLAGS)
AC_SUBST(RDL_LIBS)
dnl
dnl Checks for zlib library.
dnl
WITH_ZLIB=0
if test "$with_zlib" = "no"; then
echo "Disabling zlib compression support"
else
if test "$with_zlib" != "yes"; then
Z_DIR=$with_zlib
fi
# Don't run pkg-config if with_zlib contains a path.
if test "x$Z_DIR" = "x"; then
# Try pkg-config first so that static linking works.
PKG_CHECK_MODULES([Z],[zlib],
[WITH_ZLIB=1],
[:])
fi
if test "$WITH_ZLIB" = "0"; then
_cppflags=$CPPFLAGS
_libs=$LIBS
if test "x$Z_DIR" != "x"; then
CPPFLAGS="${CPPFLAGS} -I$Z_DIR/include"
LIBS="${LIBS} -L$Z_DIR/lib"
fi
AC_CHECK_HEADERS(zlib.h,
AC_CHECK_LIB(z, gzread,[
WITH_ZLIB=1
if test "x${Z_DIR}" != "x"; then
Z_CFLAGS="-I${Z_DIR}/include"
Z_LIBS="-L${Z_DIR}/lib -lz"
[case ${host} in
*-*-solaris*)
Z_LIBS="-L${Z_DIR}/lib -R${Z_DIR}/lib -lz"
;;
esac]
else
Z_LIBS="-lz"
fi])
)
CPPFLAGS=$_cppflags
LIBS=$_libs
fi
fi
AC_SUBST(WITH_ZLIB)
dnl
dnl Checks for lzma library.
dnl
WITH_LZMA=0
if test "$with_lzma" = "no"; then
echo "Disabling lzma compression support"
else
if test "$with_lzma" != "yes"; then
LZMA_DIR=$with_lzma
fi
# Don't run pkg-config if with_lzma contains a path.
if test "x$LZMA_DIR" = "x"; then
# Try pkg-config first so that static linking works.
PKG_CHECK_MODULES([LZMA],[liblzma],
[WITH_LZMA=1],
[:])
fi
# If pkg-config failed, fall back to AC_CHECK_LIB. This
# will not pick up the necessary LIBS flags for liblzma's
# private dependencies, though, so static linking may fail.
if test "$WITH_LZMA" = "0"; then
_cppflags=$CPPFLAGS
_libs=$LIBS
if test "x$LZMA_DIR" != "x"; then
CPPFLAGS="${CPPFLAGS} -I$LZMA_DIR/include"
LIBS="${LIBS} -L$LZMA_DIR/lib"
fi
AC_CHECK_HEADERS(lzma.h,
AC_CHECK_LIB(lzma, lzma_code,[
WITH_LZMA=1
if test "x${LZMA_DIR}" != "x"; then
LZMA_CFLAGS="-I${LZMA_DIR}/include"
LZMA_LIBS="-L${LZMA_DIR}/lib -llzma"
else
LZMA_LIBS="-llzma"
fi])
)
CPPFLAGS=$_cppflags
LIBS=$_libs
fi
fi
AC_SUBST(WITH_LZMA)
AM_CONDITIONAL(WITH_LZMA_SOURCES, test "$WITH_LZMA" = "1")
dnl
dnl Checks for iconv library.
dnl
WITH_ICONV=0
if test "$with_iconv" = "no" ; then
echo Disabling ICONV support
else
_cppflags=$CPPFLAGS
_libs=$LIBS
if test "$with_iconv" != "yes" && test "$with_iconv" != "" ; then
ICONV_DIR=$with_iconv
CPPFLAGS="$CPPFLAGS -I$ICONV_DIR/include"
LIBS="$LIBS -L$ICONV_DIR/lib"
fi
AC_MSG_CHECKING([for libiconv])
AC_LINK_IFELSE([
AC_LANG_PROGRAM([#include <iconv.h>], [iconv_open(0,0);])
], [
WITH_ICONV=1
AC_MSG_RESULT([none required])
], [
LIBS="$LIBS -liconv"
AC_LINK_IFELSE([
AC_LANG_PROGRAM([#include <iconv.h>], [iconv_open(0,0);])
], [
WITH_ICONV=1
ICONV_LIBS="-liconv"
AC_MSG_RESULT([yes])
], [
AC_MSG_RESULT([no])
])
])
if test "$WITH_ICONV" = "1" && test "$ICONV_DIR" != ""; then
ICONV_CFLAGS="-I$ICONV_DIR/include"
ICONV_LIBS="-L$ICONV_DIR/lib $ICONV_LIBS"
# Export this since our headers include iconv.h
XML_INCLUDEDIR="$XML_INCLUDEDIR -I$ICONV_DIR/include"
fi
CPPFLAGS=$_cppflags
LIBS=$_libs
fi
AC_SUBST(WITH_ICONV)
AC_SUBST(ICONV_CFLAGS)
dnl
dnl Checks for ICU library.
dnl
WITH_ICU=0
ICU_LIBS=""
if test "$with_icu" != "yes" ; then
echo Disabling ICU support
else
# Try pkg-config first so that static linking works.
# If this succeeeds, we ignore the WITH_ICU directory.
PKG_CHECK_MODULES([ICU], [icu-i18n], [
WITH_ICU=1
m4_ifdef([PKG_CHECK_VAR],
[PKG_CHECK_VAR([ICU_DEFS], [icu-i18n], [DEFS])])
if test "x$ICU_DEFS" != "x"; then
ICU_CFLAGS="$ICU_CFLAGS $ICU_DEFS"
fi],[:])
if test "$WITH_ICU" = "0"; then
ICU_CONFIG=icu-config
if ${ICU_CONFIG} --cflags >/dev/null 2>&1
then
WITH_ICU=1
ICU_CFLAGS=`${ICU_CONFIG} --cflags`
ICU_LIBS=`${ICU_CONFIG} --ldflags`
else
_cppflags="${CPPFLAGS}"
_libs="${LIBS}"
if test "$with_icu" != "yes" && test "$with_icu" != "" ; then
ICU_DIR=$with_icu
CPPFLAGS="${CPPFLAGS} -I$ICU_DIR/include"
LIBS="${LIBS} -L$ICU_DIR/lib"
fi
AC_CHECK_HEADER(unicode/ucnv.h, [
AC_CHECK_LIB([icucore], [ucnv_open], [
WITH_ICU=1
ICU_LIBS=-licucore
if test "$ICU_DIR" != ""; then
ICU_CFLAGS="-I$ICU_DIR/include"
ICU_LIBS="-L$ICU_DIR/lib $ICU_LIBS"
fi])])
CPPFLAGS=$_cppflags
LIBS=$_libs
fi
fi
fi
AC_SUBST(WITH_ICU)
if test "$with_coverage" = "yes" && test "${GCC}" = "yes"
then
echo Enabling code coverage for GCC
AM_CFLAGS="$AM_CFLAGS -fprofile-arcs -ftest-coverage"
AM_LDFLAGS="$AM_LDFLAGS -fprofile-arcs -ftest-coverage"
else
echo Disabling code coverage for GCC
fi
XML_LIBS="-lxml2"
XML_LIBTOOLLIBS="libxml2.la"
XML_PRIVATE_LIBS="$Z_LIBS $LZMA_LIBS $THREAD_LIBS $ICONV_LIBS $ICU_LIBS $LIBM $NET_LIBS"
XML_PRIVATE_CFLAGS="$Z_CFLAGS $LZMA_CFLAGS $THREAD_CFLAGS $ICONV_CFLAGS $ICU_CFLAGS"
AC_SUBST(AM_CFLAGS)
AC_SUBST(AM_LDFLAGS)
AC_SUBST(XML_CFLAGS)
AC_SUBST(XML_LIBDIR)
AC_SUBST(XML_LIBS)
AC_SUBST(XML_PRIVATE_LIBS)
AC_SUBST(XML_PRIVATE_CFLAGS)
AC_SUBST(XML_LIBTOOLLIBS)
AC_SUBST(XML_INCLUDEDIR)
dnl for the spec file
RELDATE=`date +'%a %b %e %Y'`
AC_SUBST(RELDATE)
# keep on one line for cygwin c.f. #130896
AC_CONFIG_FILES([Makefile include/Makefile include/libxml/Makefile include/private/Makefile doc/Makefile doc/examples/Makefile doc/devhelp/Makefile example/Makefile fuzz/Makefile python/Makefile python/tests/Makefile xstc/Makefile include/libxml/xmlversion.h libxml-2.0.pc libxml-2.0-uninstalled.pc libxml2-config.cmake])
AC_CONFIG_FILES([python/setup.py], [chmod +x python/setup.py])
AC_CONFIG_FILES([xml2-config], [chmod +x xml2-config])
AC_OUTPUT
AC_COMPILE_IFELSE([AC_LANG_SOURCE([_Thread_local int v;])], [], [
echo "================================================================"
echo "WARNING: Your C compiler doesn't support C11."
echo "Future versions of libxml2 will probably require a C11 compiler,"
echo "at least for features like multi-threading."
echo "================================================================"
])