diff --git a/android-configure.sh b/android-configure.sh
index 8abfd52..bfda5e2 100755
--- a/android-configure.sh
+++ b/android-configure.sh
@@ -24,7 +24,7 @@
 OPTION_STATIC=no
 OPTION_MINGW=no
 
-GLES_LIBS=
+GLES_DIR=
 GLES_SUPPORT=no
 GLES_PROBE=yes
 
@@ -63,8 +63,7 @@
   ;;
   --static) OPTION_STATIC=yes
   ;;
-  --gles-libs=*) GLES_LIBS=$optarg
-  GLES_SUPPORT=yes
+  --gles-dir=*) GLES_DIR=$optarg
   ;;
   --no-gles) GLES_PROBE=no
   ;;
@@ -97,7 +96,7 @@
     echo "  --static                 build a completely static executable"
     echo "  --verbose                verbose configuration"
     echo "  --debug                  build debug version of the emulator"
-    echo "  --gles-libs=PATH         specify path to GLES emulation host libraries"
+    echo "  --gles-dir=PATH          specify path to GLES host emulation sources [auto-detected]"
     echo "  --no-gles                disable GLES emulation support"
     echo "  --no-pcbios              disable copying of PC Bios files"
     echo ""
@@ -139,6 +138,18 @@
 esac
 
 TARGET_OS=$OS
+
+setup_toolchain
+
+BUILD_AR=$AR
+BUILD_CC=$CC
+BUILD_CXX=$CC
+BUILD_LD=$LD
+BUILD_AR=$AR
+BUILD_CFLAGS=$CFLAGS
+BUILD_CXXFLAGS=$CXXFLAGS
+BUILD_LDFLAGS=$LDFLAGS
+
 if [ "$OPTION_MINGW" = "yes" ] ; then
     enable_linux_mingw
     TARGET_OS=windows
@@ -161,27 +172,6 @@
     IN_ANDROID_BUILD=no
 fi
 
-# This is the list of static and shared host libraries we need to link
-# against in order to support OpenGLES emulation properly. Note that in
-# the case of a standalone build, we will find these libraries inside the
-# platform build tree and copy them into objs/lib/ automatically, unless
-# you use --gles-libs to point explicitely to a different directory.
-#
-GLES_SHARED_LIBRARIES="\
-  libOpenglRender \
-  libGLES_CM_translator \
-  libGLES_V2_translator \
-  libEGL_translator"
-
-if [ "$OPTION_MINGW" != "yes" ]; then
-  # There are no 64-bit libraries for Windows yet!
-  GLES_SHARED_LIBRARIES="$GLES_SHARED_LIBRARIES \
-    lib64OpenglRender \
-    lib64GLES_CM_translator \
-    lib64GLES_V2_translator \
-    lib64EGL_translator"
-fi
-
 if [ "$IN_ANDROID_BUILD" = "yes" ] ; then
     locate_android_prebuilt
 
@@ -214,22 +204,10 @@
     else
         log "Tools      : Could not locate $TOOLS_PROPS !?"
     fi
-
-    GLES_PROBE_LIB_DIR=$(dirname "$HOST_BIN")/lib
-    case $GLES_PROBE_LIB_DIR in
-        */windows/lib)
-            GLES_PROBE_LIB_DIR=${GLES_PROBE_LIB_DIR%%/windows/lib}/windows-x86/lib
-            ;;
-    esac
 else
     if [ "$USE_CCACHE" != 0 ]; then
         CCACHE=$(which ccache 2>/dev/null)
     fi
-    GLES_PROBE_OS=$TARGET_OS
-    if [ "$GLES_PROBE_OS" = "windows" ]; then
-      GLES_PROBE_OS=windows-x86
-    fi
-    GLES_PROBE_LIB_DIR=../../out/host/$GLES_PROBE_OS/lib
 fi  # IN_ANDROID_BUILD = no
 
 if [ -n "$CCACHE" -a -f "$CCACHE" ] ; then
@@ -243,41 +221,26 @@
 # Try to find the GLES emulation headers and libraries automatically
 if [ "$GLES_PROBE" = "yes" ]; then
     GLES_SUPPORT=yes
