dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.2)
AC_INIT(entities.h)
AM_CONFIG_HEADER(config.h)

LIBXML_MAJOR_VERSION=1
LIBXML_MINOR_VERSION=8
LIBXML_MICRO_VERSION=2
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

AC_SUBST(LIBXML_MAJOR_VERSION)
AC_SUBST(LIBXML_MINOR_VERSION)
AC_SUBST(LIBXML_MICRO_VERSION)
AC_SUBST(LIBXML_VERSION)
AC_SUBST(LIBXML_VERSION_INFO)

VERSION=$LIBXML_VERSION

AM_INIT_AUTOMAKE(libxml, $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)

AM_PROG_LIBTOOL

AM_MAINTAINER_MODE

dnl Checks for libraries.
Z_LIBS= 
AC_CHECK_LIB(z, inflate,
  AC_CHECK_HEADER(zlib.h,
    Z_LIBS="-lz";  AC_DEFINE(HAVE_LIBZ)))


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 zlib.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)

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 isinf isnan isnand fp_class class fpclass finite)
AC_CHECK_FUNCS(strftime localtime)

dnl Checks for inet libraries:
AC_CHECK_LIB(socket, socket)
AC_CHECK_LIB(inet, connect)
AC_CHECK_LIB(nsl, t_accept)

dnl Checks for isnan in libm if not in libc
M_LIBS= 
if test "$ac_cv_func_isnan" != "yes"
then
AC_CHECK_LIB(m, isnan,
             M_LIBS="-lm";  AC_DEFINE(HAVE_ISNAN))
fi

dnl Checks for isinf in libm if not in libc
if test "$ac_cv_func_isinf" != "yes"
then
M2_LIBS=""
AC_CHECK_LIB(m, isinf,
             M2_LIBS="-lm";  AC_DEFINE(HAVE_ISINF))
if test "$M2_LIBS" != ""
then
    M_LIBS="$M2_LIBS"
fi
fi

XML_LIBDIR='-L${libdir}'
XML_INCLUDEDIR='-I${includedir}/gnome-xml'
XML_LIBS="-lxml $Z_LIBS $M_LIBS $LIBS"

dnl
dnl Extra flags
dnl
XML_CFLAGS=""

dnl
dnl Workaround wor HP native compiler
dnl http://bugs.gnome.org/db/31/3163.html
dnl
if test "${CC}" != "gcc" ; then
    case "${host}" in
          *-*-hpux* )
	       CFLAGS="${CFLAGS} -Wp,-H16800 -Ae"
	       ;;
    esac
fi

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

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(Z_LIBS)
AC_SUBST(M_LIBS)
AC_OUTPUT(libxml.spec Makefile doc/Makefile example/Makefile xml-config)

