You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mxml/configure.ac

334 lines
7.5 KiB

21 years ago
dnl
dnl Configuration script for Mini-XML, a small XML-like file parsing library.
21 years ago
dnl
dnl Copyright 2003-2017 by Michael R Sweet.
21 years ago
dnl
dnl These coded instructions, statements, and computer programs are the
dnl property of Michael R Sweet and are protected by Federal copyright
dnl law. Distribution and use rights are outlined in the file "COPYING"
dnl which should have been included with this file. If this file is
dnl missing or damaged, see the license at:
21 years ago
dnl
dnl https://michaelrsweet.github.io/mxml
21 years ago
dnl
dnl Package name and version...
AC_INIT([Mini-XML], [2.11], [https://github.com/michaelrsweet/mxml/issues], [mxml], [https://michaelrsweet.github.io/mxml])
dnl Get the compile host and split the host_os value
AC_CANONICAL_HOST
[host_os_name=`echo $host_os | sed -e '1,$s/[0-9.]*$//g'`]
[host_os_version=`echo $host_os | sed -e '1,$s/^[^0-9.]*//g'`]
dnl Set the name of the config header file...
AC_CONFIG_HEADER(config.h)
dnl Version number...
VERSION="AC_PACKAGE_VERSION"
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)
21 years ago
AC_ARG_WITH(vsnprintf, [ --with-vsnprintf use vsnprintf emulation functions, default=auto],
use_vsnprintf="$withval",
use_vsnprintf="no")
21 years ago
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
21 years ago
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)
21 years ago
dnl Flags for "ar" command...
case "$host_os_name" in
darwin* | *bsd)
21 years ago
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... :(
case "$host_os_name" in
sunos)
PTHREAD_FLAGS="$PTHREAD_FLAGS -D_POSIX_PTHREAD_SEMANTICS"
;;
esac
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 != xno; then
AC_MSG_CHECKING(for shared library support)
PICFLAG=1
case "$host_os_name" in
sunos | unix_s)
AC_MSG_RESULT(yes)
LIBMXML="libmxml.so.1.5"
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.5"
DSO="\$(CC)"
DSOFLAGS="$DSOFLAGS -Wl,-rpath,\$(libdir),-set_version,sgi1.0,-soname,libmxml.so.1 -shared \$(OPTIM)"
;;
osf | linux | gnu)
AC_MSG_RESULT(yes)
LIBMXML="libmxml.so.1.5"
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.5"
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 "$host_os_name" != aix; then
OPTIM="-fPIC $OPTIM"
fi
else
case "$host_os_name" 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 "$host_os_name" in
*bsd | darwin | linux)
# *BSD, Darwin (macOS), 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)