-    if [ -z "$GLES_LIBS" ]; then
-        log "GLES       : Probing for host libraries"
-        GLES_LIBS=$GLES_PROBE_LIB_DIR
-        if [ -d "$GLES_LIBS" ]; then
-            echo "GLES       : Libs in $GLES_LIBS"
-        else
-            echo "Warning: Could nof find OpenGLES emulation libraries in: $GLES_LIBS"
+    if [ -z "$GLES_DIR" ]; then
+        GLES_DIR=../../sdk/emulator/opengl
+        log2 "GLES       : Probing source dir: $GLES_DIR"
+        if [ ! -d "$GLES_DIR" ]; then
+            GLES_DIR=../opengl
+            log2 "GLES       : Probing source dir: $GLES_DIR"
+            if [ ! -d "$GLES_DIR" ]; then
+                GLES_DIR=
+            fi
+        fi
+        if [ -z "$GLES_DIR" ]; then
+            echo "GLES       : Could not find GPU emulation sources!"
             GLES_SUPPORT=no
+        else
+            echo "GLES       : Found GPU emulation sources: $GLES_DIR"
+            GLES_SUPPORT=yes
         fi
     fi
 fi
 
-if [ "$GLES_SUPPORT" = "yes" ]; then
-    mkdir -p objs/lib
-
-    for lib in $GLES_SHARED_LIBRARIES; do
-        GLES_LIB=$GLES_LIBS/${lib}$TARGET_DLL_SUFFIX
-        if [ ! -f "$GLES_LIB" ]; then
-            echo "ERROR: Missing OpenGLES emulation host library: $GLES_LIB"
-            echo "Please fix this by using --gles-libs to point to the right directory!"
-            if [ "$IN_ANDROID_BUILD" = "true" ]; then
-                echo "You might also be missing the library because you forgot to rebuild the whole platform!"
-            fi
-            exit 1
-        fi
-        cp $GLES_LIB objs/lib
-        if [ $? != 0 ]; then
-            echo "ERROR: Could not find required OpenGLES emulation library: $GLES_LIB"
-            exit 1
-        else
-            log "GLES       : Copying $GLES_LIB"
-        fi
-    done
-fi
-
 if [ "$PCBIOS_PROBE" = "yes" ]; then
     PCBIOS_DIR=$(dirname "$0")/../../prebuilts/qemu-kernel/x86/pc-bios
     if [ ! -d "$PCBIOS_DIR" ]; then
@@ -531,6 +494,21 @@
 # Build the config.make file
 #
 
+case $OS in
+    windows)
+        HOST_EXEEXT=.exe
+        HOST_DLLEXT=.dll
+        ;;
+    darwin)
+        HOST_EXEEXT=
+        HOST_DLLEXT=.dylib
+        ;;
+    *)
+        HOST_EXEEXT=
+        HOST_DLLEXT=
+        ;;
+esac
+
 case $TARGET_OS in
     windows)
         TARGET_EXEEXT=.exe
@@ -566,6 +544,18 @@
 echo "PREBUILT          := $ANDROID_PREBUILT" >> $config_mk
 echo "PREBUILTS         := $ANDROID_PREBUILTS" >> $config_mk
 
+echo "" >> $config_mk
+echo "BUILD_OS          := $HOST_OS" >> $config_mk
+echo "BUILD_ARCH        := $HOST_ARCH" >> $config_mk
+echo "BUILD_EXEEXT      := $HOST_EXEEXT" >> $config_mk
+echo "BUILD_DLLEXT      := $HOST_DLLEXT" >> $config_mk
+echo "BUILD_AR          := $BUILD_AR" >> $config_mk
+echo "BUILD_CC          := $BUILD_CC" >> $config_mk
+echo "BUILD_CXX         := $BUILD_CXX" >> $config_mk
+echo "BUILD_LD          := $BUILD_LD" >> $config_mk
+echo "BUILD_CFLAGS      := $BUILD_CFLAGS" >> $config_mk
+echo "BUILD_LDFLAGS     := $BUILD_LDFLAGS" >> $config_mk
+
 PWD=`pwd`
 echo "SRC_PATH          := $PWD" >> $config_mk
 if [ -n "$SDL_CONFIG" ] ; then
@@ -584,6 +574,10 @@
 if [ $OPTION_STATIC = yes ] ; then
     echo "CONFIG_STATIC_EXECUTABLE := true" >> $config_mk
 fi
+if [ "$GLES_SUPPORT" = "yes" ]; then
+    echo "EMULATOR_BUILD_EMUGL       := true" >> $config_mk
+    echo "EMULATOR_EMUGL_SOURCES_DIR := $GLES_DIR" >> $config_mk
+fi
 
 if [ -n "$ANDROID_SDK_TOOLS_REVISION" ] ; then
     echo "ANDROID_SDK_TOOLS_REVISION := $ANDROID_SDK_TOOLS_REVISION" >> $config_mk
