344 lines
7.8 KiB
Plaintext
344 lines
7.8 KiB
Plaintext
|
dnl
|
||
|
dnl "$Id: configure.in 260 2010-04-27 19:11:06Z qwell $"
|
||
|
dnl
|
||
|
dnl Configuration script for Mini-XML, a small XML-like file parsing library.
|
||
|
dnl
|
||
|
dnl Copyright 2003-2009 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.2.2
|
||
|
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_PROGS(AR,ar gar)
|
||
|
AC_PATH_PROG(CP,cp)
|
||
|
AC_PATH_PROG(LN,ln)
|
||
|
AC_PATH_PROG(MKDIR,mkdir)
|
||
|
AC_PATH_PROG(RM,rm)
|
||
|
if test -z $AR ; then
|
||
|
AC_MSG_ERROR('ar' binary is mandatory. Please either install the 'ar' binary or provide the path to configure with --with-ar=/path/to/ar)
|
||
|
fi
|
||
|
|
||
|
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 Check for "long long" support...
|
||
|
AC_CACHE_CHECK(for long long int, ac_cv_c_long_long,
|
||
|
[if test "$GCC" = yes; then
|
||
|
ac_cv_c_long_long=yes
|
||
|
else
|
||
|
AC_TRY_COMPILE(,[long long int i;],
|
||
|
ac_cv_c_long_long=yes,
|
||
|
ac_cv_c_long_long=no)
|
||
|
fi])
|
||
|
|
||
|
if test $ac_cv_c_long_long = yes; then
|
||
|
AC_DEFINE(HAVE_LONG_LONG)
|
||
|
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: configure.in 260 2010-04-27 19:11:06Z qwell $".
|
||
|
dnl
|