]> git.saurik.com Git - wxWidgets.git/blobdiff - configure.in
Add a private wrapper for GError to wxGTK.
[wxWidgets.git] / configure.in
index ac5b8c5a5f8e2981807f51f012c5bad0bdb43616..77e9c4e87b95f003d2eb07e0b5c3494186723a55 100644 (file)
@@ -17,7 +17,7 @@ dnl ---------------------------------------------------------------------------
 dnl initialization
 dnl ---------------------------------------------------------------------------
 
-AC_INIT([wxWidgets], [2.9.3], [wx-dev@lists.wxwidgets.org])
+AC_INIT([wxWidgets], [2.9.5], [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])
@@ -43,7 +43,7 @@ dnl wx_release_number += 1
 
 wx_major_version_number=2
 wx_minor_version_number=9
-wx_release_number=3
+wx_release_number=5
 wx_subrelease_number=0
 
 WX_RELEASE=$wx_major_version_number.$wx_minor_version_number
@@ -103,7 +103,7 @@ NEEDS_D_REENTRANT_FOR_R_FUNCS=0
 dnl the list of all available toolkits
 dnl
 dnl update NUM_TOOLKITS calculation below when adding a new toolkit here!
-ALL_TOOLKITS="COCOA GTK OSX_CARBON OSX_COCOA OSX_IPHONE MGL MICROWIN MOTIF MSW PM X11 DFB"
+ALL_TOOLKITS="COCOA GTK OSX_CARBON OSX_COCOA OSX_IPHONE MICROWIN MOTIF MSW PM X11 DFB"
 
 dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones
 dnl     which are either yes or no
@@ -112,7 +112,6 @@ DEFAULT_wxUSE_GTK=0
 DEFAULT_wxUSE_OSX_CARBON=0
 DEFAULT_wxUSE_OSX_COCOA=0
 DEFAULT_wxUSE_OSX_IPHONE=0
-DEFAULT_wxUSE_MGL=0
 DEFAULT_wxUSE_MICROWIN=0
 DEFAULT_wxUSE_MOTIF=0
 DEFAULT_wxUSE_MSW=0
@@ -128,7 +127,6 @@ DEFAULT_DEFAULT_wxUSE_GTK=0
 DEFAULT_DEFAULT_wxUSE_OSX_CARBON=0
 DEFAULT_DEFAULT_wxUSE_OSX_COCOA=0
 DEFAULT_DEFAULT_wxUSE_OSX_IPHONE=0
-DEFAULT_DEFAULT_wxUSE_MGL=0
 DEFAULT_DEFAULT_wxUSE_MICROWIN=0
 DEFAULT_DEFAULT_wxUSE_MOTIF=0
 DEFAULT_DEFAULT_wxUSE_MSW=0
@@ -286,7 +284,6 @@ case "${host}" in
     USE_DOS=1
     AC_DEFINE(__DOS__)
     PROGRAM_EXT=".exe"
-    DEFAULT_DEFAULT_wxUSE_MGL=1
   ;;
 
   *-pc-os2_emx | *-pc-os2-emx )
@@ -388,27 +385,23 @@ dnl features disabled by default
 DEFAULT_wxUSE_ACCESSIBILITY=no
 DEFAULT_wxUSE_IPV6=no
 DEFAULT_wxUSE_GSTREAMER8=no
+DEFAULT_wxUSE_UNICODE_UTF8=no
+DEFAULT_wxUSE_UNICODE_UTF8_LOCALE=no
 
 dnl automatic features
 DEFAULT_wxUSE_ARTPROVIDER_TANGO=auto
-DEFAULT_wxUSE_UNICODE_UTF8=auto
 DEFAULT_wxUSE_OPENGL=auto
 DEFAULT_wxUSE_MEDIACTRL=auto
 DEFAULT_wxUSE_COMPILER_TLS=auto
 DEFAULT_wxUSE_HOTKEY=auto
 DEFAULT_wxUSE_METAFILE=auto
 
-DEFAULT_wxUSE_UNICODE_UTF8_LOCALE=no
-
 dnl Mac/Cocoa users need to enable building universal binaries explicitly
 DEFAULT_wxUSE_UNIVERSAL_BINARY=no
 DEFAULT_wxUSE_MAC_ARCH=no
 
 DEFAULT_wxUSE_OFFICIAL_BUILD=no
 
-dnl Applicable only when --with-gtk was used:
-DEFAULT_wxUSE_GTK2=yes
-
 dnl Always default to no. Only special cases require this.
 DEFAULT_wxUSE_OBJC_UNIQUIFYING=no
 
@@ -473,7 +466,7 @@ fi
 
 dnl we use AC_ARG_WITH and not WX_ARG_WITH for the toolkit options as they
 dnl shouldn't default to wxUSE_ALL_FEATURES
