mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2024-10-28 06:25:09 +03:00
f6eea27b38
- xpath.c: removed an error found by XSLT usage - tree.c parserInternals.h: use a predefined static string for text and comment nodes, avoid freeing them in xmlFreeNode, exported the string name in parserInternals.h and added another value to disable encoding at output (for XSLT), gain memory, time. Daniel
400 lines
9.6 KiB
Plaintext
400 lines
9.6 KiB
Plaintext
dnl Process this file with autoconf to produce a configure script.
|
|
AC_PREREQ(2.2)
|
|
AC_INIT(entities.c)
|
|
AM_CONFIG_HEADER(config.h)
|
|
AC_CANONICAL_HOST
|
|
|
|
LIBXML_MAJOR_VERSION=2
|
|
LIBXML_MINOR_VERSION=2
|
|
LIBXML_MICRO_VERSION=11
|
|
LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION
|
|
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`
|
|
|
|
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)
|
|
|
|
VERSION=${LIBXML_VERSION}
|
|
|
|
AM_INIT_AUTOMAKE(libxml2, $VERSION)
|
|
|
|
AC_ARG_WITH(html-dir, [ --with-html-dir=PATH path to installed docs ])
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_CC
|
|
AC_PROG_INSTALL
|
|
AC_PROG_CPP
|
|
AC_PATH_PROG(RM, rm, /bin/rm)
|
|
AC_PATH_PROG(MV, mv, /bin/mv)
|
|
AC_PATH_PROG(TAR, tar, /bin/tar)
|
|
|
|
dnl Make sure we have an ANSI compiler
|
|
AM_C_PROTOTYPES
|
|
test "x$U" != "x" && AC_MSG_ERROR(Compiler not ANSI compliant)
|
|
|
|
AM_PROG_LIBTOOL
|
|
|
|
AM_MAINTAINER_MODE
|
|
|
|
dnl Checks for zlib library.
|
|
_cppflags="${CPPFLAGS}"
|
|
_ldflags="${LDFLAGS}"
|
|
|
|
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_CHECK_HEADERS(zlib.h,
|
|
AC_CHECK_LIB(z, gzread,[
|
|
AC_DEFINE(HAVE_LIBZ)
|
|
if test "x${Z_DIR}" != "x"; then
|
|
Z_CFLAGS="-I${Z_DIR}/include"
|
|
Z_LIBS="-L${Z_DIR}/lib -lz"
|
|
else
|
|
Z_LIBS="-lz"
|
|
fi]))
|
|
AC_SUBST(Z_CFLAGS)
|
|
AC_SUBST(Z_LIBS)
|
|
|
|
CPPFLAGS=${_cppflags}
|
|
LDFLAGS=${_ldflags}
|
|
|
|
dnl Checks for header files.
|
|
AC_HEADER_DIRENT
|
|
AC_HEADER_STDC
|
|
AC_CHECK_HEADERS(fcntl.h unistd.h ctype.h dirent.h errno.h malloc.h)
|
|
AC_CHECK_HEADERS(stdarg.h sys/stat.h sys/types.h time.h)
|
|
AC_CHECK_HEADERS(ieeefp.h nan.h math.h fp_class.h float.h)
|
|
AC_CHECK_HEADERS(stdlib.h sys/socket.h netinet/in.h arpa/inet.h)
|
|
AC_CHECK_HEADERS(netdb.h sys/time.h sys/select.h sys/mman.h)
|
|
|
|
dnl Specific dir for HTML output ?
|
|
if test "x$with_html_dir" = "x" ; then
|
|
HTML_DIR='${datadir}/gtk-doc/html'
|
|
else
|
|
HTML_DIR=$with_html_dir
|
|
fi
|
|
|
|
AC_SUBST(HTML_DIR)
|
|
|
|
AC_ARG_ENABLE(corba,
|
|
[ --enable-corba Add Corba support (default)])
|
|
|
|
dnl
|
|
dnl Corba is enabled by default
|
|
dnl
|
|
if test "$enable_corba" = "no" ; then
|
|
CORBA_CFLAGS="-DWITHOUT_CORBA"
|
|
fi
|
|
AC_SUBST(CORBA_CFLAGS)
|
|
|
|
dnl Checks for library functions.
|
|
AC_FUNC_STRFTIME
|
|
AC_CHECK_FUNCS(strdup strndup strerror snprintf)
|
|
AC_CHECK_FUNCS(finite isnand fp_class class fpclass)
|
|
AC_CHECK_FUNCS(strftime localtime)
|
|
|
|
dnl Checks for inet libraries:
|
|
AC_CHECK_FUNC(gethostent, , AC_CHECK_LIB(nsl, gethostent))
|
|
AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt))
|
|
AC_CHECK_FUNC(connect, , AC_CHECK_LIB(inet, connect))
|
|
|
|
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 *)
|
|
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 *)
|
|
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 *)
|
|
SOCKLEN_T=int],[
|
|
AC_MSG_WARN(could not determine)])])])
|
|
AC_DEFINE_UNQUOTED(SOCKLEN_T, $SOCKLEN_T)
|
|
|
|
dnl Checks for isnan in libm if not in libc
|
|
AC_CHECK_FUNC(isnan, , AC_CHECK_LIB(m, isnan,
|
|
[M_LIBS="-lm"; AC_DEFINE(HAVE_ISNAN)]))
|
|
|
|
AC_CHECK_FUNC(isinf, , AC_CHECK_LIB(m, isinf,
|
|
[M_LIBS="-lm"; AC_DEFINE(HAVE_ISINF)]))
|
|
|
|
XML_LIBDIR='-L${libdir}'
|
|
XML_INCLUDEDIR='-I${includedir}/libxml -I${includedir}'
|
|
XML_LIBS="-lxml $Z_LIBS $M_LIBS $LIBS"
|
|
|
|
dnl
|
|
dnl Extra flags
|
|
dnl
|
|
XML_CFLAGS=""
|
|
|
|
dnl
|
|
dnl Workaround for HP native compiler
|
|
dnl http://bugs.gnome.org/db/31/3163.html
|
|
dnl
|
|
if test "${GCC}" != "yes" ; then
|
|
case "${host}" in
|
|
*-*-hpux* )
|
|
CFLAGS="${CFLAGS} -Wp,-H30000"
|
|
;;
|
|
esac
|
|
fi
|
|
case ${host} in
|
|
*-*-solaris*)
|
|
XML_LIBDIR="${XML_LIBDIR} -R${libdir}"
|
|
;;
|
|
esac
|
|
|
|
|
|
|
|
dnl
|
|
dnl Use buffers for content
|
|
dnl
|
|
|
|
AC_ARG_WITH(buffers, [ --with-buffers Use buffers for node content])
|
|
if test "$with_buffers" = "yes" ; then
|
|
CFLAGS="${CFLAGS} -DXML_USE_BUFFER_CONTENT"
|
|
XML_CFLAGS="${XML_CFLAGS} -DXML_USE_BUFFER_CONTENT"
|
|
fi
|
|
|
|
dnl
|
|
dnl Tester makes use of readline if present
|
|
dnl
|
|
_cppflags="${CPPFLAGS}"
|
|
_ldflags="${LDFLAGS}"
|
|
|
|
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
|
|
])
|
|
|
|
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)]))
|
|
AC_CHECK_HEADER(readline/readline.h,
|
|
AC_CHECK_LIB(readline, readline,[
|
|
RDL_LIBS="-lreadline $RDL_LIBS $tcap"
|
|
AC_DEFINE(HAVE_LIBREADLINE)], , $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"
|
|
else
|
|
CPPFLAGS=${_cppflags}
|
|
fi
|
|
LDFLAGS=${_ldflags}
|
|
|
|
AC_SUBST(RDL_LIBS)
|
|
|
|
dnl
|
|
dnl specific tests to setup DV's devel environment with debug etc ...
|
|
dnl
|
|
if test "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XML" ; then
|
|
if test "${with_mem_debug}" = "" ; then
|
|
with_mem_debug="yes"
|
|
fi
|
|
dnl if test "${with_docbook}" = "" ; then
|
|
dnl with_docbook="yes"
|
|
dnl fi
|
|
if test "${with_xptr}" = "" ; then
|
|
with_xptr="yes"
|
|
fi
|
|
CFLAGS="-Wall -g -pedantic"
|
|
fi
|
|
dnl
|
|
dnl Aloow to disable various pieces
|
|
dnl
|
|
|
|
AC_ARG_WITH(ftp, [ --with-ftp Add the FTP support (on)])
|
|
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)
|
|
|
|
AC_ARG_WITH(http, [ --with-http Add the HTTP support (on)])
|
|
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)
|
|
|
|
AC_ARG_WITH(html, [ --with-html Add the HTML support (on)])
|
|
if test "$with_html" = "no" ; then
|
|
echo Disabling HTML support
|
|
WITH_HTML=0
|
|
HTML_OBJ=
|
|
else
|
|
WITH_HTML=1
|
|
HTML_OBJ="HTMLparser.o HTMLtree.o"
|
|
fi
|
|
AC_SUBST(WITH_HTML)
|
|
AC_SUBST(HTML_OBJ)
|
|
|
|
AC_ARG_WITH(xpath, [ --with-xpath Add the XPATH support (on)])
|
|
if test "$with_xpath" = "no" ; then
|
|
echo Disabling XPATH support
|
|
with_xptr="no"
|
|
WITH_XPATH=0
|
|
XPATH_OBJ=
|
|
else
|
|
WITH_XPATH=1
|
|
XPATH_OBJ=xpath.o
|
|
fi
|
|
AC_SUBST(WITH_XPATH)
|
|
AC_SUBST(XPATH_OBJ)
|
|
|
|
AC_ARG_WITH(xptr, [ --with-xptr Add the XPointer support (on)])
|
|
if test "$with_xptr" = "no" ; then
|
|
echo Disabling XPointer support
|
|
WITH_XPTR=0
|
|
XPTR_OBJ=
|
|
else
|
|
WITH_XPTR=1
|
|
XPTR_OBJ=xpointer.o
|
|
fi
|
|
AC_SUBST(WITH_XPTR)
|
|
AC_SUBST(XPTR_OBJ)
|
|
|
|
AC_ARG_WITH(xinclude, [ --with-xinclude Add the XInclude support (on)])
|
|
if test "$with_xinclude" = "no" ; then
|
|
echo Disabling XInclude support
|
|
WITH_XINCLUDE=0
|
|
XINCLUDE_OBJ=
|
|
with_xinclude="no"
|
|
else
|
|
WITH_XINCLUDE=1
|
|
XINCLUDE_OBJ=xinclude.o
|
|
fi
|
|
AC_SUBST(WITH_XINCLUDE)
|
|
AC_SUBST(XINCLUDE_OBJ)
|
|
|
|
AC_ARG_WITH(iconv, [ --with-iconv Add the ICONV support (on)])
|
|
if test "$with_iconv" = "no" ; then
|
|
echo Disabling ICONV support
|
|
WITH_ICONV=0
|
|
else
|
|
AC_CHECK_FUNCS(iconv)
|
|
if test "$have_iconv" != "" ; then
|
|
echo Iconv support not found
|
|
WITH_ICONV=0
|
|
else
|
|
WITH_ICONV=1
|
|
fi
|
|
fi
|
|
AC_SUBST(WITH_ICONV)
|
|
|
|
AC_ARG_WITH(debug, [ --with-debug Add the debugging module (on)])
|
|
if test "$with_debug" = "no" ; then
|
|
echo Disabling DEBUG support
|
|
WITH_DEBUG=0
|
|
DEBUG_OBJ=
|
|
else
|
|
WITH_DEBUG=1
|
|
DEBUG_OBJ=debugXML.o
|
|
fi
|
|
AC_SUBST(WITH_DEBUG)
|
|
AC_SUBST(DEBUG_OBJ)
|
|
|
|
AC_ARG_WITH(mem_debug, [ --with-mem-debug Add the memory debugging module (off)])
|
|
if test "$with_mem_debug" = "yes" ; then
|
|
echo Enabling memory debug support
|
|
WITH_MEM_DEBUG=1
|
|
else
|
|
WITH_MEM_DEBUG=0
|
|
fi
|
|
AC_SUBST(WITH_MEM_DEBUG)
|
|
|
|
AC_SUBST(CFLAGS)
|
|
AC_SUBST(XML_CFLAGS)
|
|
|
|
AC_SUBST(XML_LIBDIR)
|
|
AC_SUBST(XML_LIBS)
|
|
AC_SUBST(XML_INCLUDEDIR)
|
|
AC_SUBST(HTML_DIR)
|
|
AC_SUBST(HAVE_ISNAN)
|
|
AC_SUBST(HAVE_ISINF)
|
|
|
|
AC_SUBST(M_LIBS)
|
|
AC_SUBST(RDL_LIBS)
|
|
|
|
dnl
|
|
dnl create the libxml and include links needed to get dependencies right
|
|
dnl
|
|
if test ! -d $srcdir/include/libxml
|
|
then
|
|
if test ! -d $srcdir/include
|
|
then
|
|
rm -f $srcdir/include
|
|
mkdir $srcdir/include
|
|
fi
|
|
rm -f $srcdir/libxml
|
|
(cd $srcdir/include ; ln -s .. libxml)
|
|
fi
|
|
if test ! -r $srcdir/libxml
|
|
then
|
|
(cd $srcdir ; ln -s include/libxml libxml)
|
|
fi
|
|
if test ! -r include/libxml
|
|
then
|
|
if test ! -d include
|
|
then
|
|
rm -f include
|
|
mkdir include
|
|
fi
|
|
(cd include ; ln -s ../libxml libxml)
|
|
fi
|
|
if test ! -r libxml
|
|
then
|
|
rm -rf libxml
|
|
ln -s $srcdir/include/libxml libxml
|
|
fi
|
|
|
|
AC_OUTPUT(libxml.spec Makefile include/Makefile doc/Makefile example/Makefile libxml/xmlversion.h xml-config libxml-2.0.pc)
|
|
|