| dnl |
| dnl "$Id: configure.in 452 2014-01-05 03:12:18Z msweet $" |
| dnl |
| dnl Configuration script for Mini-XML, a small XML-like file parsing library. |
| dnl |
| dnl Copyright 2003-2014 by Michael R Sweet. |
| 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: |
| dnl |
| dnl http://www.msweet.org/projects.php/Mini-XML |
| 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.8 |
| 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 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 != xno; then |
| AC_MSG_CHECKING(for shared library support) |
| PICFLAG=1 |
| |
| case "$uname" 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)" |
| ;; |
| |
| OSF1* | 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 $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 452 2014-01-05 03:12:18Z msweet $". |
| dnl |