QtConcurrent: Remove QMutex kept for BC reasons.
[profile/ivi/qtbase.git] / configure
index b24787a..7f9ea8a 100755 (executable)
--- a/configure
+++ b/configure
@@ -71,8 +71,10 @@ QTCONFIG_CONFIG=
 QT_CONFIG=
 SUPPORTED=
 QMAKE_VARS_FILE=.qmake.vars
+DEVICE_VARS_FILE=.device.vars
 
 :> "$QMAKE_VARS_FILE"
+:> "$DEVICE_VARS_FILE"
 
 #-------------------------------------------------------------------------------
 # utility functions
@@ -153,7 +155,7 @@ BEGIN {
         ovalue = ovalue substr(value, 1, RSTART - 1)
         var = substr(value, RSTART + 2, RLENGTH - 2)
         value = substr(value, RSTART + RLENGTH)
-        if (var ~ /^{/) {
+        if (var ~ /^\{/) {
             var = substr(var, 2, length(var) - 2)
         }
         ovalue = ovalue values[var]
@@ -224,6 +226,40 @@ linkerSupportsFlag()
 }
 
 #-------------------------------------------------------------------------------
+# device options
+#-------------------------------------------------------------------------------
+DeviceVar()
+{
+    case "$1" in
+        set)
+            eq="="
+            ;;
+        *)
+            echo >&2 "BUG: wrong command to QMakeVar: $1"
+            ;;
+    esac
+
+    echo "$2" "$eq" "$3" >> "$DEVICE_VARS_FILE"
+}
+
+resolveDeviceMkspec()
+{
+    result=$(find "$relpath/mkspecs/devices/" -type d -name "*$VAL*" | sed "s,^$relpath/mkspecs/,,")
+    match_count=$(echo "$result" | wc -w)
+    if [ "$match_count" -gt 1 ]; then
+        echo >&2 "Error: Multiple matches for device '$VAL'. Candidates are:"
+        tabbed_result=$(echo "$result" | sed "s,^,    ,")
+        echo >&2 "$tabbed_result"
+        echo "undefined"
+    elif [ "$match_count" -eq 0 ]; then
+        echo >&2 "Error: No device matching '$VAL'"
+        echo "undefined"
+    else
+        echo "$result"
+    fi
+}
+
+#-------------------------------------------------------------------------------
 # operating system detection
 #-------------------------------------------------------------------------------
 
@@ -244,8 +280,6 @@ fi
 # window system detection
 #-------------------------------------------------------------------------------
 
-PLATFORM_X11=no
-PLATFORM_QPA=yes
 BUILD_ON_MAC=no
 PLATFORM_MAC=no
 if [ -d /System/Library/Frameworks/Carbon.framework ]; then
@@ -316,16 +350,6 @@ earlyArgParse()
             VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
             VAL=no
             ;;
-        -embedded-lite|-qpa)
-            VAR=qpa
-            # this option may or may not be followed by an argument
-            if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
-                VAL=auto
-            else
-                shift;
-                VAL=$1
-            fi
-            ;;
         -h|help|--help|-help)
             if [ "$VAL" = "yes" ]; then
                 OPT_HELP="$VAL"
@@ -355,16 +379,6 @@ earlyArgParse()
 
         UNKNOWN_OPT=no
         case "$VAR" in
-        qpa)
-            if [ "$PLATFORM_QPA" != "no" ]; then
-                if [ "$PLATFORM_QPA" = "maybe" ]; then
-                    PLATFORM_X11=no
-                    PLATFORM_QPA=yes
-                fi
-            else
-                echo "No license exists to enable Qt QPA. Disabling."
-            fi
-            ;;
         developer-build)
             CFG_DEV="yes"
             ;;
@@ -412,7 +426,6 @@ if [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ];
 elif [ $COMMERCIAL_USER = "yes" ]; then
     # one of commercial editions
     [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
-    [ "$PLATFORM_QPA" = "maybe" ] && PLATFORM_QPA=no
 
     # read in the license file
     if [ -f "$LICENSE_FILE" ]; then
@@ -505,7 +518,7 @@ elif [ $COMMERCIAL_USER = "yes" ]; then
            ;;
     esac
     ### EMBEDDED_QPA logic missing ###
-    case "$PlatformCode,$PLATFORM_MAC,$PLATFORM_QWS" in
+    case "$PlatformCode,$PLATFORM_MAC" in
         X9,* | XC,* | XU,* | XW,* | XM,*)
             # Qt All-OS
             LICENSE_EXTENSION="-ALLOS"
@@ -514,11 +527,11 @@ elif [ $COMMERCIAL_USER = "yes" ]; then
             # Qt for Embedded Linux
             LICENSE_EXTENSION="-EMBEDDED"
             ;;
-        6M,*,no | N7,*,no | N9,*,no | NX,*,no)
+        6M,* | N7,* | N9,* | NX,*)
             # Embedded no-deploy
             LICENSE_EXTENSION="-EMBEDDED"
             ;;
-        FM,*,no | LM,yes,* | ZM,no,no)
+        FM,* | LM,yes | ZM,no)
             # Desktop
             LICENSE_EXTENSION="-DESKTOP"
             ;;
@@ -649,7 +662,6 @@ MIN_DBUS_1_VERSION=0.93
 # initalize internal variables
 CFG_CONFIGURE_EXIT_ON_ERROR=yes
 CFG_PROFILE=no
-CFG_EXCEPTIONS=unspecified
 CFG_GUI=auto # (yes|no|auto)
 CFG_WIDGETS=yes
 CFG_QCONFIG=full
@@ -684,14 +696,15 @@ CFG_SSE=auto
 CFG_FONTCONFIG=auto
 CFG_LIBFREETYPE=auto
 CFG_SQL_AVAILABLE=
-QT_DEFAULT_BUILD_PARTS="libs examples tests"
+QT_DEFAULT_BUILD_PARTS="libs examples"
 CFG_BUILD_PARTS=""
 CFG_NOBUILD_PARTS=""
 CFG_RELEASE_QMAKE=no
 CFG_AUDIO_BACKEND=auto
 CFG_V8SNAPSHOT=auto
-CFG_DECLARATIVE_DEBUG=yes
+CFG_QML_DEBUG=yes
 CFG_JAVASCRIPTCORE_JIT=auto
+CFG_PKGCONFIG=auto
 
 # Target architecture
 CFG_ARCH=
@@ -708,6 +721,7 @@ CFG_XKB=auto
 CFG_XCB=auto
 CFG_XCB_LIMITED=yes
 CFG_EGLFS=auto
+CFG_DIRECTFB=auto
 CFG_LIBUDEV=auto
 CFG_OBSOLETE_WAYLAND=no
 CFG_EVDEV=auto
@@ -720,22 +734,18 @@ CFG_GSTREAMER=auto
 CFG_QGTKSTYLE=auto
 CFG_LARGEFILE=auto
 CFG_OPENSSL=auto
-CFG_STL=auto
 CFG_PRECOMPILE=auto
 CFG_SEPARATE_DEBUG_INFO=no
 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
 CFG_REDUCE_EXPORTS=auto
-CFG_MMX=auto
-CFG_3DNOW=auto
-CFG_SSE=auto
 CFG_SSE2=auto
 CFG_SSE3=auto
 CFG_SSSE3=auto
 CFG_SSE4_1=auto
 CFG_SSE4_2=auto
 CFG_AVX=auto
+CFG_AVX2=auto
 CFG_REDUCE_RELOCATIONS=auto
-CFG_NAS=no
 CFG_ACCESSIBILITY=auto
 CFG_IWMMXT=no
 CFG_NEON=auto
@@ -751,7 +761,6 @@ CFG_INOTIFY=auto
 CFG_RPATH=yes
 CFG_FRAMEWORK=auto
 MAC_CONFIG_TEST_COMMANDLINE=  # used to make the configure tests run with the correct arch's and SDK settings
-CFG_MAC_DWARF2=auto
 CFG_MAC_HARFBUZZ=no
 CFG_SXE=no
 CFG_PREFIX_INSTALL=yes
@@ -824,6 +833,9 @@ QT_LIBS_GLIB=
 QT_CFLAGS_GSTREAMER=
 QT_LIBS_GSTREAMER=
 
+# default qpa platform
+QT_QPA_DEFAULT_PLATFORM=
+
 #-------------------------------------------------------------------------------
 # check SQL drivers available in this package
 #-------------------------------------------------------------------------------
@@ -895,23 +907,18 @@ while [ "$#" -gt 0 ]; do
         VAL=no
         ;;
     #Qt style yes options
-    -profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-xinput2|-egl|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-xcb|-eglfs|-nis|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-debug-and-release|-exceptions|-harfbuzz|-prefix-install|-silent|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-phonon-backend|-audio-backend|-declarative-debug|-javascript-jit|-rpath|-force-pkg-config|-icu|-force-asserts|-testcocoon)
+    -profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-xinput2|-egl|-reduce-exports|-pch|-separate-debug-info|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-xcb|-eglfs|-directfb|-nis|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-debug-and-release|-harfbuzz|-prefix-install|-silent|-optimized-qmake|-reduce-relocations|-sse|-openssl|-openssl-linked|-phonon-backend|-audio-backend|-qml-debug|-javascript-jit|-rpath|-pkg-config|-force-pkg-config|-icu|-force-asserts|-testcocoon)
         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
         VAL=yes
         ;;
     #Qt style options that pass an argument
     -qconfig)
-        if [ "$PLATFORM_QPA" != "yes" ]; then
-            echo
-            echo "WARNING: -qconfig is only tested and supported on Qt for Embedded Linux."
-            echo
-        fi
         CFG_QCONFIG="$VAL"
         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
         shift
         VAL=$1
         ;;
-    -prefix|-docdir|-headerdir|-plugindir|-importdir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-testsdir|-depths|-make|-nomake|-platform|-xplatform|-sdk|-arch|-host-arch|-mysql_config|-sysroot|-hostdatadir|-hostbindir)
+    -prefix|-docdir|-headerdir|-plugindir|-importdir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-testsdir|-depths|-make|-nomake|-platform|-xplatform|-device|-device-option|-sdk|-arch|-host-arch|-mysql_config|-sysroot|-hostdatadir|-hostbindir|-qpa)
         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
         shift
         VAL="$1"
@@ -931,16 +938,6 @@ while [ "$#" -gt 0 ]; do
         VAR=fatal_error
         VAL=no
         ;;
-    -embedded-lite|-qpa)
-        VAR=qpa
-        # this option may or may not be followed by an argument
-        if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
-            VAL=auto
-        else
-            shift;
-            VAL=$1
-        fi
-       ;;
     -opengl)
         VAR=opengl
         # this option may or may not be followed by an argument
@@ -1027,9 +1024,14 @@ while [ "$#" -gt 0 ]; do
             VAL=`echo $1 | sed 's,-R,,'`
         fi
         ;;
-    -l?*)
+    -l?*|-l)
         VAR="add_link"
-        VAL=`echo $1 | sed 's,-l,,'`
+        if [ "$1" = "-l" ]; then
+            shift
+            VAL="$1"
+        else
+            VAL=`echo $1 | sed 's,-l,,'`
+        fi
         ;;
     -F?*|-F)
         VAR="add_fpath"
@@ -1100,8 +1102,15 @@ while [ "$#" -gt 0 ]; do
     hostbindir)
         QT_HOST_BINS="$VAL"
         ;;
+    pkg-config)
+        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+            CFG_PKGCONFIG="$VAL"
+        else
+            UNKNOWN_OPT=yes
+        fi
+        ;;
     force-pkg-config)
-        QT_FORCE_PKGCONFIG=yes
+        CFG_PKGCONFIG="force"
         ;;
     docdir)
         QT_INSTALL_DOCS="$VAL"
@@ -1151,10 +1160,6 @@ while [ "$#" -gt 0 ]; do
     sxe)
        CFG_SXE="$VAL"
         ;;
-    embedded-lite|qpa)
-        PLATFORM_X11=no
-        PLATFORM_QPA=yes
-        ;;
     sse)
         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
             CFG_SSE="$VAL"
@@ -1184,11 +1189,6 @@ while [ "$#" -gt 0 ]; do
     make)
        CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
         ;;
-    x11)
-        PLATFORM_QPA=no
-        PLATFORM_MAC=no
-        PLATFORM_X11=yes
-        ;;
     sdk)
         if [ "$BUILD_ON_MAC" = "yes" ]; then
             CFG_SDK="$VAL"
@@ -1196,13 +1196,6 @@ while [ "$#" -gt 0 ]; do
             UNKNOWN_OPT=yes
         fi
        ;;
-     dwarf2)
-        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
-            CFG_MAC_DWARF2="$VAL"
-        else
-            UNKNOWN_OPT=yes
-        fi
-       ;;
     arch|host-arch)
         OPT_OBSOLETE_HOST_ARG=yes
         ;;
@@ -1237,15 +1230,6 @@ while [ "$#" -gt 0 ]; do
             QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
         fi
         ;;
-    exceptions|g++-exceptions)
-        if [ "$VAL" = "no" ]; then
-            CFG_EXCEPTIONS=no
-        elif [ "$VAL" = "yes" ]; then
-            CFG_EXCEPTIONS=yes
-        else
-            UNKNOWN_OPT=yes
-        fi
-        ;;
     platform)
         PLATFORM="$VAL"
         # keep compatibility with old platform names
@@ -1307,6 +1291,18 @@ while [ "$#" -gt 0 ]; do
         XPLATFORM="$VAL"
         case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
         ;;
