]> git.saurik.com Git - wxWidgets.git/blobdiff - configure.in
Return correct values for GetFieldRect() when using themes.
[wxWidgets.git] / configure.in
index ebeb21fbc71e670e7b68a2382874fb7d55ba7593..45197844dc12badebc4a48113ed6e7d7d048c8d3 100644 (file)
@@ -17,7 +17,7 @@ dnl ---------------------------------------------------------------------------
 dnl initialization
 dnl ---------------------------------------------------------------------------
 
-AC_INIT([wxWidgets], [2.6.2], [wx-dev@lists.wxwidgets.org])
+AC_INIT([wxWidgets], [2.7.0], [wx-dev@lists.wxwidgets.org])
 
 dnl the file passed to AC_CONFIG_SRCDIR should be specific to our package
 AC_CONFIG_SRCDIR([wx-config.in])
@@ -33,9 +33,9 @@ dnl
 dnl wx_release_number += 1
 
 wx_major_version_number=2
-wx_minor_version_number=6
-wx_release_number=2
-wx_subrelease_number=1
+wx_minor_version_number=7
+wx_release_number=0
+wx_subrelease_number=0
 
 WX_RELEASE=$wx_major_version_number.$wx_minor_version_number
 WX_VERSION=$WX_RELEASE.$wx_release_number
@@ -134,6 +134,10 @@ case "${host}" in
     NEEDS_D_REENTRANT_FOR_R_FUNCS=1
     SO_SUFFIX=sl
     AC_DEFINE(__HPUX__)
+
+    dnl many standard declarations in HP-UX headers are only included if either
+    dnl _HPUX_SOURCE is defined, see stdsyms(5)
+    CPPFLAGS="-D_HPUX_SOURCE $CPPFLAGS"
   ;;
   *-*-linux* )
     USE_LINUX=1
@@ -252,7 +256,6 @@ case "${host}" in
     dnl      USE_UNIX  must be set and not USE_WIN32
     SO_SUFFIX=dll
     PROGRAM_EXT=".exe"
-    RESCOMP=windres
     DEFAULT_DEFAULT_wxUSE_MSW=1
     DEFAULT_STD_FLAG=no
   ;;
@@ -299,8 +302,8 @@ case "${host}" in
     DEFAULT_STD_FLAG=no
   ;;
 
-  powerpc-*-darwin* )
-    dnl PowerPC Darwin based distributions (including Mac OS X)
+  *-*-darwin* )
+    dnl Darwin based distributions (including Mac OS X)
     USE_BSD=1
     USE_DARWIN=1
     SO_SUFFIX=dylib
@@ -411,7 +414,7 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_TEXTBUFFER=no
   DEFAULT_wxUSE_TEXTFILE=no
   DEFAULT_wxUSE_SOUND=no
-  DEFAULT_wxUSE_MEDIACTRL=no  
+  DEFAULT_wxUSE_MEDIACTRL=no
   DEFAULT_wxUSE_INTL=no
   DEFAULT_wxUSE_CONFIG=no
   DEFAULT_wxUSE_FONTMAP=no
@@ -476,6 +479,7 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_MENUS=no
   DEFAULT_wxUSE_MINIFRAME=no
   DEFAULT_wxUSE_HTML=no
+  DEFAULT_wxUSE_RICHTEXT=no
   DEFAULT_wxUSE_XRC=no
   DEFAULT_wxUSE_WEBKIT=no
   DEFAULT_wxUSE_FILESYSTEM=no
@@ -524,6 +528,7 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_TOOLBAR=no
   DEFAULT_wxUSE_TOOLBAR_NATIVE=no
   DEFAULT_wxUSE_TOOLBAR_SIMPLE=no
+  DEFAULT_wxUSE_TREEBOOK=no
   DEFAULT_wxUSE_TREECTRL=no
   DEFAULT_wxUSE_POPUPWIN=no
   DEFAULT_wxUSE_TIPWINDOW=no
@@ -541,7 +546,7 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_XPM=no
   DEFAULT_wxUSE_ICO_CUR=no
   DEFAULT_wxUSE_ACCESSIBILITY=no
-  
+
   DEFAULT_wxUSE_MONOLITHIC=no
   DEFAULT_wxUSE_PLUGINS=no
   DEFAULT_wxUSE_OFFICIAL_BUILD=no
@@ -672,6 +677,7 @@ else
   DEFAULT_wxUSE_MENUS=yes
   DEFAULT_wxUSE_MINIFRAME=yes
   DEFAULT_wxUSE_HTML=yes
+  DEFAULT_wxUSE_RICHTEXT=yes
   DEFAULT_wxUSE_XRC=yes
   DEFAULT_wxUSE_WEBKIT=yes
   DEFAULT_wxUSE_FILESYSTEM=yes
@@ -720,6 +726,7 @@ else
   DEFAULT_wxUSE_TOOLBAR=yes
   DEFAULT_wxUSE_TOOLBAR_NATIVE=yes
   DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes
+  DEFAULT_wxUSE_TREEBOOK=yes
   DEFAULT_wxUSE_TREECTRL=yes
   DEFAULT_wxUSE_POPUPWIN=yes
   DEFAULT_wxUSE_TIPWINDOW=yes
@@ -737,7 +744,7 @@ else
   DEFAULT_wxUSE_XPM=yes
   DEFAULT_wxUSE_ICO_CUR=yes
   DEFAULT_wxUSE_ACCESSIBILITY=no
-  
+
   DEFAULT_wxUSE_MONOLITHIC=no
   DEFAULT_wxUSE_PLUGINS=no
   DEFAULT_wxUSE_OFFICIAL_BUILD=no
@@ -763,7 +770,7 @@ for toolkit in `echo $ALL_TOOLKITS`; do
     has_toolkit_in_cache=1
     eval "DEFAULT_$LINE"
     eval "CACHE_$toolkit=1"
-    
+
     LINE=`grep "wx${toolkit}_VERSION=" ${wx_arg_cache_file}`
     if test "x$LINE" != "x" ; then
         eval "DEFAULT_$LINE"
@@ -782,6 +789,7 @@ dnl ---------------------------------------------------------------------------
 WX_ARG_ENABLE(gui,         [  --enable-gui            use GUI classes], wxUSE_GUI)
 WX_ARG_ENABLE(monolithic,  [  --enable-monolithic     build wxWidgets as single library], wxUSE_MONOLITHIC)
 WX_ARG_ENABLE(plugins,     [  --enable-plugins        build parts of wxWidgets as loadable components], wxUSE_PLUGINS)
+WX_ARG_WITH(subdirs,       [  --without-subdirs       don't generate makefiles for samples/demos/...], wxWITH_SUBDIRS, without)
 
 if test "$wxUSE_GUI" = "yes"; then
 
@@ -853,8 +861,8 @@ WX_ARG_ENABLE(no_exceptions, [  --enable-no_exceptions  create code without C++
 WX_ARG_ENABLE(permissive,    [  --enable-permissive     compile code disregarding strict ANSI], wxUSE_PERMISSIVE)
 WX_ARG_ENABLE(no_deps,       [  --enable-no_deps        create code without dependency information], wxUSE_NO_DEPS)
 
-WX_ARG_ENABLE(compat22,      [  --enable-compat22       enable wxWidgets 2.2 compatibility], WXWIN_COMPATIBILITY_2_2)
-WX_ARG_ENABLE(compat24,      [  --disable-compat24      disable wxWidgets 2.4 compatibility], WXWIN_COMPATIBILITY_2_4, disable)
+WX_ARG_ENABLE(compat24,      [  --enable-compat24       enable wxWidgets 2.4 compatibility], WXWIN_COMPATIBILITY_2_4, enable)
+WX_ARG_ENABLE(compat26,      [  --disable-compat26      disable wxWidgets 2.6 compatibility], WXWIN_COMPATIBILITY_2_6, disable)
 
 WX_ARG_ENABLE(rpath,         [  --disable-rpath         disable use of rpath for uninstalled builds], wxUSE_RPATH)
 
@@ -948,6 +956,7 @@ WX_ARG_ENABLE(loggui,      [  --enable-loggui         use standard GUI logger],
 WX_ARG_ENABLE(logwin,      [  --enable-logwin         use wxLogWindow], wxUSE_LOGWINDOW)
 WX_ARG_ENABLE(logdialog,   [  --enable-logdialog      use wxLogDialog], wxUSE_LOGDIALOG)
 WX_ARG_ENABLE(webkit,      [  --enable-webkit         use wxWebKitCtrl (Mac)], wxUSE_WEBKIT)
+WX_ARG_ENABLE(html,        [  --enable-richtext       use wxRichTextCtrl], wxUSE_RICHTEXT)
 
 dnl ---------------------------------------------------------------------------
 dnl PostScript options
@@ -1021,6 +1030,7 @@ if test "$wxUSE_CONTROLS" = "yes"; then
   DEFAULT_wxUSE_TOOLBAR_NATIVE=yes
   DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes
   DEFAULT_wxUSE_TOOLTIPS=yes
+  DEFAULT_wxUSE_TREEBOOK=yes
   DEFAULT_wxUSE_TREECTRL=yes
   DEFAULT_wxUSE_POPUPWIN=yes
   DEFAULT_wxUSE_TIPWINDOW=yes
@@ -1061,6 +1071,7 @@ elif test "$wxUSE_CONTROLS" = "no"; then
   DEFAULT_wxUSE_TOOLBAR_NATIVE=no
   DEFAULT_wxUSE_TOOLBAR_SIMPLE=no
   DEFAULT_wxUSE_TOOLTIPS=no
+  DEFAULT_wxUSE_TREEBOOK=no
   DEFAULT_wxUSE_TREECTRL=no
   DEFAULT_wxUSE_POPUPWIN=no
   DEFAULT_wxUSE_TIPWINDOW=no
@@ -1104,6 +1115,7 @@ WX_ARG_ENABLE(togglebtn,   [  --enable-togglebtn      use wxToggleButton class],
 WX_ARG_ENABLE(toolbar,     [  --enable-toolbar        use wxToolBar class], wxUSE_TOOLBAR)
 WX_ARG_ENABLE(tbarnative,  [  --enable-tbarnative     use native wxToolBar class], wxUSE_TOOLBAR_NATIVE)
 WX_ARG_ENABLE(tbarsmpl,    [  --enable-tbarsmpl       use wxToolBarSimple class], wxUSE_TOOLBAR_SIMPLE)
+WX_ARG_ENABLE(treebook,    [  --enable-treebook       use wxTreebook class], wxUSE_TREEBOOK)
 WX_ARG_ENABLE(treectrl,    [  --enable-treectrl       use wxTreeCtrl class], wxUSE_TREECTRL)
 WX_ARG_ENABLE(tipwindow,   [  --enable-tipwindow      use wxTipWindow class], wxUSE_TIPWINDOW)
 WX_ARG_ENABLE(popupwin,    [  --enable-popupwin       use wxPopUpWindow class], wxUSE_POPUPWIN)
@@ -1139,10 +1151,14 @@ WX_ARG_ENABLE(mousewheel,  [  --enable-mousewheel     use mousewheel], wxUSE_MOU
 WX_ARG_ENABLE(validators,  [  --enable-validators     use wxValidator and derived classes], wxUSE_VALIDATORS)
 WX_ARG_ENABLE(busyinfo,    [  --enable-busyinfo       use wxBusyInfo], wxUSE_BUSYINFO)
 WX_ARG_ENABLE(joystick,    [  --enable-joystick       use wxJoystick], wxUSE_JOYSTICK)
-WX_ARG_ENABLE(metafile,    [  --enable-metafiles      use wxMetaFile (Windows only)], wxUSE_METAFILE)
+WX_ARG_ENABLE(metafile,    [  --enable-metafiles      use wxMetaFile (Win32 only)], wxUSE_METAFILE)
 WX_ARG_ENABLE(dragimage,   [  --enable-dragimage      use wxDragImage], wxUSE_DRAGIMAGE)
 WX_ARG_ENABLE(accessibility,[  --enable-accessibility  enable accessibility support], wxUSE_ACCESSIBILITY)
 
+if test "$wxUSE_MSW" = "1"; then
+    WX_ARG_ENABLE(dccache, [  --enable-dccache        cache temporary wxDC objects (Win32 only)], wxUSE_DC_CACHEING)
+fi
+
 dnl ---------------------------------------------------------------------------
 dnl support for image formats that do not rely on external library
 dnl ---------------------------------------------------------------------------
@@ -1321,7 +1337,6 @@ if test "$wxUSE_WINE" = "yes"; then
     dnl FIXME: we should do a better job of testing for these
     CC=winegcc
     CXX=wineg++
-    RESCOMP=wrc
     LDFLAGS_GUI="-mwindows"
 fi
 
@@ -1355,24 +1370,6 @@ dnl ---------------------------------------------------------------------------
 dnl flush the cache because checking for programs might abort
 AC_CACHE_SAVE
 
-dnl cross-compiling support: we're cross compiling if the build system is
-dnl different from the target one (assume host and target be always the same)
-if test "$build" != "$host" ; then
-    if test "$USE_WIN32" = 1 -o "$USE_DOS" = 1 -o "$USE_UNIX" = 1; then
-        CC=$host_alias-gcc
-        CXX=$host_alias-c++
-        AR=$host_alias-ar
-        RANLIB=$host_alias-ranlib
-        DLLTOOL=$host_alias-dlltool
-        RESCOMP=$host_alias-windres
-        STRIP=$host_alias-strip
-    elif test "x$CC" '!=' "x"; then
-        echo "You set CC, I assume you know what you are doing."
-    else
-        AC_MSG_ERROR($build_alias -> $host_alias cross compilation not supported yet.)
-    fi
-fi
-
 dnl C-compiler checks
 dnl   defines CC with the compiler to use
 dnl   defines GCC with yes if using gcc
@@ -1410,7 +1407,7 @@ AC_PROG_RANLIB
 
 dnl ar command
 dnl   defines AR with the appropriate command
-AC_CHECK_PROG(AR, ar, ar)
+AC_CHECK_TOOL(AR, ar)
 if test "x$AR" = "x" ; then
     AC_MSG_ERROR([ar is needed to build wxWidgets])
 fi
@@ -1436,7 +1433,7 @@ case "${host}" in
     dnl The other BSD's should probably go in here too, since this is
     dnl to workaround a strange static lib BSDism.
     dnl Mac OS X install seems to ignore -p option...
-    powerpc-*-darwin* )
+    *-*-darwin* )
         INSTALL_PROGRAM="cp -fp"
         INSTALL_DATA="cp -fp"
         ;;
@@ -1445,8 +1442,25 @@ case "${host}" in
 esac
 
 dnl strip command
-dnl   defines STRIP as strip or nothing if not found
-AC_CHECK_PROG(STRIP, strip, strip, true)
+dnl   defines STRIP as strip or nothing (true) if not found
+AC_CHECK_TOOL(STRIP, strip, true)
+
+dnl Win32 tools
+if test "$wxUSE_WINE" = "yes"; then
+    AC_CHECK_TOOL(WINDRES, wrc)
+    RESCOMP="$WINDRES"
+else
+    case "${host}" in
+    *-*-cygwin* | *-*-mingw32* )
+        dnl Bakefile CVS (as of 2005-11-24) now detects windres properly
+        dnl ... maybe it does, but it does not make it available here
+        dnl anymore, so do it ourselves still.
+        AC_CHECK_TOOL(WINDRES, windres)
+        RESCOMP="$WINDRES"
+        AC_CHECK_TOOL(DLLTOOL, dlltool)
+        ;;
+    esac
+fi
 
 dnl does make support "-include" (only GNU make does AFAIK)?
 AC_CACHE_CHECK([if make is GNU make], wx_cv_prog_makeisgnu,
@@ -1511,6 +1525,10 @@ fi dnl not GNU make
 dnl needed for making link to setup.h
 AC_PROG_LN_S
 
+dnl lndir can be used by "make dist" to save copying files
+AC_CHECK_PROGS(LNDIR, lndir, [cp -pR])
+
+
 dnl ------------------------------------------------------------------------
 dnl Platform specific tests
 dnl ------------------------------------------------------------------------
@@ -1518,11 +1536,10 @@ dnl ------------------------------------------------------------------------
 dnl xlC needs -qunique under AIX so that one source file can be
 dnl compiled to multiple object files and safely linked together.
 if test "x$XLCXX" = "xyes" -a "x$USE_AIX" = "x1"; then
-    CXXFLAGS="$CXXFLAGS -qunique"
+    CXXFLAGS="-qunique $CXXFLAGS"
 fi
 
-
-dnl This case is for OS X vs. everything else
+dnl This case is for PowerPC OS X vs. everything else
 case "${host}" in
   powerpc-*-darwin* )
     AC_MSG_CHECKING([if __POWERPC__ is already defined])
@@ -1534,6 +1551,12 @@ case "${host}" in
         [AC_MSG_RESULT([no])
         AC_DEFINE(__POWERPC__)
     ])
+  ;;
+esac
+
+dnl This case is for OS X vs. everything else
+case "${host}" in
+  *-*-darwin* )
     AC_MSG_CHECKING([if CoreFoundation/CFBase.h is usable])
     AC_TRY_COMPILE([#include <CoreFoundation/CFBase.h>
 ],[],
@@ -1546,7 +1569,7 @@ case "${host}" in
         [AC_MSG_RESULT([yes])
         dnl We must use -D so source files that don't include wx/setup.h
         dnl but do include CFBase will work.
-        CPPFLAGS="$CPPFLAGS -D__CF_USE_FRAMEWORK_INCLUDES__"],
+        CPPFLAGS="-D__CF_USE_FRAMEWORK_INCLUDES__ $CPPFLAGS"],
         [AC_MSG_FAILURE([no.  CoreFoundation not available.])]
         )
         ]
