From ae4adfaa16a3819ca95605c6f7416981abaa0df5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20W=C3=A4ckerlin?= Date: Fri, 11 Mar 2005 23:27:48 +0000 Subject: [PATCH] - multithreading (with boost) - autofunctiontrace only for GNU gcc --- configure.in | 62 +++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 44 insertions(+), 18 deletions(-) diff --git a/configure.in b/configure.in index 9f7cdaa..f09597b 100644 --- a/configure.in +++ b/configure.in @@ -38,6 +38,9 @@ AC_SUBST_FILE(README) CHANGE_LOG=ChangeLog AC_SUBST_FILE(CHANGE_LOG) +# Get rid of that stupid -O2 -g opions! +CXXFLAGS="${CXXFLAGS:-}" + # languages AC_LANG(C++) @@ -60,18 +63,15 @@ AC_CHECK_HEADER(ltdl.h, [have_ltdl=yes]) # Arguments AM_MAINTAINER_MODE -AC_ARG_WITH(tracer, - [ --with-tracer=name add additional tracing output to this library itself], - [with_tracer="$withval"], [with_tracer="no"]) -AM_CONDITIONAL(TRACER, test "$with_tracer" == "yes") -if test "$with_tracer" != "no"; then - if test "$with_tracer" != "yes"; then - TRACE=$with_tracer - else - TRACE="trace" - fi - AC_SUBST(TRACE) -fi +AC_ARG_ENABLE(threads, + [ --disable-threads disable multithreading], + [with_threads="$enableval"], [with_threads="yes"]) +THREADS="-pthread" +AM_CONDITIONAL(HAVE_THREADS, test "$with_threads" == "yes") +AC_ARG_ENABLE(autofntrace, + [ --disable-autofntrace disable automated function trace (requires gcc)], + [with_autofntrace="$enableval"], [with_autofntrace="yes"]) +AM_CONDITIONAL(AUTOFNTRACE, test "$with_autofntrace" == "yes" -a -n "$GCC") AC_ARG_ENABLE(pedantic, [ --enable-pedantic enable all warnings and checks, abort on warnings], [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_ERROR([Library iberty is required!])]) 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"]) # export macros AC_SUBST(HAVE_DOT) +AC_SUBST(THREADS) AC_SUBST(PACKAGENAME) AC_SUBST(AM_CXXFLAGS) AC_SUBST(AM_CPPFLAGS) @@ -136,10 +154,10 @@ AC_MSG_NOTICE([Pedantic compile mode enabled! - all warnings for GNU g++ are enabled - all warnings result in an error - doxygen warnings are treated as error too]); fi -if test "$with_tracer" != "no"; then -AC_MSG_NOTICE([Verbose tracing is enabled! - - function traces will be printed for all methods in the library - - tracer is: $TRACE]); fi +if test "$with_threads" == "no"; then +AC_MSG_WARN([Multithreading support is disabled! + - use --enable-threads to enable it + - actually, there's only support for automated function trace]); fi if test "$have_log4cxx" != "yes"; then AC_MSG_WARN([Library log4cxx will not be used! - 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 AC_MSG_ERROR([mrw::DynamicLibrary dynamic library loading is disabled! - mrw::StackTrace is disabled without mrw::DynamicLibrary - - install the GNU libtool, if you need mrw::DynamicLibrary]); -fi + - install the GNU libtool, if you need mrw::DynamicLibrary]);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 \ No newline at end of file