- multithreading (with boost)

- autofunctiontrace only for GNU gcc
master
Marc Wäckerlin 20 years ago
parent dbcc6c7d06
commit ae4adfaa16
  1. 62
      configure.in

@ -38,6 +38,9 @@ AC_SUBST_FILE(README)
CHANGE_LOG=ChangeLog CHANGE_LOG=ChangeLog
AC_SUBST_FILE(CHANGE_LOG) AC_SUBST_FILE(CHANGE_LOG)
# Get rid of that stupid -O2 -g opions!
CXXFLAGS="${CXXFLAGS:-}"
# languages # languages
AC_LANG(C++) AC_LANG(C++)
@ -60,18 +63,15 @@ AC_CHECK_HEADER(ltdl.h, [have_ltdl=yes])
# Arguments # Arguments
AM_MAINTAINER_MODE AM_MAINTAINER_MODE
AC_ARG_WITH(tracer, AC_ARG_ENABLE(threads,
[ --with-tracer=name add additional tracing output to this library itself], [ --disable-threads disable multithreading],
[with_tracer="$withval"], [with_tracer="no"]) [with_threads="$enableval"], [with_threads="yes"])
AM_CONDITIONAL(TRACER, test "$with_tracer" == "yes") THREADS="-pthread"
if test "$with_tracer" != "no"; then AM_CONDITIONAL(HAVE_THREADS, test "$with_threads" == "yes")
if test "$with_tracer" != "yes"; then AC_ARG_ENABLE(autofntrace,
TRACE=$with_tracer [ --disable-autofntrace disable automated function trace (requires gcc)],
else [with_autofntrace="$enableval"], [with_autofntrace="yes"])
TRACE="trace" AM_CONDITIONAL(AUTOFNTRACE, test "$with_autofntrace" == "yes" -a -n "$GCC")
fi
AC_SUBST(TRACE)
fi
AC_ARG_ENABLE(pedantic, AC_ARG_ENABLE(pedantic,
[ --enable-pedantic enable all warnings and checks, abort on warnings], [ --enable-pedantic enable all warnings and checks, abort on warnings],
[have_pedantic="$enableval"; test "$enableval" = "yes" && \ [have_pedantic="$enableval"; test "$enableval" = "yes" && \
@ -104,10 +104,28 @@ if test "$have_stacktrace" = "yes"; then
[AC_MSG_RESULT([OK, found cplus_demangle])], [AC_MSG_RESULT([OK, found cplus_demangle])],
[AC_MSG_ERROR([Library iberty is required!])]) [AC_MSG_ERROR([Library iberty is required!])])
fi fi
AC_ARG_WITH([boost-thread],AS_HELP_STRING([--with-boost-thread],
[specify the boost thread library or suffix to use]),
[if test "$with_boost_thread" != "no"; then
if test "$with_boost_thread" != "yes"; then
chk_libs="$with_boost_thread boost_thread-$with_boost_thread"
else
chk_libs="boost_thread boost_thread-mt boost_thread-gcc-mt"
fi
else
chk_libs=""
fi],
[chk_libs="boost_thread boost_thread-mt boost_thread-gcc-mt"])
for ax_lib in $chk_libs; do
AC_CHECK_LIB($ax_lib, main, [BOOST_THREAD_LIB="-l$ax_lib" break])
done
AC_SUBST(BOOST_THREAD_LIB)
AM_CONDITIONAL(HAVE_BOOST_THREAD, test -n "$BOOST_THREAD_LIB")
AM_PATH_CPPUNIT([1.0.0], [have_cppunit="yes"], [have_cppunit="no"]) AM_PATH_CPPUNIT([1.0.0], [have_cppunit="yes"], [have_cppunit="no"])
# export macros # export macros
AC_SUBST(HAVE_DOT) AC_SUBST(HAVE_DOT)
AC_SUBST(THREADS)
AC_SUBST(PACKAGENAME) AC_SUBST(PACKAGENAME)
AC_SUBST(AM_CXXFLAGS) AC_SUBST(AM_CXXFLAGS)
AC_SUBST(AM_CPPFLAGS) AC_SUBST(AM_CPPFLAGS)
@ -136,10 +154,10 @@ AC_MSG_NOTICE([Pedantic compile mode enabled!
- all warnings for GNU g++ are enabled - all warnings for GNU g++ are enabled
- all warnings result in an error - all warnings result in an error
- doxygen warnings are treated as error too]); fi - doxygen warnings are treated as error too]); fi
if test "$with_tracer" != "no"; then if test "$with_threads" == "no"; then
AC_MSG_NOTICE([Verbose tracing is enabled! AC_MSG_WARN([Multithreading support is disabled!
- function traces will be printed for all methods in the library - use --enable-threads to enable it
- tracer is: $TRACE]); fi - actually, there's only support for automated function trace]); fi
if test "$have_log4cxx" != "yes"; then if test "$have_log4cxx" != "yes"; then
AC_MSG_WARN([Library log4cxx will not be used! AC_MSG_WARN([Library log4cxx will not be used!
- if you want it, download it from: - if you want it, download it from:
@ -149,5 +167,13 @@ AC_MSG_WARN([mrw::StackTrace is disabled!]); fi
if test "$have_ltdl" != "yes"; then if test "$have_ltdl" != "yes"; then
AC_MSG_ERROR([mrw::DynamicLibrary dynamic library loading is disabled! AC_MSG_ERROR([mrw::DynamicLibrary dynamic library loading is disabled!
- mrw::StackTrace is disabled without mrw::DynamicLibrary - mrw::StackTrace is disabled without mrw::DynamicLibrary
- install the GNU libtool, if you need mrw::DynamicLibrary]); - install the GNU libtool, if you need mrw::DynamicLibrary]);fi
fi if test "$with_autofntrace" != "yes" -o -z "$GCC"; then
AC_MSG_WARN([Automated GNU gcc function tracing is disabled!
- libmrwautofunctiontracelog4cxx won't be built]);fi
if test -z "$BOOST_THREAD_LIB"; then
AC_MSG_WARN([Boost thread library not found!
- multithreading is based on boost thread library
- support for multithreading is disabled
- try to pass the library name, e.g.
--with-boost-thread=boost_thread-icc-mt]);fi
Loading…
Cancel
Save