@@ -1580,7 +1603,7 @@ case "${host}" in
       dnl wx_cv_gccversion = Innotek6 -> gcc-3.3.5 with Innotek libc6.
       AC_CACHE_CHECK([for gcc/libc version], wx_cv_gccversion,[
           AC_TRY_RUN(
-              dnl Check the gcc version macro.  
+              dnl Check the gcc version macro.
               [
                   #include <stdio.h>
 
@@ -1714,19 +1737,6 @@ case "${host}" in
   ;;
 esac
 
-if test "$wxUSE_GUI" = "yes"; then
-    if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_PM" != 1; then
-        dnl defines HAVE_X11_XKBLIB_H
-        AC_CHECK_HEADERS(X11/Xlib.h)
-        AC_CHECK_HEADERS([X11/XKBlib.h], [], [], 
-                         [
-                          #if HAVE_X11_XLIB_H
-                            #include <X11/Xlib.h>
-                          #endif
-                         ])
-    fi
-fi
-
 dnl ---------------------------------------------------------------------------
 dnl Checks for compiler characteristics
 dnl ---------------------------------------------------------------------------
@@ -1754,7 +1764,7 @@ case "${host}" in
         AC_CHECK_SIZEOF(long long, 0)
         if test "$ac_cv_sizeof_long_long" != "0"; then
             dnl HPUX 10.20 headers need this define in order to use long long definitions
-            CPPFLAGS="$CPPFLAGS -D_INCLUDE_LONGLONG"
+            CPPFLAGS="-D_INCLUDE_LONGLONG $CPPFLAGS"
         fi
     ;;
     * )
@@ -1861,16 +1871,46 @@ dnl sizeof(off_t) in different source files of the same program and linking
 dnl problems
 if test "x$wx_largefile" = "xyes"; then
     if test "x$ac_cv_sys_file_offset_bits" = "x64"; then
-        WX_LARGEFILE_FLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGE_FILES"
+        WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES"
+
+        dnl We get "Large Files (ILP32) not supported in strict ANSI mode."
+        dnl #error from HP standard headers unless __STDC_EXT__ is defined.
+        dnl The compiler should define it automatically, but some old g++
+        dnl versions don't define it, so test and add it if necessary. AFAIK
+        dnl the problem only affects the C++ compiler so it is added to
+        dnl CXXFLAGS only.
+        if test "$USE_HPUX" = 1 -a "$GXX" = "yes"; then
+            AC_CACHE_CHECK(
+                [if -D__STDC_EXT__ is required],
+                wx_cv_STDC_EXT_required,
+                [
+                    AC_LANG_SAVE
+                    AC_LANG_CPLUSPLUS
+                    AC_TRY_COMPILE(
+                        [],
+                        [
+                            #ifndef __STDC_EXT__
+                                choke me
+                            #endif
+                        ],
+                        wx_cv_STDC_EXT_required=no,
+                        wx_cv_STDC_EXT_required=yes
+                    )
+                    AC_LANG_RESTORE
+                ]
+            )
+            if test "x$wx_cv_STDC_EXT_required" = "xyes"; then
+                WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -D__STDC_EXT__"
+            fi
+        fi
     else
-        WX_LARGEFILE_FLAGS="-D_LARGE_FILES"
+        WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_LARGE_FILES"
     fi
     dnl AC_FUNC_FSEEKO sets HAVE_FSEEKO and $ac_cv_sys_largefile_source
     AC_FUNC_FSEEKO
     if test "$ac_cv_sys_largefile_source" != no; then
-        WX_LARGEFILE_FLAGS="$WX_LARGEFILE_FLAGS -D_LARGEFILE_SOURCE=$ac_cv_sys_largefile_source"
+        WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_LARGEFILE_SOURCE=$ac_cv_sys_largefile_source"
     fi
-    CPPFLAGS="$CPPFLAGS $WX_LARGEFILE_FLAGS"
 fi
 
 dnl check for bytesex stuff (don't use AC_C_BIGENDIAN to allow cross-compiling)
@@ -1892,6 +1932,60 @@ AC_CXX_STATIC_CAST
 dnl we don't use HAVE_DYNAMIC_CAST anywhere right now...
 dnl AC_CXX_DYNAMIC_CAST
 
+dnl With Sun CC, temporaries have block scope by default. This flag is needed
+dnl to get the expression scope behaviour that conforms to the standard.
+if test "x$SUNCXX" = xyes; then
+    CXXFLAGS="-features=tmplife $CXXFLAGS"
+fi
+
+dnl Sun X11 headers are (still, in 2005!) non-ANSI and the best they could do
+dnl was to hack their C++ compiler to accept them silently -- but C compiler
+dnl still spits out dozens of warnings for each X include file, so suppress
+dnl them
+if test "x$SUNCC" = xyes; then
+    CFLAGS="-erroff=E_NO_EXPLICIT_TYPE_GIVEN $CFLAGS"
+fi
+
+dnl SGI mipsPro compiler gives this warning for "conversion from pointer to
+dnl same-sized integral type" even when there is an explicit cast and as there
+dnl is no way to turn it off and there are hundreds of these warnings in wx
+dnl sources, just turn it off for now
+dnl
+dnl a better long term solution would be to use #pragma set/reset woff in
+dnl wxPtrToUInt() and use it instead of casts elsewhere
+if test "x$SGICC" = "xyes"; then
+    CFLAGS="-woff 3970 $CFLAGS"
+fi
+if test "x$SGICXX" = "xyes"; then
+    CXXFLAGS="-woff 3970 $CXXFLAGS"
+fi
+
+dnl HP-UX c89/aCC compiler warnings
+if test "x$HPCC" = "xyes"; then
+    dnl 2011: "unrecognized preprocessor directive": nice warning but it's given
+    dnl       even for directives inside #if which is not true (i.e. which are
+    dnl       used for other compilers/OS) and so we have no way to get rid of it
+    dnl 2450: "long long is non standard" -- yes, we know
+    CFLAGS="+W 2011,2450 $CFLAGS"
+fi
+if test "x$HPCXX" = "xyes"; then
+    dnl 2340: "value copied to temporary, reference to temporary used": very
+    dnl       painful as triggered by any occurrence of user-defined conversion
+    CXXFLAGS="+W 2340 $CXXFLAGS"
+fi
+
+dnl DEC/Compaq/HP cxx warnings
+if test "x$COMPAQCXX" = "xyes"; then
+    dnl -w0 enables all warnings, then we disable some of them:
+    dnl basclsnondto: base class dtor non virtual (sometimes we do want this)
+    dnl unrimpret:  "end of routine block may be unreachable" is given for
+    dnl             every "if ( ) return ...; else return ...;"
+    dnl intconlosbit: "conversion to integral type of smaller size could lose
+    dnl               data" this is a useful warning but there are too many of
+    dnl               them for now
+    CXXFLAGS="-w0 -msg_disable basclsnondto,unrimpret,intconlosbit"
+fi
+
 dnl check for std::string or std::wstring
 if test "$wxUSE_STD_STRING" = "yes" -o "$wxUSE_STL" = "yes"; then
     AC_LANG_PUSH(C++)
@@ -1958,7 +2052,7 @@ if test "$wxUSE_STD_IOSTREAM" = "yes"; then
             AC_MSG_WARN([No std::iostreams, switching to --disable-std_iostreams])
         fi
     fi
-    
+
     AC_LANG_POP
 fi
 
@@ -1974,7 +2068,7 @@ if test "$wxUSE_STL" = "yes"; then
                     #include <list>],
                     [std::vector<int> moo;
                      std::list<int> foo;
-                     std::vector<int>::iterator it = 
+                     std::vector<int>::iterator it =
                          std::find_if(moo.begin(), moo.end(),
                                       std::bind2nd(std::less<int>(), 3));],
                     [AC_MSG_RESULT([yes])],
@@ -2043,9 +2137,6 @@ SEARCH_INCLUDE="\
     /usr/Motif-2.1/include    \
     /usr/Motif-1.2/include    \
     /usr/include/Motif1.2     \
-    /opt/xpm/include/X11      \
-    /opt/GBxpm/include/       \
-    /opt/GBxpm/X11/include/   \
                               \
     /usr/dt/include           \
     /usr/openwin/include      \
@@ -2074,42 +2165,69 @@ SEARCH_INCLUDE="\
     /usr/local/X11/include    \
     /usr/local/include/X11    \
                               \
-    /usr/X386/include         \
-    /usr/x386/include         \
     /usr/XFree86/include/X11  \
-                              \
-    X:/XFree86/include        \
-    X:/XFree86/include/X11    \
-                              \
-    /usr/include/gtk          \
-    /usr/local/include/gtk    \
-    /usr/include/glib         \
-    /usr/local/include/glib   \
-                              \
-    /usr/include/qt           \
-    /usr/local/include/qt     \
-                              \
-    /usr/local/arm/3.3.2/include     \
-                              \
-    /usr/include/windows      \
-    /usr/include/wine         \
-    /usr/local/include/wine   \
-                              \
-    /usr/unsupported/include  \
-    /usr/athena/include       \
-    /usr/local/x11r5/include  \
-    /usr/lpp/Xamples/include  \
+    /usr/pkg/include          \
                               \
     /usr/openwin/share/include"
 
-dnl prepend lib and lib32 for IRIX where the files in these directories should
-dnl be found before the ones in lib64 for 32bit compilation -- of course, this
-dnl probably/surely breaks 64bit compilation... IMO the only real solution is to
-dnl stop using WX_PATH_FIND_LIBRARIES() at all and use AC_CHECK_LIB() instead
-dnl
-dnl also put 64 bit versions for Linux on AMD, they must come before the usual
-dnl locations or 64 bit compilation failed
-SEARCH_LIB="/usr/lib /usr/lib32 /usr/lib64 /usr/X11R6/lib64 `echo "$SEARCH_INCLUDE" | sed s/include/lib/g`"
+dnl try to find out the standard lib locations for the systems with multiple
+dnl ABIs
+AC_MSG_CHECKING([for libraries directory])
+
+case "${host}" in
+    *-*-irix6* )
+        AC_CACHE_VAL(
+            wx_cv_std_libpath,
+            [
+                for d in WX_STD_LIBPATH(); do
+                    for e in a so sl dylib dll.a; do
+                        libc="$d/libc.$e"
+                        if test -f $libc; then
+                            save_LIBS="$LIBS"
+                            LIBS="$libc"
+                            AC_LINK_IFELSE([int main() { return 0; }],
+                                wx_cv_std_libpath=`echo $d | sed s@/usr/@@`)
+                            LIBS="$save_LIBS"
+                            if test "x$wx_cv_std_libpath" != "x"; then
+                                break 2
+                            fi
+                        fi
+                    done
+                done
+                if test "x$wx_cv_std_libpath" = "x"; then
+                    wx_cv_std_libpath="lib"
+                fi
+            ]
+        )
+        ;;
+
+    *-*-solaris2* )
+        dnl use ../lib or ../lib/64 depending on the size of void*
+        if test "$ac_cv_sizeof_void_p" = 8 -a -d "/usr/lib/64"; then
+            wx_cv_std_libpath="lib/64"
+        else
+            wx_cv_std_libpath="lib"
+        fi
+        ;;
+
+    *-*-linux* )
+        dnl use ../lib or ../lib64 depending on the size of void*
+        if test "$ac_cv_sizeof_void_p" = 8 -a \
+                -d "/usr/lib64" -a ! -h "/usr/lib64"; then
+            wx_cv_std_libpath="lib64"
+        else
+            wx_cv_std_libpath="lib"
+        fi
+        ;;
+
+    *)
+        wx_cv_std_libpath="lib";
+        ;;
+esac
+
+AC_MSG_RESULT($wx_cv_std_libpath)
+
+SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s@include@$wx_cv_std_libpath@g` /usr/$wx_cv_std_libpath"
 
 dnl Cross compiling with gcc?
 if test "$build" != "$host" -a "$GCC" = yes; then
@@ -2125,6 +2243,7 @@ if test "$build" != "$host" -a "$GCC" = yes; then
         dnl strip out any that don't start '^/usr'.
         SEARCH_LIB=`for x in $SEARCH_LIB; do echo $x; done | sed -ne "s|^/usr|$cross_root|p"`
         SEARCH_INCLUDE=`for x in $SEARCH_INCLUDE; do echo $x; done | sed -ne "s|^/usr|$cross_root|p"`
+        SEARCH_INCLUDE="$SEARCH_INCLUDE $cross_root/include"
 
         dnl also have pkg-config search for *.pc files under this 'root'
         if test -z "$PKG_CONFIG_PATH"; then
@@ -2162,7 +2281,7 @@ if test "$USE_LINUX" = 1 -o "$USE_GNU" = 1; then
         AC_TRY_COMPILE([#include <features.h>],
             [
                 #if (__GLIBC__ < 2) || (__GLIBC_MINOR__ < 1)
-                    #error not glibc2.1
+                not glibc 2.1
                 #endif
             ],
             [
@@ -2218,7 +2337,7 @@ dnl ------------------------------------------------------------------------
 
 if test "$wxUSE_REGEX" != "no"; then
     AC_DEFINE(wxUSE_REGEX)
-            
+
     if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_REGEX" = "yes"; then
         AC_MSG_WARN([Defaulting to the the builtin regex library for Unicode build.])
         wxUSE_REGEX=builtin
@@ -2227,7 +2346,7 @@ if test "$wxUSE_REGEX" != "no"; then
     if test "$wxUSE_REGEX" = "sys" -o "$wxUSE_REGEX" = "yes" ; then
         dnl according to Unix 98 specs, regcomp() is in libc but I believe that
         dnl on some old systems it may be in libregex - check for it too?
-        AC_CHECK_HEADER(regex.h, [AC_CHECK_FUNCS(regcomp)])
+        AC_CHECK_HEADER(regex.h, [AC_CHECK_FUNCS(regcomp re_search)])
 
         if test "x$ac_cv_func_regcomp" != "xyes"; then
             if test "$wxUSE_REGEX" = "sys" ; then
@@ -2503,8 +2622,8 @@ if test "$wxUSE_EXPAT" != "no"; then
     wxUSE_XML=yes
     AC_DEFINE(wxUSE_EXPAT)
     AC_DEFINE(wxUSE_XML)
-    
-    if test "$wxUSE_EXPAT" = "sys" -o "$wxUSE_EXPAT" = "yes" ; then           
+
+    if test "$wxUSE_EXPAT" = "sys" -o "$wxUSE_EXPAT" = "yes" ; then
         AC_CHECK_HEADER([expat.h], [found_expat_h=1])
         if test "x$found_expat_h" = "x1"; then
             dnl Expat 1.95.6 comes with broken expat.h:
@@ -2595,7 +2714,6 @@ if test "$USE_WIN32" = 1 ; then
         *-*-cygwin* )
             dnl Cygwin doesn't include these by default
             LIBS="$LIBS -lkernel32 -luser32"
-            TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WIN95__"
     esac
 
     dnl add extra odbc libs if we have compiled in odbc
@@ -2608,9 +2726,15 @@ if test "$USE_WIN32" = 1 ; then
     fi
     dnl We might want to abort here if wxUSE_ODBC="builtin" isn't supported on msw.
 
+    dnl This one is still used by some sample makefiles.
     RESFLAGS="--include-dir \$(top_srcdir)/include --include-dir \$(top_srcdir)/\$(program_dir) --define __WIN32__ --define __WIN95__ --define __GNUWIN32__"
     RESPROGRAMOBJ="\$(PROGRAM)_resources.o"
 
+    dnl This lot we export to wx-config.  It must add the relevant
+    dnl include directories at the point when they can be known.
+    dnl (but are these (still) required anyway?)
+    WXCONFIG_RESFLAGS="--define __WIN32__ --define __WIN95__ --define __GNUWIN32__"
+
     dnl install Win32-specific files in "make install"
     WIN32INSTALL=win32install
 fi
@@ -2671,8 +2795,32 @@ if test "$wxUSE_GUI" = "yes"; then
 
                 dnl detect GTK2
                 wx_cv_lib_gtk=
-                if test "x$wxGTK_VERSION" != "x1"; then
+                if test "x$wxGTK_VERSION" != "x1"
+                then
+                    dnl The gthread.pc that ships with solaris returns '-mt',
+                    dnl it's correct for Sun CC, but gcc requires '-pthreads'.
+                    dnl So disable the compile check and remove the -mt below.
+                    case "${host}" in
+                        *-*-solaris2* )
+                            if test "$wxUSE_THREADS" = "yes" -a "$GCC" = yes; then
+                            enable_gtktest=no
+                            fi
+                    esac
+
                     AM_PATH_GTK_2_0(2.0.0, wx_cv_lib_gtk=2.0, , $GTK_MODULES)
+
+                    dnl Remove the '-mt' for gcc on solaris
+                    case "${host}" in
+                        *-*-solaris2* )
+                            if test "$wxUSE_THREADS" = "yes" -a "$GCC" = yes; then
+                                GTK_CFLAGS=`echo $GTK_CFLAGS | sed 's/-mt//'`
+                                GTK_LIBS=`echo $GTK_LIBS | sed 's/-mt//'`
+                            fi
+                            dnl solaris also requires -lX11 for static lib
+                            if test "$wxUSE_SHARED" != "yes"; then
+                                GTK_LIBS="$GTK_LIBS -lX11"
+                            fi
+                    esac
                 fi
 
                 dnl detect GTK1.x
@@ -2693,7 +2841,7 @@ if test "$wxUSE_GUI" = "yes"; then
                     dnl we need to cache GTK_CFLAGS and GTK_LIBS for the
                     dnl subsequent runs
                     wx_cv_cflags_gtk=$GTK_CFLAGS
-                    wx_cv_libs_gtk=$GTK_LIBS
+                    wx_cv_libs_gtk=`echo $GTK_LIBS | sed -e 's/ -l[[^ ]]*cairo[[^ ]]*//g'`
                 fi
             ]
         )
@@ -2727,11 +2875,9 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
         if test "$WXGTK20" = 1; then
             save_CFLAGS="$CFLAGS"
             save_LIBS="$LIBS"
-            CFLAGS="$CFLAGS $wx_cv_cflags_gtk"
+            CFLAGS="$wx_cv_cflags_gtk $CFLAGS"
             LIBS="$LIBS $wx_cv_libs_gtk"
 
-            AC_CHECK_FUNCS([pango_font_family_is_monospace])
-
             dnl gtk_icon_size_lookup is not available in the GTK+ headers
             dnl that have shipped with some versions of Sun's JDS. Not using
             dnl AC_CHECK_FUNCS here since it only checks the function exists
@@ -2758,7 +2904,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                            ],
                            [
                             #if !GTK_CHECK_VERSION(2,4,0)
-                            #error "Not GTK+ 2.4"
+                            Not GTK+ 2.4
                             #endif
                            ],
                            [
@@ -2793,8 +2939,8 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
 
         dnl test for XIM support in libgdk
         AC_CHECK_LIB(gdk, gdk_im_open, AC_DEFINE(HAVE_XIM))
-        
-        
+
+
         dnl test for external libxpm if we're configured to use it
         if test "$wxUSE_GPE" = "yes"; then
             AC_MSG_CHECKING(for gpewidget library)
@@ -2805,7 +2951,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                 dnl we guess its path from the prefix
                 GUI_TK_LIBRARY="-L${prefix}/lib -lgpewidget $GUI_TK_LIBRARY"
                 WXGPE=1
-                AC_MSG_RESULT(found at $ac_find_libraries)
+                AC_MSG_RESULT([found in $ac_find_libraries])
             else
                 AC_MSG_RESULT(not found)
             fi
@@ -2815,7 +2961,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
             dnl if test "$ac_find_libraries" != "" ; then
             dnl     WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
             dnl     GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lgpe"
-            dnl     AC_MSG_RESULT(found at $ac_find_libraries)
+            dnl     AC_MSG_RESULT(found in $ac_find_libraries)
             dnl else
             dnl     AC_MSG_RESULT(not found)
             dnl fi
@@ -2925,7 +3071,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
         AC_PATH_XTRA
 
         if test "$no_x" = "yes"; then
-          AC_MSG_ERROR(X11 not found, please use --x-includes and/or --x-libraries options)
+          AC_MSG_ERROR([X11 not found, please use --x-includes and/or --x-libraries options (see config.log for details)])
         fi
 
         dnl for some reason AC_PATH_XTRA seems to add -INONE and -LNONE (and
@@ -2953,7 +3099,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
         if test "$wxUSE_UNICODE" = "yes"; then
                 PKG_CHECK_MODULES(PANGOX, pangox,
                     [
-                        CXXFLAGS="$CXXFLAGS $PANGOX_CFLAGS"
+                        CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS"
                         GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOX_LIBS"
                     ],
                     [
@@ -2962,7 +3108,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                 )
                 PKG_CHECK_MODULES(PANGOFT2, pangoft2,
                     [
-                        CXXFLAGS="$CXXFLAGS $PANGOFT2_CFLAGS"
+                        CXXFLAGS="$PANGOFT2_CFLAGS $CXXFLAGS"
                         GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS"
                     ],
                     [
@@ -2973,7 +3119,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                 PKG_CHECK_MODULES(PANGOXFT, pangoxft,
                     [
                         AC_DEFINE(HAVE_PANGO_XFT)
-                        CXXFLAGS="$CXXFLAGS $PANGOXFT_CFLAGS"
+                        CXXFLAGS="$PANGOXFT_CFLAGS $CXXFLAGS"
                         GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOXFT_LIBS"
                     ],
                     [
@@ -2982,7 +3128,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                 )
                 save_CFLAGS="$CFLAGS"
                 save_LIBS="$LIBS"
-                CFLAGS="$CFLAGS $PANGOX_CFLAGS"
+                CFLAGS="$PANGOX_CFLAGS $CFLAGS"
                 LIBS="$LIBS $PANGOX_LIBS"
                 AC_CHECK_FUNCS([pango_font_family_is_monospace])
                 CFLAGS="$save_CFLAGS"
@@ -3015,6 +3161,9 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
             WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE)
             TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE$ac_path_to_include"
         else
+            save_CFLAGS=$CFLAGS
+            CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
+
             AC_TRY_COMPILE(
                 [
                     #include <Xm/Xm.h>
@@ -3029,46 +3178,51 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                 ],
                 [
                     AC_MSG_RESULT(no)
-                    AC_MSG_ERROR(please set CFLAGS to contain the location of Xm/Xm.h)
+                    AC_MSG_ERROR(please set CPPFLAGS to contain the location of Xm/Xm.h)
                 ]
             )
+
+            CFLAGS=$save_CFLAGS
         fi
 
-        if test "$COMPILED_X_PROGRAM" = 0; then
-            AC_MSG_CHECKING(for Motif/Lesstif library)
-            WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xm)
-            if test "$ac_find_libraries" != "" ; then
-                AC_MSG_RESULT(found at $ac_find_libraries)
 
-                WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY)
-                GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link"
-            else
-                dnl it might happen that we found headers in one of the
-                dnl standard paths but the libs are elsewhere - we do need to
-                dnl try to compile a sample program then here
-                save_CFLAGS=$CFLAGS
-                CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
+        AC_MSG_CHECKING(for Motif/Lesstif library)
+        WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xm)
 
-                AC_TRY_COMPILE(
-                    [
-                        #include <Xm/Xm.h>
-                    ],
-                    [
-                        int version;
-                        version = xmUseVersion;
-                    ],
-                    [
-                        AC_MSG_RESULT(found in default search path)
-                        COMPILED_X_PROGRAM=1
-                    ],
-                    [
-                        AC_MSG_RESULT(no)
-                        AC_MSG_ERROR(please set LDFLAGS to contain the location of libXm)
-                    ]
-                )
+        if test "x$ac_find_libraries" != "x" ; then
+            AC_MSG_RESULT(found in $ac_find_libraries)
 
-                CFLAGS=$save_CFLAGS
-            fi
+            WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY)
+            GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link"
+        else
+            dnl it might happen that we found headers in one of the standard
+            dnl paths but the libs are elsewhere but still in default (linker)
+            dnl path -- try to compile a test program to check for this
+            save_CFLAGS=$CFLAGS
+            CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
+            save_LIBS="$LIBS"
+            LIBS="$GUI_TK_LIBRARY -lXm -lXmu -lXext -lX11"
+
+            AC_TRY_LINK(
+                [
+                    #include <Xm/Xm.h>
+                ],
+                [
+                    int version;
+                    version = xmUseVersion;
+                ],
+                [
+                    AC_MSG_RESULT(found in default search path)
+                    COMPILED_X_PROGRAM=1
+                ],
+                [
+                    AC_MSG_RESULT(no)
+                    AC_MSG_ERROR(please set LDFLAGS to contain the location of libXm)
+                ]
+            )
+
+            CFLAGS=$save_CFLAGS
+            LIBS="$save_LIBS"
         fi
 
         AC_MSG_CHECKING([if we need -lXp and/or -lSM -lICE])
@@ -3082,7 +3236,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                         save_LIBS="$LIBS"
                         LIBS="$GUI_TK_LIBRARY -lXm ${libp} -lXmu -lXext -lXt${libsm_ice} -lX11"
                         save_CFLAGS=$CFLAGS
-                        CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
+                        CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
 
                         AC_TRY_LINK(
                             [
@@ -3116,46 +3270,53 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
             AC_MSG_ERROR([can't link a simple motif program])
         fi
 
+        dnl this seems to be needed under IRIX and shouldn't do any harm
+        dnl elsewhere
+        AC_CHECK_LIB(Sgm, [SgCreateList], [libsgm_link=" -lSgm"])
+
         save_CFLAGS=$CFLAGS
-        CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
-        AC_MSG_CHECKING([for Motif 2])
-        AC_TRY_COMPILE([
-                        #include <Xm/Xm.h>
-                       ],
-                       [
-                        #if XmVersion < 2000
-                        #error "Not Motif 2"
-                        #endif
-                       ],
-                       [
-                        AC_DEFINE(__WXMOTIF20__,1)
-                        AC_MSG_RESULT([found])
-                       ],
-                       [
-                        AC_DEFINE(__WXMOTIF20__,0)
-                        AC_MSG_RESULT([not found])
-                       ])
-
-        AC_MSG_CHECKING([whether Motif is Lesstif])
-        AC_TRY_COMPILE([
-                        #include <Xm/Xm.h>
-                       ],
-                       [
-                        #if !defined(LesstifVersion) || LesstifVersion <= 0
-                        #error "Not Lesstif"
-                        #endif
-                       ],
-                       [
-                        AC_DEFINE(__WXLESSTIF__,1)
-                        AC_MSG_RESULT([yes])
-                       ],
-                       [
-                        AC_DEFINE(__WXLESSTIF__,0)
-                        AC_MSG_RESULT([no])
-                       ])
+        CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
+
+        AC_CACHE_CHECK([for Motif 2],
+            wx_cv_lib_motif2,
+            AC_TRY_COMPILE([
+                            #include <Xm/Xm.h>
+                           ],
+                           [
+                            #if XmVersion < 2000
+                            Not Motif 2
+                            #endif
+                           ],
+                           wx_cv_lib_motif2="yes",
+                           wx_cv_lib_motif2="no"))
+        if test "$wx_cv_lib_motif2" = "yes"; then
+            AC_DEFINE(__WXMOTIF20__,1)
+        else
+            AC_DEFINE(__WXMOTIF20__,0)
+        fi
+
+        AC_CACHE_CHECK([whether Motif is Lesstif],
+            wx_cv_lib_lesstif,
+            AC_TRY_COMPILE([
+                            #include <Xm/Xm.h>
+                           ],
+                           [
+                            #if !defined(LesstifVersion) || LesstifVersion <= 0
+                            Not Lesstif
+                            #endif
+                           ],
+                           wx_cv_lib_lesstif="yes",
+                           wx_cv_lib_lesstif="no")
+        )
+        if test "$wx_cv_lib_lesstif" = "yes"; then
+            AC_DEFINE(__WXLESSTIF__,1)
+        else
+            AC_DEFINE(__WXLESSTIF__,0)
+        fi
+
         CFLAGS=$save_CFLAGS
 
-        GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXm${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11"
+        GUI_TK_LIBRARY="$GUI_TK_LIBRARY${libsgm_link} -lXm${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11"
         TOOLKIT=MOTIF
         GUIDIST=MOTIF_DIST
     fi
@@ -3169,13 +3330,13 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
             if test "$ac_find_libraries" != "" ; then
                 WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
                 GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link"
-                AC_MSG_RESULT(found at $ac_find_libraries)
+                AC_MSG_RESULT(found in $ac_find_libraries)
 
                 AC_CACHE_CHECK([for X11/xpm.h],
                     wx_cv_x11_xpm_h,
                     [
                         save_CFLAGS=$CFLAGS
-                        CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
+                        CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
 
                         AC_TRY_COMPILE(
                             [
@@ -3213,11 +3374,11 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
 
         if test "$wxHAVE_XEXT_LIB" = 1; then
             save_CFLAGS="$CFLAGS"
-            CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
+            CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
 
             AC_MSG_CHECKING([for X11/extensions/shape.h])
             AC_TRY_COMPILE([
-                            #include <X11/Xlib.h> 
+                            #include <X11/Xlib.h>
                             #include <X11/extensions/shape.h>
                            ],
                            [
@@ -3250,10 +3411,10 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
         fi
 
         if test "x$wxUSE_UNIX" = "xyes"; then
-            CPPFLAGS="$CPPFLAGS $CPPFLAGS_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -I/Developer/Headers/FlatCarbon"
+            CPPFLAGS="$CPPFLAGS_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -I/Developer/Headers/FlatCarbon $CPPFLAGS"
         else
             dnl platform.h needs TARGET_CARBON before setup.h
-            CPPFLAGS="$CPPFLAGS $CPPFLAGS_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -DTARGET_CARBON"
+            CPPFLAGS="$CPPFLAGS_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -DTARGET_CARBON $CPPFLAGS"
         fi
 
         TOOLKIT=MAC
@@ -3332,6 +3493,20 @@ dnl ---------------------------------------------------------------------------
 dnl Optional libraries included when system library is not used
 dnl ---------------------------------------------------------------------------
 
+dnl do this after test for X11 above so that we have a chance of finding Xlib.h
+if test "$wxUSE_GUI" = "yes"; then
+    if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_PM" != 1; then
+        dnl defines HAVE_X11_XKBLIB_H
+        AC_CHECK_HEADERS(X11/Xlib.h)
+        AC_CHECK_HEADERS([X11/XKBlib.h], [], [],
+                         [
+                          #if HAVE_X11_XLIB_H
+                            #include <X11/Xlib.h>
+                          #endif
+                         ])
+    fi
+fi
+
 
 dnl ----------------------------------------------------------------
 dnl iODBC support
@@ -3340,7 +3515,7 @@ dnl ----------------------------------------------------------------
 IODBC_C_SRC=""
 
 
-dnl ODBC is handled separately for MSW 
+dnl ODBC is handled separately for MSW
 if test "$TOOLKIT" != "MSW" ; then
 
     if test "$wxUSE_ODBC" = "sys" -o "$wxUSE_ODBC" = "yes" ; then
@@ -3356,7 +3531,7 @@ if test "$TOOLKIT" != "MSW" ; then
                     AC_CHECK_LIB(odbc, SQLAllocEnv, ODBC_LINK=" -lodbc")
                 ])
             ])
-        fi 
+        fi
         if test "x$ODBC_LINK" = "x" ; then
             if test "$wxUSE_ODBC" = "sys" ; then
                 AC_MSG_ERROR([system ODBC library not found! Use --with-odbc=builtin to use built-in version])
@@ -3380,7 +3555,7 @@ if test "$wxUSE_ODBC" != "no" ; then
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db"
 
     dnl is this still necessary?
-    WXODBCFLAG="-D_IODBC_"
+    WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_IODBC_"
 fi
 
 dnl ---------------------------------------------------------------------------
@@ -3410,7 +3585,7 @@ dnl ---------------------------------------------------------------------------
                                  [
                                   GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXxf86vm"
                                  ],
-                                 [], 
+                                 [],
                                  [
                                       #if HAVE_X11_XLIB_H
                                         #include <X11/Xlib.h>
@@ -3419,7 +3594,7 @@ dnl ---------------------------------------------------------------------------
             else
                 AC_MSG_RESULT([no])
             fi
-        
+
         else
             AC_MSG_RESULT([no])
             AC_MSG_WARN([Xinerama not found; disabling wxDisplay])
@@ -3457,7 +3632,7 @@ if test "$wxUSE_OPENGL" = "yes"; then
         if test "$ac_find_includes" != "" ; then
             AC_MSG_RESULT(found in $ac_find_includes)
             WX_INCLUDE_PATH_EXIST($ac_find_includes, $CPPFLAGS)
-            CPPFLAGS="$CPPFLAGS$ac_path_to_include"
+            CPPFLAGS="$ac_path_to_include $CPPFLAGS"
         fi
 
         AC_CHECK_HEADER(GL/gl.h,
@@ -3560,7 +3735,7 @@ if test "$wxUSE_SHARED" = "yes"; then
         if test "$GCC" = yes ; then
             dnl newer versions of gcc need -isystem to compile X headers on
             dnl Solaris (which use old style C syntax)
-            CPPFLAGS="$CPPFLAGS -isystem /usr/openwin/include"
+            CPPFLAGS="-isystem /usr/openwin/include $CPPFLAGS"
 
             dnl gcc may use Sun's ld, in which case -rpath gives a confusing
             dnl error message. We have to try both -Wl,-rpath and -Wl,-R:
@@ -3585,7 +3760,7 @@ if test "$wxUSE_SHARED" = "yes"; then
                             WXCONFIG_RPATH="-Wl,-R,\$libdir"
                         ],[
                             AC_MSG_RESULT([no])
-                        ])                    
+                        ])
                 ])
             LDFLAGS="$saveLdflags"
         else
@@ -3593,8 +3768,8 @@ if test "$wxUSE_SHARED" = "yes"; then
             WXCONFIG_RPATH="-R\$libdir"
         fi
       ;;
-      
-      powerpc-*-darwin* )
+
+      *-*-darwin* )
         install_name_tool=`which install_name_tool`
         if test "$install_name_tool" -a -x "$install_name_tool"; then
             SAMPLES_RPATH_POSTLINK="\$(top_builddir)change-install-names \$(LIBDIRNAME) \$(prefix) \$@"
@@ -3610,16 +3785,18 @@ EOF
             chmod +x change-install-names
         fi
       ;;
-      
+
       *-*-cygwin* | *-*-mingw32* )
-        TOOLCHAIN_DLL_DEFS="${TOOLCHAIN_DLL_DEFS} -DWXUSINGDLL=1"
-       ;;
-      
+        dnl this one shouldn't be used for the library build so put it in a
+        dnl separate variable from WXCONFIG_CPPFLAGS
+        WXCONFIG_ONLY_CPPFLAGS="$WXCONFIG_ONLY_CPPFLAGS -DWXUSINGDLL"
+        ;;
+
       *-*-hpux* )
         SAMPLES_RPATH_FLAG="-Wl,+b,\$(top_builddir)lib"
         WXCONFIG_RPATH="-Wl,+b,\$libdir"
-       ;;
-        
+        ;;
+
     esac
 
     if test $wxUSE_RPATH = "no"; then
@@ -3726,7 +3903,7 @@ if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1; then
     dnl add the resources target for wxMac
     LIBWXMACRES="\$(top_builddir)lib/${WX_RESOURCES_MACOSX_ASCII}"
 
-    AC_CHECK_PROG(RESCOMP, Rez, Rez, /Developer/Tools/Rez)
+    AC_CHECK_PROG(REZ, Rez, Rez, /Developer/Tools/Rez)
     AC_CHECK_PROG(DEREZ, DeRez, DeRez, /Developer/Tools/DeRez)
     AC_CHECK_PROG(SETFILE, SetFile, SetFile, /Developer/Tools/SetFile)
 
@@ -3735,26 +3912,29 @@ if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1; then
     dnl resources are bundled both with shared library and applications
     dnl since the carb resource *must* be included in the application
     if test "$wxUSE_MAC" = 1; then
-        MACRESCOMP="\$(RESCOMP) -d __DARWIN__ -t APPL Carbon.r -o"
-
-        dnl this command is used to implement `wx-config --rezflags` and it is
-        dnl eval'd there so escape any metacharacters inside
-        MACRESWXCONFIG="${RESCOMP} -d __DARWIN__ -t APPL Carbon.r -o"
+        POSTLINK_COMMAND="\$(REZ) -d __DARWIN__ -t APPL Carbon.r -o"
+        RESCOMP="$REZ"
+        WXCONFIG_RESFLAGS="-d __DARWIN__ -t APPL Carbon.r -o"
     else
-        MACRESCOMP="echo -n | \$(RESCOMP) -d __DARWIN__ -t APPL ${LIBWXMACRES} -o"
-        MACRESWXCONFIG="echo -n \\\| ${RESCOMP} -d __DARWIN__ -t APPL \\\${exec_prefix}/lib/${WX_RESOURCES_MACOSX_ASCII} -o"
+        POSTLINK_COMMAND="echo -n | \$(REZ) -d __DARWIN__ -t APPL ${LIBWXMACRES}"
+        RESCOMP="echo -n \| $REZ"
+        WXCONFIG_RESFLAGS="-d __DARWIN__ -t APPL \$libdir/$WX_RESOURCES_MACOSX_ASCII"
     fi
+
 else
     dnl default value is to (silently) do nothing in the makefile
     MACSETFILE="@true"
-    MACRESWXCONFIG="@true"
 
-    dnl confusingly, wxOS2 also uses MACRESCOMP in its post-link step
     if test "$wxUSE_PM" = 1; then
-        MACRESCOMP="emxbind -ep"
+        RESCOMP="emxbind"
+        WXCONFIG_RESFLAGS="-ep"
+
+        dnl Is this one really used anywhere for pm?
+        POSTLINK_COMMAND="$RESCOMP $WXCONFIG_RESFLAGS"
     else
-        MACRESCOMP="@true"
+        POSTLINK_COMMAND="@true"
     fi
+
 fi
 
 
@@ -3883,14 +4063,21 @@ if test "$wxUSE_WCHAR_T" = "yes"; then
         AC_DEFINE(HAVE_WCSLEN)
     fi
 
-    dnl on HP-UX aCC and g++ need this define to find mbstrtowcs() &c
-    if test "$USE_HPUX" = 1; then
-        CPPFLAGS="$CPPFLAGS -D_INCLUDE__STDC_A1_SOURCE "
+    dnl On HP-UX aCC need this define to find mbstrtowcs() &c
+    dnl Can't be used for g++ since the mbstate_t in wchar.h can conflict
+    dnl with g++'s in <cwchar> (unless -D_INCLUDE__STDC_A1_SOURCE is in the
+    dnl flags when g++ is configured, it will declare it's own).
+    if test "$USE_HPUX" = 1 -a "$GCC" != "yes"; then
+        CPPFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CPPFLAGS"
     fi
 
-    dnl try to use wcsrtombs instead of wcstombs which is buggy in old GNU
-    dnl libc versions if possible
-    AC_CHECK_FUNCS(wcsrtombs)
+    dnl Try to use wcsrtombs instead of wcstombs which is buggy in old GNU
+    dnl libc versions if possible. AC_CHECK_FUNCS only checks it's in the
+    dnl library, not the header, so do a header check for mbstate_t first.
+    AC_CHECK_TYPES([mbstate_t],
+                   [AC_CHECK_FUNCS(wcsrtombs)],
+                   [],
+                   [#include <wchar.h>])
 else
     AC_MSG_WARN([Wide character support is unavailable])
 fi
@@ -3903,22 +4090,32 @@ AC_LANG_CPLUSPLUS
 
 dnl check for vsnprintf() -- a safe version of vsprintf())
 dnl
-dnl the trouble here is that on some systems (notable HP-UX) this function is
+dnl the trouble here is that on some systems (e.g HP-UX 10) this function is
 dnl present in libc but not in the system headers and so AC_CHECK_FUNCS (which,
 dnl stupidly, provides a dummy function declaration inside its extension)
 dnl succeeds, even with C++ compiler, but the compilation of wxWidgets fails
 dnl
 dnl so we first check if the function is in the library
-AC_CHECK_FUNCS(vsnprintf)
+AC_CHECK_FUNCS(snprintf vsnprintf)
 
 if test "$ac_cv_func_vsnprintf" = "yes"; then
     dnl yes it is -- now check if it is in the headers
     AC_CACHE_CHECK([for vsnprintf declaration], wx_cv_func_vsnprintf_decl,
         [
+            dnl our troubles are not over: HP-UX 11 prototypes vsnprintf() as
+            dnl taking "char *" and not "const char *" while Metrowerks does
+            dnl provide a correct vsnprintf declaration but in C++ mode it's
+            dnl always in std namespace and so we have to bring it in scope
             AC_TRY_COMPILE(
                 [
                     #include <stdio.h>
                     #include <stdarg.h>
+                    #ifdef __MSL__
+                    #if __MSL__ >= 0x6000
+                    namespace std {}
+                    using namespace std;
+                    #endif
+                    #endif
                 ],
                 [
                     char *buf;
@@ -3926,33 +4123,105 @@ if test "$ac_cv_func_vsnprintf" = "yes"; then
                     vsnprintf(buf, 10u, "%s", ap);
                 ],
                 wx_cv_func_vsnprintf_decl=yes,
-                [
-                    dnl Metrowerks does provide a vsnprintf declaration
-                    dnl but in C++ mode it's always in std namespace.
-                    dnl FIXME: Do we have any UNIX C++ compilers that would
-                    dnl fail this test if using namespace std; was
-                    dnl simply always included?
-                    AC_TRY_COMPILE(
-                        [
-                            #include <stdio.h>
-                            #include <stdarg.h>
-                            using namespace std;
-                        ],
-                        [
-                            char *buf;
-                            va_list ap;
-                            vsnprintf(buf, 10u, "%s", ap);
-                        ],
-                        wx_cv_func_vsnprintf_decl=yes,
-                        wx_cv_func_vsnprintf_decl=no
-                    )
-                ]
+                wx_cv_func_vsnprintf_decl=no
             )
         ]
     )
 
     if test "$wx_cv_func_vsnprintf_decl" = "yes"; then
         AC_DEFINE(HAVE_VSNPRINTF_DECL)
+
+        dnl we know there is a vsnprintf declaration, but some old headers
+        dnl may have one taking a "char *" format instead of "const char *"
+        AC_CACHE_CHECK([if vsnprintf declaration is broken], wx_cv_func_broken_vsnprintf_decl,
+            [
+                AC_TRY_COMPILE(
+                    [
+                        #include <stdio.h>
+                        #include <stdarg.h>
+                        #ifdef __MSL__
+                        #if __MSL__ >= 0x6000
+                        namespace std {}
+                        using namespace std;
+                        #endif
+                        #endif
+                    ],
+                    [
+                        char *buf;
+                        va_list ap;
+                        const char *fmt = "%s";
+                        vsnprintf(buf, 10u, fmt, ap);
+                    ],
+                    wx_cv_func_broken_vsnprintf_decl=no,
+                    wx_cv_func_broken_vsnprintf_decl=yes
+                )
+            ]
+        )
+
+        if test "$wx_cv_func_broken_vsnprintf_decl" = "yes"; then
+            AC_DEFINE(HAVE_BROKEN_VSNPRINTF_DECL)
+        fi
+    fi
+fi
+
+dnl the same as above but for snprintf() now: it's not present in at least AIX
+dnl 4.2 headers
+if test "$ac_cv_func_snprintf" = "yes"; then
+    AC_CACHE_CHECK([for snprintf declaration], wx_cv_func_snprintf_decl,
+        [
+            AC_TRY_COMPILE(
+                [
+                    #include <stdio.h>
+                    #include <stdarg.h>
+                    #ifdef __MSL__
+                    #if __MSL__ >= 0x6000
+                    namespace std {}
+                    using namespace std;
+                    #endif
+                    #endif
+                ],
+                [
+                    char *buf;
+                    snprintf(buf, 10u, "%s", "wx");
+                ],
+                wx_cv_func_snprintf_decl=yes,
+                wx_cv_func_snprintf_decl=no
+            )
+        ]
+    )
+
+    if test "$wx_cv_func_snprintf_decl" = "yes"; then
+        AC_DEFINE(HAVE_SNPRINTF_DECL)
+
+        dnl we know there is an snprintf declaration, but some old headers
+        dnl may have one taking a "char *" format instead of "const char *"
+        AC_CACHE_CHECK([if snprintf declaration is broken], wx_cv_func_broken_snprintf_decl,
+            [
+                AC_TRY_COMPILE(
+                    [
+                        #include <stdio.h>
+                        #include <stdarg.h>
+                        #ifdef __MSL__
+                        #if __MSL__ >= 0x6000
+                        namespace std {}
+                        using namespace std;
+                        #endif
+                        #endif
+                    ],
+                    [
+                        char *buf;
+                        const char *fmt = "%s";
+                        snprintf(buf, 10u, fmt, "wx");
+                    ],
+                    wx_cv_func_broken_snprintf_decl=no,
+                    wx_cv_func_broken_snprintf_decl=yes
+                )
+            ]
+        )
+
+        if test "$wx_cv_func_broken_snprintf_decl" = "yes"; then
+            AC_DEFINE(HAVE_BROKEN_SNPRINTF_DECL)
+        fi
     fi
 fi
 
@@ -4074,7 +4343,7 @@ if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
     AC_LANG_RESTORE
 fi
 
-if test "$wxUSE_STACKWALKER" = "yes" -a "$USE_WIN32" != "1" -a "$USE_UNIX" != "1"; then 
+if test "$wxUSE_STACKWALKER" = "yes" -a "$USE_WIN32" != "1" -a "$USE_UNIX" != "1"; then
     AC_MSG_WARN([wxStackWalker is only available on Win32 and UNIX... disabled])
     wxUSE_STACKWALKER=no
 fi
@@ -4089,10 +4358,10 @@ AC_CACHE_CHECK(for statfs, wx_cv_func_statfs,
     AC_TRY_COMPILE(
         [
              #if defined(__BSD__)
-               #include <sys/param.h>
-               #include <sys/mount.h>
+             #include <sys/param.h>
+             #include <sys/mount.h>
              #else
-               #include <sys/vfs.h>
+             #include <sys/vfs.h>
              #endif
         ],
         [
@@ -4103,16 +4372,39 @@ AC_CACHE_CHECK(for statfs, wx_cv_func_statfs,
              l += fs.f_blocks;
              l += fs.f_bavail;
         ],
-        [
-             wx_cv_func_statfs=yes
-        ],
-        [
-             wx_cv_func_statfs=no
-        ]
+         wx_cv_func_statfs=yes,
+         wx_cv_func_statfs=no
     )
 )
 
 if test "$wx_cv_func_statfs" = "yes"; then
+    dnl check whether we have its dcelaration too: some systems (AIX 4) lack it
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+    AC_CACHE_CHECK(for statfs declaration, wx_cv_func_statfs_decl,
+        AC_TRY_COMPILE(
+            [
+                 #if defined(__BSD__)
+                 #include <sys/param.h>
+                 #include <sys/mount.h>
+                 #else
+                 #include <sys/vfs.h>
+                 #endif
+            ],
+            [
+                struct statfs fs;
+                statfs("", &fs);
+            ],
+            wx_cv_func_statfs_decl=yes,
+            wx_cv_func_statfs_decl=no
+        )
+    )
+    AC_LANG_RESTORE
+
+    if test "$wx_cv_func_statfs_decl" = "yes"; then
+        AC_DEFINE(HAVE_STATFS_DECL)
+    fi
+
     wx_cv_type_statvfs_t="struct statfs"
     AC_DEFINE(HAVE_STATFS)
 else
@@ -4336,7 +4628,6 @@ dnl                          the next matching "else")
 dnl ---------------------------------------------------------------------------
 
 dnl under MSW (except mingw32) we always have thread support
-CPP_MT_FLAG=
 if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
 
     dnl the code below:
@@ -4396,11 +4687,14 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
                 THREAD_OPTS="pthreads"
                 ;;
           *-hp-hpux* )
-                dnl HP-UX aCC only gives a warning, not an error about
-                dnl -pthread but it doesn't work and we have to use -lpthread
-                dnl there
-                if test "x$GCC" != "xyes"; then
-                    THREAD_OPTS=""
+                if test "x$GCC" = "xyes"; then
+                    dnl g++ versions before 3.3.2 don't support -pthread.
+                    $CXX -dumpspecs | grep 'pthread:' >/dev/null ||
+                        THREAD_OPTS=""
+                else
+                    dnl HP-UX aCC (tested with version B3910B A.06.05 [Jul 25
+                    dnl 2005]) supports -mt
+                    THREAD_OPTS="-mt"
                 fi
                 ;;
 
@@ -4507,11 +4801,8 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
               THREADS_CFLAGS="$THREADS_CFLAGS $flag"
           fi
 
-          if test "x$THREADS_CFLAGS" != "x"; then
-            dnl don't add these options to CPPFLAGS as cpp might not know them
-            CFLAGS="$CFLAGS $THREADS_CFLAGS"
-            CXXFLAGS="$CXXFLAGS $THREADS_CFLAGS"
-          fi
+          dnl don't add these options to CPPFLAGS as cpp might not know them
+          WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS $THREADS_CFLAGS"
       fi
     fi
 
@@ -4604,16 +4895,31 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
             [
                pthread_mutexattr_t attr;
                pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
-            ], [
-               wx_cv_type_pthread_mutexattr_t=yes
-            ], [
-               wx_cv_type_pthread_mutexattr_t=no
-            ]
+            ],
+            wx_cv_type_pthread_mutexattr_t=yes,
+            wx_cv_type_pthread_mutexattr_t=no
         )
       ])
 
       if test "$wx_cv_type_pthread_mutexattr_t" = "yes"; then
         AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_T)
+
+        dnl check if we already have the declaration we need, it is not
+        dnl present in some systems' headers
+        AC_CACHE_CHECK([for pthread_mutexattr_settype declaration],
+                       wx_cv_func_pthread_mutexattr_settype_decl, [
+                       AC_TRY_COMPILE([#include <pthread.h>],
+                           [
+                               pthread_mutexattr_t attr;
+                               pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
+                           ],
+                           wx_cv_func_pthread_mutexattr_settype_decl=yes,
+                           wx_cv_func_pthread_mutexattr_settype_decl=no
+                       )
+        ])
+        if test "$wx_cv_func_pthread_mutexattr_settype_decl" = "yes"; then
+            AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_SETTYPE_DECL)
+        fi
       else
         dnl don't despair, there may be another way to do it
         AC_CACHE_CHECK([for PTHREAD_RECURSIVE_MUTEX_INITIALIZER],
@@ -4648,7 +4954,7 @@ else
                 wx_cv_cflags_mthread,
                 [
                     CFLAGS_OLD="$CFLAGS"
-                    CFLAGS="$CFLAGS -mthreads"
+                    CFLAGS="-mthreads $CFLAGS"
                     AC_TRY_COMPILE([], [],
                         wx_cv_cflags_mthread=yes,
                         wx_cv_cflags_mthread=no
@@ -4658,8 +4964,7 @@ else
 
             if test "$wx_cv_cflags_mthread" = "yes"; then
                 dnl it does, use it
-                CXXFLAGS="$CXXFLAGS -mthreads"
-                TOOLCHAIN_DEFS="$TOOLCHAIN_DEFS -mthreads"
+                WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -mthreads"
                 LDFLAGS="$LDFLAGS -mthreads"
             else
                 dnl it doesn't
@@ -4667,14 +4972,48 @@ else
             fi
         ;;
         *-pc-os2*emx )
-            CFLAGS="$CFLAGS -Zmt -D__ST_MT_ERRNO__"
-            CXXFLAGS="$CXXFLAGS -Zmt -D__ST_MT_ERRNO__"
+            WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -Zmt -D__ST_MT_ERRNO__"
+            WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -Zmt -D__ST_MT_ERRNO__"
             LDFLAGS="$LDFLAGS -Zmt"
         ;;
       esac
     fi
 fi
 
+AC_CHECK_FUNC(localtime_r, [ AC_DEFINE(HAVE_LOCALTIME_R) ])
+AC_CHECK_FUNC(gmtime_r, [ AC_DEFINE(HAVE_GMTIME_R) ])
+AC_CHECK_FUNC(readdir_r, [ AC_DEFINE(HAVE_READDIR_R) ])
+dnl By preference, use getaddrinfo which avoids thread safety issues.
+dnl If that is not available, check for gethostbyname_r/gethostbyaddr_r
+dnl and getservbyname_r
+AC_CHECK_FUNC(getaddrinfo, AC_DEFINE(HAVE_GETADDRINFO),
+    dnl no getaddrinfo, so check for gethostbyname_r and
+    dnl related functions (taken from python's configure.in)
+    dnl sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments
+    [ AX_FUNC_WHICH_GETHOSTBYNAME_R
+      if test "x$ac_cv_func_which_gethostbyname_r" = "xno" -o \
+             "x$ac_cv_func_which_gethostbyname_r" = "xunknown" ; then
+          AC_CHECK_FUNC(gethostbyname, [ AC_DEFINE(HAVE_GETHOSTBYNAME) ])
+      fi
+      dnl A similar test for getservbyname_r
+      dnl I'm tempted to just not do this test which is taking much time and
+      dnl do something similar as for gethostbyaddr_r, but OTOH the macro
+      dnl doing the test already exists, so using it is easy enough.     - SN
+      AC_raf_FUNC_WHICH_GETSERVBYNAME_R
+      if test "x$ac_cv_func_which_getservbyname_r" = "xno" -o \
+             "x$ac_cv_func_which_getservbyname_r" = "xunknown" ; then
+          AC_CHECK_FUNCS(getservbyname,[ AC_DEFINE(HAVE_GETSERVBYNAME) ])
+      fi
+      dnl For gethostbyaddr_r, we currently do no separate test, instead, we
+      dnl silently assume it's available exactly if gethostbyname_r is
+      dnl available and always requires two more arguments than
+      dnl gethostbyname_r.
+      dnl (also, I'm lazy and there no m4 file that's ready for use for this
+      dnl  function, although it should be easy to rewrite the gethostbyname_r
+      dnl  check to fit this case, if it's really needed.                - SN )
+    ]
+)
+
 if test "$wxUSE_THREADS" = "yes"; then
   AC_DEFINE(wxUSE_THREADS)
 
@@ -4685,7 +5024,7 @@ else
   if test "$ac_cv_func_strtok_r" = "yes"; then
     AC_MSG_CHECKING(if -D_REENTRANT is needed)
     if test "$NEEDS_D_REENTRANT_FOR_R_FUNCS" = 1; then
-        TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D_REENTRANT"
+        WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_REENTRANT"
         AC_MSG_RESULT(yes)
     else
         AC_MSG_RESULT(no)
@@ -4710,26 +5049,27 @@ if test "$WXGPE" = 1 ; then
   AC_DEFINE_UNQUOTED(__WXGPE__,$WXGPE)
 fi
 
-WXDEBUG=
-
+dnl DEBUG_CFLAGS contains debugging options (supposed to be the same for C and C++
+dnl compilers: we'd need a separate DEBUG_CXXFLAGS if this is ever not the case)
+DEBUG_CFLAGS=
 if test "$wxUSE_DEBUG_INFO" = "yes" ; then
-    WXDEBUG="-g"
+    DEBUG_CFLAGS="-g"
     wxUSE_OPTIMISE=no
 fi
 
 if test "$wxUSE_DEBUG_GDB" = "yes" ; then
     wxUSE_DEBUG_INFO=yes
     if test "$GCC" = yes; then
-        WXDEBUG="-ggdb"
+        DEBUG_CFLAGS="-ggdb"
     fi
 fi
 
 if test "$wxUSE_DEBUG_FLAG" = "yes" ; then
     AC_DEFINE(WXDEBUG)
-    WXDEBUG_DEFINE="-D__WXDEBUG__"
+    WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D__WXDEBUG__"
 else
     if test "$wxUSE_GTK" = 1 ; then
-        WXDEBUG_DEFINE="-DGTK_NO_CHECK_CASTS"
+        CPPFLAGS="-DGTK_NO_CHECK_CASTS $CPPFLAGS"
     fi
 fi
 
@@ -4744,22 +5084,21 @@ if test "$wxUSE_DMALLOC" = "yes" ; then
     DMALLOC_LIBS="-ldmallocthcxx"
 fi
 
-PROFILE=
+dnl cc/cxx/ld option for profiling
+PROFILE_FLAGS=
 if test "$wxUSE_PROFILE" = "yes" ; then
-    PROFILE=" -pg"
+    PROFILE_FLAGS=" -pg"
 fi
 
-CODE_GEN_FLAGS=
-CODE_GEN_FLAGS_CXX=
 if test "$GCC" = "yes" ; then
     if test "$wxUSE_NO_RTTI" = "yes" ; then
-        CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fno-rtti"
+        WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fno-rtti"
     fi
     if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
-        CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fno-exceptions"
+        WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fno-exceptions"
     fi
     if test "$wxUSE_PERMISSIVE" = "yes" ; then
-        CODE_GEN_FLAGS="$CODE_GEN_FLAGS -fpermissive"
+        WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -fpermissive"
     fi
 
     dnl Ian Brown <ian.brown@printsoft.de> reports that versions of gcc before
@@ -4775,33 +5114,27 @@ if test "$GCC" = "yes" ; then
     dnl TODO: test for the gcc version here (how?)
     case "${host}" in
       powerpc*-*-aix* )
-        CODE_GEN_FLAGS="$CODE_GEN_FLAGS -mminimal-toc"
+        WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -mminimal-toc"
         ;;
       *-hppa* )
-        CODE_GEN_FLAGS="$CODE_GEN_FLAGS -ffunction-sections"
+        WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -ffunction-sections"
         ;;
     esac
 fi
 
-OPTIMISE=
+dnl C/C++ compiler option for optimization (supposed to be the same for both)
+OPTIMISE_CFLAGS=
 if test "$wxUSE_OPTIMISE" = "no" ; then
     if test "$GCC" = yes ; then
         dnl use -O0 because compiling with it is faster than compiling with no
         dnl optimization options at all (at least with g++ 3.2)
-        OPTIMISE="-O0"
+        OPTIMISE_CFLAGS="-O0"
     fi
 else
     if test "$GCC" = yes ; then
-        OPTIMISE="-O2"
-
-        dnl VZ: does anybody know what does this do??
-        case "${host}" in
-            i586-*-*|i686-*-* )
-            OPTIMISE="${OPTIMISE} "
-        ;;
-        esac
+        OPTIMISE_CFLAGS="-O2"
     else
-        OPTIMISE="-O"
+        OPTIMISE_CFLAGS="-O"
     fi
 fi
 
@@ -4809,14 +5142,14 @@ dnl ---------------------------------------------------------------------------
 dnl compatibility level
 dnl ---------------------------------------------------------------------------
 
-if test "x$WXWIN_COMPATIBILITY_2_2" = "xyes"; then
-    AC_DEFINE(WXWIN_COMPATIBILITY_2_2)
+if test "x$WXWIN_COMPATIBILITY_2_4" = "xyes"; then
+    AC_DEFINE(WXWIN_COMPATIBILITY_2_4)
 
-    WXWIN_COMPATIBILITY_2_4="yes"
+    WXWIN_COMPATIBILITY_2_6="yes"
 fi
 
-if test "x$WXWIN_COMPATIBILITY_2_4" != "xno"; then
-    AC_DEFINE(WXWIN_COMPATIBILITY_2_4)
+if test "x$WXWIN_COMPATIBILITY_2_6" != "xno"; then
+    AC_DEFINE(WXWIN_COMPATIBILITY_2_6)
 fi
 
 dnl ---------------------------------------------------------------------------
@@ -4968,8 +5301,41 @@ fi
 dnl Unix implementation needs additional checks because audio support
 dnl comes in many favours:
 if test "$USE_UNIX" = "1" ; then
-    AC_CHECK_HEADERS([sys/soundcard.h],,
-                     [DISABLED_CONTRIB="$DISABLED_CONTRIB mmedia"])
+    dnl it's not enough to check for just the header because OSS under NetBSD
+    dnl redefines ioctl as oss_ioctrl inside it and so we also need to test
+    dnl whether we need -lossaudio at link-time
+    AC_CACHE_CHECK([for ioctl() in sys/soundcard.h], ac_cv_header_sys_soundcard, [
+        AC_TRY_LINK([
+                #include <sys/soundcard.h>
+            ],
+            [
+                ioctl(0, SNDCTL_DSP_SYNC, 0);
+            ],
+            ac_cv_header_sys_soundcard=yes,
+            [
+                saveLibs="$LIBS"
+                LIBS="$saveLibs -lossaudio"
+                AC_TRY_LINK([
+                        #include <sys/soundcard.h>
+                    ],
+                    [
+                        ioctl(0, SNDCTL_DSP_SYNC, 0);
+                    ],
+                    ac_cv_header_sys_soundcard=yes,
+                    [
+                        LIBS="$saveLibs"
+                        ac_cv_header_sys_soundcard=no
+                    ]
+                )
+            ]
+        )
+    ])
+
+    if test "$ac_cv_header_sys_soundcard" = "yes"; then
+        AC_DEFINE(HAVE_SYS_SOUNDCARD_H)
+    else
+        DISABLED_CONTRIB="$DISABLED_CONTRIB mmedia"
+    fi
 fi
 WITH_PLUGIN_SDL=0
 if test "$wxUSE_SOUND" = "yes"; then
@@ -4978,7 +5344,7 @@ if test "$wxUSE_SOUND" = "yes"; then
       AM_PATH_SDL([1.2.0],
                   [
                     EXTRALIBS_SDL="$SDL_LIBS"
-                    CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
+                    CXXFLAGS="$SDL_CFLAGS $CXXFLAGS"
                     AC_DEFINE(wxUSE_LIBSDL)
                   ],
                   [wxUSE_LIBSDL="no"])
@@ -4987,7 +5353,7 @@ if test "$wxUSE_SOUND" = "yes"; then
       fi
     fi
   fi
+
   AC_DEFINE(wxUSE_SOUND)
   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sound"
 fi
@@ -4995,12 +5361,12 @@ fi
 if test "$WXGTK20" = 1; then
     if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
         if test "$wxUSE_LIBGNOMEPRINT" = "yes" ; then
-        
-                PKG_CHECK_MODULES(LIBGNOMEPRINTUI, 
+
+                PKG_CHECK_MODULES(LIBGNOMEPRINTUI,
                                   [libgnomeprintui-2.2 >= 2.8],
                     [
 dnl                     EXTRALIBS_GNOMEPRINT="$LIBGNOMEPRINTUI_LIBS"
-                        CXXFLAGS="$CXXFLAGS $LIBGNOMEPRINTUI_CFLAGS"
+                        CXXFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CXXFLAGS"
                         AC_DEFINE(wxUSE_LIBGNOMEPRINT)
                     ],
                     [
@@ -5165,11 +5531,34 @@ fi
 
 dnl ---------------------------------------------------------------------------
 dnl time/date functions
-dnl ------------------------------------------------------------------------
+dnl ---------------------------------------------------------------------------
 
 if test "$wxUSE_DATETIME" = "yes"; then
-    dnl check for strptime
+    dnl check for strptime and for its declaration as some systems lack it
     AC_CHECK_FUNCS(strptime)
+    if test "$ac_cv_func_strptime" = "yes"; then
+        AC_CACHE_CHECK([for strptime declaration], wx_cv_func_strptime_decl,
+            [
+                AC_LANG_SAVE
+                AC_LANG_CPLUSPLUS
+                AC_TRY_COMPILE(
+                    [
+                        #include <time.h>
+                    ],
+                    [
+                        struct tm t;
+                        strptime("foo", "bar", &t);
+                    ],
+                    wx_cv_func_strptime_decl=yes,
+                    wx_cv_func_strptime_decl=no
+                )
+                AC_LANG_RESTORE
+            ]
+        )
+    fi
+    if test "$wx_cv_func_strptime_decl" = "yes"; then
+        AC_DEFINE(HAVE_STRPTIME_DECL)
+    fi
 
     dnl check for timezone variable
     dnl   doesn't exist under Darwin / Mac OS X which uses tm_gmtoff instead
@@ -5367,9 +5756,9 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
                         dnl converting between incompatible pointer types, so
                         dnl try to use it to get the correct behaviour at
                         dnl least with gcc (otherwise we'd always use size_t)
-                        CFLAGS_OLD="$CFLAGS"
+                        CXXFLAGS_OLD="$CXXFLAGS"
                         if test "$GCC" = yes ; then
-                            CFLAGS="$CFLAGS -Werror"
+                            CXXFLAGS="-Werror $CXXFLAGS"
                         fi
 
                         AC_TRY_COMPILE(
@@ -5396,7 +5785,7 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
                             )
                         )
 
-                        CFLAGS="$CFLAGS_OLD"
+                        CXXFLAGS="$CXXFLAGS_OLD"
                     ]
                 )
             ])
@@ -5405,7 +5794,7 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
             wxUSE_SOCKETS=no
             AC_MSG_WARN([Couldn't find socklen_t synonym for this system])
         else
-            AC_DEFINE_UNQUOTED(SOCKLEN_T, $wx_cv_type_getsockname3)
+            AC_DEFINE_UNQUOTED(WX_SOCKLEN_T, $wx_cv_type_getsockname3)
         fi
         dnl Do this again for getsockopt as it may be different
         AC_CACHE_CHECK([what is the type of the fifth argument of getsockopt],
@@ -5428,9 +5817,9 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
                         dnl converting between incompatible pointer types, so
                         dnl try to use it to get the correct behaviour at
                         dnl least with gcc (otherwise we'd always use size_t)
-                        CFLAGS_OLD="$CFLAGS"
+                        CXXFLAGS_OLD="$CXXFLAGS"
                         if test "$GCC" = yes ; then
-                            CFLAGS="$CFLAGS -Werror"
+                            CXXFLAGS="-Werror $CXXFLAGS"
                         fi
 
                         AC_TRY_COMPILE(
@@ -5457,7 +5846,7 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
                             )
                         )
 
-                        CFLAGS="$CFLAGS_OLD"
+                        CXXFLAGS="$CXXFLAGS_OLD"
                     ]
                 )
             ])
@@ -5498,7 +5887,7 @@ if test "$wxUSE_PROTOCOL" = "yes"; then
     fi
 else
     if test "$wxUSE_FS_INET" = "yes"; then
-        AC_MSG_WARN([HTTP filesystem require protocol classes... disabled])   
+        AC_MSG_WARN([HTTP filesystem require protocol classes... disabled])
         wxUSE_FS_INET="no"
     fi
 fi
@@ -5553,7 +5942,7 @@ if test "$wxUSE_GUI" = "yes" -a "$wxUSE_JOYSTICK" = "yes"; then
         AC_DEFINE(wxUSE_JOYSTICK)
         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest"
     else
-        AC_MSG_WARN(Joystick not supported by this system... disabled)           
+        AC_MSG_WARN(Joystick not supported by this system... disabled)
     fi
 fi
 
@@ -5661,6 +6050,17 @@ if test "$wxUSE_PROLOGIO" = "yes" -o  "$wxUSE_RESOURCES" = "yes"; then
     AC_MSG_ERROR([wxExpr and old-style resources are now available in contrib only])
 fi
 
+dnl ---------------------------------------------------------------------------
+dnl wxMetafile availability
+dnl ---------------------------------------------------------------------------
+
+if test "$wxUSE_METAFILE" = "yes"; then
+    if test "$wxUSE_MSW" != 1 -a "$wxUSE_MAC" != 1 -a "$wxUSE_PM" != 1; then
+        AC_MSG_WARN([wxMetafile is not available on this system... disabled])
+        wxUSE_METAFILE=no
+    fi
+fi
+
 dnl ---------------------------------------------------------------------------
 dnl IPC: IPC, Drag'n'Drop, Clipboard, ...
 dnl ---------------------------------------------------------------------------
@@ -5684,7 +6084,7 @@ if test "$USE_WIN32" = 1 -a \( "$wxUSE_DATAOBJ"       = "yes" \
                            [],
                            [AC_MSG_RESULT(no)],
                            [AC_MSG_RESULT(yes)
-                            CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fvtable-thunks"])
+                            WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fvtable-thunks"])
             AC_LANG_RESTORE
             LIBS=" -lrpcrt4 -loleaut32 -lole32 -luuid$LIBS"
             if test "$wxUSE_OLE" = "yes" ; then
@@ -6042,6 +6442,11 @@ if test "$wxUSE_TOOLTIPS" = "yes"; then
     fi
 fi
 
+if test "$wxUSE_TREEBOOK" = "yes"; then
+    AC_DEFINE(wxUSE_TREEBOOK)
+    USES_CONTROLS=1
+fi
+
 if test "$wxUSE_TREECTRL" = "yes"; then
     if test "$wxUSE_IMAGLIST" = "yes"; then
         AC_DEFINE(wxUSE_TREECTRL)
@@ -6098,6 +6503,10 @@ if test "$wxUSE_ACCESSIBILITY" = "yes"; then
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS access"
 fi
 
+if test "$wxUSE_DC_CACHEING" = "yes"; then
+    AC_DEFINE(wxUSE_DC_CACHEING)
+fi
+
 if test "$wxUSE_DRAGIMAGE" = "yes"; then
     AC_DEFINE(wxUSE_DRAGIMAGE)
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dragimag"
@@ -6124,7 +6533,7 @@ fi
 if test "$wxUSE_WEBKIT" = "yes"; then
     if test "$wxUSE_MAC" = 1 -a "$USE_DARWIN" = 1; then
         old_CPPFLAGS="$CPPFLAGS"
-        CPPFLAGS="$CPPFLAGS -x objective-c++"
+        CPPFLAGS="-x objective-c++ $CPPFLAGS"
         AC_CHECK_HEADER([WebKit/HIWebView.h],
                         [
                            AC_DEFINE(wxUSE_WEBKIT)
@@ -6196,6 +6605,13 @@ if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_UNICODE_MSLU" = "yes" ; then
   LIBS=" -lunicows $LIBS"
 fi
 
+USE_RICHTEXT=0
+if test "$wxUSE_RICHTEXT" = "yes"; then
+    AC_DEFINE(wxUSE_RICHTEXT)
+    USE_RICHTEXT=1
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS richtext"
+fi
+
 dnl ---------------------------------------------------------------------------
 dnl wxImage options
 dnl ---------------------------------------------------------------------------
@@ -6299,29 +6715,29 @@ if test "$wxUSE_WIZARDDLG" = "yes"; then
 fi
 
 dnl ---------------------------------------------------------------------------
-dnl wxMediaCtrl 
+dnl wxMediaCtrl
 dnl ---------------------------------------------------------------------------
 
 if test "$wxUSE_MEDIACTRL" = "yes"; then
     dnl -----------------------------------------------------------------------
-    dnl GStreamer 
+    dnl GStreamer
     dnl -----------------------------------------------------------------------
     if test "$wxUSE_GTK" = 1; then
         wxUSE_GSTREAMER="yes"
-        
+
         dnl -------------------------------------------------------------------
         dnl Test for gstreamer module from pkg-config
         dnl -------------------------------------------------------------------
         PKG_CHECK_MODULES(GSTREAMER, gstreamer-0.8,
         [
-            CPPFLAGS="$CPPFLAGS $GSTREAMER_CFLAGS"
+            CPPFLAGS="$GSTREAMER_CFLAGS $CPPFLAGS"
             LIBS="$LIBS $GSTREAMER_LIBS -lgstplay-0.8"
         ],
         [
             AC_MSG_WARN([GStreamer installation not found])
             wxUSE_GSTREAMER="no"
         ])
-        
+
         dnl -------------------------------------------------------------------
         dnl Perform a check for a GStreamer element using gst-inspect
         dnl Thomas Vander Stichele <thomas at apestaart dot org>
@@ -6334,7 +6750,7 @@ if test "$wxUSE_MEDIACTRL" = "yes"; then
         if test "x$GST_INSPECT" == "x"; then
             AC_CHECK_PROG(GST_INSPECT, gst-inspect, gst-inspect, [])
         fi
-        
+
         if test "x$GST_INSPECT" != "x"; then
             AC_MSG_CHECKING(GStreamer element $1)
             if [ $GST_INSPECT $1 > /dev/null 2> /dev/null ]; then
@@ -6346,36 +6762,36 @@ if test "$wxUSE_MEDIACTRL" = "yes"; then
             fi
         fi
         ])
-        
+
         dnl -------------------------------------------------------------------
         dnl Test for x video sink (video useless without)
         dnl -------------------------------------------------------------------
-        AM_GST_ELEMENT_CHECK(xvimagesink,[], 
+        AM_GST_ELEMENT_CHECK(xvimagesink,[],
                         [
                             wxUSE_GSTREAMER="no"
                             AC_MSG_WARN([x video sink not found - cannot use GStreamer])
                         ])
-                            
+
         dnl -------------------------------------------------------------------
         dnl Check for gstplay-0.8 lib and corresponding x overlay header
-        dnl -------------------------------------------------------------------        
-        AC_CHECK_HEADER(gst/xoverlay/xoverlay.h, [], 
+        dnl -------------------------------------------------------------------
+        AC_CHECK_HEADER(gst/xoverlay/xoverlay.h, [],
                         [
                             wxUSE_GSTREAMER="no"
                             AC_MSG_WARN([xoverlay header not found, cannot use GStreamer])
                         ],
                         [#include <gst/gst.h>])
-        
+
         AC_MSG_CHECKING([for gstplay 0.8])
-        WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],gstplay-0.8)           
-        
+        WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],gstplay-0.8)
+
         if test "$ac_find_libraries" = "" ; then
             AC_MSG_RESULT([no])
             wxUSE_GSTREAMER="no"
         else
-            AC_MSG_RESULT([yes])        
+            AC_MSG_RESULT([yes])
         fi
-        
+
         if test "$wxUSE_GSTREAMER" = "yes"; then
             AC_DEFINE(wxUSE_GSTREAMER)
             AC_MSG_RESULT([GStreamer detection successful])
@@ -6553,28 +6969,70 @@ else
 fi
 
 
-dnl all -I options we must pass to the compiler
+dnl C/C++ compiler options used to compile wxWidgets
+dnl
+dnl check for icc before gcc as icc is also recognized as gcc
+if test "x$INTELCC" = "xyes" ; then
+    dnl Warnings which can't be easily suppressed in C code are disabled:
+    dnl
+    dnl     remark #810: conversion from "x" to "y" may lose significant bits
+    dnl     remark #869: parameter "foo" was never referenced
+    dnl     remark #1572: floating-point equality and inequality comparisons
+    dnl                   are unreliable
+    dnl     remark #1684: conversion from pointer to same-sized integral type
+    dnl
+    dnl (for others see below)
+    CWARNINGS="-Wall -wd810,869,981,1418,1572,1684"
+elif test "$GCC" = yes ; then
+    CWARNINGS="-Wall -Wundef"
+fi
+
+if test "x$INTELCXX" = "xyes" ; then
+    dnl Intel compiler gives some warnings which simply can't be worked
+    dnl around or of which we have too many (810, 869) so it's impractical to
+    dnl keep them enabled even if in theory it would be nice and some others
+    dnl (279) are generated for standard macros and so there is nothing we can
+    dnl do about them
+    dnl
+    dnl     remark #279: controlling expression is constant
+    dnl     remark #383: value copied to temporary, reference to temporary used
+    dnl     remark #444: destructor for base class "xxx" is not virtual
+    dnl     remark #810: conversion from "x" to "y" may lose significant bits
+    dnl     remark #869: parameter "foo" was never referenced
+    dnl     remark #981: operands are evaluated in unspecified order
+    dnl     remark #1418: external definition with no prior declaration
+    dnl     remark #1419: external declaration in primary source file
+    CXXWARNINGS="-Wall -wd279,383,444,810,869,981,1418,1419"
+elif test "$GXX" = yes ; then
+    dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
+    CXXWARNINGS="-Wall -Wundef -Wno-ctor-dtor-privacy"
+fi
+
+
+dnl combine everything together and remove the extra white space while doing it
+WXCONFIG_CFLAGS=`echo $WXCONFIG_CFLAGS`
+WXCONFIG_CXXFLAGS=`echo $WXCONFIG_CFLAGS $WXCONFIG_CXXFLAGS`
+
+
+dnl add -I options we use during library compilation
 dnl
 dnl note that the order is somewhat important: wxWidgets headers should
 dnl come first and the one with setup.h should be before $(top_srcdir)/include
 dnl in case the latter contains setup.h used by non-autoconf makefiles (e.g.
 dnl CodeWarrior):
-INCLUDES="-I\${top_builddir}lib/wx/include/${TOOLCHAIN_FULLNAME} \
--I\${top_srcdir}/include $TOOLKIT_INCLUDE"
+CPPFLAGS=`echo $WXCONFIG_CPPFLAGS \
+ -I\\${top_builddir}lib/wx/include/${TOOLCHAIN_FULLNAME} \
+ -I\\${top_srcdir}/include $TOOLKIT_INCLUDE \
+ $CPPFLAGS `
 
-dnl C/C++ compiler options used to compile wxWidgets
-if test "$GXX" = yes ; then
-    dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
-    CWARNINGS="-Wall -Wundef"
-    CXXWARNINGS="$CWARNINGS -Wno-ctor-dtor-privacy" 
-fi
+C_AND_CXX_FLAGS="$DEBUG_CFLAGS $PROFILE_FLAGS $OPTIMISE_CFLAGS"
+CFLAGS=`echo $WXCONFIG_CFLAGS $CWARNINGS $C_AND_CXX_FLAGS $CFLAGS `
+CXXFLAGS=`echo $WXCONFIG_CXXFLAGS $CXXWARNINGS $C_AND_CXX_FLAGS $CXXFLAGS `
 
-EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG $PROFILE $OPTIMISE"
+dnl now that we added WXCONFIG_CPPFLAGS to CPPFLAGS we can add the wx-config
+dnl only stuff to it
+WXCONFIG_CPPFLAGS=`echo $WXCONFIG_CPPFLAGS $WXCONFIG_ONLY_CPPFLAGS`
 
-dnl remove the extra white space from the cc/c++/ld options
-CPPFLAGS=`echo $WXDEBUG_DEFINE $INCLUDES $CPPFLAGS`
-CFLAGS=`echo $CODE_GEN_FLAGS $EXTRA_CFLAGS $CFLAGS $CWARNINGS`
-CXXFLAGS=`echo $CODE_GEN_FLAGS $CODE_GEN_FLAGS_CXX $EXTRA_CFLAGS $CXXFLAGS $CXXWARNINGS`
 
 if test "x$MWCC" = "xyes"; then
     dnl Correct MW 8.3 to be more similar to GCC.  In particular we
@@ -6603,17 +7061,10 @@ fi
 if test "$wxUSE_OPENGL" = "yes"; then
     EXTRALIBS_OPENGL="$LDFLAGS_GL $OPENGL_LIBS"
 fi
-    
-LDFLAGS="$LDFLAGS $PROFILE"
 
-dnl wxGTK does not need TOOLKIT includes in wx-config
-if test "$wxUSE_GTK" = 1; then
-    WXCONFIG_INCLUDE=
-else
-    WXCONFIG_INCLUDE="$TOOLKIT_INCLUDE"
-fi
+LDFLAGS="$LDFLAGS $PROFILE_FLAGS"
 
-WXCONFIG_EXTRALIBS="$LIBS"
+WXCONFIG_LIBS="$LIBS"
 
 dnl wx-config must output builtin 3rd party libs in --libs in static build:
 if test "$wxUSE_REGEX" = "builtin" ; then
@@ -6639,7 +7090,7 @@ if test "$wxUSE_ZLIB" = "builtin" ; then
 fi
 
 for i in $wxconfig_3rdparty ; do
-    WXCONFIG_EXTRALIBS="-lwx${i}${lib_debug_suffix}${WX_LIB_FLAVOUR}-${WX_RELEASE}${HOST_SUFFIX} $WXCONFIG_EXTRALIBS"
+    WXCONFIG_LIBS="-lwx${i}${lib_debug_suffix}${WX_LIB_FLAVOUR}-${WX_RELEASE}${HOST_SUFFIX} $WXCONFIG_LIBS"
 done
 
 
@@ -6737,10 +7188,6 @@ fi
 
 AC_BAKEFILE([m4_include(autoconf_inc.m4)])
 
-if test "$wxUSE_WINE" = "yes"; then
-    RESCOMP=wrc
-fi
-
 if test "$wxUSE_SHARED" = "yes"; then
 
     dnl We get the shared build linker from bakefile, since it
@@ -6779,77 +7226,15 @@ if test "$wxUSE_OMF" = "yes"; then
     esac
 fi
 
-dnl According to Vaclav, if NO_GCC_PRAGMA is used for any reason it needs to
-dnl be in wx-config output.  Not doing so could result in link problems.
-GCC_PRAGMA_FLAGS=""
-PCH_FLAGS=""
-
-dnl Find out if we have to define WX_PRECOMP (and thus NO_GCC_PRAGMA)
+dnl find out if the compiler supports PCH
+dnl
+dnl TODO: this should be in bakefile
 if test $GCC_PCH = 1 ; then
-    PCH_FLAGS="-DWX_PRECOMP"
-    GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA"
-else
-    dnl Find out if we have to define NO_GCC_PRAGMA
-    if test "$GCC" = yes; then
-        AC_MSG_CHECKING([if this GCC version is >= 4.0 and needs -DNO_GCC_PRAGMA])
-        AC_TRY_COMPILE([],
-            [#if (__GNUC__ < 4)
-             #error "Not GCC 4.0 or greater"
-             #endif
-            ],
-            [GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA"
-             AC_MSG_RESULT([yes])],
-            [AC_MSG_RESULT([no])
-            case "${host}" in
-                powerpc-*-darwin* )
-                    dnl Some Apple's GCC version are broken and can't handle the
-                    dnl pragmas:
-                    GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA"
-                ;;
-                *-*-mingw32* )
-                    dnl MinGW GCC versions > 3.2 have problems with
-                    dnl static member of classes derived from templates
-                    dnl in combination with #pragma interface/implementation
-                    dnl (the test case uses 4 files)
-                    dnl ... and with exceptions handling (undefined symbols needed
-                    dnl to correctly calls dtors when unwinding) as well
-                    if test "$wxUSE_STL" = "yes" -o \
-                    "$wxUSE_NO_EXCEPTIONS" != "yes" -o \
-                    "$wxUSE_NO_RTTI" != "yes"; then
-                        AC_MSG_CHECKING([if this MinGW version needs -DNO_GCC_PRAGMA])
-                        AC_TRY_COMPILE([],
-                            [#if !(__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2))
-                             #error "Not GCC 3.2 or greater"
-                             #endif
-                            ],
-                            [GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA"
-                             AC_MSG_RESULT([yes])],
-                            [AC_MSG_RESULT([no])])
-                    fi
-                    ;;
-                *-pc-os2_emx | *-pc-os2-emx )
-                    dnl GCC versions ported to OS/2 have similar problems with
-                    dnl static member of classes in combination with STL and
-                    dnl pragma interface/implementation
-                    if test "$wxUSE_STL" = "yes"; then
-                        AC_MSG_CHECKING([if this gcc version needs -DNO_GCC_PRAGMA])
-                        AC_TRY_COMPILE([],
-                            [#if !(__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2))
-                             #error "Not GCC 3.2 or greater"
-                             #endif
-                            ],
-                            [GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA"
-                             AC_MSG_RESULT([yes])],
-                            [AC_MSG_RESULT([no])])
-                    fi
-                    ;;
-            esac
-dnl  closing bracket of if GCC < 4.0
-        ] ) 
-    fi
+    CPPFLAGS="-DWX_PRECOMP $CPPFLAGS"
 fi
-CPPFLAGS="$PCH_FLAGS $GCC_PRAGMA_FLAGS $CPPFLAGS"
 
+dnl TOOLCHAIN_DEFS should be used for both wx and client code
+WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS $TOOLCHAIN_DEFS"
 
 dnl for convenience, sort the samples in alphabetical order
 dnl
@@ -6871,9 +7256,6 @@ dnl global options
 AC_SUBST(WX_LIBRARY_BASENAME_NOGUI)
 AC_SUBST(WX_LIBRARY_BASENAME_GUI)
 
-dnl debugging options
-AC_SUBST(WXDEBUG_DEFINE)
-
 dnl toolkit options
 AC_SUBST(USE_GUI)
 AC_SUBST(AFMINSTALL)
@@ -6882,8 +7264,6 @@ AC_SUBST(TOOLKIT)
 AC_SUBST(TOOLKIT_DIR)
 AC_SUBST(TOOLCHAIN_NAME)
 AC_SUBST(TOOLCHAIN_FULLNAME)
-AC_SUBST(TOOLCHAIN_DEFS)
-AC_SUBST(TOOLCHAIN_DLL_DEFS)
 
 dnl wx-config options
 AC_SUBST(host_alias)
@@ -6894,14 +7274,25 @@ AC_SUBST(WX_VERSION)
 AC_SUBST(WX_SUBVERSION)
 AC_SUBST(WX_CHARTYPE)
 AC_SUBST(WX_DEBUGTYPE)
-AC_SUBST(WXCONFIG_EXTRALIBS)
-AC_SUBST(WXCONFIG_INCLUDE)
+
+dnl note that in addition to the usual CPP/C/CXXFLAGS which are used for
+dnl building the library itself, we also have WXCONFIG_-prefixed variants which
+dnl are used when building the libraries using the library
+dnl
+dnl so put anything which should be used only during the library build in, e.g.
+dnl CXXFLAGS, but put everything else (by default) into WXCONFIG_CXXFLAGS
+dnl
+dnl and, finally, for some things which should be only used by wx-config but
+dnl not during the library compilation, use WXCONFIG_ONLY_CPPFLAGS which is
+dnl added to WXCONFIG_CPPFLAGS after adding the latter to CPPFLAGS
+AC_SUBST(WXCONFIG_CPPFLAGS)
+AC_SUBST(WXCONFIG_CFLAGS)
+AC_SUBST(WXCONFIG_CXXFLAGS)
+
+AC_SUBST(WXCONFIG_LIBS)
 AC_SUBST(WXCONFIG_RPATH)
 AC_SUBST(WXCONFIG_LDFLAGS_GUI)
-AC_SUBST(WX_LARGEFILE_FLAGS)
-AC_SUBST(GCC_PRAGMA_FLAGS)
-AC_SUBST(CODE_GEN_FLAGS)
-AC_SUBST(CODE_GEN_FLAGS_CXX)
+AC_SUBST(WXCONFIG_RESFLAGS)
 AC_SUBST(EXE_LINKER)
 
 dnl distribution vars
@@ -6920,6 +7311,8 @@ AC_SUBST(WX_VERSION_TAG)
 
 dnl additional resurces settings
 AC_SUBST(RESCOMP)
+AC_SUBST(WINDRES)
+AC_SUBST(REZ)
 AC_SUBST(RESFLAGS)
 AC_SUBST(RESPROGRAMOBJ)
 AC_SUBST(WX_RESOURCES_MACOSX_ASCII)
@@ -6928,9 +7321,8 @@ AC_SUBST(WX_RESOURCES_MACOSX_DATA)
 dnl additional for Mac OS X
 AC_SUBST(DEREZ)
 AC_SUBST(LIBWXMACRES)
-AC_SUBST(MACRESCOMP)
+AC_SUBST(POSTLINK_COMMAND)
 AC_SUBST(MACSETFILE)
-AC_SUBST(MACRESWXCONFIG)
 
 dnl other tools
 AC_SUBST(GCC)
@@ -6945,6 +7337,23 @@ AC_PROG_MAKE_SET
 
 AC_CONFIG_HEADERS([lib/wx/include/${TOOLCHAIN_FULLNAME}/wx/setup.h:setup.h.in])
 
+if test "$USE_WIN32" = 1; then
+    AC_CONFIG_COMMANDS(
+        [
+            rcdefs.h
+        ],
+        [
+            mkdir -p $outdir &&
+            $CPP $infile | sed 's/^# *[1-9].*//;s/^ *//;/./,/^$/!d' > $outdir/rcdefs.h
+        ],
+        [
+            CPP="$CPP"
+            infile="$srcdir/include/wx/msw/genrcdefs.h"
+            outdir="lib/wx/include/$TOOLCHAIN_FULLNAME/wx/msw"
+        ]
+    )
+fi
+
 AC_CONFIG_FILES([ lib/wx/config/${TOOLCHAIN_FULLNAME}:wx-config.in ],
                 [ chmod +x lib/wx/config/${TOOLCHAIN_FULLNAME} ],
                 [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ])
@@ -6955,8 +7364,7 @@ AC_CONFIG_FILES([ lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}:wx-config-inplace.
 
 AC_CONFIG_FILES([ version-script Makefile ])
 
-AC_CONFIG_COMMANDS([ wx-config
-                   ],
+AC_CONFIG_COMMANDS([wx-config],
                    [ rm -f wx-config
                      ${LN_S} lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} wx-config
                    ],
@@ -6971,7 +7379,7 @@ dnl on platforms that do not have symlinks.
 dnl AC_CONFIG_LINKS([ include/wx-$WX_RELEASE$WX_FLAVOUR:include ])
 dnl AC_CONFIG_LINKS([ contrib/include ])
 
-
+if test "$wxWITH_SUBDIRS" != "no"; then
 dnl Configure samples, contrib etc. directories, but only if they are present:
 if test "$wxUSE_GUI" = "yes"; then
     SUBDIRS="samples demos utils contrib"
@@ -7028,7 +7436,7 @@ for subdir in `echo $SUBDIRS`; do
         done
     fi
 done
-
+fi dnl wxWITH_SUBDIRS
 
 AC_OUTPUT
 
@@ -7044,8 +7452,8 @@ echo "  Should wxWidgets be linked as a shared library?         ${wxUSE_SHARED:-
 echo "  Should wxWidgets be compiled in Unicode mode?           ${wxUSE_UNICODE:-no}"
 
 echo "  What level of wxWidgets compatibility should be enabled?"
-echo "                                       wxWidgets 2.2      ${WXWIN_COMPATIBILITY_2_2:-no}"
-echo "                                       wxWidgets 2.4      ${WXWIN_COMPATIBILITY_2_4:-yes}"
+echo "                                       wxWidgets 2.4      ${WXWIN_COMPATIBILITY_2_4:-no}"
+echo "                                       wxWidgets 2.6      ${WXWIN_COMPATIBILITY_2_6:-yes}"
 
 echo "  Which libraries should wxWidgets use?"
 echo "                                       jpeg               ${wxUSE_LIBJPEG-none}"