]> git.saurik.com Git - wxWidgets.git/blobdiff - configure.in
Cookie is not for dummy initialization due to condition of setting it. Source cleaning.
[wxWidgets.git] / configure.in
index 428278bb376bd75c1bb44c9bf9d067ef7ff60bea..bc996640d0434ede3dc8bfc2993557188e945652 100644 (file)
@@ -417,6 +417,7 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_OPENGL=no
 
   DEFAULT_wxUSE_ON_FATAL_EXCEPTION=no
+  DEFAULT_wxUSE_STACKWALKER=no
   DEFAULT_wxUSE_SNGLINST_CHECKER=no
   DEFAULT_wxUSE_STD_IOSTREAM=no
   DEFAULT_wxUSE_CMDLINE_PARSER=no
@@ -607,6 +608,7 @@ else
   DEFAULT_wxUSE_OPENGL=no
 
   DEFAULT_wxUSE_ON_FATAL_EXCEPTION=yes
+  DEFAULT_wxUSE_STACKWALKER=yes
   DEFAULT_wxUSE_SNGLINST_CHECKER=yes
   DEFAULT_wxUSE_STD_IOSTREAM=no
   DEFAULT_wxUSE_CMDLINE_PARSER=yes
@@ -881,6 +883,7 @@ WX_ARG_ENABLE(ipc,           [  --enable-ipc            use interprocess communi
 dnl please keep the settings below in alphabetical order
 WX_ARG_ENABLE(apple_ieee,    [  --enable-apple_ieee     use the Apple IEEE codec], wxUSE_APPLE_IEEE)
 WX_ARG_ENABLE(catch_segvs,   [  --enable-catch_segvs    catch signals in wxApp::OnFatalException (Unix only)], wxUSE_ON_FATAL_EXCEPTION)
+WX_ARG_ENABLE(backtrace,     [  --enable-backtrace      use wxStackWalker class for getting backtraces], wxUSE_STACKWALKER)
 WX_ARG_ENABLE(cmdline,       [  --enable-cmdline        use wxCmdLineParser class], wxUSE_CMDLINE_PARSER)
 WX_ARG_ENABLE(datetime,      [  --enable-datetime       use wxDateTime class], wxUSE_DATETIME)
 WX_ARG_ENABLE(dialupman,     [  --enable-dialupman      use dialup network classes], wxUSE_DIALUP_MANAGER)
@@ -2081,8 +2084,6 @@ if test "$wxUSE_REGEX" != "no"; then
             AC_DEFINE(WX_NO_REGEX_ADVANCED)
         fi
     fi
-else
-    AC_DEFINE(wxUSE_REGEX, 0)
 fi
 
 dnl ------------------------------------------------------------------------
@@ -2156,8 +2157,6 @@ if test "$wxUSE_ZLIB" != "no" ; then
             wxUSE_ZLIB=sys
         fi
     fi
-else
-    AC_DEFINE(wxUSE_ZLIB, 0)
 fi
 
 dnl ------------------------------------------------------------------------
@@ -2229,8 +2228,6 @@ if test "$wxUSE_LIBPNG" != "no" ; then
     fi
 
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS png"
-else
-    AC_DEFINE(wxUSE_LIBPNG, 0)
 fi
 
 dnl ------------------------------------------------------------------------
@@ -2285,8 +2282,6 @@ if test "$wxUSE_LIBJPEG" != "no" ; then
             fi
         fi
     fi
-else
-    AC_DEFINE(wxUSE_LIBJPEG, 0)
 fi
 
 dnl ------------------------------------------------------------------------
@@ -2328,8 +2323,6 @@ if test "$wxUSE_LIBTIFF" != "no" ; then
             wxUSE_LIBTIFF=sys
         fi
     fi
-else
-    AC_DEFINE(wxUSE_LIBTIFF, 0)
 fi
 
 dnl ------------------------------------------------------------------------
@@ -2377,9 +2370,6 @@ if test "$wxUSE_EXPAT" != "no"; then
         dnl Expat needs this:
         AC_CONFIG_SUBDIRS([src/expat])
     fi
-else
-    AC_DEFINE(wxUSE_EXPAT, 0)
-    AC_DEFINE(wxUSE_XML, 0)
 fi
 
 
@@ -2400,8 +2390,6 @@ fi
 
 if test "$wxUSE_LIBMSPACK" != "no"; then
     AC_DEFINE(wxUSE_LIBMSPACK)
-else
-    AC_DEFINE(wxUSE_LIBMSPACK, 0)
 fi
 
 
@@ -3774,6 +3762,53 @@ if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then
     fi
 fi
 
+dnl backtrace() and backtrace_symbols() for wxStackWalker
+if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+
+    AC_CACHE_CHECK([for backtrace() in <execinfo.h>], wx_cv_func_backtrace,
+        [
+            AC_TRY_COMPILE([#include <execinfo.h>],
+                [
+                    void *trace[1];
+                    char **messages;
+
+                    backtrace(trace, 1);
+                    messages = backtrace_symbols(trace, 1);
+                ],
+                wx_cv_func_backtrace=yes,
+                wx_cv_func_backtrace=no
+            )
+        ]
+    )
+
+
+    if test "$wx_cv_func_backtrace" = "no"; then
+        AC_MSG_WARN([backtrace() is not available, wxStackWalker will not be available])
+        wxUSE_STACKWALKER=no
+    else
+        AC_CACHE_CHECK([for __cxa_demangle() in <cxxabi.h>], wx_cv_func_cxa_demangle,
+            [
+                AC_TRY_COMPILE([#include <cxxabi.h>],
+                    [
+                        int rc;
+                        __cxxabiv1::__cxa_demangle("foo", 0, 0, &rc);
+                    ],
+                    wx_cv_func_cxa_demangle=yes,
+                    wx_cv_func_cxa_demangle=no
+                )
+            ]
+        )
+
+        if test "$wx_cv_func_cxa_demangle" = "yes"; then
+            AC_DEFINE(HAVE_CXA_DEMANGLE)
+        fi
+    fi
+
+    AC_LANG_RESTORE
+fi
+
 dnl check for the function for temp files creation
 AC_CHECK_FUNCS(mkstemp mktemp, break)
 
@@ -4525,8 +4560,6 @@ if test "$wxUSE_GUI" = "yes"; then
     dnl    need the dcs, pens, brushes, ...), this just can't be done now
     dnl 4. menu stuff: wxMenu, wxMenuBar, wxMenuItem
     dnl 5. misc stuff: timers, settings, message box
-else
-    AC_DEFINE(wxUSE_GUI, 0)
 fi
 
 dnl ---------------------------------------------------------------------------
@@ -4735,6 +4768,10 @@ if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
   AC_DEFINE(wxUSE_ON_FATAL_EXCEPTION)
 fi
 
+if test "$wxUSE_STACKWALKER" = "yes"; then
+    AC_DEFINE(wxUSE_STACKWALKER)
+fi
+
 if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then
   AC_DEFINE(wxUSE_SNGLINST_CHECKER)
 fi
@@ -6247,11 +6284,8 @@ else
 
 fi
 
+dnl Check to see if the platform always requires NO_GCC_PRAGMA
 GCC_PRAGMA_FLAGS=""
-dnl Find out if we have to define NO_GCC_PRAGMA and WX_PRECOMP:
-if test $GCC_PCH = 1 ; then
-    GCC_PRAGMA_FLAGS="-DWX_PRECOMP -DNO_GCC_PRAGMA"
-else
     case "${host}" in
         powerpc-*-darwin* )
             dnl Some Apple's GCC version are broken and can't handle the
@@ -6296,8 +6330,18 @@ else
             fi
             ;;
     esac
+
+dnl Find out if we have to define NO_GCC_PRAGMA and WX_PRECOMP:
+PCH_FLAGS=""
+if test $GCC_PCH = 1 ; then
+    if test "x$GCC_PRAGMA_FLAGS" = "x"; then
+        PCH_FLAGS="-DWX_PRECOMP -DNO_GCC_PRAGMA"
+    else
+        PCH_FLAGS="-DWX_PRECOMP"
+    fi
 fi
-CPPFLAGS="$GCC_PRAGMA_FLAGS $CPPFLAGS"
+
+CPPFLAGS="$PCH_FLAGS $GCC_PRAGMA_FLAGS $CPPFLAGS"
 
 
 dnl for convenience, sort the samples in alphabetical order