-AC_ARG_WITH(gtk,          [[  --with-gtk[=VERSION]    use GTK+, VERSION can be 2 (default), 1 or "any"]], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1])
+AC_ARG_WITH(gtk,          [[  --with-gtk[=VERSION]    use GTK+, VERSION can be 3, 2 (default), 1 or "any"]], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(motif,         [  --with-motif            use Motif/Lesstif], [wxUSE_MOTIF="$withval" CACHE_MOTIF=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(osx_carbon,    [  --with-osx_carbon       use Mac OS X (Carbon)], [wxUSE_OSX_CARBON="$withval" CACHE_OSX_CARBON=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(osx_cocoa,     [  --with-osx_cocoa        use Mac OS X (Cocoa)], [wxUSE_OSX_COCOA="$withval" CACHE_OSX_COCOA=1 TOOLKIT_GIVEN=1])
@@ -487,13 +480,10 @@ AC_ARG_WITH(old_cocoa,     [  --with-old_cocoa        use old, deprecated, Cocoa
 AC_ARG_WITH(wine,          [  --with-wine             use Wine], [wxUSE_WINE="$withval" CACHE_WINE=1])
 AC_ARG_WITH(msw,           [  --with-msw              use MS-Windows], [wxUSE_MSW="$withval" CACHE_MSW=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(pm,            [  --with-pm               use OS/2 Presentation Manager], [wxUSE_PM="$withval" CACHE_PM=1 TOOLKIT_GIVEN=1])
-AC_ARG_WITH(mgl,           [  --with-mgl              use SciTech MGL], [wxUSE_MGL="$withval" wxUSE_UNIVERSAL="yes" CACHE_MGL=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(directfb,      [  --with-directfb         use DirectFB], [wxUSE_DFB="$withval" wxUSE_UNIVERSAL="yes" CACHE_DFB=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(microwin,      [  --with-microwin         use MicroWindows], [wxUSE_MICROWIN="$withval" CACHE_MICROWIN=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(x11,           [  --with-x11              use X11], [wxUSE_X11="$withval" wxUSE_UNIVERSAL="yes" CACHE_X11=1 TOOLKIT_GIVEN=1])
 WX_ARG_ENABLE(nanox,       [  --enable-nanox          use NanoX], wxUSE_NANOX)
-
-AC_ARG_ENABLE(gtk2,        [  --disable-gtk2          use GTK+ 1.2 instead of 2.0], [wxUSE_GTK2="$enableval"])
 WX_ARG_ENABLE(gpe,         [  --enable-gpe            use GNOME PDA Environment features if possible], wxUSE_GPE)
 
 dnl check that no more than one toolkit is given and that if none are given that
@@ -546,7 +536,7 @@ if test "$wxUSE_GUI" = "yes"; then
     dnl we suppose that expr is available (maybe there is a better way to do
     dnl this? what about using ALL_TOOLKITS? TODO)
     NUM_TOOLKITS=`expr ${wxUSE_OLD_COCOA:-0} + ${wxUSE_GTK:-0} + ${wxUSE_OSX_CARBON:-0} \
-                  + ${wxUSE_OSX_COCOA:-0} + ${wxUSE_OSX_IPHONE:-0} + ${wxUSE_MGL:-0} + ${wxUSE_DFB:-0} \
+                  + ${wxUSE_OSX_COCOA:-0} + ${wxUSE_OSX_IPHONE:-0} + ${wxUSE_DFB:-0} \
                   + ${wxUSE_MICROWIN:-0} + ${wxUSE_MOTIF:-0} + ${wxUSE_MSW:-0} + ${wxUSE_X11:-0}`
 
     dnl Allow wxUSE_PM only for OS/2 with EMX.
@@ -565,15 +555,6 @@ if test "$wxUSE_GUI" = "yes"; then
         AC_MSG_ERROR(Please specify at most one toolkit)
     esac
 
-    # to be removed when --disable-gtk2 isn't needed
-    if test "x$wxUSE_GTK2" = "xyes"; then
-        wxGTK_VERSION=2
-        wxUSE_GTK1=0
-    elif test "x$wxUSE_GTK2" = "xno"; then
-        wxGTK_VERSION=1
-        wxUSE_GTK1=1
-    fi
-
     for toolkit in $ALL_TOOLKITS; do
         var=wxUSE_$toolkit
         eval "value=\$${var}"
@@ -732,7 +713,7 @@ WX_ARG_ENABLE(permissive,    [  --enable-permissive     compile code disregardin
 WX_ARG_ENABLE(no_deps,       [  --enable-no_deps        create code without dependency information], wxUSE_NO_DEPS)
 WX_ARG_DISABLE(vararg_macros,[  --disable-vararg_macros don't use vararg macros, even if they are supported], wxUSE_VARARG_MACROS)
 
-WX_ARG_ENABLE_PARAM(universal_binary, [[  --enable-universal_binary  create universal binary with Mac PPC and i386 (and x86_64 if using Cocoa) architectures ]], wxUSE_UNIVERSAL_BINARY)
+WX_ARG_ENABLE_PARAM(universal_binary, [[  --enable-universal_binary=archs create universal binary for the specified (or all supported) architectures]], wxUSE_UNIVERSAL_BINARY)
 WX_ARG_ENABLE_PARAM(macosx_arch,      [[  --enable-macosx_arch=ARCH  build for just the specified architecture]], wxUSE_MAC_ARCH)
 
 WX_ARG_ENABLE(compat26,      [  --enable-compat26       enable wxWidgets 2.6 compatibility], WXWIN_COMPATIBILITY_2_6)
@@ -1053,7 +1034,7 @@ WX_ARG_FEATURE(dragimage,   [  --enable-dragimage      use wxDragImage], wxUSE_D
 WX_ARG_FEATURE(accessibility,[  --enable-accessibility  enable accessibility support], wxUSE_ACCESSIBILITY)
 WX_ARG_FEATURE(uiactionsim,  [  --enable-uiactionsim    use wxUIActionSimulator (experimental)], wxUSE_UIACTIONSIMULATOR)
 WX_ARG_FEATURE(dctransform,  [  --enable-dctransform    use wxDC::SetTransformMatrix and related], wxUSE_DC_TRANSFORM_MATRIX)
-WX_ARG_FEATURE(webviewwebkit,[  --enable-webview-webkit use wxWebView WebKit backend], wxUSE_WEBVIEW_WEBKIT)
+WX_ARG_FEATURE(webviewwebkit,[  --enable-webview_webkit use wxWebView WebKit backend], wxUSE_WEBVIEW_WEBKIT)
 
 dnl ---------------------------------------------------------------------------
 dnl support for image formats that do not rely on external library
@@ -1078,7 +1059,7 @@ WX_ARG_FEATURE(ps-in-msw,   [  --enable-ps-in-msw      use PS printing in wxMSW
 WX_ARG_FEATURE(ownerdrawn,  [  --enable-ownerdrawn     use owner drawn controls (Win32 and OS/2 only)], wxUSE_OWNER_DRAWN)
 WX_ARG_FEATURE(uxtheme,     [  --enable-uxtheme        enable support for Windows XP themed look (Win32 only)], wxUSE_UXTHEME)
 WX_ARG_FEATURE(wxdib,       [  --enable-wxdib          use wxDIB class (Win32 only)], wxUSE_DIB)
-WX_ARG_FEATURE(webviewie,   [  --enable-webview-ie     use wxWebView IE backend (Win32 only)], wxUSE_WEBVIEW_IE)
+WX_ARG_FEATURE(webviewie,   [  --enable-webview_ie     use wxWebView IE backend (Win32 only)], wxUSE_WEBVIEW_IE)
 
 dnl this one is not really MSW-specific but it exists mainly to be turned off
 dnl under MSW, it should be off by default on the other platforms
@@ -1151,60 +1132,53 @@ if test "$wxUSE_MAC" = 1; then
 retest_macosx_linking=no
 
 OSX_ARCH_OPTS=""
-if test "x$wxUSE_MAC_ARCH" != xno; then
-    OSX_ARCH_OPTS="-arch $wxUSE_MAC_ARCH"
-fi
-
-dnl Support the old --enable-universal_binary in case anyone was using it.
-    if test "x$wxUSE_UNIVERSAL_BINARY" != xno ; then
-        dnl --enable-universal_binary uses a default SDK (currently 10.4u)
-        dnl --enable-universal_binary=SDK names a path to an SDK
-        if test "x$wxUSE_UNIVERSAL_BINARY" == xyes; then
-            # Implicitly turn on the new --with-macosx-sdk using the default
-            # SDK which provides the behaviour this option has always had.
-            if test "x$wxUSE_MACOSX_SDK" = "x"; then
-                AC_MSG_WARN([Enabling default SDK due to --enable-universal_binary.])
-                AC_MSG_WARN([If you don't want this, specify --without-macosx-sdk])
-                wxUSE_MACOSX_SDK=yes
-            fi
-        else
-            # Complain to user if he specified an argument to --enable-universal_binary
-            # and also 1) specified --with-macosx-sdk using the default (yes) or
-            # 2) specified --with-macosx-sdk using a path or 3) specified
-            # --without-macosx-sdk (no).
-            if test "x$wxUSE_MACOSX_SDK" != "x" ; then
-                AC_MSG_FAILURE([Please specify the new --with-macosx-sdk=PATH and do not specify an arg to --enable-universal_binary])
-            else
-                # Put the SDK path into the wxUSE_MACOSX_SDK.  We don't have to
-                # special-case the empty string because the below test simply
-                # converts "no" to the empty string anyway.
-                wxUSE_MACOSX_SDK="$wxUSE_UNIVERSAL_BINARY"
-                dnl Warn about deprecated usage.
-                AC_MSG_WARN([Please use --with-macosx-sdk=PATH and --enable-universal_binary without an argument])
-            fi
-        fi
-        dnl FIXME: I think it would be better to put this into CC, CXX, and LD rather than the flags.
-        OSX_ARCH_OPTS="-arch ppc -arch i386"
-       if test "$wxUSE_OSX_COCOA" = 1; then
-            OSX_ARCH_OPTS="$OSX_ARCH_OPTS -arch x86_64"
+
+dnl Deal with architecture selection. By default, we compile for the current
+dnl architecture, whatever it is. With --enable-universal_binary the list of
+dnl architectures can be explicitly specified. If it isn't, we compile for all
+dnl supported ones.
+if test "x$wxUSE_UNIVERSAL_BINARY" != xno ; then
+    if test "x$wxUSE_MAC_ARCH" != xno; then
+        AC_MSG_WARN([--enable-macosx_arch is ignored when --enable-universal_binary is used.])
+    fi
+
+    if test "x$wxUSE_UNIVERSAL_BINARY" != xyes; then
+        OSX_ARCH_OPTS=$wxUSE_UNIVERSAL_BINARY
+    else dnl Use all architectures supported
+        OSX_ARCH_OPTS="ppc,i386"
+        if test "$wxUSE_OSX_COCOA" = 1; then
+            OSX_ARCH_OPTS="$OSX_ARCH_OPTS,x86_64"
         fi
-        AC_MSG_CHECKING([for universal binary architectures])
-       AC_MSG_RESULT([$OSX_ARCH_OPTS])
-
-        dnl NOTE: Only the compiler driver needs arch flags.  The link editor
-        dnl is incapable of using them but the compiler driver (which we use
-        dnl as LD when building dynamic libraries) uses them to invoke the
-        dnl real ld multiple times.  If we moved to libtool -dynamic we would
-        dnl need no arch flags because libtool automatically invokes ld for
-        dnl every architecture found in the fat input files.
-        dnl
-        dnl For static library builds, AR/RANLIB automatically create proper
-        dnl fat archives although AR is unable to update them once RANLIB has
-        dnl made them into proper fat archives.  Fortunately, our link process
-        dnl simply removes the .a file before using ar to create a new one.
-        dnl If we did move to libtool -static we still wouldn't need arch flags
-        dnl because libtool automatically figures it out based on input.
-        retest_macosx_linking=yes
+    fi
+
+    AC_MSG_CHECKING([for architectures to use in universal binary])
+    AC_MSG_RESULT([$OSX_ARCH_OPTS])
+
+    dnl NOTE: Only the compiler driver needs arch flags.  The link editor
+    dnl is incapable of using them but the compiler driver (which we use
+    dnl as LD when building dynamic libraries) uses them to invoke the
+    dnl real ld multiple times.  If we moved to libtool -dynamic we would
+    dnl need no arch flags because libtool automatically invokes ld for
+    dnl every architecture found in the fat input files.
+    dnl
+    dnl For static library builds, AR/RANLIB automatically create proper
+    dnl fat archives although AR is unable to update them once RANLIB has
+    dnl made them into proper fat archives.  Fortunately, our link process
+    dnl simply removes the .a file before using ar to create a new one.
+    dnl If we did move to libtool -static we still wouldn't need arch flags
+    dnl because libtool automatically figures it out based on input.
+    retest_macosx_linking=yes
+else
+    if test "x$wxUSE_MAC_ARCH" != xno; then
+        OSX_ARCH_OPTS=$wxUSE_MAC_ARCH
+    fi
+fi
+
+if test "x$OSX_ARCH_OPTS" != "x"; then
+    dnl Check if there is more than one architecture
+    if echo $OSX_ARCH_OPTS | grep -q ","; then
+        AC_MSG_WARN([Disabling dependency tracking due to universal binary build.])
+        disable_macosx_deps=yes
 
         dnl HACK: PCH could be made to work by precompiling for each architecture into separate directories
         dnl and including all architecture directories with each compiler invocation.
@@ -1214,11 +1188,14 @@ dnl Support the old --enable-universal_binary in case anyone was using it.
         bk_use_pch=no
     fi
 
-CXXFLAGS="$OSX_ARCH_OPTS $CXXFLAGS"
-CFLAGS="$OSX_ARCH_OPTS $CFLAGS"
-OBJCXXFLAGS="$OSX_ARCH_OPTS $OBJCXXFLAGS"
-OBJCFLAGS="$OSX_ARCH_OPTS $OBJCFLAGS"
-LDFLAGS="$OSX_ARCH_OPTS $LDFLAGS"
+    OSX_ARCH_OPTS=`echo $OSX_ARCH_OPTS | sed -e 's/^/-arch /' -e 's/,/ -arch /g'`
+
+    CXXFLAGS="$OSX_ARCH_OPTS $CXXFLAGS"
+    CFLAGS="$OSX_ARCH_OPTS $CFLAGS"
+    OBJCXXFLAGS="$OSX_ARCH_OPTS $OBJCXXFLAGS"
+    OBJCFLAGS="$OSX_ARCH_OPTS $OBJCFLAGS"
+    LDFLAGS="$OSX_ARCH_OPTS $LDFLAGS"
+fi
 
 dnl Set up the Mac OS X SDK.  We do this early so configure tests will occur
 dnl with the SDK in place.
@@ -1277,66 +1254,14 @@ dnl We need to quote the next line where we don't need macros and do need [] in
         wxUSE_MACOSX_VERSION_MIN=
     fi
 elif test "x$wxUSE_MACOSX_VERSION_MIN" = "x"; then
-    AC_CHECK_PROGS(OSX_SW_VERS, sw_vers)
-    if test "$OSX_SW_VERS" != ""; then
-        OSX_VERSION=`sw_vers -productVersion | grep 10.[[0-9]]`
-    else
-        dnl can't determine it (happens e.g. when cross-compiling) so use a
-        dnl conservative default
-        AC_MSG_WARN([Assuming OS X 10.4, use --with-macosx-version-min to override.])
-        OSX_VERSION="10.4"
-    fi
-
-    case "$OSX_VERSION" in
-        10.4* )
-            wxUSE_MACOSX_VERSION_MIN=10.4
-            ;;
-
-        * )
-            if test "$wxUSE_OSX_CARBON" = 1; then
-                # otherwise configure stops on leopard for universal_binary
-                wxUSE_MACOSX_VERSION_MIN=10.4
-            else
-                # for Cocoa, use 10.5 to be able to compile it in 64 bits too
-                wxUSE_MACOSX_VERSION_MIN=10.5
-            fi
-            ;;
-    esac
-fi
-
-NEEDS_GCC40="no"
-if test "x$wxUSE_MACOSX_VERSION_MIN" == "x10.4"; then
-    NEEDS_GCC40="yes"
-fi
-
-if test "$wxUSE_OSX_CARBON" = 1; then
-    NEEDS_GCC40="yes"
-fi
-
-if test "x$NEEDS_GCC40" == "xyes"; then
-    # gcc 4.2 cannot compile 10.4 compatible code, so if the user is using it
-    # and wants 10.4 compatible code, then 'downgrade' to 4.0
-    # This is also the simplest way to get 32-bit binaries on Snow Leopard.
-    if test "x$CC" = "xgcc"; then
-        CCVERSION=`$CC --version | grep 4.[[2-9]].`
-        if test "x$CCVERSION" != "x"; then
-            echo "$as_me:$LINENO: WARNING: gcc >= 4.2 cannot compile 10.4 compatible code. Using gcc 4.0 instead."
-            CC="gcc-4.0"
-        fi
-    fi
-
-    if test "x$CXX" = "xg++"; then
-        CCVERSION=`$CXX --version | grep 4.[[2-9]].`
-        if test "x$CCVERSION" != "x"; then
-            CXX="g++-4.0"
-        fi
-    fi
+    wxUSE_MACOSX_VERSION_MIN=10.5
 fi
 
 if test "x$MACOSX_SDK_OPTS" != "x"; then 
     eval "CC=\"$CC $MACOSX_SDK_OPTS\""
     eval "CXX=\"$CXX $MACOSX_SDK_OPTS\""
     eval "LD=\"$LD $MACOSX_SDK_OPTS\""
+    retest_macosx_linking=yes
 fi
 
 if test "x$wxUSE_MACOSX_VERSION_MIN" != "x"; then
@@ -1356,12 +1281,12 @@ dnl still compile and link both C and C++.  If we didn't do this, then most
 dnl of the remaining tests would fail.
 if test "x$retest_macosx_linking" = "xyes"; then
     AC_LANG_PUSH(C)
-    AC_MSG_CHECKING([if C compiler works with SDK/version options])
+    AC_MSG_CHECKING([if C compiler ($CC) works with SDK/version options])
     AC_TRY_LINK([],[],[AC_MSG_RESULT([yes])],[AC_MSG_FAILURE([no.  Try a different SDK]); exit 1])
     AC_LANG_POP()
 
     AC_LANG_PUSH(C++)
-    AC_MSG_CHECKING([if C++ compiler works with SDK/version options])
+    AC_MSG_CHECKING([if C++ compiler ($CXX) works with SDK/version options])
     AC_TRY_LINK([],[],[AC_MSG_RESULT([yes])],[AC_MSG_FAILURE([no.  Try a different SDK]); exit 1])
     AC_LANG_POP()
 fi
@@ -2592,63 +2517,54 @@ PNG_LINK=
 if test "$wxUSE_LIBPNG" != "no" ; then
     AC_DEFINE(wxUSE_LIBPNG)
 
-    if test "$wxUSE_MGL" = 1 -a "$wxUSE_LIBPNG" = "builtin" ; then
-        AC_MSG_WARN([wxMGL doesn't work with builtin png library, will use MGL one instead])
-        wxUSE_LIBPNG=sys
-    fi
-
     dnl for the check below to have a chance to succeed, we must already have
-    dnl libz somewhere (don't do this when bulding wxMGL since its libpng
-    dnl doesn't depend on zlib)
-    if test "$wxUSE_MGL" != 1 -a "$wxUSE_LIBPNG" = "sys" -a "$wxUSE_ZLIB" != "sys" ; then
+    dnl libz somewhere
+    if test "$wxUSE_LIBPNG" = "sys" -a "$wxUSE_ZLIB" != "sys" ; then
         AC_MSG_WARN([system png library doesn't work without system zlib, will use built-in instead])
         wxUSE_LIBPNG=builtin
     fi
 
-    if test "$wxUSE_MGL" != 1 ; then
-        dnl Don't check for libpng when building wxMGL, libmgl contains it
-        if test "$wxUSE_LIBPNG" = "sys" -o "$wxUSE_LIBPNG" = "yes" ; then
-            dnl libpng version 0.9 is known to not work, if an even newer
-            dnl version is required, just bump it up in the test below
-            AC_CACHE_CHECK([for png.h > 0.90], ac_cv_header_png_h,
-                [AC_TRY_RUN(
-                    dnl png.h defines PNG_LIBPNG_VER=number
-                    [
-                        #include <png.h>
-                        #include <stdio.h>
+    if test "$wxUSE_LIBPNG" = "sys" -o "$wxUSE_LIBPNG" = "yes" ; then
+        dnl libpng version 0.9 is known to not work, if an even newer
+        dnl version is required, just bump it up in the test below
+        AC_CACHE_CHECK([for png.h > 0.90], ac_cv_header_png_h,
+            [AC_TRY_RUN(
+                dnl png.h defines PNG_LIBPNG_VER=number
+                [
+                    #include <png.h>
+                    #include <stdio.h>
 
-                        int main()
-                        {
-                            FILE *f=fopen("conftestval", "w");
-                            if (!f) exit(1);
-                            fprintf(f, "%s",
-                                     PNG_LIBPNG_VER > 90 ? "yes" : "no");
-                            exit(0);
-                        }
-                    ],
-                    ac_cv_header_png_h=`cat conftestval`,
-                    ac_cv_header_png_h=no,
-                    dnl cross-compiling: test (later) if we have any png.h
-                    unset ac_cv_header_png_h
-                )]
-            )
-            AC_CHECK_HEADER(png.h,,, [ ])
+                    int main()
+                    {
+                        FILE *f=fopen("conftestval", "w");
+                        if (!f) exit(1);
+                        fprintf(f, "%s",
+                                 PNG_LIBPNG_VER > 90 ? "yes" : "no");
+                        exit(0);
+                    }
+                ],
+                ac_cv_header_png_h=`cat conftestval`,
+                ac_cv_header_png_h=no,
+                dnl cross-compiling: test (later) if we have any png.h
+                unset ac_cv_header_png_h
+            )]
+        )
+        AC_CHECK_HEADER(png.h,,, [ ])
 
-            if test "$ac_cv_header_png_h" = "yes"; then
-                AC_CHECK_LIB(png, png_sig_cmp, PNG_LINK=" -lpng -lz", , [-lz -lm])
-            fi
+        if test "$ac_cv_header_png_h" = "yes"; then
+            AC_CHECK_LIB(png, png_sig_cmp, PNG_LINK=" -lpng -lz", , [-lz -lm])
+        fi
 
-            if test "x$PNG_LINK" = "x" ; then
-                if test "$wxUSE_LIBPNG" = "sys" ; then
-                    AC_MSG_ERROR([system png library not found or too old! Use --with-libpng=builtin to use built-in version])
-                else
-                    AC_MSG_WARN([system png library not found or too old, will use built-in instead])
-                    wxUSE_LIBPNG=builtin
-                fi
+        if test "x$PNG_LINK" = "x" ; then
+            if test "$wxUSE_LIBPNG" = "sys" ; then
+                AC_MSG_ERROR([system png library not found or too old! Use --with-libpng=builtin to use built-in version])
             else
-                dnl we are using the system library
-                wxUSE_LIBPNG=sys
+                AC_MSG_WARN([system png library not found or too old, will use built-in instead])
+                wxUSE_LIBPNG=builtin
             fi
+        else
+            dnl we are using the system library
+            wxUSE_LIBPNG=sys
         fi
     fi
 fi
@@ -2663,71 +2579,63 @@ JPEG_LINK=
 if test "$wxUSE_LIBJPEG" != "no" ; then
     AC_DEFINE(wxUSE_LIBJPEG)
 
-    if test "$wxUSE_MGL" = 1 -a "$wxUSE_LIBJPEG" = "builtin" ; then
-        AC_MSG_WARN([wxMGL doesn't work with builtin jpeg library, will use MGL one instead])
-        wxUSE_LIBJPEG=sys
-    fi
-
-    if test "$wxUSE_MGL" != 1 ; then
-        dnl Don't check for libjpeg when building wxMGL, libmgl contains it
-        if test "$wxUSE_LIBJPEG" = "sys" -o "$wxUSE_LIBJPEG" = "yes" ; then
-            dnl can't use AC_CHECK_HEADER as jconfig.h defines things like
-            dnl HAVE_STDLIB_H which are already defined and this provokes
-            dnl a compiler warning which configure considers as an error...
-            AC_MSG_CHECKING(for jpeglib.h)
-            AC_CACHE_VAL(ac_cv_header_jpeglib_h,
-                AC_TRY_COMPILE(
-                    [
-                        #undef HAVE_STDLIB_H
-                        #include <stdio.h>
-                        #include <jpeglib.h>
-                    ],
-                    [
-                    ],
-                    ac_cv_header_jpeglib_h=yes,
-                    ac_cv_header_jpeglib_h=no
-                )
+    if test "$wxUSE_LIBJPEG" = "sys" -o "$wxUSE_LIBJPEG" = "yes" ; then
+        dnl can't use AC_CHECK_HEADER as jconfig.h defines things like
+        dnl HAVE_STDLIB_H which are already defined and this provokes
+        dnl a compiler warning which configure considers as an error...
+        AC_MSG_CHECKING(for jpeglib.h)
+        AC_CACHE_VAL(ac_cv_header_jpeglib_h,
+            AC_TRY_COMPILE(
+                [
+                    #undef HAVE_STDLIB_H
+                    #include <stdio.h>
+                    #include <jpeglib.h>
+                ],
+                [
+                ],
+                ac_cv_header_jpeglib_h=yes,
+                ac_cv_header_jpeglib_h=no
             )
-            AC_MSG_RESULT($ac_cv_header_jpeglib_h)
+        )
+        AC_MSG_RESULT($ac_cv_header_jpeglib_h)
 
-            if test "$ac_cv_header_jpeglib_h" = "yes"; then
-                AC_CHECK_LIB(jpeg, jpeg_read_header, JPEG_LINK=" -ljpeg")
-            fi
+        if test "$ac_cv_header_jpeglib_h" = "yes"; then
+            AC_CHECK_LIB(jpeg, jpeg_read_header, JPEG_LINK=" -ljpeg")
+        fi
 
-            if test "x$JPEG_LINK" = "x" ; then
-                if test "$wxUSE_LIBJPEG" = "sys" ; then
-                    AC_MSG_ERROR([system jpeg library not found! Use --with-libjpeg=builtin to use built-in version])
-                else
-                    AC_MSG_WARN([system jpeg library not found, will use built-in instead])
-                    wxUSE_LIBJPEG=builtin
-                fi
+        if test "x$JPEG_LINK" = "x" ; then
+            if test "$wxUSE_LIBJPEG" = "sys" ; then
+                AC_MSG_ERROR([system jpeg library not found! Use --with-libjpeg=builtin to use built-in version])
             else
-                dnl we are using the system library
-                wxUSE_LIBJPEG=sys
-
-                if test "$wxUSE_MSW" = 1; then
-                    dnl boolean is defined by the jpeg headers and also by the
-                    dnl Windows headers of some compilers. This type has been
-                    dnl renamed in the builtin, so it is only an issue when
-                    dnl using an external jpeg lib on Windows.
-                    AC_CHECK_TYPES(
-                        [boolean],
-                        [
-                            AC_CHECK_SIZEOF(
-                                [boolean],
-                                [],
-                                [
-                                    #undef HAVE_BOOLEAN
-                                    #include <stdio.h>
-                                    #include <jpeglib.h>
-                                ])
-                            AC_DEFINE_UNQUOTED(
-                                [wxHACK_BOOLEAN],
-                                [wxInt`expr 8 \* $ac_cv_sizeof_boolean`])
-                        ],
-                        [],
-                        [#include <windows.h>])
-                fi
+                AC_MSG_WARN([system jpeg library not found, will use built-in instead])
+                wxUSE_LIBJPEG=builtin
+            fi
+        else
+            dnl we are using the system library
+            wxUSE_LIBJPEG=sys
+
+            if test "$wxUSE_MSW" = 1; then
+                dnl boolean is defined by the jpeg headers and also by the
+                dnl Windows headers of some compilers. This type has been
+                dnl renamed in the builtin, so it is only an issue when
+                dnl using an external jpeg lib on Windows.
+                AC_CHECK_TYPES(
+                    [boolean],
+                    [
+                        AC_CHECK_SIZEOF(
+                            [boolean],
+                            [],
+                            [
+                                #undef HAVE_BOOLEAN
+                                #include <stdio.h>
+                                #include <jpeglib.h>
+                            ])
+                        AC_DEFINE_UNQUOTED(
+                            [wxHACK_BOOLEAN],
+                            [wxInt`expr 8 \* $ac_cv_sizeof_boolean`])
+                    ],
+                    [],
+                    [#include <windows.h>])
             fi
         fi
     fi
@@ -2913,8 +2821,10 @@ if test "$wxUSE_GUI" = "yes"; then
 
     GUI_TK_LIBRARY=
 
+    WXGTK1=
     WXGTK127=
     WXGTK2=
+    WXGTK3=
     WXGPE=
 
     if test "$wxUSE_OLD_COCOA" = 1 ; then
@@ -2962,6 +2872,10 @@ if test "$wxUSE_GUI" = "yes"; then
                     GTK_MODULES=gthread
                 fi
 
+                if test -z "$wxGTK_VERSION"; then
+                    wxGTK_VERSION=any
+                fi
+
                 dnl detect GTK2
                 wx_cv_lib_gtk=
                 if test "x$wxGTK_VERSION" != "x1"
@@ -2976,7 +2890,14 @@ if test "$wxUSE_GUI" = "yes"; then
                             fi
                     esac
 
-                    AM_PATH_GTK_2_0(2.4.0, wx_cv_lib_gtk=2.0, , $GTK_MODULES)
+                    if test "$wxGTK_VERSION" != 3; then
+                        AM_PATH_GTK_2_0(2.6.0, wx_cv_lib_gtk=2.0, , $GTK_MODULES)
+                    fi
+                    if test -z "$wx_cv_lib_gtk"; then
+                        if test "$wxGTK_VERSION" = 3 -o "$wxGTK_VERSION" = any; then
+                            AM_PATH_GTK_3_0(, wx_cv_lib_gtk=3, , $GTK_MODULES)
+                        fi
+                    fi
                 fi
 
                 dnl detect GTK1.x
@@ -3012,12 +2933,16 @@ if test "$wxUSE_GUI" = "yes"; then
         fi
 
         case "$wx_cv_lib_gtk" in
+            3)      WXGTK3=1
+                    TOOLKIT_VERSION=3
+                    ;;
             2.0)    WXGTK2=1
                     TOOLKIT_VERSION=2
                     ;;
             1.2.7)  WXGTK127=1
+                    WXGTK1=1
                     ;;
-            1.2*) ;;
+            1.2*)   WXGTK1=1 ;;
             *)      AC_MSG_ERROR([
 The development files for GTK+ were not found. For GTK+ 2, please
 ensure that pkg-config is in the path and that gtk+-2.0.pc is
@@ -3029,7 +2954,10 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                     ;;
         esac
 
-        if test "$WXGTK2" = 1; then
+        if test "$WXGTK3" = 1; then
+            AC_DEFINE(__WXGTK218__)
+            AC_DEFINE(__WXGTK210__)
+        elif test "$WXGTK2" = 1; then
             save_CFLAGS="$CFLAGS"
             save_LIBS="$LIBS"
             CFLAGS="$wx_cv_cflags_gtk $CFLAGS"
@@ -3048,7 +2976,6 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                            [
                             AC_DEFINE(__WXGTK218__)
                             AC_DEFINE(__WXGTK210__)
-                            AC_DEFINE(__WXGTK26__)
                             AC_MSG_RESULT([yes])
                             ac_wxgtk218=1
                            ],
@@ -3070,7 +2997,6 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                                ],
                                [
                                 AC_DEFINE(__WXGTK210__)
-                                AC_DEFINE(__WXGTK26__)
                                 AC_MSG_RESULT([yes])
                                 ac_wxgtk210=1
                                ],
@@ -3078,28 +3004,6 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                                 AC_MSG_RESULT([no])
                                 ac_wxgtk210=0
                                ])
-
-                if test "$ac_wxgtk210" = 0; then
-                    dnl test if we have at least GTK+ 2.6:
-                    AC_MSG_CHECKING([if GTK+ is version >= 2.6])
-                    AC_TRY_COMPILE([
-                                    #include <gtk/gtk.h>
-                                ],
-                                [
-                                    #if !GTK_CHECK_VERSION(2,6,0)
-                                    Not GTK+ 2.6
-                                    #endif
-                                ],
-                                [
-                                    AC_DEFINE(__WXGTK26__)
-                                    AC_MSG_RESULT([yes])
-                                    ac_wxgtk26=1
-                                ],
-                                [
-                                    AC_MSG_RESULT([no])
-                                    ac_wxgtk26=0
-                                ])
-                fi
             fi
 
             CFLAGS="$save_CFLAGS"
@@ -3153,74 +3057,6 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
         fi
     fi
 
-    if test "$wxUSE_MGL" = 1; then
-       AC_MSG_CHECKING(for SciTech MGL library)
-        if test "x$MGL_ROOT" = x ; then
-            AC_MSG_RESULT(not found)
-            AC_MSG_ERROR([Cannot find MGL library. Make sure MGL_ROOT is set.])
-        else
-            AC_MSG_RESULT($MGL_ROOT)
-        fi
-
-        AC_MSG_CHECKING(for libmgl location)
-        dnl Find MGL library that we want
-        dnl FIXME_MGL - test for MGL variants for freebsd etc.;
-        dnl             and for non-x86 versions
-        case "${host}" in
-            *-*-linux* )
-              dnl glibc.so, glibc are for older versions of MGL,
-              dnl x86/a, x86/so are used by >= 5.0 R11
-              if test "x$wxUSE_SHARED" = xyes ; then
-                  mgl_os_candidates="linux/gcc/x86/so linux/gcc/x86/a linux/gcc/glibc.so linux/gcc/glibc"
-              else
-                  mgl_os_candidates="linux/gcc/x86/a linux/gcc/x86/so linux/gcc/glibc linux/gcc/glibc.so"
-              fi
-              ;;
-            *-pc-msdosdjgpp )
-              mgl_os_candidates="dos32/dj2"
-              ;;
-            *)
-              AC_MSG_ERROR(This system type ${host} is not yet supported by wxMGL.)
-        esac
-
-        mgl_lib_type=""
-        mgl_os=""
-
-        for mgl_os_i in $mgl_os_candidates ; do
-            if test "x$mgl_os" = x ; then
-                if test "$wxUSE_DEBUG_FLAG" = yes ; then
-                    if test -f $MGL_ROOT/lib/debug/$mgl_os_i/libmgl.a -o \
-                            -f $MGL_ROOT/lib/debug/$mgl_os_i/libmgl.so; then
-                        mgl_lib_type=debug
-                        mgl_os=$mgl_os_i
-                    fi
-                fi
-                if test "x$mgl_lib_type" = x ; then
-                    if test -f $MGL_ROOT/lib/release/$mgl_os_i/libmgl.a -o \
-                            -f $MGL_ROOT/lib/release/$mgl_os_i/libmgl.so; then
-                        mgl_lib_type=release
-                        mgl_os=$mgl_os_i
-                    fi
-                fi
-            fi
-        done
-
-        if test "x$mgl_os" = x ; then
-            AC_MSG_RESULT(not found)
-            AC_MSG_ERROR([Cannot find MGL libraries, make sure they are compiled.])
-        fi
-        AC_MSG_RESULT("$MGL_ROOT/lib/$mgl_lib_type/$mgl_os")
-
-        wxUSE_UNIVERSAL="yes"
-
-        TOOLKIT_INCLUDE="-I$MGL_ROOT/include"
-        GUI_TK_LIBRARY="-L$MGL_ROOT/lib/$mgl_lib_type/$mgl_os -lmgl -lmglcpp -lpm"
-
-        AFMINSTALL=afminstall
-        TOOLKIT=MGL
-        GUIDIST=MGL_DIST
-    fi
-
     if test "$wxUSE_DFB" = 1; then
        PKG_PROG_PKG_CONFIG()
 
@@ -3709,25 +3545,6 @@ else
 fi
 
 
-dnl ---------------------------------------------------------------------------
-dnl UTF-8 support
-dnl ---------------------------------------------------------------------------
-
-dnl If UTF-8 support wasn't explicitly enabled or disabled, enable it only
-dnl for ports where it makes sense by default (GTK+, DirectFB):
-if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_UNICODE_UTF8" = "auto" ; then
-    if test "$USE_UNIX" = 1 -a "$wxUSE_DARWIN" != 1 ; then
-        wxUSE_UNICODE_UTF8=yes
-    elif test "$USE_OS2" = 1 ; then
-        dnl wide char support is quite incomplete in libc;
-        dnl UTF-8 might actually work when evaluating/setting
-        dnl code pages correctly, even for ports other than GTK20.
-        wxUSE_UNICODE_UTF8=yes
-    else
-        wxUSE_UNICODE_UTF8=no
-    fi
-fi
-
 dnl ---------------------------------------------------------------------------
 dnl Optional libraries included when system library is not used
 dnl ---------------------------------------------------------------------------
@@ -3754,7 +3571,7 @@ dnl ---------------------------------------------------------------------------
 USE_XINERAMA=0
 if test "$wxUSE_DISPLAY" = "yes"; then
     dnl Xinerama is used for wxGTK1/wxX11/wxMotif only
-    if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_X11" = 1 -o "$wxUSE_GTK1" = 1; then
+    if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_X11" = 1 -o "$WXGTK1" = 1; then
         WX_FIND_LIB(Xinerama, XineramaQueryScreens)
         if test "$ac_find_libraries" != "" ; then
             if test "$ac_find_libraries" != "std" ; then
@@ -3831,7 +3648,7 @@ if test "$wxUSE_OPENGL" = "yes" -o "$wxUSE_OPENGL" = "auto"; then
         OPENGL_LIBS="-framework OpenGL -framework AGL"
     elif test "$wxUSE_MSW" = 1; then
         OPENGL_LIBS="-lopengl32 -lglu32"
-    elif test "$wxUSE_MOTIF" = 1 -o "$wxUSE_X11" = 1 -o "$wxUSE_GTK2" = 1 -o "$wxUSE_GTK" = 1; then
+    elif test "$wxUSE_MOTIF" = 1 -o "$wxUSE_X11" = 1 -o "$wxUSE_GTK" = 1; then
 
         dnl adjust CPPFLAGS to include GL/gl.h location if necessary
         dnl (/opt/graphics/OpenGL is for HP-UX systems, bug 925307)
@@ -4303,19 +4120,11 @@ if test "$ac_cv_func_vsnprintf" = "yes"; then
     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
+            dnl taking "char *" and not "const char *" so test for this too
             AC_TRY_COMPILE(
                 [
                     #include <stdio.h>
                     #include <stdarg.h>
-                    #ifdef __MSL__
-                    #if __MSL__ >= 0x6000
-                    namespace std {}
-                    using namespace std;
-                    #endif
-                    #endif
                 ],
                 [
                     char *buf;
@@ -5076,7 +4885,13 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
 
     dnl do other tests only if we are using threads
     if test "$wxUSE_THREADS" = "yes" ; then
-      AC_CHECK_FUNCS(thr_setconcurrency)
+        AC_CHECK_FUNCS(pthread_setconcurrency,
+            AC_DEFINE(HAVE_PTHREAD_SET_CONCURRENCY),
+            [
+                AC_CHECK_FUNCS(thr_setconcurrency,
+                    AC_DEFINE(HAVE_THR_SETCONCURRENCY),
+                    AC_MSG_WARN(Setting thread concurrency will not work properly))
+            ])
 
       dnl can't use AC_CHECK_FUNCS for this one as it's usually a macro and so
       dnl wouldn't be found by it
@@ -5347,6 +5162,10 @@ dnl AC_CHECK_FUNC(getaddrinfo, AC_DEFINE(HAVE_GETADDRINFO), [
 dnl    ]
 dnl )
 
+dnl This is currently always defined under Unix, there is no reason to ever
+dnl disable compiler TLS support there.
+AC_DEFINE(wxUSE_COMPILER_TLS)
+
 if test "$wxUSE_THREADS" = "yes"; then
   AC_DEFINE(wxUSE_THREADS)
 
@@ -5365,6 +5184,10 @@ else
   fi
 fi
 
+if test "$WXGTK3" = 1 ; then
+    AC_DEFINE_UNQUOTED(__WXGTK3__, 1)
+    WXGTK2=1
+fi
 if test "$WXGTK2" = 1 ; then
   AC_DEFINE_UNQUOTED(__WXGTK20__,$WXGTK2)
 fi
@@ -5401,10 +5224,10 @@ if test "$wxUSE_DEBUG_FLAG" = "no" ; then
     WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -DwxDEBUG_LEVEL=0"
 
     if test "$wxUSE_GTK" = 1 ; then
-        if test "x$wxGTK_VERSION" = "x1" ; then
-            CPPFLAGS="-DGTK_NO_CHECK_CASTS $CPPFLAGS"
-        else
+        if test "$WXGTK2" = 1 ; then
             CPPFLAGS="$CPPFLAGS -DG_DISABLE_CAST_CHECKS"
+        else
+            CPPFLAGS="-DGTK_NO_CHECK_CASTS $CPPFLAGS"
         fi
     fi
 fi
@@ -5710,40 +5533,37 @@ fi
 dnl Unix implementation needs additional checks because audio support
 dnl comes in many favours:
 if test "$USE_UNIX" = 1 ; then
-    dnl mmedia doesn't compile with wxMGL, remove this if this is ever fixed
-    if test "$wxUSE_MGL" != 1; then
-        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 SNDCTL_DSP_SPEED in sys/soundcard.h], ac_cv_header_sys_soundcard, [
-            AC_TRY_LINK([
-                    #include <sys/ioctl.h>
-                    #include <sys/soundcard.h>
-                ],
-                [
-                    ioctl(0, SNDCTL_DSP_SPEED, 0);
-                ],
-                ac_cv_header_sys_soundcard=yes,
-                [
-                    saveLibs="$LIBS"
-                    LIBS="$saveLibs -lossaudio"
-                    AC_TRY_LINK([
-                            #include <sys/ioctl.h>
-                            #include <sys/soundcard.h>
-                        ],
-                        [
-                            ioctl(0, SNDCTL_DSP_SPEED, 0);
-                        ],
-                        ac_cv_header_sys_soundcard=yes,
-                        [
-                            LIBS="$saveLibs"
-                            ac_cv_header_sys_soundcard=no
-                        ]
-                    )
-                ]
-            )
-        ])
-    fi
+    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 SNDCTL_DSP_SPEED in sys/soundcard.h], ac_cv_header_sys_soundcard, [
+        AC_TRY_LINK([
+                #include <sys/ioctl.h>
+                #include <sys/soundcard.h>
+            ],
+            [
+                ioctl(0, SNDCTL_DSP_SPEED, 0);
+            ],
+            ac_cv_header_sys_soundcard=yes,
+            [
+                saveLibs="$LIBS"
+                LIBS="$saveLibs -lossaudio"
+                AC_TRY_LINK([
+                        #include <sys/ioctl.h>
+                        #include <sys/soundcard.h>
+                    ],
+                    [
+                        ioctl(0, SNDCTL_DSP_SPEED, 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)
@@ -5766,12 +5586,6 @@ if test "$wxUSE_SOUND" = "yes"; then
         WITH_PLUGIN_SDL=1
       fi
     fi
-  else
-    dnl wxMGL doesn't support sound under DOS, only under Unix
-    if test "$wxUSE_MGL" = 1; then
-        AC_MSG_WARN([wxSound not supported in MGL under DOS... disabled])
-        wxUSE_SOUND="no"
-    fi
   fi
 fi
 
@@ -5786,10 +5600,15 @@ if test "$WXGTK2" = 1; then
     if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
 
         if test "$wxUSE_GTKPRINT" = "yes" ; then
-
+            if test "$WXGTK3" = 1; then
+                gtk_unix_print="gtk+-unix-print-3.0"
+            else
+                gtk_unix_print="gtk+-unix-print-2.0 >= 2.10"
+            fi
                 PKG_CHECK_MODULES(GTKPRINT,
-                                  [gtk+-unix-print-2.0 >= 2.10],
+                                  [$gtk_unix_print],
                     [
+                        GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GTKPRINT_LIBS"
                         CFLAGS="$GTKPRINT_CFLAGS $CFLAGS"
                         CXXFLAGS="$GTKPRINT_CFLAGS $CXXFLAGS"
                         AC_DEFINE(wxUSE_GTKPRINT)
@@ -5801,11 +5620,16 @@ if test "$WXGTK2" = 1; then
                 )
         fi
 
+        if test "$WXGTK3" = 1; then
+            wxUSE_LIBGNOMEPRINT=no
+        fi
+
         if test "$wxUSE_LIBGNOMEPRINT" = "yes" ; then
 
                 PKG_CHECK_MODULES(LIBGNOMEPRINTUI,
                                   [libgnomeprintui-2.2 >= 2.8],
                     [
+                        GUI_TK_LIBRARY="$GUI_TK_LIBRARY $LIBGNOMEPRINTUI_LIBS"
                         CFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CFLAGS"
                         CXXFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CXXFLAGS"
                         AC_DEFINE(wxUSE_LIBGNOMEPRINT)
@@ -5828,6 +5652,7 @@ if test "$WXGTK2" = 1; then
                 PKG_CHECK_MODULES(GNOMEVFS,
                                   [gnome-vfs-2.0 >= 2.0],
                     [
+                        GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GNOMEVFS_LIBS"
                         CFLAGS="$GNOMEVFS_CFLAGS $CFLAGS"
                         CXXFLAGS="$GNOMEVFS_CFLAGS $CXXFLAGS"
                         AC_DEFINE(wxUSE_LIBGNOMEVFS)
@@ -5844,7 +5669,7 @@ if test "$WXGTK2" = 1; then
         PKG_CHECK_MODULES(HILDON,
                           [hildon-lgpl >= 0.9],
             [
-                EXTRALIBS_HILDON="$HILDON_LIBS"
+                GUI_TK_LIBRARY="$GUI_TK_LIBRARY $HILDON_LIBS"
                 CFLAGS="$CFLAGS $HILDON_CFLAGS"
                 CXXFLAGS="$CXXFLAGS $HILDON_CFLAGS"
                 AC_DEFINE(wxUSE_LIBHILDON)
@@ -5861,7 +5686,7 @@ if test "$WXGTK2" = 1; then
             PKG_CHECK_MODULES(HILDON2,
                               [hildon-1 >= 1.99],
                 [
-                    EXTRALIBS_HILDON="$HILDON2_LIBS"
+                    GUI_TK_LIBRARY="$GUI_TK_LIBRARY $HILDON2_LIBS"
                     CFLAGS="$CFLAGS $HILDON2_CFLAGS"
                     CXXFLAGS="$CXXFLAGS $HILDON2_CFLAGS"
                     AC_DEFINE(wxUSE_LIBHILDON2)
@@ -6264,14 +6089,6 @@ dnl ------------------------------------------------------------------------
 dnl wxSocket
 dnl ------------------------------------------------------------------------
 
-dnl VZ: the GUI hooks wxSocket needs are not implemented yet in some toolkits
-if test "$wxUSE_SOCKETS" = "yes"; then
-    if test "$wxUSE_MGL" = 1; then
-        AC_MSG_WARN([wxSocket not yet supported under MGL... disabled])
-        wxUSE_SOCKETS="no"
-    fi
-fi
-
 if test "$wxUSE_SOCKETS" = "yes"; then
     dnl under MSW we always have sockets
     if test "$TOOLKIT" != "MSW"; then
@@ -6526,16 +6343,13 @@ if test "$wxUSE_GUI" = "yes" -a "$wxUSE_JOYSTICK" = "yes"; then
 
     dnl joystick support is only for Linux 2.1.x or greater
     else
-        dnl wxJoystick not supported by wxMGL at all
-        if test "$wxUSE_MGL" != 1; then
-            dnl notice the dummy includes argument: without it, AC_CHECK_HEADER
-            dnl checks only whether the header can be preprocessed, not that it
-            dnl can be compiled and in Linux 2.6.16 joystick.h is present but
-            dnl can't be compiled because of an error and with the default
-            dnl AC_CHECK_HEADER semantics we'd still detect it in this case and
-            dnl build would fail later
-            AC_CHECK_HEADERS([linux/joystick.h], [wxUSE_JOYSTICK=yes],, [AC_INCLUDES_DEFAULT()])
-        fi
+        dnl notice the dummy includes argument: without it, AC_CHECK_HEADER
+        dnl checks only whether the header can be preprocessed, not that it
+        dnl can be compiled and in Linux 2.6.16 joystick.h is present but
+        dnl can't be compiled because of an error and with the default
+        dnl AC_CHECK_HEADER semantics we'd still detect it in this case and
+        dnl build would fail later
+        AC_CHECK_HEADERS([linux/joystick.h], [wxUSE_JOYSTICK=yes],, [AC_INCLUDES_DEFAULT()])
     fi
 
     if test "$wxUSE_JOYSTICK" = "yes"; then
@@ -6725,12 +6539,7 @@ if test "$wxUSE_IPC" = "yes"; then
 fi
 
 if test "$wxUSE_DATAOBJ" = "yes"; then
-    if test "$wxUSE_MGL" = 1 -o "$wxUSE_DFB" = 1; then
-        AC_MSG_WARN([wxDataObject not yet supported under $TOOLKIT... disabled])
-        wxUSE_DATAOBJ=no
-    else
-        AC_DEFINE(wxUSE_DATAOBJ)
-    fi
+    AC_DEFINE(wxUSE_DATAOBJ)
 else
     AC_MSG_WARN([Clipboard and drag-and-drop require wxDataObject -- disabled])
     wxUSE_CLIPBOARD=no
@@ -6738,7 +6547,7 @@ else
 fi
 
 if test "$wxUSE_CLIPBOARD" = "yes"; then
-    if test "$wxUSE_MGL" = 1 -o "$wxUSE_DFB" = 1; then
+    if test "$wxUSE_DFB" = 1; then
         AC_MSG_WARN([Clipboard not yet supported under $TOOLKIT... disabled])
         wxUSE_CLIPBOARD=no
     fi
@@ -6749,8 +6558,7 @@ if test "$wxUSE_CLIPBOARD" = "yes"; then
 fi
 
 if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then
-    if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_X11" = 1 -o "$wxUSE_MGL" = 1 -o \
-            "$wxUSE_DFB" = 1; then
+    if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_X11" = 1 -o "$wxUSE_DFB" = 1; then
         AC_MSG_WARN([Drag and drop not yet supported under $TOOLKIT... disabled])
         wxUSE_DRAG_AND_DROP=no
     fi
@@ -6908,7 +6716,7 @@ if test "$wxUSE_FONTPICKERCTRL" = "yes"; then
 fi
 
 if test "$wxUSE_DISPLAY" = "yes"; then
-    if test "$wxUSE_DFB" = 1 -o "$wxUSE_MGL" = 1; then
+    if test "$wxUSE_DFB" = 1; then
         AC_MSG_WARN([wxDisplay not yet supported under $TOOLKIT... disabled])
         wxUSE_DISPLAY=no
     else
@@ -7185,7 +6993,7 @@ if test "$wxUSE_POPUPWIN" = "yes"; then
 fi
 
 if test "$wxUSE_DIALUP_MANAGER" = "yes"; then
-    if test "$wxUSE_MAC" = 1 -o "$wxUSE_OLD_COCOA" = 1 -o "$wxUSE_MGL" = 1; then
+    if test "$wxUSE_MAC" = 1 -o "$wxUSE_OLD_COCOA" = 1; then
         AC_MSG_WARN([Dialup manager not supported on this platform... disabled])
     else
         AC_DEFINE(wxUSE_DIALUP_MANAGER)
@@ -7350,6 +7158,10 @@ fi
 
 if test "$wxUSE_TASKBARICON" = "yes"; then
     AC_DEFINE(wxUSE_TASKBARICON)
+    dnl This is used under MSW, just enable it always without testing for the
+    dnl toolkit nor providing a separate option for it because it's totally
+    dnl harmless to have it defined even if it's unnecessary.
+    AC_DEFINE(wxUSE_TASKBARICON_BALLOONS)
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS taskbar"
 fi
 
@@ -7384,44 +7196,20 @@ if test "$wxUSE_WEBVIEW" = "yes"; then
     USE_WEBVIEW_WEBKIT=0
     if test "$wxUSE_WEBVIEW_WEBKIT" = "yes"; then
         if test "$wxUSE_GTK" = 1; then
-            AC_MSG_CHECKING([for webkitgtk libraries])
-            WX_PATH_FIND_LIBRARIES(webkitgtk-1.0)
-            if test "$ac_find_libraries" != "" ; then
-                WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
-                if test "$ac_path_to_link" != " -L/usr/lib" ; then
-                    LDFLAGS="$LDFLAGS $ac_path_to_link"
-                fi
-                GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lwebkitgtk-1.0"
-                AC_MSG_RESULT([yes])
-           
-                AC_MSG_CHECKING(for webkitgtk headers)
-                WX_PATH_FIND_INCLUDES([$SEARCH_INCLUDE /usr/include/webkit-1.0], webkit/webkit.h)
-                if test "$ac_find_includes" != "" ; then
-                   AC_MSG_RESULT(found in $ac_find_includes)
-                   WX_INCLUDE_PATH_EXIST($ac_find_includes, $CPPFLAGS)
-                   CPPFLAGS="$ac_path_to_include $CPPFLAGS"
-                   
-                   dnl we also depend on libsoup
-                   AC_MSG_CHECKING(for libsoup headers)
-                   WX_PATH_FIND_INCLUDES([$SEARCH_INCLUDE /usr/include/libsoup-2.4], libsoup/soup.h)
-                   if test "$ac_find_includes" != "" ; then
-                       AC_MSG_RESULT(found in $ac_find_includes)
-                       WX_INCLUDE_PATH_EXIST($ac_find_includes, $CPPFLAGS)
-                       CPPFLAGS="$ac_path_to_include $CPPFLAGS"
-
-                       USE_WEBVIEW_WEBKIT=1
-                   else
-                       AC_MSG_RESULT([not found])
-                       AC_MSG_WARN([libsoup headers not found; disabling WebKit backend])
-                   fi
-                else
-                   AC_MSG_RESULT([not found])
-                   AC_MSG_WARN([WebKit headers not found; disabling WebKit backend])
-                fi
-            else
-                AC_MSG_RESULT([no])
-                AC_MSG_WARN([WebKit libraries not found; disabling WebKit backend])
+            webkitgtk=webkit-1.0
+            if test "$WXGTK3" = 1; then
+                webkitgtk=webkitgtk-3.0
             fi
+            PKG_CHECK_MODULES([WEBKIT],
+                              [$webkitgtk >= 1.3.1],
+                              [
+                                USE_WEBVIEW_WEBKIT=1
+                                CPPFLAGS="$CPPFLAGS $WEBKIT_CFLAGS"
+                                GUI_TK_LIBRARY="$GUI_TK_LIBRARY $WEBKIT_LIBS"
+                              ],
+                              [
+                                AC_MSG_WARN([webkitgtk not found.])
+                              ])
         elif test "$wxUSE_MAC" = 1 -a "$USE_DARWIN" = 1; then
             dnl Under Mac we always have the libraries but check for the
             dnl headers
@@ -7877,7 +7665,39 @@ if test "$wxUSE_MAC" = 1 ; then
         if test "$wxUSE_OSX_IPHONE" = 1; then
             EXTRA_FRAMEWORKS="-framework IOKit -framework UIKit -framework CFNetwork -framework AudioToolbox -framework CoreFoundation -framework CoreGraphics -framework OpenGLES -framework Foundation -framework QuartzCore"
         else
-            EXTRA_FRAMEWORKS="-framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL -framework QuickTime"
+            EXTRA_FRAMEWORKS="-framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL"
+
+            dnl The case of QuickTime framework is special: we only need it in
+            dnl 32 bit builds and not in 64 bit and, moreover, linking with it
+            dnl in 64 bit builds results in a warning because the framework is
+            dnl not available in 64 bits itself. So make an effort to avoid it
+            dnl when building for 64 bits only (i.e. not universal build).
+
+            if test "$cross_compiling" != "no"; then
+                dnl The check below doesn't work well when cross-compiling
+                dnl ("file" under non-OS X systems might not recognize
+                dnl universal binaries) so assume we do build for 32 bits as
+                dnl it's safer: at worst we'll get a warning when building in
+                dnl 64 bits only, but at least the build will still work.
+                wx_cv_target_x86_64=no
+            else
+                AC_CACHE_CHECK(
+                    [if we target only x86_64],
+                    wx_cv_target_x86_64,
+                    AC_LINK_IFELSE(
+                        [AC_LANG_SOURCE([int main() { return 0; }])],
+                        if file conftest$ac_exeext|grep -q 'i386\|ppc'; then
+                            wx_cv_target_x86_64=no
+                        else
+                            wx_cv_target_x86_64=yes
+                        fi
+                    )
+                )
+            fi
+
+            if test "$wx_cv_target_x86_64" != "yes"; then
+                EXTRA_FRAMEWORKS="$EXTRA_FRAMEWORKS -framework QuickTime"
+            fi
         fi
     fi
 fi
@@ -7987,8 +7807,7 @@ 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):
+dnl in case the latter contains setup.h used by non-autoconf makefiles
 CPPFLAGS=`echo $WXCONFIG_CPPFLAGS \
  -I\\${wx_top_builddir}/lib/wx/include/${TOOLCHAIN_FULLNAME} \
  -I\\${top_srcdir}/include $TOOLKIT_INCLUDE \
@@ -8028,7 +7847,7 @@ EXTRALIBS_HTML="$MSPACK_LINK"
 EXTRALIBS_MEDIA="$GST_LIBS"
 EXTRALIBS_STC="-lwxscintilla${WX_LIB_FLAVOUR}-${WX_RELEASE}${HOST_SUFFIX}"
 if test "$wxUSE_GUI" = "yes"; then
-    EXTRALIBS_GUI=`echo $GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK $WEBKIT_LINK $EXTRALIBS_HILDON $EXTRALIBS_GNOMEVFS $EXTRALIBS_GNOMEPRINT`
+    EXTRALIBS_GUI=`echo $GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK $WEBKIT_LINK`
 fi
 if test "$wxUSE_OPENGL" = "yes"; then
     EXTRALIBS_OPENGL="$LDFLAGS_GL $OPENGL_LIBS"
@@ -8130,10 +7949,6 @@ AC_SUBST(EXTRALIBS_OPENGL)
 AC_SUBST(EXTRALIBS_SDL)
 AC_SUBST(EXTRALIBS_STC)
 AC_SUBST(WITH_PLUGIN_SDL)
-AC_SUBST(EXTRALIBS_GTKPRINT)
-AC_SUBST(EXTRALIBS_GNOMEPRINT)
-AC_SUBST(EXTRALIBS_GNOMEVFS)
-AC_SUBST(EXTRALIBS_HILDON)
 AC_SUBST(UNICODE)
 AC_SUBST(DEBUG_INFO)
 AC_SUBST(DEBUG_FLAG)
@@ -8152,7 +7967,11 @@ case "$TOOLKIT" in
     GTK)
         TOOLKIT_DESC="GTK+"
         if test "$WXGTK2" = 1; then
-            TOOLKIT_DESC="$TOOLKIT_DESC 2"
+            if test "$WXGTK3" = 1; then
+                TOOLKIT_DESC="$TOOLKIT_DESC 3"
+            else
+                TOOLKIT_DESC="$TOOLKIT_DESC 2"
+            fi
             if test "$wxUSE_GTKPRINT" = "yes" ; then
                 TOOLKIT_EXTRA="$TOOLKIT_EXTRA GTK+ printing";
             fi
@@ -8328,9 +8147,11 @@ dnl at which time, this hack can be removed.
 
 if test "$wxUSE_MAC" = 1 ; then
     if test "x$wxUSE_UNIVERSAL_BINARY" != "xno" ; then
-        sed "s/DEPSMODE=gcc/DEPSMODE=none/" < bk-deps > temp
-        mv temp bk-deps
-        chmod +x bk-deps
+        if test "x$disable_macosx_deps" = "xyes"; then
+            sed "s/DEPSMODE=gcc/DEPSMODE=none/" < bk-deps > temp
+                mv temp bk-deps
+            chmod +x bk-deps
+        fi
     fi
 fi