mirror of
https://github.com/michaelrsweet/mxml.git
synced 2024-11-14 15:55:30 +00:00
ee8df0fe52
Add --heading option to place contact before table-of-contents and intro. Tweak the mxmldoc test suite. Use " instead of ' for attribute values. Quote titles, etc. as needed. Move TOC and HTML header generation to separate functions in preparation for frame support.
327 lines
7.2 KiB
Plaintext
327 lines
7.2 KiB
Plaintext
dnl
|
|
dnl "$Id$"
|
|
dnl
|
|
dnl Configuration script for Mini-XML, a small XML-like file parsing library.
|
|
dnl
|
|
dnl Copyright 2003-2008 by Michael Sweet.
|
|
dnl
|
|
dnl This program is free software; you can redistribute it and/or
|
|
dnl modify it under the terms of the GNU Library General Public
|
|
dnl License as published by the Free Software Foundation; either
|
|
dnl version 2, or (at your option) any later version.
|
|
dnl
|
|
dnl This program is distributed in the hope that it will be useful,
|
|
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
dnl GNU General Public License for more details.
|
|
dnl
|
|
|
|
dnl Specify a source file from the distribution...
|
|
AC_INIT(mxml.h)
|
|
|
|
dnl Set the name of the config header file...
|
|
AC_CONFIG_HEADER(config.h)
|
|
|
|
dnl Version number...
|
|
VERSION=2.5
|
|
AC_SUBST(VERSION)
|
|
AC_DEFINE_UNQUOTED(MXML_VERSION, "Mini-XML v$VERSION")
|
|
|
|
dnl Clear default debugging options and set normal optimization by
|
|
dnl default unless the user asks for debugging specifically.
|
|
CFLAGS="${CFLAGS:=}"
|
|
CXXFLAGS="${CXXFLAGS:=}"
|
|
LDFLAGS="${LDFLAGS:=}"
|
|
AC_SUBST(LDFLAGS)
|
|
OPTIM=""
|
|
AC_SUBST(OPTIM)
|
|
|
|
AC_ARG_WITH(ansi, [ --with-ansi set full ANSI C mode, default=no],
|
|
use_ansi="$withval",
|
|
use_ansi="no")
|
|
|
|
AC_ARG_WITH(archflags, [ --with-archflags set additional architecture flags, default=none],
|
|
ARCHFLAGS="$withval",
|
|
ARCHFLAGS="")
|
|
AC_SUBST(ARCHFLAGS)
|
|
|
|
AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging, default=no],
|
|
if eval "test x$enable_debug = xyes"; then
|
|
OPTIM="-g"
|
|
fi)
|
|
|
|
AC_ARG_WITH(docdir, [ --with-docdir set directory for documentation, default=${prefix}/share/doc/mxml],
|
|
docdir="$withval",
|
|
docdir="NONE")
|
|
|
|
AC_SUBST(docdir)
|
|
|
|
AC_ARG_WITH(vsnprintf, [ --with-vsnprintf use vsnprintf emulation functions, default=auto],
|
|
use_vsnprintf="$withval",
|
|
use_vsnprintf="no")
|
|
|
|
dnl Get the operating system and version number...
|
|
uname=`uname`
|
|
uversion=`uname -r | sed -e '1,$s/[[^0-9]]//g'`
|
|
if test x$uname = xIRIX64; then
|
|
uname="IRIX"
|
|
fi
|
|
|
|
dnl Checks for programs...
|
|
AC_PROG_CC
|
|
AC_PROG_CXX
|
|
AC_PROG_INSTALL
|
|
if test "$INSTALL" = "$ac_install_sh"; then
|
|
# Use full path to install-sh script...
|
|
INSTALL="`pwd`/install-sh -c"
|
|
fi
|
|
AC_PROG_RANLIB
|
|
AC_PATH_PROG(AR,ar)
|
|
AC_PATH_PROG(CP,cp)
|
|
AC_PATH_PROG(LN,ln)
|
|
AC_PATH_PROG(MKDIR,mkdir)
|
|
AC_PATH_PROG(RM,rm)
|
|
|
|
dnl Flags for "ar" command...
|
|
case "$uname" in
|
|
Darwin* | *BSD*)
|
|
ARFLAGS="-rcv"
|
|
;;
|
|
*)
|
|
ARFLAGS="crvs"
|
|
;;
|
|
esac
|
|
|
|
AC_SUBST(ARFLAGS)
|
|
|
|
dnl Inline functions...
|
|
AC_C_INLINE
|
|
|
|
dnl Checks for string functions.
|
|
if test "x$use_ansi" != xyes; then
|
|
AC_CHECK_FUNCS(strdup)
|
|
fi
|
|
|
|
if test "x$use_vsnprintf" != xyes; then
|
|
AC_CHECK_FUNCS(snprintf vsnprintf)
|
|
fi
|
|
|
|
dnl Threading support
|
|
AC_ARG_ENABLE(threads, [ --enable-threads enable multi-threading support])
|
|
|
|
have_pthread=no
|
|
PTHREAD_FLAGS=""
|
|
PTHREAD_LIBS=""
|
|
|
|
if test "x$enable_threads" != xno; then
|
|
AC_CHECK_HEADER(pthread.h, AC_DEFINE(HAVE_PTHREAD_H))
|
|
|
|
if test x$ac_cv_header_pthread_h = xyes; then
|
|
dnl Check various threading options for the platforms we support
|
|
for flag in -lpthreads -lpthread -pthread; do
|
|
AC_MSG_CHECKING([for pthread_create using $flag])
|
|
SAVELIBS="$LIBS"
|
|
LIBS="$flag $LIBS"
|
|
AC_TRY_LINK([#include <pthread.h>],
|
|
[pthread_create(0, 0, 0, 0);],
|
|
have_pthread=yes)
|
|
AC_MSG_RESULT([$have_pthread])
|
|
LIBS="$SAVELIBS"
|
|
|
|
if test $have_pthread = yes; then
|
|
PTHREAD_FLAGS="-D_THREAD_SAFE -D_REENTRANT"
|
|
PTHREAD_LIBS="$flag"
|
|
|
|
# Solaris requires -D_POSIX_PTHREAD_SEMANTICS to
|
|
# be POSIX-compliant... :(
|
|
if test $uname = SunOS; then
|
|
PTHREAD_FLAGS="$PTHREAD_FLAGS -D_POSIX_PTHREAD_SEMANTICS"
|
|
fi
|
|
break
|
|
fi
|
|
done
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(PTHREAD_FLAGS)
|
|
AC_SUBST(PTHREAD_LIBS)
|
|
|
|
dnl Shared library support...
|
|
DSO="${DSO:=:}"
|
|
DSOFLAGS="${DSOFLAGS:=}"
|
|
|
|
AC_ARG_ENABLE(shared, [ --enable-shared turn on shared libraries, default=no])
|
|
|
|
if test x$enable_shared = xyes; then
|
|
AC_MSG_CHECKING(for shared library support)
|
|
PICFLAG=1
|
|
|
|
case "$uname" in
|
|
SunOS* | UNIX_S*)
|
|
AC_MSG_RESULT(yes)
|
|
LIBMXML="libmxml.so.1.4"
|
|
DSO="\$(CC)"
|
|
DSOFLAGS="$DSOFLAGS -Wl,-h,libmxml.so.1 -G -R\$(libdir) \$(OPTIM)"
|
|
LDFLAGS="$LDFLAGS -R\$(libdir)"
|
|
;;
|
|
|
|
HP-UX*)
|
|
AC_MSG_RESULT(yes)
|
|
LIBMXML="libmxml.sl.1"
|
|
DSO="ld"
|
|
DSOFLAGS="$DSOFLAGS -b -z +h libmxml.sl.1 +s +b \$(libdir)"
|
|
LDFLAGS="$LDFLAGS -Wl,+s,+b,\$(libdir)"
|
|
;;
|
|
|
|
IRIX)
|
|
AC_MSG_RESULT(yes)
|
|
LIBMXML="libmxml.so.1.4"
|
|
DSO="\$(CC)"
|
|
DSOFLAGS="$DSOFLAGS -Wl,-rpath,\$(libdir),-set_version,sgi1.0,-soname,libmxml.so.1 -shared \$(OPTIM)"
|
|
;;
|
|
|
|
OSF1* | Linux | GNU)
|
|
AC_MSG_RESULT(yes)
|
|
LIBMXML="libmxml.so.1.4"
|
|
DSO="\$(CC)"
|
|
DSOFLAGS="$DSOFLAGS -Wl,-soname,libmxml.so.1,-rpath,\$(libdir) -shared \$(OPTIM)"
|
|
LDFLAGS="$LDFLAGS -Wl,-rpath,\$(libdir)"
|
|
;;
|
|
|
|
*BSD*)
|
|
AC_MSG_RESULT(yes)
|
|
LIBMXML="libmxml.so.1.4"
|
|
DSO="\$(CC)"
|
|
DSOFLAGS="$DSOFLAGS -Wl,-soname,libmxml.so.1,-R\$(libdir) -shared \$(OPTIM)"
|
|
LDFLAGS="$LDFLAGS -Wl,-R\$(libdir)"
|
|
;;
|
|
|
|
Darwin*)
|
|
AC_MSG_RESULT(yes)
|
|
LIBMXML="libmxml.1.dylib"
|
|
DSO="\$(CC)"
|
|
DSOFLAGS="$DSOFLAGS \$(RC_CFLAGS) -dynamiclib -lc"
|
|
;;
|
|
|
|
*)
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_WARN(shared libraries not supported on this platform.)
|
|
PICFLAG=0
|
|
LIBMXML="libmxml.a"
|
|
;;
|
|
esac
|
|
else
|
|
PICFLAG=0
|
|
LIBMXML="libmxml.a"
|
|
fi
|
|
|
|
AC_SUBST(DSO)
|
|
AC_SUBST(DSOFLAGS)
|
|
AC_SUBST(LIBMXML)
|
|
AC_SUBST(PICFLAG)
|
|
|
|
dnl Add -Wall for GCC...
|
|
if test -n "$GCC"; then
|
|
CFLAGS="-Wall $CFLAGS"
|
|
|
|
if test "x$OPTIM" = x; then
|
|
OPTIM="-Os -g"
|
|
fi
|
|
|
|
if test "x$use_ansi" = xyes; then
|
|
CFLAGS="-ansi -pedantic $CFLAGS"
|
|
fi
|
|
|
|
if test $PICFLAG = 1 -a $uname != AIX; then
|
|
OPTIM="-fPIC $OPTIM"
|
|
fi
|
|
else
|
|
case $uname in
|
|
HP-UX*)
|
|
CFLAGS="-Ae $CFLAGS"
|
|
|
|
if test "x$OPTIM" = x; then
|
|
OPTIM="-O"
|
|
fi
|
|
|
|
OPTIM="+DAportable $OPTIM"
|
|
|
|
if test $PICFLAG = 1; then
|
|
OPTIM="+z $OPTIM"
|
|
fi
|
|
;;
|
|
|
|
UNIX_SVR* | SunOS*)
|
|
if test "x$OPTIM" = x; then
|
|
OPTIM="-O"
|
|
fi
|
|
|
|
if test $PICFLAG = 1; then
|
|
OPTIM="-KPIC $OPTIM"
|
|
fi
|
|
;;
|
|
|
|
*)
|
|
if test "x$OPTIM" = x; then
|
|
OPTIM="-O"
|
|
fi
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
dnl Fix "prefix" variable if it hasn't been specified...
|
|
if test "$prefix" = "NONE"; then
|
|
prefix="/usr/local"
|
|
fi
|
|
|
|
dnl Fix "exec_prefix" variable if it hasn't been specified...
|
|
if test "$exec_prefix" = "NONE"; then
|
|
exec_prefix="$prefix"
|
|
fi
|
|
|
|
dnl Fix "docdir" variable if it hasn't been specified...
|
|
if test "$docdir" = "NONE"; then
|
|
docdir="$datadir/doc/mxml"
|
|
fi
|
|
|
|
dnl Fix "mandir" variable if it hasn't been specified...
|
|
if test "$mandir" = "\${prefix}/man" -a "$prefix" = "/usr"; then
|
|
case "$uname" in
|
|
*BSD* | Darwin* | Linux*)
|
|
# BSD, Darwin (MacOS X), and Linux
|
|
mandir="/usr/share/man"
|
|
;;
|
|
IRIX*)
|
|
# SGI IRIX
|
|
mandir="/usr/share/catman/u_man"
|
|
;;
|
|
*)
|
|
# All others
|
|
mandir="/usr/man"
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
dnl pkg-config stuff...
|
|
if test "$includedir" != /usr/include; then
|
|
PC_CFLAGS="-I$includedir"
|
|
else
|
|
PC_CFLAGS=""
|
|
fi
|
|
|
|
if test "$libdir" != /usr/lib; then
|
|
PC_LIBS="-L$libdir -lmxml"
|
|
else
|
|
PC_LIBS="-lmxml"
|
|
fi
|
|
|
|
AC_SUBST(PC_CFLAGS)
|
|
AC_SUBST(PC_LIBS)
|
|
|
|
dnl Output the makefile, etc...
|
|
AC_OUTPUT(Makefile mxml.list mxml.pc)
|
|
|
|
dnl
|
|
dnl End of "$Id$".
|
|
dnl
|