+    device)
+        XPLATFORM=`resolveDeviceMkspec $VAL`
+        [ "$XPLATFORM" = "undefined" ] && exit 101
+        ;;
+    device-option)
+        DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
+        DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
+        DeviceVar set $DEV_VAR $DEV_VAL
+        ;;
+    qpa)
+        QT_QPA_DEFAULT_PLATFORM="$VAL"
+        ;;
     debug-and-release)
         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
             CFG_DEBUG_RELEASE="$VAL"
@@ -1440,13 +1436,6 @@ while [ "$#" -gt 0 ]; do
             UNKNOWN_OPT=yes
         fi
         ;;
-    stl)
-        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
-            CFG_STL="$VAL"
-        else
-            UNKNOWN_OPT=yes
-        fi
-        ;;
     pch)
         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
             CFG_PRECOMPILE="$VAL"
@@ -1471,27 +1460,6 @@ while [ "$#" -gt 0 ]; do
             UNKNOWN_OPT=yes
         fi
         ;;
-    mmx)
-        if [ "$VAL" = "no" ]; then
-            CFG_MMX="$VAL"
-        else
-            UNKNOWN_OPT=yes
-        fi
-        ;;
-    3dnow)
-        if [ "$VAL" = "no" ]; then
-            CFG_3DNOW="$VAL"
-        else
-            UNKNOWN_OPT=yes
-        fi
-        ;;
-    sse)
-        if [ "$VAL" = "no" ]; then
-            CFG_SSE="$VAL"
-        else
-            UNKNOWN_OPT=yes
-        fi
-        ;;
     sse2)
         if [ "$VAL" = "no" ]; then
             CFG_SSE2="$VAL"
@@ -1534,6 +1502,13 @@ while [ "$#" -gt 0 ]; do
             UNKNOWN_OPT=yes
         fi
         ;;
+    avx2)
+        if [ "$VAL" = "no" ]; then
+            CFG_AVX2="$VAL"
+        else
+            UNKNOWN_OPT=yes
+        fi
+        ;;
     iwmmxt)
        CFG_IWMMXT="yes"
        ;;
@@ -1598,13 +1573,6 @@ while [ "$#" -gt 0 ]; do
             UNKNOWN_OPT=yes
         fi
         ;;
-    nas-sound)
-        if [ "$VAL" = "system" ] || [ "$VAL" = "no" ]; then
-            CFG_NAS="$VAL"
-        else
-            UNKNOWN_OPT=yes
-        fi
-        ;;
     xcursor)
         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
             CFG_XCURSOR="$VAL"
@@ -1671,6 +1639,13 @@ while [ "$#" -gt 0 ]; do
             UNKNOWN_OPT=yes
         fi
         ;;
+    directfb)
+        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+            CFG_DIRECTFB="$VAL"
+        else
+            UNKNOWN_OPT=yes
+        fi
+        ;;
     libudev)
         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
             CFG_LIBUDEV="$VAL"
@@ -1791,12 +1766,12 @@ while [ "$#" -gt 0 ]; do
             UNKNOWN_OPT=yes
         fi
         ;;
-    declarative-debug)
+    qml-debug)
         if [ "$VAL" = "yes" ]; then
-            CFG_DECLARATIVE_DEBUG="yes"
+            CFG_QML_DEBUG="yes"
         else
             if [ "$VAL" = "no" ]; then
-                CFG_DECLARATIVE_DEBUG="no"
+                CFG_QML_DEBUG="no"
             else
                 UNKNOWN_OPT=yes
             fi
