mirror of
https://github.com/darlinghq/darling-libxml2.git
synced 2024-11-23 04:09:42 +00:00
1803 lines
48 KiB
Plaintext
1803 lines
48 KiB
Plaintext
dnl Process this file with autoconf to produce a configure script.
|
|
AC_PREREQ([2.63])
|
|
AC_INIT
|
|
AC_CONFIG_SRCDIR([entities.c])
|
|
AC_CONFIG_HEADERS([config.h])
|
|
AM_MAINTAINER_MODE([enable])
|
|
AC_CONFIG_MACRO_DIR([m4])
|
|
AC_CANONICAL_HOST
|
|
|
|
LIBXML_MAJOR_VERSION=2
|
|
LIBXML_MINOR_VERSION=9
|
|
LIBXML_MICRO_VERSION=4
|
|
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 -f CVS/Entries ; then
|
|
extra=`grep ChangeLog CVS/Entries | grep -v LIBXML | sed -e s\%/ChangeLog/1\.%% -e s\%/.*$%%`
|
|
echo extra=$extra
|
|
if test "$extra" != ""
|
|
then
|
|
LIBXML_VERSION_EXTRA="-CVS$extra"
|
|
fi
|
|
else if test -d .svn ; then
|
|
extra=`svn info | grep Revision | sed 's+Revision: ++'`
|
|
echo extra=$extra
|
|
if test "$extra" != ""
|
|
then
|
|
LIBXML_VERSION_EXTRA="-SVN$extra"
|
|
fi
|
|
else 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
|
|
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(libxml2, $VERSION)
|
|
|
|
# Support silent build rules, requires at least automake-1.11. Disable
|
|
# by either passing --disable-silent-rules to configure or passing V=1
|
|
# to make
|
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_CC
|
|
AC_PROG_INSTALL
|
|
AC_PROG_LN_S
|
|
AC_PROG_MKDIR_P
|
|
AC_PROG_CPP
|
|
AC_PATH_PROG(MV, mv, /bin/mv)
|
|
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(XMLLINT, xmllint, /usr/bin/xmllint)
|
|
AC_PATH_PROG(XSLTPROC, xsltproc, /usr/bin/xsltproc)
|
|
PKG_PROG_PKG_CONFIG
|
|
|
|
LT_INIT
|
|
|
|
dnl #ifdef __APPLE__
|
|
dnl Disable -Wl,-undefined -Wl,dynamic_lookup when using libtool to link.
|
|
case $host_os in
|
|
darwin*)
|
|
allow_undefined_flag=
|
|
;;
|
|
esac
|
|
dnl #endif // defined(__APPLE__)
|
|
|
|
dnl
|
|
dnl if the system support linker version scripts for symbol versioning
|
|
dnl then add it
|
|
dnl
|
|
VERSION_SCRIPT_FLAGS=
|
|
# lt_cv_prog_gnu_ld is from libtool 2.+
|
|
if test "$lt_cv_prog_gnu_ld" = yes; then
|
|
VERSION_SCRIPT_FLAGS=-Wl,--version-script=
|
|
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 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
|
|
|
|
dnl
|
|
dnl zlib option might change flags, so we save them initially
|
|
dnl
|
|
_cppflags="${CPPFLAGS}"
|
|
_libs="${LIBS}"
|
|
|
|
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(docbook,
|
|
[ --with-docbook add Docbook SGML support (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 (on)])
|
|
AC_ARG_WITH(history,
|
|
[ --with-history add history support to xmllint shell(off)])
|
|
AC_ARG_WITH(html,
|
|
[ --with-html add the HTML support (on)])
|
|
dnl Specific dir for HTML output ?
|
|
AC_ARG_WITH(html-dir, AS_HELP_STRING([--with-html-dir=path],
|
|
[path to base html directory, default $datadir/doc/html]),
|
|
[HTML_DIR=$withval], [HTML_DIR='$(datadir)/doc'])
|
|
|
|
AC_ARG_WITH(html-subdir, AS_HELP_STRING([--with-html-subdir=path],
|
|
[directory used under html-dir, default $PACKAGE-$VERSION/html]),
|
|
[test "x$withval" != "x" && HTML_DIR="$HTML_DIR/$withval"],
|
|
[HTML_DIR="$HTML_DIR/\$(PACKAGE)-\$(VERSION)/html"])
|
|
AC_SUBST(HTML_DIR)
|
|
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 (on)])
|
|
AC_ARG_WITH(fuzzers,
|
|
[ --with-fuzzers[[=LIB]] build libxml2 fuzzers (optionally using libFuzzer.a or AFL) (on)])
|
|
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[[=DIR]] build Python bindings if found])
|
|
AC_ARG_WITH(python_install_dir,
|
|
[ --with-python-install-dir=DIR
|
|
install Python bindings in DIR])
|
|
AC_ARG_WITH(reader,
|
|
[ --with-reader add the xmlReader parsing interface (on)])
|
|
AC_ARG_WITH(readline,
|
|
[ --with-readline=DIR use readline in DIR],[
|
|
if test "$withval" != "no" -a "$withval" != "yes"; then
|
|
RDL_DIR=$withval
|
|
CPPFLAGS="${CPPFLAGS} -I$withval/include"
|
|
LDFLAGS="${LDFLAGS} -L$withval/lib"
|
|
fi
|
|
])
|
|
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(modules,
|
|
[ --with-modules add the dynamic modules support (on)])
|
|
AC_ARG_WITH(zlib,
|
|
[ --with-zlib[[=DIR]] use libz in DIR],[
|
|
if test "$withval" != "no" -a "$withval" != "yes"; then
|
|
Z_DIR=$withval
|
|
CPPFLAGS="${CPPFLAGS} -I$withval/include"
|
|
LDFLAGS="${LDFLAGS} -L$withval/lib"
|
|
fi
|
|
])
|
|
AC_ARG_WITH(lzma,
|
|
[ --with-lzma[[=DIR]] use liblzma in DIR],[
|
|
if test "$withval" != "no" -a "$withval" != "yes"; then
|
|
LZMA_DIR=$withval
|
|
CPPFLAGS="${CPPFLAGS} -I$withval/include"
|
|
LDFLAGS="${LDFLAGS} -L$withval/lib"
|
|
fi
|
|
])
|
|
AC_ARG_WITH(coverage,
|
|
[ --with-coverage build for code coverage with GCC (off)])
|
|
|
|
AC_ARG_ENABLE(rebuild-docs,
|
|
[ --enable-rebuild-docs[[=yes/no]] rebuild some generated docs [[default=no]]])
|
|
if test "$enable_rebuild_docs" = "yes" -a "$srcdir" != "."; then
|
|
AC_MSG_ERROR([cannot rebuild docs when builddir != srcdir])
|
|
fi
|
|
AM_CONDITIONAL([REBUILD_DOCS], [test "$enable_rebuild_docs" = "yes" -o "$USER" = "veillard"])
|
|
|
|
dnl
|
|
dnl hard dependancies on options
|
|
dnl
|
|
if test "$with_schemas" = "yes"
|
|
then
|
|
with_pattern=yes
|
|
with_regexps=yes
|
|
fi
|
|
if test "$with_schematron" = "yes"
|
|
then
|
|
with_pattern=yes
|
|
with_tree=yes
|
|
with_xpath=yes
|
|
fi
|
|
if test "$with_reader" = "yes"
|
|
then
|
|
with_push=yes
|
|
fi
|
|
if test "$with_xptr" = "yes"
|
|
then
|
|
with_xpath=yes
|
|
fi
|
|
dnl
|
|
dnl option to build a minimal libxml2 library
|
|
dnl
|
|
if test "$with_minimum" = "yes"
|
|
then
|
|
echo "Configuring for a minimal library"
|
|
if test "$with_c14n" = ""
|
|
then
|
|
with_c14n=no
|
|
fi
|
|
if test "$with_catalog" = ""
|
|
then
|
|
with_catalog=no
|
|
fi
|
|
echo So far so good!
|
|
if test "$with_debug" = ""
|
|
then
|
|
with_debug=no
|
|
fi
|
|
if test "$with_docbook" = ""
|
|
then
|
|
with_docbook=no
|
|
fi
|
|
if test "$with_fexceptions" = ""
|
|
then
|
|
with_fexceptions=no
|
|
fi
|
|
if test "$with_ftp" = ""
|
|
then
|
|
with_ftp=no
|
|
fi
|
|
if test "$with_history" = ""
|
|
then
|
|
with_history=no
|
|
fi
|
|
if test "$with_html" = ""
|
|
then
|
|
with_html=no
|
|
fi
|
|
if test "$with_http" = ""
|
|
then
|
|
with_http=no
|
|
fi
|
|
if test "$with_iconv" = ""
|
|
then
|
|
with_iconv=no
|
|
fi
|
|
if test "$with_iso8859x" = ""
|
|
then
|
|
with_iso8859x=no
|
|
fi
|
|
if test "$with_legacy" = ""
|
|
then
|
|
with_legacy=no
|
|
fi
|
|
if test "$with_fuzzers" = ""
|
|
then
|
|
with_fuzzers=yes
|
|
fi
|
|
if test "$with_mem_debug" = ""
|
|
then
|
|
with_mem_debug=no
|
|
fi
|
|
if test "$with_output" = ""
|
|
then
|
|
with_output=no
|
|
fi
|
|
if test "$with_pattern" = ""
|
|
then
|
|
with_pattern=no
|
|
fi
|
|
if test "$with_push" = ""
|
|
then
|
|
with_push=no
|
|
fi
|
|
if test "$with_python" = ""
|
|
then
|
|
with_python=no
|
|
fi
|
|
if test "$with_reader" = ""
|
|
then
|
|
with_reader=no
|
|
fi
|
|
if test "$with_readline" = ""
|
|
then
|
|
with_readline=no
|
|
fi
|
|
if test "$with_regexps" = ""
|
|
then
|
|
with_regexps=no
|
|
fi
|
|
if test "$with_run_debug" = ""
|
|
then
|
|
with_run_debug=no
|
|
fi
|
|
if test "$with_sax1" = ""
|
|
then
|
|
with_sax1=no
|
|
fi
|
|
if test "$with_schemas" = ""
|
|
then
|
|
with_schemas=no
|
|
fi
|
|
if test "$with_schematron" = ""
|
|
then
|
|
with_schematron=no
|
|
fi
|
|
if test "$with_threads" = ""
|
|
then
|
|
with_threads=no
|
|
fi
|
|
if test "$with_thread_alloc" = ""
|
|
then
|
|
with_thread_alloc=no
|
|
fi
|
|
if test "$with_tree" = ""
|
|
then
|
|
with_tree=no
|
|
fi
|
|
if test "$with_valid" = ""
|
|
then
|
|
with_valid=no
|
|
fi
|
|
if test "$with_writer" = ""
|
|
then
|
|
with_writer=no
|
|
fi
|
|
if test "$with_xinclude" = ""
|
|
then
|
|
with_xinclude=no
|
|
fi
|
|
if test "$with_xpath" = ""
|
|
then
|
|
with_xpath=no
|
|
fi
|
|
if test "$with_xptr" = ""
|
|
then
|
|
with_xptr=no
|
|
fi
|
|
if test "$with_zlib" = ""
|
|
then
|
|
with_zlib=no
|
|
fi
|
|
if test "$with_modules" = ""
|
|
then
|
|
with_modules=no
|
|
fi
|
|
fi
|
|
|
|
echo Checking zlib
|
|
|
|
dnl Checks for zlib library.
|
|
|
|
WITH_ZLIB=0
|
|
if test "$with_zlib" = "no"; then
|
|
echo "Disabling compression support"
|
|
else
|
|
# Try pkg-config first so that static linking works.
|
|
# If this succeeeds, we ignore the WITH_ZLIB directory.
|
|
PKG_CHECK_MODULES([Z],[zlib],
|
|
[have_libz=yes],
|
|
[have_libz=no])
|
|
|
|
if test "x$have_libz" = "xno"; then
|
|
AC_CHECK_HEADERS(zlib.h,
|
|
AC_CHECK_LIB(z, gzread,[
|
|
have_libz=yes
|
|
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],
|
|
[have_libz=no])
|
|
)
|
|
else
|
|
# we still need to check for zlib.h header
|
|
AC_CHECK_HEADERS([zlib.h])
|
|
fi
|
|
|
|
# Found the library via either method?
|
|
if test "x$have_libz" = "xyes"; then
|
|
AC_DEFINE([HAVE_LIBZ], [1], [Have compression library])
|
|
WITH_ZLIB=1
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(Z_CFLAGS)
|
|
AC_SUBST(Z_LIBS)
|
|
AC_SUBST(WITH_ZLIB)
|
|
|
|
echo Checking lzma
|
|
|
|
dnl Checks for lzma library.
|
|
|
|
WITH_LZMA=0
|
|
if test "$with_lzma" = "no"; then
|
|
echo "Disabling compression support"
|
|
else
|
|
# Try pkg-config first so that static linking works.
|
|
# If this succeeeds, we ignore the WITH_LZMA directory.
|
|
PKG_CHECK_MODULES([LZMA],[liblzma],
|
|
[have_liblzma=yes],
|
|
[have_liblzma=no])
|
|
|
|
# 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 "x$have_liblzma" = "xno"; then
|
|
AC_CHECK_HEADERS(lzma.h,
|
|
AC_CHECK_LIB(lzma, lzma_code,[
|
|
have_liblzma=yes
|
|
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],
|
|
[have_liblzma=no])
|
|
)
|
|
else
|
|
# we still need to check for lzma,h header
|
|
AC_CHECK_HEADERS([lzma.h])
|
|
fi
|
|
|
|
# Found the library via either method?
|
|
if test "x$have_liblzma" = "xyes"; then
|
|
AC_DEFINE([HAVE_LIBLZMA], [1], [Have compression library])
|
|
WITH_LZMA=1
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(LZMA_CFLAGS)
|
|
AC_SUBST(LZMA_LIBS)
|
|
AC_SUBST(WITH_LZMA)
|
|
|
|
CPPFLAGS=${_cppflags}
|
|
LIBS=${_libs}
|
|
|
|
echo Checking headers
|
|
|
|
dnl Checks for header files.
|
|
AC_HEADER_DIRENT
|
|
AC_HEADER_STDC
|
|
AC_CHECK_HEADERS([fcntl.h])
|
|
AC_CHECK_HEADERS([unistd.h])
|
|
AC_CHECK_HEADERS([ctype.h])
|
|
AC_CHECK_HEADERS([dirent.h])
|
|
AC_CHECK_HEADERS([errno.h])
|
|
AC_CHECK_HEADERS([malloc.h])
|
|
AC_CHECK_HEADERS([stdarg.h])
|
|
AC_CHECK_HEADERS([sys/stat.h])
|
|
AC_CHECK_HEADERS([sys/types.h])
|
|
AC_CHECK_HEADERS([stdint.h])
|
|
AC_CHECK_HEADERS([inttypes.h])
|
|
AC_CHECK_HEADERS([time.h])
|
|
AC_CHECK_HEADERS([ansidecl.h])
|
|
AC_CHECK_HEADERS([ieeefp.h])
|
|
AC_CHECK_HEADERS([nan.h])
|
|
AC_CHECK_HEADERS([math.h])
|
|
AC_CHECK_HEADERS([limits.h])
|
|
AC_CHECK_HEADERS([fp_class.h])
|
|
AC_CHECK_HEADERS([float.h])
|
|
AC_CHECK_HEADERS([stdlib.h])
|
|
AC_CHECK_HEADERS([sys/socket.h], [], [],
|
|
[#if HAVE_SYS_TYPES_H
|
|
# include <sys/types.h>
|
|
# endif
|
|
])
|
|
AC_CHECK_HEADERS([netinet/in.h], [], [],
|
|
[#if HAVE_SYS_TYPES_H
|
|
# include <sys/types.h>
|
|
# endif
|
|
])
|
|
AC_CHECK_HEADERS([arpa/inet.h], [], [],
|
|
[#if HAVE_SYS_TYPES_H
|
|
# include <sys/types.h>
|
|
# endif
|
|
#if HAVE_ARPA_INET_H
|
|
# include <arpa/inet.h>
|
|
# endif
|
|
])
|
|
AC_CHECK_HEADERS([netdb.h])
|
|
AC_CHECK_HEADERS([sys/time.h])
|
|
AC_CHECK_HEADERS([sys/select.h])
|
|
AC_CHECK_HEADERS([poll.h])
|
|
AC_CHECK_HEADERS([sys/mman.h])
|
|
AC_CHECK_HEADERS([sys/timeb.h])
|
|
AC_CHECK_HEADERS([signal.h])
|
|
AC_CHECK_HEADERS([arpa/nameser.h], [], [],
|
|
[#if HAVE_SYS_TYPES_H
|
|
# include <sys/types.h>
|
|
# endif
|
|
])
|
|
AC_CHECK_HEADERS([resolv.h], [], [],
|
|
[#if HAVE_SYS_TYPES_H
|
|
# include <sys/types.h>
|
|
# endif
|
|
#if HAVE_NETINET_IN_H
|
|
# include <netinet/in.h>
|
|
# endif
|
|
#if HAVE_ARPA_NAMESER_H
|
|
# include <arpa/nameser.h>
|
|
# endif
|
|
])
|
|
AC_CHECK_HEADERS([dl.h])
|
|
AC_CHECK_HEADERS([dlfcn.h])
|
|
|
|
|
|
echo Checking types
|
|
|
|
AC_TYPE_UINT32_T
|
|
|
|
|
|
echo Checking libraries
|
|
|
|
dnl Checks for library functions.
|
|
AC_FUNC_STRFTIME
|
|
AC_CHECK_FUNCS(strdup strndup strerror)
|
|
AC_CHECK_FUNCS(finite isnand fp_class class fpclass)
|
|
AC_CHECK_FUNCS(strftime localtime gettimeofday ftime)
|
|
AC_CHECK_FUNCS(stat _stat signal)
|
|
AC_CHECK_FUNCS(rand rand_r srand time)
|
|
AC_CHECK_FUNCS(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 Checks for inet libraries:
|
|
AC_SEARCH_LIBS(gethostent, [nsl])
|
|
AC_SEARCH_LIBS(setsockopt, [socket net network])
|
|
AC_SEARCH_LIBS(connect, [inet])
|
|
|
|
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>
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>],[
|
|
(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/types.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/types.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 Checking if gethostbyname() argument is const.
|
|
AC_MSG_CHECKING([for const gethostbyname() argument])
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netdb.h>]],
|
|
[[(void)gethostbyname((const char *)"");]])],
|
|
have_gethostbyname_const_arg=yes,
|
|
have_gethostbyname_const_arg=no)
|
|
AC_MSG_RESULT($have_gethostbyname_const_arg)
|
|
if test x"$have_gethostbyname_const_arg" = x"yes"; then
|
|
AC_DEFINE([GETHOSTBYNAME_ARG_CAST], [],
|
|
[Type cast for the gethostbyname() argument])
|
|
else
|
|
AC_DEFINE([GETHOSTBYNAME_ARG_CAST], [(char *)],
|
|
[Type cast for the gethostbyname() argument])
|
|
fi
|
|
|
|
dnl Checking if send() second argument is const.
|
|
AC_MSG_CHECKING([for const send() second argument])
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
|
|
#include <sys/socket.h>]],
|
|
[[(void)send(1,(const char *)"",1,1);]])],
|
|
have_send_const_arg2=yes,
|
|
have_send_const_arg2=no)
|
|
AC_MSG_RESULT($have_send_const_arg2)
|
|
if test x"$have_send_const_arg2" = x"yes"; then
|
|
AC_DEFINE([SEND_ARG2_CAST], [],
|
|
[Type cast for the send() function 2nd arg])
|
|
else
|
|
AC_DEFINE([SEND_ARG2_CAST], [(char *)],
|
|
[Type cast for the send() function 2nd arg])
|
|
fi
|
|
|
|
dnl ***********************Checking for availability of IPv6*******************
|
|
|
|
AC_MSG_CHECKING([whether to enable IPv6])
|
|
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
|
|
have_ipv6=no
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
# include <sys/types.h>
|
|
# include <sys/socket.h>
|
|
]], [[
|
|
struct sockaddr_storage ss;
|
|
socket(AF_INET6, SOCK_STREAM, 0)
|
|
]])],
|
|
have_ipv6=yes,
|
|
have_ipv6=no
|
|
)
|
|
AC_MSG_RESULT($have_ipv6)
|
|
|
|
if test $have_ipv6 = yes; then
|
|
AC_DEFINE([SUPPORT_IP6], [], [Support for IPv6])
|
|
have_broken_ss_family=no
|
|
|
|
dnl *********************************************************************
|
|
dnl on some platforms (like AIX 5L), the structure sockaddr doesn't have
|
|
dnl a ss_family member, but rather __ss_family. Let's detect that
|
|
dnl and define the HAVE_BROKEN_SS_FAMILY when we are on one of these
|
|
dnl platforms. However, we should only do this if ss_family is not
|
|
dnl present.
|
|
dnl ********************************************************************
|
|
AC_MSG_CHECKING([struct sockaddr::ss_family])
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
# include <sys/types.h>
|
|
# include <sys/socket.h>
|
|
]], [[
|
|
struct sockaddr_storage ss ;
|
|
ss.ss_family = 0 ;
|
|
]])],
|
|
have_ss_family=yes,
|
|
have_ss_family=no
|
|
)
|
|
AC_MSG_RESULT($have_ss_family)
|
|
if test x$have_ss_family = xno ; then
|
|
AC_MSG_CHECKING([broken struct sockaddr::ss_family])
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
# include <sys/types.h>
|
|
# include <sys/socket.h>
|
|
]], [[
|
|
struct sockaddr_storage ss ;
|
|
ss.__ss_family = 0 ;
|
|
]])],
|
|
have_broken_ss_family=yes,
|
|
have_broken_ss_family=no
|
|
)
|
|
AC_MSG_RESULT($have_broken_ss_family)
|
|
if test x$have_broken_ss_family = xyes ; then
|
|
AC_DEFINE(HAVE_BROKEN_SS_FAMILY, [],
|
|
[Whether struct sockaddr::__ss_family exists])
|
|
AC_DEFINE(ss_family, __ss_family,
|
|
[ss_family is not defined here, use __ss_family instead])
|
|
else
|
|
AC_MSG_WARN(ss_family and __ss_family not found)
|
|
fi
|
|
fi
|
|
|
|
have_getaddrinfo=no
|
|
AC_CHECK_FUNC(getaddrinfo, have_getaddrinfo=yes)
|
|
if test $have_getaddrinfo != yes; then
|
|
for lib in bsd socket inet; do
|
|
AC_CHECK_LIB($lib, getaddrinfo, [LIBS="$LIBS -l$lib";have_getaddrinfo=yes;break])
|
|
done
|
|
fi
|
|
|
|
if test $have_getaddrinfo = yes; then
|
|
AC_DEFINE([HAVE_GETADDRINFO], [], [Define if getaddrinfo is there])
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
dnl ******************************End IPv6 checks******************************
|
|
|
|
dnl Checks for isnan in libm if not in libc
|
|
AC_CHECK_FUNC(isnan, AC_DEFINE([HAVE_ISNAN],[], [Define if isnan is there]) , AC_CHECK_LIB(m, isnan,
|
|
[AC_DEFINE([HAVE_ISNAN],[], [Define if isnan is there])]))
|
|
|
|
AC_CHECK_FUNC(isinf, AC_DEFINE([HAVE_ISINF], [], [Define if isinf is there]) , AC_CHECK_LIB(m, isinf,
|
|
[AC_DEFINE([HAVE_ISINF], [], [Define if isinf is there])]))
|
|
|
|
XML_LIBDIR='-L${libdir}'
|
|
XML_INCLUDEDIR='-I${includedir}/libxml2'
|
|
|
|
dnl
|
|
dnl Extra flags
|
|
dnl
|
|
XML_CFLAGS=""
|
|
RDL_LIBS=""
|
|
|
|
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* )
|
|
CFLAGS="${CFLAGS} -Wp,-H30000"
|
|
;;
|
|
*-dec-osf* )
|
|
CFLAGS="${CFLAGS} -ieee"
|
|
;;
|
|
alpha*-*-linux* )
|
|
CFLAGS="${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
|
|
#
|
|
CFLAGS="${CFLAGS} -fexceptions"
|
|
fi
|
|
|
|
# warnings we'd like to see
|
|
CFLAGS="${CFLAGS} -pedantic -W -Wformat -Wno-format-extra-args -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls"
|
|
# warnings we'd like to supress
|
|
CFLAGS="${CFLAGS} -Wno-long-long"
|
|
case "${host}" in
|
|
alpha*-*-linux* )
|
|
CFLAGS="${CFLAGS} -mieee"
|
|
;;
|
|
alpha*-*-osf* )
|
|
CFLAGS="${CFLAGS} -mieee"
|
|
;;
|
|
esac
|
|
fi
|
|
case ${host} in
|
|
*-*-solaris*)
|
|
XML_LIBDIR="${XML_LIBDIR} -R${libdir}"
|
|
;;
|
|
hppa*-hp-mpeix)
|
|
NEED_TRIO=1
|
|
;;
|
|
*-*-mingw* | *-*-cygwin* | *-*-msvc* )
|
|
# If the host is Windows, and shared libraries are disabled, we
|
|
# need to add -DLIBXML_STATIC to 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"
|
|
CFLAGS="$CFLAGS -DLIBXML_STATIC"
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
|
|
dnl
|
|
dnl Check for libFuzzer.a
|
|
dnl
|
|
|
|
AC_PROG_CXX
|
|
AC_LANG_SAVE
|
|
AC_LANG_CPLUSPLUS
|
|
dnl If not found, download these macros to a local ./m4/ directory:
|
|
dnl https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html
|
|
dnl https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html
|
|
AX_CXX_COMPILE_STDCXX_11([noext], [mandatory])
|
|
|
|
if test "$with_fuzzers" = ""
|
|
then
|
|
with_fuzzers=yes
|
|
fi
|
|
|
|
if test "$with_fuzzers" != "no" -a "$with_fuzzers" != "yes"
|
|
then
|
|
AC_MSG_CHECKING(for fuzzing library)
|
|
_libs="${LIBS}"
|
|
LIBS="${LIBS} ${with_fuzzers}"
|
|
AC_TRY_LINK([
|
|
#include <stddef.h>
|
|
#if defined(HAVE_STDINT_H)
|
|
#include <stdint.h>
|
|
#elif defined(HAVE_INTTYPES_H)
|
|
#include <inttypes.h>
|
|
#elif defined(WIN32)
|
|
typedef unsigned char uint8_t;
|
|
#endif
|
|
int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size);],[
|
|
return 0; } /* main */
|
|
int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {],[
|
|
AC_MSG_RESULT(yes)
|
|
LIBS="${_libs}"],[
|
|
with_fuzzers=no
|
|
AC_MSG_RESULT(no)
|
|
LIBS="${_libs}"])
|
|
|
|
fi
|
|
|
|
AC_LANG_RESTORE
|
|
|
|
if test "$with_fuzzers" = "yes"
|
|
then
|
|
FUZZ_SUBDIR=fuzz
|
|
LIB_FUZZING_ENGINE=
|
|
elif test "$with_fuzzers" != "no"
|
|
then
|
|
FUZZ_SUBDIR=fuzz
|
|
LIB_FUZZING_ENGINE="${with_fuzzers}"
|
|
else
|
|
FUZZ_SUBDIR=
|
|
LIB_FUZZING_ENGINE=
|
|
fi
|
|
AC_SUBST(FUZZ_SUBDIR)
|
|
AC_SUBST(LIB_FUZZING_ENGINE)
|
|
AM_CONDITIONAL(USE_STANDALONE_FUZZING_ENGINE, test "$with_fuzzers" = "yes")
|
|
|
|
|
|
dnl
|
|
dnl check for python
|
|
dnl
|
|
|
|
PYTHON_VERSION=
|
|
PYTHON_INCLUDES=
|
|
PYTHON_SITE_PACKAGES=
|
|
PYTHON_TESTS=
|
|
pythondir=
|
|
if test "$with_python" != "no" ; then
|
|
if test -x "$with_python/bin/python"
|
|
then
|
|
echo Found python in $with_python/bin/python
|
|
PYTHON="$with_python/bin/python"
|
|
else
|
|
if test -x "$with_python/python.exe"
|
|
then
|
|
echo Found python in $with_python/python.exe
|
|
PYTHON="$with_python/python.exe"
|
|
else
|
|
if test -x "$with_python"
|
|
then
|
|
echo Found python in $with_python
|
|
PYTHON="$with_python"
|
|
else
|
|
if test -x "$PYTHON"
|
|
then
|
|
echo Found python in environment PYTHON=$PYTHON
|
|
with_python=`$PYTHON -c "import sys; print(sys.exec_prefix)"`
|
|
else
|
|
AC_PATH_PROG(PYTHON, python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5)
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
if test "$PYTHON" != ""
|
|
then
|
|
PYTHON_VERSION=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_version())"`
|
|
PYTHON_INCLUDES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_inc())"`
|
|
# does not work as it produce a /usr/lib/python path instead of/usr/lib64/python
|
|
#
|
|
# PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_lib())"`
|
|
echo Found Python version $PYTHON_VERSION
|
|
fi
|
|
if test "$PYTHON_VERSION" != "" -a "$PYTHON_INCLUDES" = ""
|
|
then
|
|
if test -r $with_python/include/python$PYTHON_VERSION/Python.h
|
|
then
|
|
PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION
|
|
else
|
|
if test -r $prefix/include/python$PYTHON_VERSION/Python.h
|
|
then
|
|
PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
|
|
else
|
|
if test -r /usr/include/python$PYTHON_VERSION/Python.h
|
|
then
|
|
PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
|
|
else
|
|
if test -r $with_python/include/Python.h
|
|
then
|
|
PYTHON_INCLUDES=$with_python/include
|
|
else
|
|
echo could not find python$PYTHON_VERSION/Python.h or $with_python/include/Python.h
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
if test "$with_python_install_dir" != ""
|
|
then
|
|
PYTHON_SITE_PACKAGES="$with_python_install_dir"
|
|
fi
|
|
if test "$PYTHON_VERSION" != "" -a "$PYTHON_SITE_PACKAGES" = ""
|
|
then
|
|
if test -d $libdir/python$PYTHON_VERSION/site-packages
|
|
then
|
|
PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
|
|
else
|
|
if test -d $with_python/lib/site-packages
|
|
then
|
|
PYTHON_SITE_PACKAGES=$with_python/lib/site-packages
|
|
else
|
|
PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_lib())"`
|
|
fi
|
|
fi
|
|
fi
|
|
pythondir='$(PYTHON_SITE_PACKAGES)'
|
|
PYTHON_LIBS=`python$PYTHON_VERSION-config --ldflags`
|
|
else
|
|
PYTHON=
|
|
fi
|
|
AM_CONDITIONAL(WITH_PYTHON, test "$PYTHON_INCLUDES" != "")
|
|
if test "$PYTHON_INCLUDES" != ""
|
|
then
|
|
PYTHON_SUBDIR=python
|
|
else
|
|
PYTHON_SUBDIR=
|
|
fi
|
|
AC_SUBST(pythondir)
|
|
AC_SUBST(PYTHON_SUBDIR)
|
|
AC_SUBST(PYTHON_LIBS)
|
|
|
|
dnl check for dso support
|
|
WITH_MODULES=0
|
|
TEST_MODULES=
|
|
|
|
if test "$with_modules" != "no" ; then
|
|
case "$host" in
|
|
*-*-cygwin*)
|
|
MODULE_EXTENSION=".dll"
|
|
AC_CHECK_LIB(cygwin, dlopen, [
|
|
WITH_MODULES=1
|
|
MODULE_PLATFORM_LIBS=
|
|
AC_DEFINE([HAVE_DLOPEN], [], [Have dlopen based dso])
|
|
])
|
|
;;
|
|
*-*-mingw*)
|
|
MODULE_EXTENSION=".dll"
|
|
WITH_MODULES=1
|
|
;;
|
|
*)
|
|
AC_CHECK_FUNC(shl_load, libxml_have_shl_load=yes, [
|
|
AC_CHECK_LIB(dld, shl_load, [
|
|
MODULE_PLATFORM_LIBS="-ldld"
|
|
libxml_have_shl_load=yes], [
|
|
AC_CHECK_FUNC(dlopen, libxml_have_dlopen=yes, [
|
|
AC_CHECK_LIB(dl, dlopen, [
|
|
MODULE_PLATFORM_LIBS="-ldl"
|
|
libxml_have_dlopen=yes])])])])
|
|
|
|
if test "${libxml_have_shl_load}" = "yes"; then
|
|
MODULE_EXTENSION=".sl"
|
|
WITH_MODULES=1
|
|
AC_DEFINE([HAVE_SHLLOAD], [], [Have shl_load based dso])
|
|
fi
|
|
|
|
if test "${libxml_have_dlopen}" = "yes"; then
|
|
case "${host}" in
|
|
*-*-hpux* )
|
|
MODULE_EXTENSION=".sl"
|
|
;;
|
|
* )
|
|
MODULE_EXTENSION=".so"
|
|
;;
|
|
esac
|
|
|
|
WITH_MODULES=1
|
|
AC_DEFINE([HAVE_DLOPEN], [], [Have dlopen based dso])
|
|
fi
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
if test "${WITH_MODULES}" = "1"; then
|
|
TEST_MODULES="ModuleTests"
|
|
fi
|
|
|
|
AC_SUBST(WITH_MODULES)
|
|
AC_SUBST(MODULE_PLATFORM_LIBS)
|
|
AC_SUBST(MODULE_EXTENSION)
|
|
AC_SUBST(TEST_MODULES)
|
|
|
|
dnl
|
|
dnl Tester makes use of readline if present
|
|
dnl
|
|
|
|
dnl
|
|
dnl specific tests to setup DV and Bill's devel environments with debug etc ...
|
|
dnl (-Wunreachable-code)
|
|
dnl
|
|
if [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XML" ]] || \
|
|
[[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/home/veillard/libxml2" ]] || \
|
|
[[ "${LOGNAME}" = "bill" -a "`pwd`" = "/home/bill/gnomesvn/libxml2" ]]
|
|
then
|
|
if test "$with_minimum" != "yes"
|
|
then
|
|
if test "${with_mem_debug}" = "" ; then
|
|
echo Activating memory debugging
|
|
with_mem_debug="yes"
|
|
with_run_debug="yes"
|
|
fi
|
|
if test "${with_docbook}" = "" ; then
|
|
with_docbook="yes"
|
|
fi
|
|
fi
|
|
if test "${GCC}" = "yes" ; then
|
|
CFLAGS="-g -O -pedantic -W -Wformat -Wno-format-extra-args -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall"
|
|
fi
|
|
STATIC_BINARIES="-static"
|
|
dnl -Wcast-qual -ansi
|
|
else
|
|
STATIC_BINARIES=
|
|
fi
|
|
AC_SUBST(STATIC_BINARIES)
|
|
|
|
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 Allow to enable/disable various pieces
|
|
dnl
|
|
echo Checking configuration requirements
|
|
|
|
dnl
|
|
dnl Thread-related stuff
|
|
dnl
|
|
THREAD_LIBS=""
|
|
BASE_THREAD_LIBS=""
|
|
WITH_THREADS=0
|
|
THREAD_CFLAGS=""
|
|
TEST_THREADS=""
|
|
THREADS_W32=""
|
|
WITH_THREAD_ALLOC=0
|
|
|
|
if test "$with_threads" = "no" ; then
|
|
echo Disabling multithreaded support
|
|
else
|
|
echo Enabling multithreaded support
|
|
|
|
dnl Default to native threads on Win32
|
|
case $host_os in
|
|
*mingw32*) if test "$with_threads" != "pthread" && test "$with_threads" != "no"; then
|
|
WITH_THREADS="1"
|
|
THREADS_W32="1"
|
|
THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_WIN32_THREADS"
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
dnl Use pthread by default in other cases
|
|
if test -z "$THREADS_W32"; then
|
|
if test "$with_threads" = "pthread" || test "$with_threads" = "" || test "$with_threads" = "yes" ; then
|
|
AC_CHECK_HEADER(pthread.h,
|
|
AC_CHECK_LIB(pthread, pthread_join,[
|
|
THREAD_LIBS="-lpthread"
|
|
AC_DEFINE([HAVE_LIBPTHREAD], [], [Define if pthread library is there (-lpthread)])
|
|
AC_DEFINE([HAVE_PTHREAD_H], [], [Define if <pthread.h> is there])
|
|
WITH_THREADS="1"]))
|
|
fi
|
|
fi
|
|
|
|
case $host_os in
|
|
*cygwin*) THREAD_LIBS=""
|
|
;;
|
|
*beos*) WITH_THREADS="1"
|
|
THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_BEOS_THREADS"
|
|
;;
|
|
*linux*)
|
|
if test "${GCC}" = "yes" ; then
|
|
GCC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
|
|
GCC_MAJOR=`echo ${GCC_VERSION} | sed 's+\..*++'`
|
|
GCC_MEDIUM=`echo ${GCC_VERSION} | sed 's+[[0-9]]*\.++' | sed 's+\..*++'`
|
|
if test "${THREAD_LIBS}" = "-lpthread" ; then
|
|
if expr ${GCC_MEDIUM} \> 2 \& ${GCC_MAJOR} = 3 > /dev/null
|
|
then
|
|
THREAD_LIBS=""
|
|
BASE_THREAD_LIBS="-lpthread"
|
|
else
|
|
if expr ${GCC_MAJOR} \> 3 > /dev/null
|
|
then
|
|
THREAD_LIBS=""
|
|
BASE_THREAD_LIBS="-lpthread"
|
|
else
|
|
echo old GCC disabling weak symbols for pthread
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
;;
|
|
esac
|
|
if test "$WITH_THREADS" = "1" ; then
|
|
THREAD_CFLAGS="$THREAD_CFLAGS -D_REENTRANT"
|
|
TEST_THREADS="Threadtests"
|
|
fi
|
|
fi
|
|
if test "$with_thread_alloc" = "yes" -a "$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(TEST_THREADS)
|
|
AC_SUBST(WITH_THREAD_ALLOC)
|
|
AM_CONDITIONAL([THREADS_W32],[test -n "$THREADS_W32"])
|
|
|
|
dnl
|
|
dnl xmllint shell history
|
|
dnl
|
|
if test "$with_history" = "yes" ; 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
|
|
|
|
AC_CHECK_HEADER(readline/history.h,
|
|
AC_CHECK_LIB(history, append_history,[
|
|
RDL_LIBS="-lhistory"
|
|
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"
|
|
AC_DEFINE([HAVE_LIBREADLINE], [], [Define if readline library is there (-lreadline)])], , $tcap))
|
|
if test -n "$RDL_DIR" -a -n "$RDL_LIBS"; then
|
|
CPPFLAGS="$CPPFLAGS -I${RDL_DIR}/include"
|
|
RDL_LIBS="-L${RDL_DIR}/lib $RDL_LIBS"
|
|
fi
|
|
fi
|
|
|
|
dnl
|
|
dnl Tree functions
|
|
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" = "no" ; then
|
|
echo Disabling FTP support
|
|
WITH_FTP=0
|
|
FTP_OBJ=
|
|
else
|
|
WITH_FTP=1
|
|
FTP_OBJ=nanoftp.o
|
|
fi
|
|
AC_SUBST(WITH_FTP)
|
|
AC_SUBST(FTP_OBJ)
|
|
|
|
if test "$with_http" = "no" ; then
|
|
echo Disabling HTTP support
|
|
WITH_HTTP=0
|
|
HTTP_OBJ=
|
|
else
|
|
WITH_HTTP=1
|
|
HTTP_OBJ=nanohttp.o
|
|
fi
|
|
AC_SUBST(WITH_HTTP)
|
|
AC_SUBST(HTTP_OBJ)
|
|
|
|
if test "$with_legacy" = "no" ; then
|
|
echo Disabling deprecated APIs
|
|
WITH_LEGACY=0
|
|
else
|
|
WITH_LEGACY=1
|
|
fi
|
|
AC_SUBST(WITH_LEGACY)
|
|
|
|
if test "$with_reader" = "no" ; then
|
|
echo Disabling the xmlReader parsing interface
|
|
WITH_READER=0
|
|
READER_TEST=
|
|
else
|
|
WITH_READER=1
|
|
READER_TEST=Readertests
|
|
if test "$with_push" = "no" ; then
|
|
echo xmlReader requires Push interface - enabling it
|
|
with_push=yes
|
|
fi
|
|
fi
|
|
AC_SUBST(WITH_READER)
|
|
AC_SUBST(READER_TEST)
|
|
|
|
if test "$with_writer" = "no" ; then
|
|
echo Disabling the xmlWriter saving interface
|
|
WITH_WRITER=0
|
|
# WRITER_TEST=
|
|
else
|
|
WITH_WRITER=1
|
|
# WRITER_TEST=Writertests
|
|
if test "$with_push" = "no" ; then
|
|
echo xmlWriter requires Push interface - enabling it
|
|
with_push=yes
|
|
fi
|
|
if test "$with_output" = "no" ; then
|
|
echo xmlWriter requires Output interface - enabling it
|
|
with_output=yes
|
|
fi
|
|
fi
|
|
AC_SUBST(WITH_WRITER)
|
|
#AC_SUBST(WRITER_TEST)
|
|
|
|
if test "$with_pattern" = "no" ; then
|
|
echo Disabling the xmlPattern parsing interface
|
|
WITH_PATTERN=0
|
|
TEST_PATTERN=
|
|
else
|
|
WITH_PATTERN=1
|
|
TEST_PATTERN=Patterntests
|
|
fi
|
|
AC_SUBST(WITH_PATTERN)
|
|
AC_SUBST(TEST_PATTERN)
|
|
|
|
if test "$with_sax1" = "no" ; then
|
|
echo Disabling the older SAX1 interface
|
|
WITH_SAX1=0
|
|
TEST_SAX=
|
|
else
|
|
WITH_SAX1=1
|
|
TEST_SAX=SAXtests
|
|
fi
|
|
AC_SUBST(WITH_SAX1)
|
|
AM_CONDITIONAL(WITH_SAX1_SOURCES, test "${WITH_TRIO}" = "1")
|
|
AC_SUBST(TEST_SAX)
|
|
|
|
if test "$with_push" = "no" ; then
|
|
echo Disabling the PUSH parser interfaces
|
|
WITH_PUSH=0
|
|
TEST_PUSH=
|
|
else
|
|
WITH_PUSH=1
|
|
TEST_PUSH="XMLPushtests"
|
|
fi
|
|
AC_SUBST(WITH_PUSH)
|
|
AC_SUBST(TEST_PUSH)
|
|
|
|
if test "$with_html" = "no" ; then
|
|
echo Disabling HTML support
|
|
WITH_HTML=0
|
|
HTML_OBJ=
|
|
TEST_HTML=
|
|
else
|
|
WITH_HTML=1
|
|
HTML_OBJ="HTMLparser.o HTMLtree.o"
|
|
TEST_HTML="HTMLtests HTMLRecovertests"
|
|
if test "$with_push" != "no" ; then
|
|
TEST_PHTML=HTMLPushtests
|
|
else
|
|
TEST_PHTML=
|
|
fi
|
|
fi
|
|
AC_SUBST(WITH_HTML)
|
|
AC_SUBST(HTML_OBJ)
|
|
AC_SUBST(TEST_HTML)
|
|
AC_SUBST(TEST_PHTML)
|
|
|
|
if test "$with_valid" = "no" ; then
|
|
echo Disabling DTD validation support
|
|
WITH_VALID=0
|
|
TEST_VALID=
|
|
TEST_VTIME=
|
|
else
|
|
WITH_VALID=1
|
|
TEST_VALID=Validtests
|
|
TEST_VTIME=VTimingtests
|
|
fi
|
|
AC_SUBST(WITH_VALID)
|
|
AC_SUBST(TEST_VALID)
|
|
AC_SUBST(TEST_VTIME)
|
|
|
|
if test "$with_catalog" = "no" ; then
|
|
echo Disabling Catalog support
|
|
WITH_CATALOG=0
|
|
CATALOG_OBJ=
|
|
TEST_CATALOG=
|
|
else
|
|
WITH_CATALOG=1
|
|
CATALOG_OBJ="catalog.o"
|
|
TEST_CATALOG=Catatests
|
|
fi
|
|
AC_SUBST(WITH_CATALOG)
|
|
AC_SUBST(CATALOG_OBJ)
|
|
AC_SUBST(TEST_CATALOG)
|
|
|
|
if test "$with_docbook" = "no" ; then
|
|
echo Disabling Docbook support
|
|
WITH_DOCB=0
|
|
DOCB_OBJ=
|
|
else
|
|
WITH_DOCB=1
|
|
DOCB_OBJ="DOCBparser.o"
|
|
fi
|
|
AC_SUBST(WITH_DOCB)
|
|
AC_SUBST(DOCB_OBJ)
|
|
|
|
|
|
if test "$with_xptr" = "no" ; then
|
|
echo Disabling XPointer support
|
|
WITH_XPTR=0
|
|
XPTR_OBJ=
|
|
TEST_XPTR=
|
|
else
|
|
WITH_XPTR=1
|
|
XPTR_OBJ=xpointer.o
|
|
TEST_XPTR=XPtrtests
|
|
if test "$with_xpath" = "no" ; then
|
|
echo XPointer requires XPath support - enabling it
|
|
with_xpath=yes
|
|
fi
|
|
fi
|
|
AC_SUBST(WITH_XPTR)
|
|
AC_SUBST(XPTR_OBJ)
|
|
AC_SUBST(TEST_XPTR)
|
|
|
|
if test "$with_c14n" = "no" ; then
|
|
echo Disabling C14N support
|
|
WITH_C14N=0
|
|
C14N_OBJ=
|
|
TEST_C14N=
|
|
else
|
|
WITH_C14N=1
|
|
C14N_OBJ="c14n.c"
|
|
TEST_C14N=C14Ntests
|
|
if test "$with_xpath" = "no" ; then
|
|
echo C14N requires XPath support - enabling it
|
|
with_xpath=yes
|
|
fi
|
|
fi
|
|
AC_SUBST(WITH_C14N)
|
|
AC_SUBST(C14N_OBJ)
|
|
AC_SUBST(TEST_C14N)
|
|
|
|
if test "$with_xinclude" = "no" ; then
|
|
echo Disabling XInclude support
|
|
WITH_XINCLUDE=0
|
|
XINCLUDE_OBJ=
|
|
with_xinclude="no"
|
|
TEST_XINCLUDE=
|
|
else
|
|
WITH_XINCLUDE=1
|
|
XINCLUDE_OBJ=xinclude.o
|
|
TEST_XINCLUDE=XIncludetests
|
|
if test "$with_xpath" = "no" ; then
|
|
echo XInclude requires XPath support - enabling it
|
|
with_xpath=yes
|
|
fi
|
|
fi
|
|
AC_SUBST(WITH_XINCLUDE)
|
|
AC_SUBST(XINCLUDE_OBJ)
|
|
AC_SUBST(TEST_XINCLUDE)
|
|
|
|
if test "$with_xptr" = "" -a "$with_xpath" = "no" ; then
|
|
with_xptr=no
|
|
fi
|
|
|
|
if test "$with_schematron" = "" -a "$with_xpath" = "no" ; then
|
|
with_schematron=no
|
|
fi
|
|
|
|
if test "$with_schematron" = "no" ; then
|
|
echo "Disabling Schematron support"
|
|
WITH_SCHEMATRON=0
|
|
TEST_SCHEMATRON=
|
|
else
|
|
echo "Enabled Schematron support"
|
|
WITH_SCHEMATRON=1
|
|
TEST_SCHEMATRON="Schematrontests"
|
|
with_xpath=yes
|
|
with_pattern=yes
|
|
with_schematron=yes
|
|
fi
|
|
AC_SUBST(WITH_SCHEMATRON)
|
|
AC_SUBST(TEST_SCHEMATRON)
|
|
|
|
if test "$with_xpath" = "no" ; then
|
|
echo Disabling XPATH support
|
|
WITH_XPATH=0
|
|
XPATH_OBJ=
|
|
TEST_XPATH=
|
|
else
|
|
WITH_XPATH=1
|
|
XPATH_OBJ=xpath.o
|
|
TEST_XPATH=XPathtests
|
|
fi
|
|
AC_SUBST(WITH_XPATH)
|
|
AC_SUBST(XPATH_OBJ)
|
|
AC_SUBST(TEST_XPATH)
|
|
|
|
dnl
|
|
dnl output functions
|
|
dnl
|
|
if test "$with_output" = "no" ; then
|
|
echo Disabling serialization/saving support
|
|
WITH_OUTPUT=0
|
|
else
|
|
WITH_OUTPUT=1
|
|
fi
|
|
AC_SUBST(WITH_OUTPUT)
|
|
|
|
WITH_ICONV=0
|
|
if test "$with_iconv" = "no" ; then
|
|
echo Disabling ICONV support
|
|
else
|
|
if test "$with_iconv" != "yes" -a "$with_iconv" != "" ; then
|
|
CPPFLAGS="${CPPFLAGS} -I$with_iconv/include"
|
|
# Export this since our headers include iconv.h
|
|
XML_INCLUDEDIR="${XML_INCLUDEDIR} -I$with_iconv/include"
|
|
ICONV_LIBS="-L$with_iconv/lib"
|
|
fi
|
|
|
|
AC_CHECK_HEADER(iconv.h,
|
|
AC_MSG_CHECKING(for iconv)
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
|
|
#include <iconv.h>]],[[
|
|
iconv_t cd = iconv_open ("","");
|
|
iconv (cd, NULL, NULL, NULL, NULL);]])],[
|
|
AC_MSG_RESULT(yes)
|
|
WITH_ICONV=1],[
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_CHECKING(for iconv in -liconv)
|
|
|
|
_ldflags="${LDFLAGS}"
|
|
_libs="${LIBS}"
|
|
LDFLAGS="${LDFLAGS} ${ICONV_LIBS}"
|
|
LIBS="${LIBS} -liconv"
|
|
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
|
|
#include <iconv.h>]],[[
|
|
iconv_t cd = iconv_open ("","");
|
|
iconv (cd, NULL, NULL, NULL, NULL);]])],[
|
|
AC_MSG_RESULT(yes)
|
|
WITH_ICONV=1
|
|
ICONV_LIBS="${ICONV_LIBS} -liconv"
|
|
LIBS="${_libs}"
|
|
LDFLAGS="${_ldflags}"],[
|
|
AC_MSG_RESULT(no)
|
|
LIBS="${_libs}"
|
|
LDFLAGS="${_ldflags}"])]))
|
|
|
|
if test "$WITH_ICONV" = "1" ; then
|
|
AC_MSG_CHECKING([for iconv declaration])
|
|
AC_CACHE_VAL(xml_cv_iconv_arg2, [
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
|
|
#include <iconv.h>
|
|
extern
|
|
#ifdef __cplusplus
|
|
"C"
|
|
#endif
|
|
#if defined(__STDC__) || defined(__cplusplus)
|
|
size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
|
|
#else
|
|
size_t iconv();
|
|
#endif
|
|
]], [])], xml_cv_iconv_arg2="", xml_cv_iconv_arg2="const")])
|
|
|
|
xml_cv_iconv_decl="extern size_t iconv (iconv_t cd, $xml_cv_iconv_arg2 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"
|
|
AC_MSG_RESULT([${xml_xxx:-
|
|
}$xml_cv_iconv_decl])
|
|
AC_DEFINE_UNQUOTED(ICONV_CONST, $xml_cv_iconv_arg2,
|
|
[Define as const if the declaration of iconv() needs const.])
|
|
fi
|
|
fi
|
|
case "$host" in
|
|
*mingw*) M_LIBS=""
|
|
;;
|
|
*beos*) M_LIBS=""
|
|
;;
|
|
*haiku*) M_LIBS=""
|
|
;;
|
|
*) M_LIBS="-lm"
|
|
;;
|
|
esac
|
|
AC_SUBST(WITH_ICONV)
|
|
|
|
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],
|
|
[have_libicu=yes],
|
|
[have_libicu=no])
|
|
|
|
# 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 "x$have_libicu" = "xno"; then
|
|
ICU_CONFIG=icu-config
|
|
if ${ICU_CONFIG} --cflags >/dev/null 2>&1
|
|
then
|
|
ICU_LIBS=`${ICU_CONFIG} --ldflags`
|
|
have_libicu=yes
|
|
echo Enabling ICU support
|
|
else
|
|
if test "$with_icu" != "yes" -a "$with_iconv" != "" ; then
|
|
CPPFLAGS="${CPPFLAGS} -I$with_icu"
|
|
# Export this since our headers include icu.h
|
|
XML_INCLUDEDIR="${XML_INCLUDEDIR} -I$with_icu"
|
|
fi
|
|
|
|
AC_CHECK_HEADER(unicode/ucnv.h,
|
|
AC_MSG_CHECKING(for icu)
|
|
AC_TRY_LINK([#include <unicode/ucnv.h>],[
|
|
UConverter *utf = ucnv_open("UTF-8", NULL);],[
|
|
AC_MSG_RESULT(yes)
|
|
have_libicu=yes],[
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_CHECKING(for icu in -licucore)
|
|
|
|
_ldflags="${LDFLAGS}"
|
|
_libs="${LIBS}"
|
|
LDFLAGS="${LDFLAGS} ${ICU_LIBS}"
|
|
LIBS="${LIBS} -licucore"
|
|
|
|
AC_TRY_LINK([#include <unicode/ucnv.h>],[
|
|
UConverter *utf = ucnv_open("UTF-8", NULL);],[
|
|
AC_MSG_RESULT(yes)
|
|
have_libicu=yes
|
|
ICU_LIBS="${ICU_LIBS} -licucore"
|
|
LIBS="${_libs}"
|
|
LDFLAGS="${_ldflags}"],[
|
|
AC_MSG_RESULT(no)
|
|
LIBS="${_libs}"
|
|
LDFLAGS="${_ldflags}"])]))
|
|
fi
|
|
fi
|
|
|
|
# Found the library via either method?
|
|
if test "x$have_libicu" = "xyes"; then
|
|
WITH_ICU=1
|
|
fi
|
|
fi
|
|
XML_LIBS="-lxml2 $Z_LIBS $LZMA_LIBS $THREAD_LIBS $ICONV_LIBS $ICU_LIBS $M_LIBS $LIBS"
|
|
XML_LIBTOOLLIBS="libxml2.la"
|
|
AC_SUBST(WITH_ICU)
|
|
|
|
WITH_ISO8859X=1
|
|
if test "$WITH_ICONV" != "1" ; then
|
|
if test "$with_iso8859x" = "no" ; then
|
|
echo Disabling ISO8859X support
|
|
WITH_ISO8859X=0
|
|
fi
|
|
fi
|
|
AC_SUBST(WITH_ISO8859X)
|
|
|
|
if test "$with_schemas" = "no" ; then
|
|
echo "Disabling Schemas/Relax-NG support"
|
|
WITH_SCHEMAS=0
|
|
TEST_SCHEMAS=
|
|
else
|
|
echo "Enabled Schemas/Relax-NG support"
|
|
WITH_SCHEMAS=1
|
|
TEST_SCHEMAS="Schemastests Relaxtests"
|
|
if test "$PYTHON_INCLUDES" != "" ; then
|
|
PYTHON_TESTS="$PYTHON_TESTS RelaxNGPythonTests SchemasPythonTests"
|
|
fi
|
|
with_regexps=yes
|
|
fi
|
|
AC_SUBST(WITH_SCHEMAS)
|
|
AC_SUBST(TEST_SCHEMAS)
|
|
|
|
if test "$with_regexps" = "no" ; then
|
|
echo Disabling Regexps support
|
|
WITH_REGEXPS=0
|
|
TEST_REGEXPS=
|
|
else
|
|
WITH_REGEXPS=1
|
|
TEST_REGEXPS="Regexptests Automatatests"
|
|
fi
|
|
AC_SUBST(WITH_REGEXPS)
|
|
AC_SUBST(TEST_REGEXPS)
|
|
|
|
if test "$with_debug" = "no" ; then
|
|
echo Disabling DEBUG support
|
|
WITH_DEBUG=0
|
|
DEBUG_OBJ=
|
|
TEST_DEBUG=
|
|
else
|
|
WITH_DEBUG=1
|
|
DEBUG_OBJ=debugXML.o
|
|
TEST_DEBUG=Scripttests
|
|
fi
|
|
AC_SUBST(WITH_DEBUG)
|
|
AC_SUBST(DEBUG_OBJ)
|
|
AC_SUBST(TEST_DEBUG)
|
|
|
|
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)
|
|
|
|
if test "$with_run_debug" = "yes" ; then
|
|
echo Enabling runtime debug support
|
|
WITH_RUN_DEBUG=1
|
|
else
|
|
WITH_RUN_DEBUG=0
|
|
fi
|
|
AC_SUBST(WITH_RUN_DEBUG)
|
|
|
|
WIN32_EXTRA_LIBADD=
|
|
WIN32_EXTRA_LDFLAGS=
|
|
CYGWIN_EXTRA_LDFLAGS=
|
|
CYGWIN_EXTRA_PYTHON_LIBADD=
|
|
WIN32_EXTRA_PYTHON_LIBADD=
|
|
case "$host" in
|
|
*-*-mingw*)
|
|
CPPFLAGS="$CPPFLAGS -DWIN32"
|
|
WIN32_EXTRA_LIBADD="-lws2_32"
|
|
WIN32_EXTRA_LDFLAGS="-no-undefined"
|
|
AC_DEFINE([_WINSOCKAPI_],1,[Using the Win32 Socket implementation])
|
|
if test "${PYTHON}" != ""
|
|
then
|
|
WIN32_EXTRA_PYTHON_LIBADD="-L${pythondir}/../../libs -lpython$(echo ${PYTHON_VERSION} | tr -d .)"
|
|
fi
|
|
;;
|
|
*-*-cygwin*)
|
|
CYGWIN_EXTRA_LDFLAGS="-no-undefined"
|
|
if test "${PYTHON}" != ""
|
|
then
|
|
CYGWIN_EXTRA_PYTHON_LIBADD="-L/usr/lib/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}"
|
|
fi
|
|
;;
|
|
esac
|
|
AC_SUBST(WIN32_EXTRA_LIBADD)
|
|
AC_SUBST(WIN32_EXTRA_LDFLAGS)
|
|
AC_SUBST(WIN32_EXTRA_PYTHON_LIBADD)
|
|
AC_SUBST(CYGWIN_EXTRA_LDFLAGS)
|
|
AC_SUBST(CYGWIN_EXTRA_PYTHON_LIBADD)
|
|
|
|
dnl Checking the standard string functions availability
|
|
dnl
|
|
dnl Note mingw* has C99 implementation that produce expected xml numbers
|
|
dnl if code use {v}snprintf functions.
|
|
dnl If you like to activate at run-time C99 compatible number output
|
|
dnl see release note for mingw runtime 3.15:
|
|
dnl http://sourceforge.net/project/shownotes.php?release_id=24832
|
|
dnl
|
|
dnl Also *win32*config.h files redefine them for various MSC compilers.
|
|
dnl
|
|
dnl So do not redefine {v}snprintf to _{v}snprintf like follwing:
|
|
dnl AC_DEFINE([snprintf],[_snprintf],[Win32 Std C name mangling work-around])
|
|
dnl AC_DEFINE([vsnprintf],[_vsnprintf],[Win32 Std C name mangling work-around])
|
|
dnl and do not redefine those functions is C-source files.
|
|
dnl
|
|
AC_CHECK_FUNCS(printf sprintf fprintf snprintf vfprintf vsprintf vsnprintf sscanf,,
|
|
NEED_TRIO=1)
|
|
|
|
if test "$with_coverage" = "yes" -a "${GCC}" = "yes"
|
|
then
|
|
echo Enabling code coverage for GCC
|
|
CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage"
|
|
LDFLAGS="$LDFLAGS -fprofile-arcs -ftest-coverage"
|
|
else
|
|
echo Disabling code coverage for GCC
|
|
fi
|
|
|
|
AC_SUBST(CPPFLAGS)
|
|
AC_SUBST(CFLAGS)
|
|
AC_SUBST(LDFLAGS)
|
|
AC_SUBST(XML_CFLAGS)
|
|
|
|
AC_SUBST(XML_LIBDIR)
|
|
AC_SUBST(XML_LIBS)
|
|
AC_SUBST(XML_LIBTOOLLIBS)
|
|
AC_SUBST(ICONV_LIBS)
|
|
AC_SUBST(ICU_LIBS)
|
|
AC_SUBST(XML_INCLUDEDIR)
|
|
AC_SUBST(HTML_DIR)
|
|
AC_SUBST(HAVE_ISNAN)
|
|
AC_SUBST(HAVE_ISINF)
|
|
AC_SUBST(PYTHON)
|
|
AC_SUBST(PYTHON_VERSION)
|
|
AC_SUBST(PYTHON_INCLUDES)
|
|
AC_SUBST(PYTHON_SITE_PACKAGES)
|
|
|
|
AC_SUBST(M_LIBS)
|
|
AC_SUBST(RDL_LIBS)
|
|
|
|
dnl for the spec file
|
|
RELDATE=`date +'%a %b %e %Y'`
|
|
AC_SUBST(RELDATE)
|
|
AC_SUBST(PYTHON_TESTS)
|
|
|
|
rm -f COPYING.LIB COPYING
|
|
ln -s $srcdir/Copyright COPYING
|
|
|
|
# keep on one line for cygwin c.f. #130896
|
|
AC_CONFIG_FILES([libxml2.spec:libxml.spec.in Makefile include/Makefile include/libxml/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
|
|
|
|
echo Done configuring
|