@@ -2079,9 +2054,9 @@ if [ "$OPT_SHADOW" = "yes" ]; then
     [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
 fi
 
-if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QPA" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
+if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
     echo
-    echo "WARNING: -debug-and-release is not supported anymore on Qt/X11 and Qt for Embedded Linux"
+    echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
     echo "Qt can be built in release mode with separate debug information, so"
     echo "-debug-and-release is not necessary anymore"
     echo
@@ -2125,6 +2100,10 @@ if [ "$OPT_SHADOW" = "yes" ]; then
         fi
     done
 
+    # save a pre-existing mkspecs/modules dir
+    test -d "$outpath/mkspecs/modules" && \
+        mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
+
     # symlink the mkspecs directory
     mkdir -p "$outpath/mkspecs"
     rm -rf "$outpath"/mkspecs/*
@@ -2144,7 +2123,12 @@ if [ "$OPT_SHADOW" = "yes" ]; then
     ShadowMkspecs features
 
     # The modules dir is special, too.
-    ShadowMkspecs modules
+    if test -d "$outpath/mkspecs-modules"; then
+        rm -rf "$outpath/mkspecs/modules"
+        mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
+    else
+        ShadowMkspecs modules
+    fi
 
     # symlink the doc directory
     rm -rf "$outpath/doc"
@@ -2152,7 +2136,7 @@ if [ "$OPT_SHADOW" = "yes" ]; then
 fi
 
 # symlink fonts to be able to run application from build directory
-if [ "$PLATFORM_QPA" = "yes" ] && [ ! -d "${outpath}/lib/fonts" ]; then
+if [ ! -d "${outpath}/lib/fonts" ]; then
     if [ "$PLATFORM" = "$XPLATFORM" ]; then
         mkdir -p "${outpath}/lib"
         ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
@@ -2195,26 +2179,22 @@ if [ -z "$PLATFORM" ]; then
     PLATFORM_NOTES=
     case "$UNAME_SYSTEM:$UNAME_RELEASE" in
      Darwin:*)
-        if [ "$PLATFORM_QPA" = "yes" ]; then
-          OSX_VERSION=`uname -r | cut -d. -f1`
-          if [ "$OSX_VERSION" -ge 11 ]; then
-              # We're on Lion or above. Check if we have a supported Clang version
-              case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
-                  3.*)
-                      PLATFORM=macx-clang
-                      PLATFORM_NOTES="\n    - Also available for Mac OS X: macx-g++\n"
-                      ;;
-                  *)
-                      PLATFORM=macx-g++
-                      ;;
-              esac
-          else
-              PLATFORM=macx-g++
-          fi
-        else
-          PLATFORM=darwin-g++
-        fi
-        ;;
+         OSX_VERSION=`uname -r | cut -d. -f1`
+         # Select compiler. Use g++ unless we find a usable Clang version
+         PLATFORM=macx-g++
+         if [ "$OSX_VERSION" -ge 12 ]; then
+            # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
+            PLATFORM=macx-clang
+         elif [ "$OSX_VERSION" -eq 11 ]; then
+             # We're on Lion. Check if we have a supported Clang version
+             case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
+                 3.*)
+                     PLATFORM=macx-clang
+                     PLATFORM_NOTES="\n    - Also available for Mac OS X: macx-g++\n"
+                     ;;
+             esac
+         fi
+         ;;
      AIX:*)
         #PLATFORM=aix-g++
         #PLATFORM=aix-g++-64
@@ -2375,6 +2355,7 @@ PLATFORMS=`find "$relpath/mkspecs/" -type f | grep -v qws | sed "s,$relpath/mksp
 
 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
 case "$XPLATFORM" in linux-g++-maemo) XPLATFORM_MAEMO=yes;; esac
+case "$XPLATFORM" in qnx-*) XPLATFORM_QNX=yes;; esac
 
 if [ -d "$PLATFORM" ]; then
   QMAKESPEC="$PLATFORM"
@@ -2436,12 +2417,6 @@ if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
     exit 2
 fi
 
-# now look at the configs and figure out what platform we are config'd for
-[ "$PLATFORM_QPA" != "yes" ] \
-  && [ -n "`getXQMakeConf QMAKE_LIBS_X11`" ] \
-  && PLATFORM_X11=yes
-### echo "$XQMAKESPEC" | grep mkspecs/qws >/dev/null 2>&1 && PLATFORM_QWS=yes
-
 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
     # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
     if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
@@ -2485,50 +2460,6 @@ if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
     QT_CONFIG="$QT_CONFIG build_all"
 fi
 
-if [ -z "$PKG_CONFIG" ]; then
-    # See if PKG_CONFIG is set in the mkspec:
-    PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
-fi
-if [ -z "$PKG_CONFIG" ]; then
-    PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
-fi
-
-# Work out if we can use pkg-config
-if [ "$QT_CROSS_COMPILE" = "yes" ]; then
-    if [ "$QT_FORCE_PKGCONFIG" = "yes" ]; then
-        echo >&2 ""
-        echo >&2 "You have asked to use pkg-config and are cross-compiling."
-        echo >&2 "Please make sure you have a correctly set-up pkg-config"
-        echo >&2 "environment!"
-        echo >&2 ""
-        if [ -z "$PKG_CONFIG_LIBDIR" ]; then
-            echo >&2 ""
-            echo >&2 "Warning: PKG_CONFIG_LIBDIR has not been set.  This could mean"
-            echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
-            echo >&2 "This is probably not what you want."
-            echo >&2 ""
-        elif [ -z "$PKG_CONFIG_SYSROOT" ] && [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
-            echo >&2 ""
-            echo >&2 "Warning: PKG_CONFIG_SYSROOT/PKG_CONFIG_SYSROOT_DIR has not"
-            echo >&2 "been set. This means your toolchain's .pc files must contain"
-            echo >&2 "the paths to the toolchain's libraries & headers. If configure"
-            echo >&2 "tests are failing, please check these files."
-            echo >&2 ""
-        fi
-    else
-        echo >&2 ""
-        echo >&2 "You have not explicitly asked to use pkg-config and are cross-compiling."
-        echo >&2 "pkg-config will not be used to automatically query cflag/lib parameters for"
-        echo >&2 "dependencies"
-        echo >&2 ""
-        PKG_CONFIG=""
-    fi
-fi
-
-if [ ! -n "$PKG_CONFIG" ]; then
-    QT_CONFIG="$QT_CONFIG no-pkg-config"
-fi
-
 # pass on $CFG_SDK to the configure tests.
 if [ '!' -z "$CFG_SDK" ]; then
     MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -sdk $CFG_SDK"
@@ -2558,15 +2489,10 @@ if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
     fi
 fi
 
-SYSROOT_FLAG=
 if [ -n "$CFG_SYSROOT" ]; then
-    if compilerSupportsFlag --sysroot="$CFG_SYSROOT"; then
-       [ "$OPT_VERBOSE" = "yes" ] && echo "Setting sysroot to: $CFG_SYSROOT"
-       SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
-    else
-       echo >&2 "The compiler doesn't support the --sysroot flag, I can't set the sysroot"
-       exit 1
-    fi
+    SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
+else
+    SYSROOT_FLAG=
 fi
 export SYSROOT_FLAG    # used by config.tests/unix/compile.test
 
@@ -2579,21 +2505,6 @@ if [ "$CFG_PRECOMPILE" = "auto" ]; then
     fi
 fi
 
-#auto-detect DWARF2 on the mac
-if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_MAC_DWARF2" = "auto" ]; then
-    if "$mactests/dwarf2.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests" ; then
-        CFG_MAC_DWARF2=no
-    else
-        CFG_MAC_DWARF2=yes
-    fi
-fi
-
-# don't autodetect support for separate debug info on objcopy when
-# cross-compiling as lots of toolchains seems to have problems with this
-if [ "$QT_CROSS_COMPILE" = "yes" ] && [ "$CFG_SEPARATE_DEBUG_INFO" = "auto" ]; then
-    CFG_SEPARATE_DEBUG_INFO="no"
-fi
-
 # auto-detect support for separate debug info in objcopy
 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
     TEST_COMPILER_CFLAGS=`getXQMakeConf QMAKE_CFLAGS`
@@ -2663,13 +2574,15 @@ else
     CFG_FRAMEWORK=no
 fi
 
-# x11 tests are done after qmake is built
-
-
 #setup the build parts
 if [ -z "$CFG_BUILD_PARTS" ]; then
     CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
 
+    # build tests by default, if a developer build
+    if [ "$CFG_DEV" = "yes" ]; then
+        CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
+    fi
+
     # don't build tools by default when cross-compiling
     if [ "$PLATFORM" != "$XPLATFORM" ]; then
        CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
@@ -2873,13 +2786,6 @@ if [ "$OPT_HELP" = "yes" ]; then
         LFSY="*"
         LFSN=" "
     fi
-    if [ "$CFG_STL" = "auto" ] || [ "$CFG_STL" = "yes" ]; then
-        SHY="*"
-        SHN=" "
-    else
-        SHY=" "
-        SHN="*"
-    fi
     if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
         PHY=" "
         PHN="*"
@@ -2904,6 +2810,13 @@ if [ "$OPT_HELP" = "yes" ]; then
         EGLFSN=" "
     fi
 
+    if [ "$CFG_DIRECTFB" = "no" ]; then
+        DFBY=" "
+        DFBN="*"
+    else
+        DFBY="*"
+        DFBN=" "
+    fi
     if [ "$CFG_XINPUT2" = "no" ]; then
         X2Y=" "
         X2N="*"
@@ -2912,14 +2825,37 @@ if [ "$OPT_HELP" = "yes" ]; then
         X2N=" "
     fi
 
+    if [ "$CFG_DBUS" = "no" ]; then
+        DBY=" "
+        DBN="+"
+    else
+        DBY="+"
+        DBN=" "
+    fi
+
+    if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
+        SBY=" "
+        SBN="*"
+    else
+        SBY="*"
+        SBN=" "
+    fi
+
+    if [ "$CFG_GLIB" = "no" ]; then
+        GBY=" "
+        GBN="+"
+    else
+        GBY="+"
+        GBN=" "
+    fi
+
     cat <<EOF
 Usage:  $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>]
         [-docdir <dir>] [-headerdir <dir>] [-plugindir <dir> ] [-importdir <dir>] [-datadir <dir>]
         [-translationdir <dir>] [-sysconfdir <dir>] [-examplesdir <dir>] [-testsdir <dir>]
         [-release] [-debug] [-debug-and-release]
         [-developer-build] [-shared] [-static] [-no-fast] [-fast] [-no-largefile]
-        [-largefile] [-no-exceptions] [-exceptions] [-no-accessibility]
-        [-accessibility] [-no-stl] [-stl] [-no-sql-<driver>] [-sql-<driver>]
+        [-largefile] [-no-accessibility] [-accessibility] [-no-sql-<driver>] [-sql-<driver>]
         [-plugin-sql-<driver>] [-system-sqlite]
         [-platform] [-D <string>] [-I <string>] [-L <string>] [-help]
         [-qt-zlib] [-system-zlib] [-no-gif] [-no-libpng] [-qt-libpng] [-system-libpng]
@@ -2927,39 +2863,31 @@ Usage:  $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir
         [-nomake <part>] [-R <string>]  [-l <string>] [-no-rpath]  [-rpath] [-continue]
         [-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv]
         [-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked] [-no-gui]
-        [-no-separate-debug-info] [-no-mmx] [-no-3dnow] [-no-sse] [-no-sse2]
+        [-no-separate-debug-info] [-no-sse2]
         [-no-sse3] [-no-ssse3] [-no-sse4.1] [-no-sse4.2] [-no-avx] [-no-neon]
         [-qtnamespace <namespace>] [-qtlibinfix <infix>] [-separate-debug-info]
         [-no-phonon-backend] [-phonon-backend] [-no-media-backend] [-media-backend]
         [-no-audio-backend] [-audio-backend]
-        [-no-javascript-jit] [-javascript-jit] [-no-declarative-debug] [-declarative-debug]
+        [-no-javascript-jit] [-javascript-jit] [-no-qml-debug] [-qml-debug]
         [-no-optimized-qmake] [-optimized-qmake]
         [-no-openssl] [-openssl] [-openssl-linked]
         [-no-gtkstyle] [-gtkstyle]
         [-qt-pcre] [-system-pcre]
+        [-device <name>] [-device-option <key=value>]
         [additional platform specific options (see below)]
 
 
 Installation options:
 
-    -qpa ................ This will enable the QPA build.
-                          QPA is a window system agnostic implementation of Qt.
-
  These are optional, but you may specify install directories.
 
     -prefix <dir> ...... This will install everything relative to <dir>
                          (default $QT_INSTALL_PREFIX)
-EOF
-if [ "$PLATFORM_QPA" = "yes" ]; then
-cat <<EOF
 
     -hostprefix [dir] .. Tools and libraries needed when developing
                          applications are installed in [dir]. If [dir] is
                          not given, the current build directory will be used.
                          (default PREFIX)
-EOF
-fi
-cat <<EOF
 
   * -prefix-install .... Force a sandboxed "local" installation of
                          Qt. This will install into
@@ -2993,17 +2921,11 @@ cat <<EOF
                             (default PREFIX/examples)
     -testsdir <dir> ....... Tests will be installed to <dir>
                             (default PREFIX/tests)
-EOF
-if [ "$PLATFORM_QWS" = "yes" -o "$PLATFORM_QPA" = "yes" ]; then
-cat <<EOF
 
     -hostbindir <dir> .. Host executables will be installed to <dir>
                          (default HOSTPREFIX/bin)
     -hostdatadir <dir> . Data used by qmake will be installed to <dir>
                          (default HOSTPREFIX)
-EOF
-fi
-cat <<EOF
 
 Configure options:
 
@@ -3034,32 +2956,9 @@ Configure options:
     -no-largefile ...... Disables large file support.
  +  -largefile ......... Enables Qt to access files larger than 4 GB.
 
-EOF
-if [ "$PLATFORM_QPA" = "yes" ]; then
-    EXCN="*"
-    EXCY=" "
-else
-    EXCN=" "
-    EXCY="*"
-fi
-if [ "$CFG_DBUS" = "no" ]; then
-    DBY=" "
-    DBN="+"
-else
-    DBY="+"
-    DBN=" "
-fi
-
-    cat << EOF
- $EXCN  -no-exceptions ..... Disable exceptions on compilers that support it.
- $EXCY  -exceptions ........ Enable exceptions on compilers that support it.
-
     -no-accessibility .. Do not compile Accessibility support.
  *  -accessibility ..... Compile Accessibility support.
 
- $SHN  -no-stl ............ Do not compile STL support.
- $SHY  -stl ............... Compile STL support.
-
     -no-sql-<driver> ... Disable SQL <driver> entirely.
     -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
                          none are turned on.
@@ -3077,37 +2976,22 @@ fi
     -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
  +  -javascript-jit .... Build the JavaScriptCore JIT compiler.
 
-    -no-declarative-debug ..... Do not build the declarative debugging support.
- +  -declarative-debug ....... Build the declarative debugging support.
+    -no-qml-debug ...... Do not build the in-process QML debugging support.
+ +  -qml-debug ......... Build the QML debugging support.
 
     -platform target ... The operating system and compiler you are building
                          on ($PLATFORM).
 
                          See the README file for a list of supported
                          operating systems and compilers.
-EOF
 
-if [ "${PLATFORM_QPA}" != "yes" ]; then
-cat << EOF
-    -graphicssystem <sys> Sets an alternate graphics system. Available options are:
-                           raster - Software rasterizer
-                           opengl - Rendering via OpenGL, Experimental!
-                           openvg - Rendering via OpenVG, Experimental!
-
-EOF
-fi
-
-cat << EOF
-
-    -no-mmx ............ Do not compile with use of MMX instructions.
-    -no-3dnow .......... Do not compile with use of 3DNOW instructions.
-    -no-sse ............ Do not compile with use of SSE instructions.
     -no-sse2 ........... Do not compile with use of SSE2 instructions.
     -no-sse3 ........... Do not compile with use of SSE3 instructions.
     -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
     -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
     -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
     -no-avx ............ Do not compile with use of AVX instructions.
+    -no-avx2 ........... Do not compile with use of AVX2 instructions.
     -no-neon ........... Do not compile with use of NEON instructions.
     -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
     -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
@@ -3121,6 +3005,13 @@ cat << EOF
     -I <string> ........ Add an explicit include path.
     -L <string> ........ Add an explicit library path.
 
+ +  -pkg-config ........ Use pkg-config to detect include and library paths. By default,
+                         configure determines whether to use pkg-config or not with
+                         some heuristics such as checking the environment variables.
+    -no-pkg-config ..... Disable use of pkg-config.
+    -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
+                         detection heuristic).
+
     -help, -h .......... Display this information.
 
 Third Party Libraries:
@@ -3200,27 +3091,9 @@ Additional options:
 
     -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
 
-EOF
-
-if [ "$CFG_SEPARATE_DEBUG_INFO" = "auto" ]; then
-    if [ "$QT_CROSS_COMPILE" = "yes" ]; then
-        SBY=""
-        SBN="*"
-    else
-        SBY="*"
-        SBN=" "
-    fi
-elif [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
-    SBY="*"
-    SBN=" "
-else
-    SBY=" "
-    SBN="*"
-fi
-
-if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QPA" = "yes" ]; then
-
-    cat << EOF
+    -device <name> ............... Cross-compile for device <name> (experimental)
+    -device-option <key=value> ... Add device specific options for the device mkspec
+                                   (experimental)
 
  $SBN  -no-separate-debug-info . Do not store debug information in a separate file.
  $SBY  -separate-debug-info .... Strip debug information into a separate .debug file.
@@ -3229,201 +3102,47 @@ if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QPA" = "yes" ]; then
  $XCBY  -xcb ............... Compile Xcb support.
 
  $EGLFSN  -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
- $EGLFSY  -eglfs ............. Compile EGLFS support.
+ $EGLFSY  -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
 
-EOF
+ $DFBN  -no-directfb ....... Do not compile DirectFB support.
+ $DFBY  -directfb .......... Compile DirectFB support.
 
-fi # X11
+    -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
 
-if [ "$XPLATFORM_MAEMO" = "yes" ]; then
+    -xplatform target ... The target platform when cross-compiling.
 
-    cat << EOF
+    -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot.
 
- $X2N  -no-xinput2......... Do not compile XInput2 support.
- $X2Y  -xinput2............ Compile XInput2 support.
+    -no-feature-<feature> Do not compile in <feature>.
+    -feature-<feature> .. Compile in <feature>. The available features
+                          are described in src/corelib/global/qfeatures.txt
 
-EOF
+    -no-freetype ........ Do not compile in Freetype2 support.
+    -qt-freetype ........ Use the libfreetype bundled with Qt.
+ *  -system-freetype .... Use libfreetype from the operating system.
+                          See http://www.freetype.org/
 
-fi
+    -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
+                          default ($CFG_QCONFIG).
 
-if [ "$PLATFORM_X11" = "yes" ]; then
-    if [ "$CFG_SM" = "no" ]; then
-        SMY=" "
-        SMN="*"
-    else
-        SMY="*"
-        SMN=" "
-    fi
-    if [ "$CFG_XSHAPE" = "no" ]; then
-        SHY=" "
-        SHN="*"
-    else
-        SHY="*"
-        SHN=" "
-    fi
-    if [ "$CFG_XVIDEO" = "no" ]; then
-        XVY=" "
-        XVN="*"
-    else
-        XVY="*"
-        XVN=" "
-    fi
-    if [ "$CFG_XINERAMA" = "no" ]; then
-        XAY=" "
-        XAN="*"
-    else
-        XAY="*"
-        XAN=" "
-    fi
-    if [ "$CFG_FONTCONFIG" = "no" ]; then
-        FCGY=" "
-        FCGN="*"
-    else
-        FCGY="*"
-        FCGN=" "
-    fi
-    if [ "$CFG_XCURSOR" = "no" ]; then
-        XCY=" "
-        XCN="*"
-    else
-        XCY="*"
-        XCN=" "
-    fi
-    if [ "$CFG_XFIXES" = "no" ]; then
-        XFY=" "
-        XFN="*"
-    else
-        XFY="*"
-        XFN=" "
-    fi
-    if [ "$CFG_XRANDR" = "no" ]; then
-        XZY=" "
-        XZN="*"
-    else
-        XZY="*"
-        XZN=" "
-    fi
-    if [ "$CFG_XRENDER" = "no" ]; then
-        XRY=" "
-        XRN="*"
-    else
-        XRY="*"
-        XRN=" "
-    fi
-    if [ "$CFG_MITSHM" = "no" ]; then
-        XMY=" "
-        XMN="*"
-    else
-        XMY="*"
-        XMN=" "
-    fi
-    if [ "$CFG_XINPUT" = "no" ]; then
-        XIY=" "
-        XIN="*"
-    else
-        XIY="*"
-        XIN=" "
-    fi
-    if [ "$CFG_XKB" = "no" ]; then
-        XKY=" "
-        XKN="*"
-    else
-        XKY="*"
-        XKN=" "
-    fi
-    if [ "$CFG_IM" = "no" ]; then
-        IMY=" "
-        IMN="*"
-    else
-        IMY="*"
-        IMN=" "
-    fi
+    -no-opengl .......... Do not support OpenGL.
+    -opengl <api> ....... Enable OpenGL support
+                          With no parameter, this will attempt to auto-detect
+                          OpenGL ES 2, or regular desktop OpenGL.
+                          Use es2 for <api> to override auto-detection.
+
+ $GBN  -no-glib ........... Do not compile Glib support.
+ $GBY  -glib .............. Compile Glib support.
+EOF
+
+if [ "$XPLATFORM_MAEMO" = "yes" ]; then
     cat << EOF
 
-Qt/X11 only:
-
-    -no-gtkstyle ....... Do not build the GTK theme integration.
- +  -gtkstyle .......... Build the GTK theme integration.
-
- *  -no-nas-sound ...... Do not compile in NAS sound support.
-    -system-nas-sound .. Use NAS libaudio from the operating system.
-                         See http://radscan.com/nas.html
-
-    -no-opengl ......... Do not support OpenGL.
- +  -opengl <api> ...... Enable OpenGL support.
-                         With no parameter, this will auto-detect the "best"
-                         OpenGL API to use. If desktop OpenGL is available, it
-                         will be used. Use desktop or es2 for <api>
-                         to force the use of the Desktop OpenGL or
-                         OpenGL ES 2 APIs instead.
-
-     -no-openvg ........ Do not support OpenVG.
- +   -openvg ........... Enable OpenVG support.
-                         Requires EGL support, typically supplied by an OpenGL
-                         or other graphics implementation.
-
- $SMN  -no-sm ............. Do not support X Session Management.
- $SMY  -sm ................ Support X Session Management, links in -lSM -lICE.
-
- $SHN  -no-xshape ......... Do not compile XShape support.
- $SHY  -xshape ............ Compile XShape support.
-                         Requires X11/extensions/shape.h.
-
- $XVN  -no-xvideo ......... Do not compile XVideo support.
- $XVY  -xvideo ............ Compile XVideo support.
-                         Requires X11/extensions/Xv.h & Xvlib.h.
-
- $SHN  -no-xsync .......... Do not compile XSync support.
- $SHY  -xsync ............. Compile XSync support.
-                         Requires X11/extensions/sync.h.
-
- $XAN  -no-xinerama ....... Do not compile Xinerama (multihead) support.
- $XAY  -xinerama .......... Compile Xinerama support.
-                         Requires X11/extensions/Xinerama.h and libXinerama.
-                        By default, Xinerama support will be compiled if
-                         available and the shared libraries are dynamically
-                         loaded at runtime.
-
- $XCN  -no-xcursor ........ Do not compile Xcursor support.
- $XCY  -xcursor ........... Compile Xcursor support.
-                         Requires X11/Xcursor/Xcursor.h and libXcursor.
-                        By default, Xcursor support will be compiled if
-                         available and the shared libraries are dynamically
-                         loaded at runtime.
-
- $XFN  -no-xfixes ......... Do not compile Xfixes support.
- $XFY  -xfixes ............ Compile Xfixes support.
-                         Requires X11/extensions/Xfixes.h and libXfixes.
-                        By default, Xfixes support will be compiled if
-                         available and the shared libraries are dynamically
-                         loaded at runtime.
-
- $XZN  -no-xrandr ......... Do not compile Xrandr (resize and rotate) support.
- $XZY  -xrandr ............ Compile Xrandr support.
-                         Requires X11/extensions/Xrandr.h and libXrandr.
-
- $XRN  -no-xrender ........ Do not compile Xrender support.
- $XRY  -xrender ........... Compile Xrender support.
-                         Requires X11/extensions/Xrender.h and libXrender.
-
- $XMN  -no-mitshm ......... Do not compile MIT-SHM support.
- $XMY  -mitshm ............ Compile MIT-SHM support.
-                         Requires sys/ipc.h, sys/shm.h and X11/extensions/XShm.h
-
- $FCGN  -no-fontconfig ..... Do not compile FontConfig (anti-aliased font) support.
- $FCGY  -fontconfig ........ Compile FontConfig support.
-                         Requires fontconfig/fontconfig.h, libfontconfig,
-                         freetype.h and libfreetype.
-
- $XIN  -no-xinput ......... Do not compile Xinput support.
- $XIY  -xinput ............ Compile Xinput support. This also enabled tablet support
-                         which requires IRIX with wacom.h and libXi or
-                         XFree86 with X11/extensions/XInput.h and libXi.
-
- $XKN  -no-xkb ............ Do not compile XKB (X KeyBoard extension) support.
- $XKY  -xkb ............... Compile XKB support.
+ $X2N  -no-xinput2......... Do not compile XInput2 support.
+ $X2Y  -xinput2............ Compile XInput2 support.
 
 EOF
+
 fi
 
 if [ "$BUILD_ON_MAC" = "yes" ]; then
@@ -3438,9 +3157,6 @@ Qt/Mac only:
                          link tools against those frameworks.
     -no-framework ...... Do not build Qt as a series of frameworks.
 
- *  -dwarf2 ............ Enable dwarf2 debugging symbols.
-    -no-dwarf2 ......... Disable dwarf2 debugging symbols.
-
     -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
                          To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
 
@@ -3451,52 +3167,6 @@ Qt/Mac only:
 EOF
 fi
 
-if [ "$PLATFORM_QPA" = "yes" ]; then
-    cat << EOF
-Qt for QPA only:
-EOF
-fi
-
-if [ "$PLATFORM_QPA" = "yes" ]; then
-    cat << EOF
-
-    -xplatform target ... The target platform when cross-compiling.
-
-    -no-feature-<feature> Do not compile in <feature>.
-    -feature-<feature> .. Compile in <feature>. The available features
-                          are described in src/corelib/global/qfeatures.txt
-
-    -no-freetype ........ Do not compile in Freetype2 support.
-    -qt-freetype ........ Use the libfreetype bundled with Qt.
- *  -system-freetype .... Use libfreetype from the operating system.
-                          See http://www.freetype.org/
-
-    -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
-                          default ($CFG_QCONFIG).
-
-    -no-opengl .......... Do not support OpenGL.
-    -opengl <api> ....... Enable OpenGL ES support
-                          With no parameter, this will attempt to auto-detect
-                          OpenGL ES 2, or regular desktop OpenGL.
-                          Use es2 for <api> to override auto-detection.
-EOF
-fi
-
-if [ "$PLATFORM_QPA" = "yes" -o "$PLATFORM_X11" = "yes" ]; then
-    if [ "$CFG_GLIB" = "no" ]; then
-        GBY=" "
-        GBN="+"
-    else
-        GBY="+"
-        GBN=" "
-    fi
-    cat << EOF
- $GBN  -no-glib ........... Do not compile Glib support.
- $GBY  -glib .............. Compile Glib support.
-
-EOF
-fi
-
    [ "x$ERROR" = "xyes" ] && exit 1
    exit 0
 fi # Help
@@ -3506,17 +3176,8 @@ fi # Help
 # LICENSING, INTERACTIVE PART
 # -----------------------------------------------------------------------------
 
-if [ "$PLATFORM_QPA" = "yes" ]; then
-    Platform="Qt Lighthouse"
-elif [ "$XPLATFORM_MINGW" = "yes" ]; then
-    Platform="Qt for Windows"
-elif [ -n "`getXQMakeConf grep QMAKE_LIBS_X11`" ]; then
-    PLATFORM_X11=yes
-    Platform="Qt for Linux/X11"
-fi
-
 echo
-echo "This is the $Platform ${EditionString} Edition."
+echo "This is the Qt ${EditionString} Edition."
 echo
 
 if [ "$Edition" = "OpenSource" ]; then
@@ -3925,6 +3586,79 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
 fi # Build qmake
 
 #-------------------------------------------------------------------------------
+# Detect pkg-config
+#-------------------------------------------------------------------------------
+if [ -z "$PKG_CONFIG" ]; then
+    # See if PKG_CONFIG is set in the mkspec:
+    PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
+fi
+if [ -z "$PKG_CONFIG" ]; then
+    PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
+fi
+
+if [ "$CFG_PKGCONFIG" = "no" ]; then
+    PKG_CONFIG=
+elif [ "$CFG_PKGCONFIG" = "force" ]; then
+    echo >&2 ""
+    echo >&2 "You have asked to use pkg-config. Please make sure you have"
+    echo >&2 "a correctly setup pkg-config environment!"
+    echo >&2 ""
+elif [ -n "$PKG_CONFIG" ]; then
+    # found a pkg-config
+    if [ "$QT_CROSS_COMPILE" = "yes" ]; then
+        # when xcompiling, check environment to see if it's actually usable
+        if [ -z "$PKG_CONFIG_LIBDIR" ]; then
+            if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
+                PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
+                export PKG_CONFIG_LIBDIR
+                echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
+            elif [ "$CFG_PKGCONFIG" = "yes" ]; then
+                echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
+                echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
+                echo >&2 "Set this variable to the directory that contains target .pc files"
+                echo >&2 "for pkg-config to function correctly when cross-compiling or"
+                echo >&2 "use -force-pkg-config to override this test."
+                exit 101
+            else
+                PKG_CONFIG=
+                echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
+            fi
+        fi
+        if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
+            if [ -n "$CFG_SYSROOT" ]; then
+                PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
+                export PKG_CONFIG_SYSROOT_DIR
+                echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
+            elif [ "$CFG_PKGCONFIG" = "yes" ]; then
+                echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
+                echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
+                echo >&2 "or use -force-pkg-config to override this test."
+                exit 101
+            else
+                PKG_CONFIG=
+                echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
+            fi
+        fi
+    fi
+elif [ "$CFG_PKGCONFIG" = "yes" ]; then
+    echo >&2 "Could not detect pkg-config from mkspec or PATH."
+    exit 101
+fi
+
+if [ -z "$PKG_CONFIG" ]; then
+    QT_CONFIG="$QT_CONFIG no-pkg-config"
+fi
+
+#-------------------------------------------------------------------------------
+# write out device config before we run the test.
+#-------------------------------------------------------------------------------
+if cmp -s "$DEVICE_VARS_FILE" "$outpath/mkspecs/qdevice.pri"; then
+    rm -f "$DEVICE_VARS_FILE"
+else
+    mv -f $DEVICE_VARS_FILE "$outpath/mkspecs/qdevice.pri"
+fi
+
+#-------------------------------------------------------------------------------
 # tests that need qmake
 #-------------------------------------------------------------------------------
 
@@ -3933,12 +3667,12 @@ fi # Build qmake
 #-------------------------------------------------------------------------------
 
 # Use config.tests/arch/arch.pro to has the compiler tell us what the target architecture is
-CFG_ARCH=`"$outpath/bin/qmake" -spec "$XQMAKESPEC" -o /dev/null "$relpath/config.tests/arch/arch.pro" 2>&1 | sed -n -e 's,^Project MESSAGE:.*Architecture: \([a-zA-Z0-9_]*\).*,\1,p'`
+CFG_ARCH=`OUTDIR="$outpath" "$outpath/bin/qmake" -spec "$XQMAKESPEC" -o /dev/null "$relpath/config.tests/arch/arch.pro" 2>&1 | sed -n -e 's,^Project MESSAGE:.*Architecture: \([a-zA-Z0-9_]*\).*,\1,p'`
 
 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
     # Do the same test again, using the host compiler
-    CFG_HOST_ARCH=`"$outpath/bin/qmake" -spec "$QMAKESPEC" -o /dev/null "$relpath/config.tests/arch/arch.pro" 2>&1 | sed -n -e 's,^Project MESSAGE:.*Architecture: \([a-zA-Z0-9]*\).*,\1,p'`
+    CFG_HOST_ARCH=`OUTDIR="$outpath" "$outpath/bin/qmake" -spec "$QMAKESPEC" -o /dev/null "$relpath/config.tests/arch/arch.pro" 2>&1 | sed -n -e 's,^Project MESSAGE:.*Architecture: \([a-zA-Z0-9_]*\).*,\1,p'`
     [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
 else
     # not cross compiling, host == target
@@ -3947,9 +3681,7 @@ fi
 
 if [ "$OPT_VERBOSE" = "yes" ]; then
     echo "System architecture: '$CFG_ARCH'"
-    if [ "$PLATFORM_QPA" = "yes" ]; then
-        echo "Host architecture: '$CFG_HOST_ARCH'"
-    fi
+    echo "Host architecture: '$CFG_HOST_ARCH'"
 fi
 
 #-------------------------------------------------------------------------------
@@ -3963,33 +3695,6 @@ else
     CFG_USE_FLOATMATH=no
 fi
 
-# detect mmx support
-if [ "${CFG_MMX}" = "auto" ]; then
-    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mmx "mmx" $L_FLAGS $I_FLAGS $l_FLAGS "-mmmx"; then
-       CFG_MMX=yes
-    else
-       CFG_MMX=no
-    fi
-fi
-
-# detect 3dnow support
-if [ "${CFG_3DNOW}" = "auto" ]; then
-    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/3dnow "3dnow" $L_FLAGS $I_FLAGS $l_FLAGS "-m3dnow"; then
-       CFG_3DNOW=yes
-    else
-       CFG_3DNOW=no
-    fi
-fi
-
-# detect sse support
-if [ "${CFG_SSE}" = "auto" ]; then
-    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse "sse" $L_FLAGS $I_FLAGS $l_FLAGS "-msse"; then
-       CFG_SSE=yes
-    else
-       CFG_SSE=no
-    fi
-fi
-
 # detect sse2 support
 if [ "${CFG_SSE2}" = "auto" ]; then
     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse2 "sse2" $L_FLAGS $I_FLAGS $l_FLAGS "-msse2"; then
@@ -4038,12 +3743,42 @@ fi
 # detect avx support
 if [ "${CFG_AVX}" = "auto" ]; then
     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/avx "avx" $L_FLAGS $I_FLAGS $l_FLAGS "-mavx"; then
-       CFG_AVX=yes
+       case "$XQMAKESPEC" in
+           *g++*|*-clang*)
+               # Some clang versions produce internal compiler errors compiling Qt AVX code
+               case `$TEST_COMPILER --version` in
+                   Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
+                       CFG_AVX=no
+                       if [ "$OPT_VERBOSE" = "yes" ]; then
+                           echo 'AVX support disabled for blacklisted clang compiler'
+                       fi
+                       ;;
+                   *)
+                       CFG_AVX=yes
+                       ;;
+               esac
+               ;;
+           *)
+               CFG_AVX=yes
+               ;;
+       esac
     else
        CFG_AVX=no
     fi
 fi
 
+# detect avx2 support
+if [ "${CFG_AVX}" = "no" ]; then
+    CFG_AVX2=no
+fi
+if [ "${CFG_AVX2}" = "auto" ]; then
+    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/avx2 "avx2" $L_FLAGS $I_FLAGS $l_FLAGS "-march=core-avx2"; then
+       CFG_AVX2=yes
+    else
+       CFG_AVX2=no
+    fi
+fi
+
 # check iWMMXt support
 if [ "$CFG_IWMMXT" = "yes" ]; then
     "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iwmmxt "iwmmxt" $L_FLAGS $I_FLAGS $l_FLAGS "-mcpu=iwmmxt"
@@ -4157,6 +3892,11 @@ if [ "$CFG_EGLFS" = "yes" ]; then
         echo "The EGLFS plugin requires EGL support and cannot be built"
         exit 101
     fi
+    if [ "$CFG_OPENGL" != "es2" ]; then
+        echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
+        exit 101
+    fi
+    CFG_OPENGL="es2"
     CFG_EGL=yes
 fi
 
@@ -4492,125 +4232,124 @@ if [ "$CFG_DBUS" != "no" ]; then
     fi
 fi
 
-# X11/Lighthouse
-if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QPA" = "yes" ]; then
-
-    # auto-detect Glib support
-    if [ "$CFG_GLIB" != "no" ]; then
-        if [ -n "$PKG_CONFIG" ]; then
-            QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
-            QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
-        fi
-        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/glib "Glib" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_GLIB $QT_LIBS_GLIB $X11TESTS_FLAGS ; then
-            CFG_GLIB=yes
-            QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
-            QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
-        else
-            if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-                echo "Glib support cannot be enabled due to functionality tests!"
-                echo " Turn on verbose messaging (-v) to $0 to see the final report."
-                echo " If you believe this message is in error you may use the continue"
-                echo " switch (-continue) to $0 to continue."
-                exit 101
-            else
-                CFG_GLIB=no
-            fi
-        fi
+# auto-detect Glib support
+if [ "$CFG_GLIB" != "no" ]; then
+    if [ -n "$PKG_CONFIG" ]; then
+        QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
+        QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
     fi
-
-    # ### Vestige
-    if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
-        if [ -n "$PKG_CONFIG" ]; then
-            QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
-            QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
-        fi
-        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/gstreamer "GStreamer" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER $X11TESTS_FLAGS; then
-            CFG_GSTREAMER=yes
-            QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
-            QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
+    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/glib "Glib" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
+        CFG_GLIB=yes
+        QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
+        QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
+    else
+        if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+            echo "Glib support cannot be enabled due to functionality tests!"
+            echo " Turn on verbose messaging (-v) to $0 to see the final report."
+            echo " If you believe this message is in error you may use the continue"
+            echo " switch (-continue) to $0 to continue."
+            exit 101
         else
-            if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-                echo "Gstreamer support cannot be enabled due to functionality tests!"
-                echo " Turn on verbose messaging (-v) to $0 to see the final report."
-                echo " If you believe this message is in error you may use the continue"
-                echo " switch (-continue) to $0 to continue."
-                exit 101
-            else
-                CFG_GSTREAMER=no
-            fi
+            CFG_GLIB=no
         fi
-    elif [ "$CFG_GLIB" = "no" ]; then
-        CFG_GSTREAMER=no
     fi
+fi
 
-    # auto-detect libicu support
-    if [ "$CFG_ICU" != "no" ]; then
-        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/icu "ICU" $L_FLAGS $I_FLAGS $l_FLAGS; then
-            [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
+# auto-detect GTK style support
+if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
+    if [ -n "$PKG_CONFIG" ]; then
+        QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
+        QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
+    fi
+    if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
+        CFG_QGTKSTYLE=yes
+        QT_CONFIG="$QT_CONFIG gtkstyle"
+        QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
+        QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
+    else
+        if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+            echo "Gtk theme support cannot be enabled due to functionality tests!"
+            echo " Turn on verbose messaging (-v) to $0 to see the fin  al report."
+            echo " If you believe this message is in error you may use the continue"
+            echo " switch (-continue) to $0 to continue."
+            exit 101
         else
-            if [ "$CFG_ICU" = "auto" ]; then
-                CFG_ICU=no
-            elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-                # CFG_ICU is "yes"
-
-                echo "The ICU library support cannot be enabled."
-                echo " Turn on verbose messaging (-v) to $0 to see the final report."
-                echo " If you believe this message is in error you may use the continue"
-                echo " switch (-continue) to $0 to continue."
-                exit 101
-            fi
+            CFG_QGTKSTYLE=no
         fi
     fi
+elif [ "$CFG_GLIB" = "no" ]; then
+    CFG_QGTKSTYLE=no
+fi
 
-    # Auto-detect PulseAudio support
-    if [ "$CFG_PULSEAUDIO" != "no" ]; then
-        if [ -n "$PKG_CONFIG" ]; then
-            QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
-            QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
-        fi
-        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/pulseaudio "PulseAudio" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO $X11TESTS_FLAGS; then
-            CFG_PULSEAUDIO=yes
-            QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
-            QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
+# ### Vestige
+if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
+    if [ -n "$PKG_CONFIG" ]; then
+        QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
+        QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
+    fi
+    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/gstreamer "GStreamer" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
+        CFG_GSTREAMER=yes
+        QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
+        QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
+    else
+        if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+            echo "Gstreamer support cannot be enabled due to functionality tests!"
+            echo " Turn on verbose messaging (-v) to $0 to see the final report."
+            echo " If you believe this message is in error you may use the continue"
+            echo " switch (-continue) to $0 to continue."
+            exit 101
         else
-            if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-                echo "PulseAudio support cannot be enabled due to functionality tests!"
-                echo " Turn on verbose messaging (-v) to $0 to see the final report."
-                echo " If you believe this message is in error you may use the continue"
-                echo " switch (-continue) to $0 to continue."
-                exit 101
-            else
-               CFG_PULSEAUDIO=no
-            fi
+            CFG_GSTREAMER=no
         fi
     fi
-fi # X11/Lighthouse
+elif [ "$CFG_GLIB" = "no" ]; then
+    CFG_GSTREAMER=no
+fi
 
-# X11
-if [ "$PLATFORM_X11" = "yes" -a "$CFG_GUI" != "no" ]; then
-    x11tests="$relpath/config.tests/x11"
-    X11TESTS_FLAGS=
+# auto-detect libicu support
+if [ "$CFG_ICU" != "no" ]; then
+    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/icu "ICU" $L_FLAGS $I_FLAGS $l_FLAGS; then
+        [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
+    else
+        if [ "$CFG_ICU" = "auto" ]; then
+            CFG_ICU=no
+        elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+            # CFG_ICU is "yes"
 
-    # work around broken X11 headers when using GCC 2.95 or later
-    NOTYPE=no
-    "$x11tests/notype.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" && NOTYPE=yes
-    if [ $NOTYPE = "yes" ]; then
-       QMakeVar add QMAKE_CXXFLAGS -fpermissive
-        X11TESTS_FLAGS="$X11TESTS_FLAGS -fpermissive"
+            echo "The ICU library support cannot be enabled."
+            echo " Turn on verbose messaging (-v) to $0 to see the final report."
+            echo " If you believe this message is in error you may use the continue"
+            echo " switch (-continue) to $0 to continue."
+            exit 101
+        fi
     fi
+fi
 
-    # Check we actually have X11 :-)
-    "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xlib "XLib" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
-    if [ $? != "0" ]; then
-        echo "Basic XLib functionality test failed!"
-        echo " You might need to modify the include and library search paths by editing"
-        echo " QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in ${XQMAKESPEC}."
-        exit 1
+# Auto-detect PulseAudio support
+if [ "$CFG_PULSEAUDIO" != "no" ]; then
+    if [ -n "$PKG_CONFIG" ]; then
+        QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
+        QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
+    fi
+    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/pulseaudio "PulseAudio" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
+        CFG_PULSEAUDIO=yes
+        QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
+        QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
+    else
+        if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+            echo "PulseAudio support cannot be enabled due to functionality tests!"
+            echo " Turn on verbose messaging (-v) to $0 to see the final report."
+            echo " If you believe this message is in error you may use the continue"
+            echo " switch (-continue) to $0 to continue."
+            exit 101
+        else
+            CFG_PULSEAUDIO=no
+        fi
     fi
 fi
 
 # X11/MINGW OpenGL
-if [ "$PLATFORM_X11" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
+if [ "$XPLATFORM_MINGW" = "yes" ]; then
     # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
     if [ "$CFG_GUI" = "no" ]; then
         if [ "$CFG_OPENGL" = "auto" ]; then
@@ -4623,7 +4362,7 @@ if [ "$PLATFORM_X11" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
         fi
     fi
     if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
-        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
+        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS; then
             CFG_OPENGL=desktop
         elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
             CFG_OPENGL=es2
@@ -4641,7 +4380,7 @@ if [ "$PLATFORM_X11" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
         hpux*)
             # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
             if [ "$CFG_OPENGL" = "desktop" ]; then
-                "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
+                "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS
                 if [ $? != "0" ]; then
                     QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
                 fi
@@ -4662,7 +4401,7 @@ if [ "$PLATFORM_X11" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
         fi
     elif [ "$CFG_OPENGL" = "desktop" ]; then
         # Desktop OpenGL support
-        "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
+        "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS
         if [ $? != "0" ]; then
             echo "The OpenGL functionality test failed!"
             echo " You might need to modify the include and library search paths by editing"
@@ -4673,7 +4412,7 @@ if [ "$PLATFORM_X11" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
         case "$PLATFORM" in
         hpux*)
             # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
-            "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
+            "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS
             if [ $? != "0" ]; then
                 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
             fi
@@ -4684,246 +4423,68 @@ if [ "$PLATFORM_X11" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
     fi
 fi # X11/MINGW OpenGL
 
-# X11
-if [ "$PLATFORM_X11" = "yes" ]; then
-    # auto-detect Xcursor support
-    if [ "$CFG_XCURSOR" != "no" ]; then
-       if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xcursor "Xcursor" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
-           if [ "$CFG_XCURSOR" != "runtime" ]; then
-               CFG_XCURSOR=yes;
-           fi
-       else
-           if [ "$CFG_XCURSOR" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-               echo "Xcursor support cannot be enabled due to functionality tests!"
-               echo " Turn on verbose messaging (-v) to $0 to see the final report."
-               echo " If you believe this message is in error you may use the continue"
-               echo " switch (-continue) to $0 to continue."
-               exit 101
-           else
-               CFG_XCURSOR=no
-           fi
-       fi
-    fi
-
-    # auto-detect Xfixes support
-    if [ "$CFG_XFIXES" != "no" ]; then
-       if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xfixes "Xfixes" $L_FLAGS $I_FLAGS $X11TESTS_FLAGS; then
-           if [ "$CFG_XFIXES" != "runtime" ]; then
-               CFG_XFIXES=yes;
-           fi
-       else
-           if [ "$CFG_XFIXES" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-               echo "Xfixes support cannot be enabled due to functionality tests!"
-               echo " Turn on verbose messaging (-v) to $0 to see the final report."
-               echo " If you believe this message is in error you may use the continue"
-               echo " switch (-continue) to $0 to continue."
-               exit 101
-           else
-               CFG_XFIXES=no
-           fi
-       fi
-    fi
-
-    # auto-detect Xrandr support (resize and rotate extension)
-    if [ "$CFG_XRANDR" != "no" ]; then
-       if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xrandr "Xrandr" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
-            if [ "$CFG_XRANDR" != "runtime" ]; then
-           CFG_XRANDR=yes
-            fi
-       else
-           if [ "$CFG_XRANDR" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-               echo "Xrandr support cannot be enabled due to functionality tests!"
-               echo " Turn on verbose messaging (-v) to $0 to see the final report."
-               echo " If you believe this message is in error you may use the continue"
-               echo " switch (-continue) to $0 to continue."
-               exit 101
-           else
-               CFG_XRANDR=no
-           fi
-       fi
-    fi
-
-    # auto-detect Xrender support
-    if [ "$CFG_XRENDER" != "no" ]; then
-       if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xrender "Xrender" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
-           CFG_XRENDER=yes
-       else
-           if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-               echo "Xrender support cannot be enabled due to functionality tests!"
-               echo " Turn on verbose messaging (-v) to $0 to see the final report."
-               echo " If you believe this message is in error you may use the continue"
-               echo " switch (-continue) to $0 to continue."
-               exit 101
-           else
-               CFG_XRENDER=no
-           fi
-       fi
-    fi
-
-    # auto-detect MIT-SHM support
-    if [ "$CFG_MITSHM" != "no" ]; then
-       if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/mitshm "mitshm" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
-           CFG_MITSHM=yes
-       else
-           if [ "$CFG_MITSHM" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-               echo "MITSHM support cannot be enabled due to functionality tests!"
-               echo " Turn on verbose messaging (-v) to $0 to see the final report."
-               echo " If you believe this message is in error you may use the continue"
-               echo " switch (-continue) to $0 to continue."
-               exit 101
-           else
-               CFG_MITSHM=no
-           fi
-       fi
-    fi
-
-    # auto-detect Session Management support
-    if [ "$CFG_SM" = "auto" ]; then
-       if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/sm "Session Management" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
-           CFG_SM=yes
-       else
-           if [ "$CFG_SM" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-               echo "Session Management support cannot be enabled due to functionality tests!"
-               echo " Turn on verbose messaging (-v) to $0 to see the final report."
-               echo " If you believe this message is in error you may use the continue"
-               echo " switch (-continue) to $0 to continue."
-               exit 101
-           else
-               CFG_SM=no
-           fi
-       fi
-    fi
-
-    # auto-detect SHAPE support
-    if [ "$CFG_XSHAPE" != "no" ]; then
-       if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xshape "XShape" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
-           CFG_XSHAPE=yes
-       else
-           if [ "$CFG_XSHAPE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-               echo "XShape support cannot be enabled due to functionality tests!"
-               echo " Turn on verbose messaging (-v) to $0 to see the final report."
-               echo " If you believe this message is in error you may use the continue"
-               echo " switch (-continue) to $0 to continue."
-               exit 101
-           else
-               CFG_XSHAPE=no
-           fi
-       fi
-    fi
-
-    # auto-detect XVideo support
-    if [ "$CFG_XVIDEO" != "no" ]; then
-       if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xvideo "XVideo" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
-           CFG_XVIDEO=yes
-       else
-           if [ "$CFG_XVIDEO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-               echo "XVideo support cannot be enabled due to functionality tests!"
-               echo " Turn on verbose messaging (-v) to $0 to see the final report."
-               echo " If you believe this message is in error you may use the continue"
-               echo " switch (-continue) to $0 to continue."
-               exit 101
-           else
-               CFG_XVIDEO=no
-           fi
-       fi
-    fi
-
-    # auto-detect XSync support
-    if [ "$CFG_XSYNC" != "no" ]; then
-       if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xsync "XSync" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
-           CFG_XSYNC=yes
-       else
-           if [ "$CFG_XSYNC" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-               echo "XSync support cannot be enabled due to functionality tests!"
-               echo " Turn on verbose messaging (-v) to $0 to see the final report."
-               echo " If you believe this message is in error you may use the continue"
-               echo " switch (-continue) to $0 to continue."
-               exit 101
-           else
-               CFG_XSYNC=no
-           fi
-       fi
-    fi
-
-    # auto-detect Xinerama support
-    if [ "$CFG_XINERAMA" != "no" ]; then
-       if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xinerama "Xinerama" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
-           if [ "$CFG_XINERAMA" != "runtime" ]; then
-               CFG_XINERAMA=yes
-           fi
-       else
-           if [ "$CFG_XINERAMA" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-               echo "Xinerama support cannot be enabled due to functionality tests!"
-               echo " Turn on verbose messaging (-v) to $0 to see the final report."
-               echo " If you believe this message is in error you may use the continue"
-               echo " switch (-continue) to $0 to continue."
-               exit 101
-           else
-               CFG_XINERAMA=no
-           fi
-       fi
+if [ "$BUILD_ON_MAC" = "yes" ]; then
+    if [ "$CFG_PHONON" != "no" ]; then
+        # Always enable Phonon (unless it was explicitly disabled)
+        CFG_PHONON=yes
     fi
 
-    # auto-detect Xinput support
-    if [ "$CFG_XINPUT" != "no" ]; then
-        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xinput "XInput" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
-           if [ "$CFG_XINPUT" != "runtime" ]; then
-               CFG_XINPUT=yes
-           fi
+    if [ "$CFG_COREWLAN" = "auto" ]; then
+        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/mac/corewlan "CoreWlan" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
+            CFG_COREWLAN=yes
         else
-            if [ "$CFG_XINPUT" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-                echo "Tablet and Xinput support cannot be enabled due to functionality tests!"
-                echo " Turn on verbose messaging (-v) to $0 to see the final report."
-                echo " If you believe this message is in error you may use the continue"
-                echo " switch (-continue) to $0 to continue."
-                exit 101
-            else
-                CFG_XINPUT=no
-            fi
+            CFG_COREWLAN=no
         fi
     fi
+fi
 
-    # auto-detect XKB support
-    if [ "$CFG_XKB" != "no" ]; then
-        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xkb "XKB" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
-            CFG_XKB=yes
-        else
-            if [ "$CFG_XKB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-                echo "XKB support cannot be enabled due to functionality tests!"
-                echo " Turn on verbose messaging (-v) to $0 to see the final report."
-                echo " If you believe this message is in error you may use the continue"
-                echo " switch (-continue) to $0 to continue."
-                exit 101
-            else
-                CFG_XKB=no
-            fi
+# auto-detect OpenGL support (es2 = OpenGL ES 2.x)
+if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
+    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS; then
+        CFG_OPENGL=desktop
+    elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
+        CFG_OPENGL=es2
+    else
+        if [ "$CFG_OPENGL" = "yes" ]; then
+            echo "All the OpenGL functionality tests failed!"
+            echo " You might need to modify the include and library search paths by editing"
+            echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
+            echo " ${XQMAKESPEC}."
+            exit 1
         fi
+        CFG_OPENGL=no
     fi
-
-    if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
-        if [ -n "$PKG_CONFIG" ]; then
-            QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
-            QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
-        fi
-        if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
-            CFG_QGTKSTYLE=yes
-            QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
-            QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
-        else
-            if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-                echo "Gtk theme support cannot be enabled due to functionality tests!"
-                echo " Turn on verbose messaging (-v) to $0 to see the final report."
-                echo " If you believe this message is in error you may use the continue"
-                echo " switch (-continue) to $0 to continue."
-                exit 101
-            else
-                CFG_QGTKSTYLE=no
-            fi
-        fi
-    elif [ "$CFG_GLIB" = "no" ]; then
-        CFG_QGTKSTYLE=no
+elif [ "$CFG_OPENGL" = "es2" ]; then
+    #OpenGL ES 2.x
+    if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
+        QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
+        QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
+        QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
+        QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
+        QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "$QMAKE_INCDIR_OPENGL_ES2"
+        QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "$QMAKE_LIBDIR_OPENGL_ES2"
+        QMakeVar set QMAKE_LIBS_OPENGL_ES2 "$QMAKE_LIBS_OPENGL_ES2"
+    fi
+
+    "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
+    if [ $? != "0" ]; then
+        echo "The OpenGL ES 2.0 functionality test failed!"
+        echo " You might need to modify the include and library search paths by editing"
+        echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
+        echo " ${XQMAKESPEC}."
+        exit 1
     fi
-fi # X11
+elif [ "$CFG_OPENGL" = "desktop" ]; then
+    # Desktop OpenGL support
+    "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS
+    if [ $? != "0" ]; then
+        echo "The OpenGL functionality test failed!"
+        echo " You might need to modify the include and library search paths by editing"
+        echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
+        echo " ${XQMAKESPEC}."
+        exit 1
+    fi
+fi
 
 # auto-detect FontConfig support
 if [ "$CFG_FONTCONFIG" != "no" ]; then
@@ -4934,282 +4495,240 @@ if [ "$CFG_FONTCONFIG" != "no" ]; then
         QT_CFLAGS_FONTCONFIG=
         QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
     fi
-    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/fontconfig "FontConfig" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
-        CFG_FONTCONFIG=yes
-        QMakeVar set QMAKE_CFLAGS_X11 "$QT_CFLAGS_FONTCONFIG \$\$QMAKE_CFLAGS_X11"
-        QMakeVar set QMAKE_LIBS_X11 "$QT_LIBS_FONTCONFIG \$\$QMAKE_LIBS_X11"
+    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/fontconfig "FontConfig" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
+        QT_CONFIG="$QT_CONFIG fontconfig"
+        QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
+        QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
         CFG_LIBFREETYPE=system
-    else
-        if [ "$CFG_FONTCONFIG" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-            echo "FontConfig support cannot be enabled due to functionality tests!"
-            echo " Turn on verbose messaging (-v) to $0 to see the final report."
-            echo " If you believe this message is in error you may use the continue"
-            echo " switch (-continue) to $0 to continue."
-            exit 101
-        else
-            CFG_FONTCONFIG=no
-        fi
     fi
+
 fi
 
+# Save these for a check later
+ORIG_CFG_XCB="$CFG_XCB"
+ORIG_CFG_EGLFS="$CFG_EGLFS"
+ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
 
-if [ "$BUILD_ON_MAC" = "yes" ]; then
-    if [ "$CFG_PHONON" != "no" ]; then
-        # Always enable Phonon (unless it was explicitly disabled)
-        CFG_PHONON=yes
+if [ "$CFG_LIBUDEV" != "no" ]; then
+    if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
+        QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
+        QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
+        QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
+        QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
     fi
-
-    if [ "$CFG_COREWLAN" = "auto" ]; then
-        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/mac/corewlan "CoreWlan" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
-            CFG_COREWLAN=yes
-        else
-            CFG_COREWLAN=no
-        fi
+    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libudev "libudev" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
+        CFG_LIBUDEV=yes
+        QT_CONFIG="$QT_CONFIG libudev"
+    elif [ "$CFG_LIBUDEV" = "yes" ]; then
+        echo "The libudev functionality test failed!"
+        exit 1
+    else
+        CFG_LIBUDEV=no
+        QMakeVar add DEFINES QT_NO_LIBUDEV
     fi
 fi
 
-if [ "$PLATFORM_QPA" = "yes" ]; then
-    # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
-    if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
-        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
-            CFG_OPENGL=desktop
-        elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
-            CFG_OPENGL=es2
-        else
-            if [ "$CFG_OPENGL" = "yes" ]; then
-                echo "All the OpenGL functionality tests failed!"
-                echo " You might need to modify the include and library search paths by editing"
-                echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
-                echo " ${XQMAKESPEC}."
-                exit 1
-            fi
-            CFG_OPENGL=no
-        fi
-    elif [ "$CFG_OPENGL" = "es2" ]; then
-        #OpenGL ES 2.x
-        if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
-            QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
-            QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
-            QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
-            QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
-            QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "$QMAKE_INCDIR_OPENGL_ES2"
-            QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "$QMAKE_LIBDIR_OPENGL_ES2"
-            QMakeVar set QMAKE_LIBS_OPENGL_ES2 "$QMAKE_LIBS_OPENGL_ES2"
-        fi
-
-        "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
-        if [ $? != "0" ]; then
-            echo "The OpenGL ES 2.0 functionality test failed!"
-            echo " You might need to modify the include and library search paths by editing"
-            echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
-            echo " ${XQMAKESPEC}."
-            exit 1
-        fi
-    elif [ "$CFG_OPENGL" = "desktop" ]; then
-        # Desktop OpenGL support
-        "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
-        if [ $? != "0" ]; then
-            echo "The OpenGL functionality test failed!"
-            echo " You might need to modify the include and library search paths by editing"
-            echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
-            echo " ${XQMAKESPEC}."
-            exit 1
-        fi
-    fi
-
-    # auto-detect FontConfig support
-    if [ "$CFG_FONTCONFIG" != "no" ]; then
-        if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
-            QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
-            QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
-        else
-            QT_CFLAGS_FONTCONFIG=
-            QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
-        fi
-        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/fontconfig "FontConfig" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
-                QT_CONFIG="$QT_CONFIG fontconfig"
-                QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
-                QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
-                CFG_LIBFREETYPE=system
-        fi
-
+if [ "$CFG_EVDEV" != "no" ]; then
+    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/evdev "evdev" $L_FLAGS $I_FLAGS $l_FLAGS; then
+        CFG_EVDEV=yes
+        QT_CONFIG="$QT_CONFIG evdev"
+    elif [ "$CFG_EVDEV" = "yes" ]; then
+        echo "The evdev functionality test failed!"
+        exit 1
+    else
+        CFG_EVDEV=no
+        QMakeVar add DEFINES QT_NO_EVDEV
     fi
+fi
 
-    # Save these for a check later
-    ORIG_CFG_XCB="$CFG_XCB"
-    ORIG_CFG_EGLFS="$CFG_EGLFS"
-
-    if [ "$CFG_LIBUDEV" != "no" ]; then
-       if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
-           QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
-           QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
-           QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
-           QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
-       fi
-       if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libudev "libudev" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
-            CFG_LIBUDEV=yes
-            QT_CONFIG="$QT_CONFIG libudev"
-        elif [ "$CFG_LIBUDEV" = "yes" ]; then
-            echo "The libudev functionality test failed!"
-            exit 1
-        else
-            CFG_LIBUDEV=no
-            QMakeVar add DEFINES QT_NO_LIBUDEV
-        fi
-    fi
+# Check we actually have X11 :-)
+if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xlib "XLib" $L_FLAGS $I_FLAGS $l_FLAGS; then
+    QT_CONFIG="$QT_CONFIG xlib"
+fi
 
-    if [ "$CFG_EVDEV" != "no" ]; then
-        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/evdev "evdev" $L_FLAGS $I_FLAGS $l_FLAGS; then
-            CFG_EVDEV=yes
-            QT_CONFIG="$QT_CONFIG evdev"
-        elif [ "$CFG_EVDEV" = "yes" ]; then
-            echo "The evdev functionality test failed!"
-            exit 1
+# auto-detect Xrender support
+if [ "$CFG_XRENDER" != "no" ]; then
+    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xrender "Xrender" $L_FLAGS $I_FLAGS $l_FLAGS; then
+        CFG_XRENDER=yes
+        QT_CONFIG="$QT_CONFIG xrender"
+    else
+        if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+            echo "Xrender support cannot be enabled due to functionality tests!"
+            echo " Turn on verbose messaging (-v) to $0 to see the final report."
+            echo " If you believe this message is in error you may use the continue"
+            echo " switch (-continue) to $0 to continue."
+            exit 101
         else
-            CFG_EVDEV=no
-            QMakeVar add DEFINES QT_NO_EVDEV
+            CFG_XRENDER=no
         fi
     fi
+fi
 
-    # Check we actually have X11 :-)
-    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xlib "XLib" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
-        QT_CONFIG="$QT_CONFIG xlib"
+if [ "$CFG_XCB" != "no" ]; then
+    if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
+        QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
+        QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
     fi
-
-    # auto-detect Xrender support
-    if [ "$CFG_XRENDER" != "no" ]; then
-        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xrender "Xrender" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
-            CFG_XRENDER=yes
-            QT_CONFIG="$QT_CONFIG xrender"
-        else
-            if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-                echo "Xrender support cannot be enabled due to functionality tests!"
-                echo " Turn on verbose messaging (-v) to $0 to see the final report."
-                echo " If you believe this message is in error you may use the continue"
-                echo " switch (-continue) to $0 to continue."
-                exit 101
-            else
-                CFG_XRENDER=no
-            fi
+    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb "xcb" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
+        CFG_XCB=yes
+        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-render "xcb-render" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
+            QT_CONFIG="$QT_CONFIG xcb-render"
         fi
-    fi
 
-    if [ "$CFG_XCB" != "no" ]; then
-        if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
-            QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
-            QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
+        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
+            CFG_XCB_LIMITED=no
+            QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
         fi
-        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb "xcb" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
-            CFG_XCB=yes
-            if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-render "xcb-render" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
-                QT_CONFIG="$QT_CONFIG xcb-render"
-            fi
 
-            if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
-                CFG_XCB_LIMITED=no
-                QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
-            fi
-
-            if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-xlib "xcb-xlib" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
-                QT_CONFIG="$QT_CONFIG xcb-xlib"
-            fi
+        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-xlib "xcb-xlib" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
+            QT_CONFIG="$QT_CONFIG xcb-xlib"
+        fi
 
-            if [ "$XPLATFORM_MAEMO" = "yes" ]; then
-                # auto-detect XInput2/Xinput support
-                if [ "$CFG_XINPUT2" != "no" ]; then
-                    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xinput2 "XInput2" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
+        if [ "$XPLATFORM_MAEMO" = "yes" ]; then
+            # auto-detect XInput2/Xinput support
+            if [ "$CFG_XINPUT2" != "no" ]; then
+                if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xinput2 "XInput2" $L_FLAGS $I_FLAGS $l_FLAGS; then
                     CFG_XINPUT2=yes
                     CFG_XINPUT=no
+                else
+                    if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+                        echo "XInput2 support cannot be enabled due to functionality tests!"
+                        echo " Turn on verbose messaging (-v) to $0 to see the final report."
+                        echo " If you believe this message is in error you may use the continue"
+                        echo " switch (-continue) to $0 to continue."
+                        exit 101
                     else
-                        if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-                            echo "XInput2 support cannot be enabled due to functionality tests!"
-                            echo " Turn on verbose messaging (-v) to $0 to see the final report."
-                            echo " If you believe this message is in error you may use the continue"
-                            echo " switch (-continue) to $0 to continue."
-                            exit 101
-                        else
-                            CFG_XINPUT2=no
-                        fi
+                        CFG_XINPUT2=no
                     fi
                 fi
             fi
-        else
-            if [ "$CFG_XCB" = "yes" ]; then
-                echo "The XCB test failed!"
-                echo " You might need to install dependency packages."
-                echo " See src/plugins/platforms/xcb/README."
-                exit 1
-            fi
-            CFG_XCB=no
-            QMakeVar add DEFINES QT_NO_XCB
         fi
-    fi
-
-    # Detect libxkbcommon
-    if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
-        QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
-        QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
-        QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
-        QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
     else
-        QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
-    fi
-
-    # EGL Support
-    if [ "$CFG_EGL" != "no" ]; then
-        if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
-            QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
-            QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
-            QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
-            QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
-            QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
-        fi       # detect EGL support
-        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/qpa/egl" "EGL" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
-            CFG_EGL=yes
-        elif [ "$CFG_EGL" = "yes" ]; then
-            echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
-            echo " You might need to modify the include and library search paths by editing"
-            echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
+        if [ "$CFG_XCB" = "yes" ]; then
+            echo "The XCB test failed!"
+            echo " You might need to install dependency packages."
+            echo " See src/plugins/platforms/xcb/README."
             exit 1
+        fi
+        CFG_XCB=no
+        QMakeVar add DEFINES QT_NO_XCB
+    fi
+fi
+
+if [ "$CFG_DIRECTFB" != "no" ]; then
+    if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
+        QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
+        QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
+        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/directfb" "DirectFB" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
+            CFG_DIRECTFB=yes
+        elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+            echo " DirectFB support cannot be enabled due to functionality tests!"
+            echo " Turn on verbose messaging (-v) to $0 to see the final report."
+            echo " If you believe this message is in error you may use the continue"
+            echo " switch (-continue) to $0 to continue."
+            exit 101
         else
-            CFG_EGL=no
+            CFG_DIRECTFB=no
         fi
+    else
+        CFG_DIRECTFB=no
     fi
+fi
 
-    if [ "$CFG_EGLFS" != "no" ]; then
-        CFG_EGLFS="$CFG_EGL"
+# Detect libxkbcommon
+if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
+    QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
+    QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
+    QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
+    QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
+else
+    QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
+fi
+
+# EGL Support
+if [ "$CFG_EGL" != "no" ] && [ "$CFG_OPENGL" != "desktop" ]; then
+    if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
+        QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
+        QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
+        QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
+        QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
+        QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
+    fi       # detect EGL support
+    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/qpa/egl" "EGL" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
+        CFG_EGL=yes
+    elif [ "$CFG_EGL" = "yes" ]; then
+        echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
+        echo " You might need to modify the include and library search paths by editing"
+        echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
+        exit 1
+    else
+        CFG_EGL=no
+    fi
+elif [ "$CFG_OPENGL" = "desktop" ]; then
+    if [ "$CFG_EGL" = "yes" ]; then
+        echo "EGL support was requested but Qt is being configured for desktop OpenGL."
+        echo "Either disable EGL support or enable OpenGL ES support."
+        exit 101
     fi
+    CFG_EGL=no
+fi
 
-    if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
-        QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
-        QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
-        QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
+if [ "$CFG_EGLFS" != "no" ]; then
+    if [ "$CFG_OPENGL" = "es2" ]; then
+        CFG_EGLFS="$CFG_EGL"
+    else
+        CFG_EGLFS="no"
     fi
+fi
 
-    if [ "$BUILD_ON_MAC" = "yes" ]; then
-        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/mac/coreservices "CoreServices" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
-            QT_CONFIG="$QT_CONFIG coreservices"
+# Determine the default QPA platform
+if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
+    # check the mkspec
+    QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
+    if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
+        if [ "$BUILD_ON_MAC" = "yes" ]; then
+            QT_QPA_DEFAULT_PLATFORM="cocoa"
+        elif [ "$UNAME_SYSTEM" = "QNX" ]; then
+            QT_QPA_DEFAULT_PLATFORM="qnx"
         else
-            QMakeVar add DEFINES QT_NO_CORESERVICES
+            QT_QPA_DEFAULT_PLATFORM="xcb"
         fi
     fi
+fi
 
-    if [ "$PLATFORM_QPA" = "yes" ] && [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ]; then
-        if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ]; then
-            if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
-                 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] ); then
-                echo "No QPA platform plugin enabled!"
-                echo " If you really want to build without a QPA platform plugin you must pass"
-                echo " -no-xcb and -no-eglfs to configure. Doing this will"
-                echo " produce a Qt that cannot run GUI applications."
-                echo " The dependencies needed for xcb to build are listed in"
-                echo " src/plugins/platforms/xcb/README"
-                exit 1
-            fi
-        fi
+if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
+    QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
+    QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
+    QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
+fi
+if [ "$CFG_DIRECTFB" = "yes" ]; then
+    QT_CONFIG="$QT_CONFIG directfb"
+    QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
+    QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
+fi
+
+if [ "$BUILD_ON_MAC" = "yes" ]; then
+    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/mac/coreservices "CoreServices" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
+        QT_CONFIG="$QT_CONFIG coreservices"
+    else
+        QMakeVar add DEFINES QT_NO_CORESERVICES
     fi
+fi
 
+if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
+    if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ]; then
+        if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
+            ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] ); then
+        echo "No QPA platform plugin enabled!"
+        echo " If you really want to build without a QPA platform plugin you must pass"
+        echo " -no-qpa-platform-guard to configure. Doing this will"
+        echo " produce a Qt that can not run GUI applications."
+        echo " The dependencies needed for xcb to build are listed in"
+        echo " src/plugins/platforms/xcb/README"
+        exit 1
+    fi
 fi
+    fi
 
 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_PHONON" != "no" ] && CFG_PHONON="yes"
 
@@ -5223,26 +4742,13 @@ if [ "$CFG_LIBFREETYPE" = "auto" ]; then
     fi
 fi
 
-HAVE_STL=no
-if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $l_FLAGS; then
-    HAVE_STL=yes
+if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $l_FLAGS &&
+    [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
+    echo "STL functionality check failed! Cannot build Qt with this STL library."
+    echo " Turn on verbose messaging (-v) to $0 to see the final report."
+    exit 101
 fi
 
-if [ "$CFG_STL" != "no" ]; then
-    if [ "$HAVE_STL" = "yes" ]; then
-        CFG_STL=yes
-    else
-        if [ "$CFG_STL" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-            echo "STL support cannot be enabled due to functionality tests!"
-            echo " Turn on verbose messaging (-v) to $0 to see the final report."
-            echo " If you believe this message is in error you may use the continue"
-            echo " switch (-continue) to $0 to continue."
-            exit 101
-        else
-            CFG_STL=no
-        fi
-    fi
-fi
 
 # detect POSIX clock_gettime()
 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
@@ -5457,35 +4963,6 @@ fi
 # ask for all that hasn't been auto-detected or specified in the arguments
 #-------------------------------------------------------------------------------
 
-# enable dwarf2 support on Mac
-if [ "$CFG_MAC_DWARF2" = "yes" ]; then
-    QT_CONFIG="$QT_CONFIG dwarf2"
-fi
-
-# Detect the default arch (x86 or x86_64) on Mac OS X
-if [ "$BUILD_ON_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
-    DEFAULT_ARCH=
-    case `file "${outpath}/bin/qmake"` in
-    *i?86)
-        DEFAULT_ARCH=x86
-        ;;
-    *x86_64)
-        DEFAULT_ARCH=x86_64
-        ;;
-    *ppc|*ppc64|*)
-        # unsupported/unknown
-        ;;
-    esac
-
-    if [ -n "$DEFAULT_ARCH" ]; then
-        [ "$OPT_VERBOSE" = "yes" ] && echo "Setting default Mac OS X architechture to $DEFAULT_ARCH."
-        QT_CONFIG="$QT_CONFIG $DEFAULT_ARCH"
-        QMAKE_CONFIG="$QMAKE_CONFIG $DEFAULT_ARCH"
-        # Make the application arch follow the Qt arch
-        QTCONFIG_CONFIG="$QTCONFIG_CONFIG $DEFAULT_ARCH"
-    fi
-fi
-
 # ### Vestige
 if [ "$CFG_PHONON_BACKEND" = "yes" ]; then
     QT_CONFIG="$QT_CONFIG phonon-backend"
@@ -5565,12 +5042,12 @@ elif [ "$CFG_SHARED" = "no" ]; then
     QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
     QMAKE_CONFIG="$QMAKE_CONFIG static"
 fi
-if [ "$PLATFORM_QPA" = "yes" ]; then
-    QMAKE_CONFIG="$QMAKE_CONFIG qpa"
-    QT_CONFIG="$QT_CONFIG qpa"
-    QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
-    rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
-fi
+
+#FIXME: qpa is implicit this should all be removed
+QMAKE_CONFIG="$QMAKE_CONFIG qpa"
+QT_CONFIG="$QT_CONFIG qpa"
+QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
+rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
 
 if [ "$XPLATFORM_MINGW" != "yes" ]; then
     # Do not set this here for Windows. Let qmake do it so
@@ -5584,11 +5061,6 @@ QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
     QMAKE_CONFIG="$QMAKE_CONFIG largefile"
 fi
-if [ "$CFG_STL" = "no" ]; then
-    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STL"
-else
-    QMAKE_CONFIG="$QMAKE_CONFIG stl"
-fi
 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
     QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
 fi
@@ -5603,15 +5075,13 @@ fi
 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
     QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
 fi
-[ "$CFG_MMX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mmx"
-[ "$CFG_3DNOW" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG 3dnow"
-[ "$CFG_SSE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse"
 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
+[ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
 if [ "$CFG_ARCH" = "mips" ]; then
@@ -5705,69 +5175,12 @@ fi
 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
-[ "$CFG_NAS" = "system" ] && QT_CONFIG="$QT_CONFIG nas"
 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
 
-if [ "$PLATFORM_X11" = "yes" ]; then
-    [ "$CFG_SM" = "yes" ] && QT_CONFIG="$QT_CONFIG x11sm"
-
-    # for some reason, the following libraries are not always built shared,
-    # so *every* program/lib (including Qt) has to link against them
-    if [ "$CFG_XSHAPE" = "yes" ]; then
-        QT_CONFIG="$QT_CONFIG xshape"
-    fi
-    if [ "$CFG_XVIDEO" = "yes" ]; then
-        QT_CONFIG="$QT_CONFIG xvideo"
-    fi
-    if [ "$CFG_XSYNC" = "yes" ]; then
-        QT_CONFIG="$QT_CONFIG xsync"
-    fi
-    if [ "$CFG_XINERAMA" = "yes" ]; then
-        QT_CONFIG="$QT_CONFIG xinerama"
-       QMakeVar set QMAKE_LIBS_X11 '-lXinerama $$QMAKE_LIBS_X11'
-    fi
-    if [ "$CFG_XCURSOR" = "yes" ]; then
-        QT_CONFIG="$QT_CONFIG xcursor"
-       QMakeVar set QMAKE_LIBS_X11 '-lXcursor $$QMAKE_LIBS_X11'
-    fi
-    if [ "$CFG_XFIXES" = "yes" ]; then
-        QT_CONFIG="$QT_CONFIG xfixes"
-       QMakeVar set QMAKE_LIBS_X11 '-lXfixes $$QMAKE_LIBS_X11'
-    fi
-    if [ "$CFG_XRANDR" = "yes" ]; then
-        QT_CONFIG="$QT_CONFIG xrandr"
-        if [ "$CFG_XRENDER" != "yes" ]; then
-            # libXrandr uses 1 function from libXrender, so we always have to have it :/
-           QMakeVar set QMAKE_LIBS_X11 '-lXrandr -lXrender $$QMAKE_LIBS_X11'
-        else
-           QMakeVar set QMAKE_LIBS_X11 '-lXrandr $$QMAKE_LIBS_X11'
-        fi
-    fi
-    if [ "$CFG_XRENDER" = "yes" ]; then
-        QT_CONFIG="$QT_CONFIG xrender"
-       QMakeVar set QMAKE_LIBS_X11 '-lXrender $$QMAKE_LIBS_X11'
-    fi
-    if [ "$CFG_MITSHM" = "yes" ]; then
-        QT_CONFIG="$QT_CONFIG mitshm"
-    fi
-    if [ "$CFG_FONTCONFIG" = "yes" ]; then
-        QT_CONFIG="$QT_CONFIG fontconfig"
-    fi
-    if [ "$CFG_XINPUT" = "yes" ]; then
-       QMakeVar set QMAKE_LIBS_X11 '-lXi $$QMAKE_LIBS_X11'
-    fi
-    if [ "$CFG_XINPUT" = "yes" ]; then
-        QT_CONFIG="$QT_CONFIG xinput tablet"
-    fi
-    if [ "$CFG_XKB" = "yes" ]; then
-        QT_CONFIG="$QT_CONFIG xkb"
-    fi
-fi
-
 [ '!' -z "$D_FLAGS" ] && QMakeVar add DEFINES "$D_FLAGS"
 [ '!' -z "$L_FLAGS" ] && QMakeVar add QMAKE_LIBDIR_FLAGS "$L_FLAGS"
 [ '!' -z "$l_FLAGS" ] && QMakeVar add LIBS "$l_FLAGS"
@@ -5813,17 +5226,6 @@ if [ '!' -z "$W_FLAGS" ]; then
     QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
 fi
 
-# turn off exceptions for the compilers that support it
-if [ "$XPLATFORM" != "$PLATFORM" ]; then
-    COMPILER=`echo $XPLATFORM | cut -f 2- -d-`
-else
-    COMPILER=`echo $PLATFORM | cut -f 2- -d-`
-fi
-
-if [ "$CFG_EXCEPTIONS" != "no" ]; then
-    QTCONFIG_CONFIG="$QTCONFIG_CONFIG exceptions"
-fi
-
 if [ "$XPLATFORM_MINGW" = "yes" ]; then
     # mkspecs/features/win32/default_pre.prf sets "no-rtti".
     # Follow default behavior of configure.exe by overriding with "rtti".
@@ -6025,34 +5427,12 @@ if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
 fi
 
 # ### Vestige
-if [ "$CFG_DECLARATIVE_DEBUG" = "no" ]; then
-    QCONFIG_FLAGS="$QCONFIG_FLAGS QDECLARATIVE_NO_DEBUG_PROTOCOL"
-fi
-
-if [ "$CFG_EXCEPTIONS" = "no" ]; then
-    case "$COMPILER" in
-    g++*)
-       QMakeVar add QMAKE_CFLAGS -fno-exceptions
-       QMakeVar add QMAKE_CXXFLAGS -fno-exceptions
-       QMakeVar add QMAKE_LFLAGS -fno-exceptions
-        ;;
-    cc*)
-        case "$PLATFORM" in
-        irix-cc*)
-           QMakeVar add QMAKE_CFLAGS -LANG:exceptions=off
-           QMakeVar add QMAKE_CXXFLAGS -LANG:exceptions=off
-           QMakeVar add QMAKE_LFLAGS -LANG:exceptions=off
-            ;;
-        *) ;;
-        esac
-        ;;
-    *) ;;
-    esac
-    QMAKE_CONFIG="$QMAKE_CONFIG exceptions_off"
+if [ "$CFG_QML_DEBUG" = "no" ]; then
+    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
 fi
 
-case "$COMPILER" in
-g++*)
+case "$QMAKE_CONF_COMPILER" in
+*g++*)
     # GNU C++
     COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
 
@@ -6139,10 +5519,8 @@ if [ "$CFG_DEV" = "yes" ]; then
     echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
 fi
 
-if [ "$PLATFORM_QPA" = "yes" ]; then
-    # Add QPA to config.h
-    QCONFIG_FLAGS="$QCONFIG_FLAGS Q_WS_QPA QT_NO_QWS_QPF QT_NO_QWS_QPF2"
-fi
+# Add QPA to config.h
+QCONFIG_FLAGS="$QCONFIG_FLAGS Q_WS_QPA QT_NO_QWS_QPF QT_NO_QWS_QPF2"
 
 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
     QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
@@ -6172,7 +5550,6 @@ QMakeVar set sql-plugins "$SQL_PLUGINS"
 [ "$CFG_PNG" != "yes" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
 [ "$CFG_JPEG" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
 [ "$CFG_ZLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
-[ "$CFG_EXCEPTIONS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EXCEPTIONS"
 [ "$CFG_SXE" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SXE"
 [ "$CFG_DBUS" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
 
@@ -6188,7 +5565,6 @@ QMakeVar set sql-plugins "$SQL_PLUGINS"
 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
 [ "$CFG_INOTIFY" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
-[ "$CFG_NAS" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NAS"
 [ "$CFG_NIS" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
 [ "$CFG_OPENSSL" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
@@ -6277,6 +5653,8 @@ cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
 EOF
 fi
 
+echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
+
 # avoid unecessary rebuilds by copying only if qconfig.h has changed
 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
     rm -f "$outpath/src/corelib/global/qconfig.h.new"
@@ -6308,9 +5686,6 @@ elif [ "$CFG_DEBUG" = "no" ]; then
     fi
     QT_CONFIG="$QT_CONFIG release"
 fi
-if [ "$CFG_STL" = "yes" ]; then
-    QTCONFIG_CONFIG="$QTCONFIG_CONFIG stl"
-fi
 if [ "$CFG_FRAMEWORK" = "no" ]; then
     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
 else
@@ -6340,6 +5715,14 @@ QT_LIBINFIX = $QT_LIBINFIX
 QT_NAMESPACE = $QT_NAMESPACE
 
 EOF
+
+if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
+    echo "# pkgconfig" >> "$QTCONFIG.tmp"
+    echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
+    echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
+    echo >> $"$QTCONFIG.tmp"
+fi
+
 if [ -n "$CFG_SYSROOT" ]; then
     echo "# sysroot" >>"$QTCONFIG.tmp"
     echo `basename "$XQMAKESPEC"` \{ >>"$QTCONFIG.tmp"
@@ -6471,46 +5854,7 @@ fi
 #-------------------------------------------------------------------------------
 # give feedback on configuration
 #-------------------------------------------------------------------------------
-
-case "$COMPILER" in
-g++*)
-    if [ "$CFG_EXCEPTIONS" != "no" ]; then
-        cat <<EOF
-
-        This target is using the GNU C++ compiler ($PLATFORM).
-
-        Recent versions of this compiler automatically include code for
-        exceptions, which increase both the size of the Qt libraries and
-        the amount of memory taken by your applications.
-
-        You may choose to re-run `basename $0` with the -no-exceptions
-        option to compile Qt without exceptions. This is completely binary
-        compatible, and existing applications will continue to work.
-
-EOF
-    fi
-    ;;
-cc*)
-    case "$PLATFORM" in
-    irix-cc*)
-        if [ "$CFG_EXCEPTIONS" != "no" ]; then
-            cat <<EOF
-
-        This target is using the MIPSpro C++ compiler ($PLATFORM).
-
-        You may choose to re-run `basename $0` with the -no-exceptions
-        option to compile Qt without exceptions. This will make the
-        size of the Qt library smaller and reduce the amount of memory
-        taken by your applications.
-
-EOF
-        fi
-        ;;
-    *) ;;
-    esac
-    ;;
-*) ;;
-esac
+exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
 
 echo
 if [ "$XPLATFORM" = "$PLATFORM" ]; then
@@ -6521,9 +5865,7 @@ else
 fi
 
 echo "Architecture:  $CFG_ARCH"
-if [ "$PLATFORM_QPA" = "yes" ]; then
-    echo "Host architecture: $CFG_HOST_ARCH"
-fi
+echo "Host architecture: $CFG_HOST_ARCH"
 
 if [ -n "$PLATFORM_NOTES" ]; then
     echo "Platform notes:"
@@ -6550,6 +5892,11 @@ if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
 else
    echo "Debug .................. $CFG_DEBUG"
 fi
+if [ -n "$PKG_CONFIG" ]; then
+    echo "pkg-config ............. yes"
+else
+    echo "pkg-config ............. no"
+fi
 [ "$CFG_DBUS" = "no" ]     && echo "QtDBus module .......... no"
 [ "$CFG_DBUS" = "yes" ]    && echo "QtDBus module .......... yes (run-time)"
 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
@@ -6561,13 +5908,12 @@ if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
 else
     echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
 fi
-echo "Declarative debugging ...$CFG_DECLARATIVE_DEBUG"
-echo "STL support ............ $CFG_STL"
+echo "QML debugging .......... $CFG_QML_DEBUG"
 echo "PCH support ............ $CFG_PRECOMPILE"
 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
-    echo "MMX/3DNOW/SSE/SSE2/SSE3. ${CFG_MMX}/${CFG_3DNOW}/${CFG_SSE}/${CFG_SSE2}/${CFG_SSE3}"
-    echo "SSSE3/SSE4.1/SSE4.2..... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
-    echo "AVX..................... ${CFG_AVX}"
+    echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
+    echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
+    echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
 elif [ "$CFG_ARCH" = "arm" ]; then
     echo "iWMMXt support ......... ${CFG_IWMMXT}"
     echo "NEON support ........... ${CFG_NEON}"
@@ -6616,22 +5962,21 @@ if [ "$CFG_OPENVG" ]; then
         echo "OpenVG support ......... $CFG_OPENVG"
     fi
 fi
-if [ "$PLATFORM_X11" = "yes" ]; then
-    echo "NAS sound support ...... $CFG_NAS"
-    echo "XShape support ......... $CFG_XSHAPE"
-    echo "XVideo support ......... $CFG_XVIDEO"
-    echo "XSync support .......... $CFG_XSYNC"
-    echo "Xinerama support ....... $CFG_XINERAMA"
-    echo "Xcursor support ........ $CFG_XCURSOR"
-    echo "Xfixes support ......... $CFG_XFIXES"
-    echo "Xrandr support ......... $CFG_XRANDR"
-    echo "Xi support ............. $CFG_XINPUT"
-    echo "MIT-SHM support ........ $CFG_MITSHM"
-    echo "FontConfig support ..... $CFG_FONTCONFIG"
-    echo "XKB Support ............ $CFG_XKB"
-    echo "immodule support ....... $CFG_IM"
-    echo "GTK theme support ...... $CFG_QGTKSTYLE"
-fi
+
+echo "XShape support ......... $CFG_XSHAPE"
+echo "XVideo support ......... $CFG_XVIDEO"
+echo "XSync support .......... $CFG_XSYNC"
+echo "Xinerama support ....... $CFG_XINERAMA"
+echo "Xcursor support ........ $CFG_XCURSOR"
+echo "Xfixes support ......... $CFG_XFIXES"
+echo "Xrandr support ......... $CFG_XRANDR"
+echo "Xi support ............. $CFG_XINPUT"
+echo "MIT-SHM support ........ $CFG_MITSHM"
+echo "FontConfig support ..... $CFG_FONTCONFIG"
+echo "XKB Support ............ $CFG_XKB"
+echo "immodule support ....... $CFG_IM"
+echo "GTK theme support ...... $CFG_QGTKSTYLE"
+
 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
@@ -6665,6 +6010,7 @@ if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
     echo "XInput2 support ........ $CFG_XINPUT2"
 fi
 echo "EGLFS support .......... $CFG_EGLFS"
+echo "DirectFB support ....... $CFG_DIRECTFB"
 echo
 
 # complain about not being able to use dynamic plugins if we are using a static build
@@ -6683,6 +6029,10 @@ if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
     echo "    OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
     echo
 fi
+
+exec 1>&3 3>&- # restore stdout
+cat $outpath/config.summary # display config feedback to user
+
 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
     echo
     echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
@@ -6867,7 +6217,7 @@ for file in .projects .projects.3; do
             fi
             SPEC=$XQMAKESPEC ;;
         */qmake/qmake.pro) continue ;;
-        *tools/bootstrap*|*tools/moc*|*tools/rcc*|*tools/uic*|*tools/qdoc*) SPEC=$QMAKESPEC ;;
+        *tools/bootstrap*|*tools/moc*|*tools/rcc*|*tools/uic*|*tools/qdoc*|*tools/qdbusxml2cpp*|*tools/qdbuscpp2xml*) SPEC=$QMAKESPEC ;;
         *) if [ "$CFG_NOPROCESS" = "yes" ]; then
               continue
            else