[Pkg-e-commits] [SCM] Core abstraction layer for enlightenment DR 0.17 branch, master, updated. debian/0.9.9.042-4-67-g202caeb

Albin Tonnerre albin.tonnerre at gmail.com
Wed May 21 18:31:02 UTC 2008


The following commit has been merged in the master branch:
commit b59b08517f969147f9a082cc9e63f2b6e953dc0a
Author: Albin Tonnerre <albin.tonnerre at gmail.com>
Date:   Wed May 21 19:00:31 2008 +0200

    Import upstream release 0.9.9.043

diff --git a/Makefile.am b/Makefile.am
index 1be116f..a801e39 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,7 @@
 ## Process this file with automake to produce Makefile.in
 
+ACLOCAL_AMFLAGS = -I m4
+
 SUBDIRS = src
 
 MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess \
@@ -28,7 +30,8 @@ MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess \
 
 bin_SCRIPTS = 
 
-EXTRA_DIST = AUTHORS COPYING COPYING-PLAIN ecore.c.in gendoc ecore.supp \
+EXTRA_DIST = AUTHORS COPYING COPYING-PLAIN \
+	     autogen.sh ecore.c.in gendoc ecore.supp \
              Doxyfile \
 	     ecore.pc.in \
 	     ecore-con.pc.in \
diff --git a/Makefile.in b/Makefile.in
index 57f2ef9..4d197b7 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -126,6 +126,8 @@ BUILD_ECORE_EVAS_DIRECTFB_TRUE = @BUILD_ECORE_EVAS_DIRECTFB_TRUE@
 BUILD_ECORE_EVAS_FALSE = @BUILD_ECORE_EVAS_FALSE@
 BUILD_ECORE_EVAS_FB_FALSE = @BUILD_ECORE_EVAS_FB_FALSE@
 BUILD_ECORE_EVAS_FB_TRUE = @BUILD_ECORE_EVAS_FB_TRUE@
+BUILD_ECORE_EVAS_SDL_FALSE = @BUILD_ECORE_EVAS_SDL_FALSE@
+BUILD_ECORE_EVAS_SDL_TRUE = @BUILD_ECORE_EVAS_SDL_TRUE@
 BUILD_ECORE_EVAS_TRUE = @BUILD_ECORE_EVAS_TRUE@
 BUILD_ECORE_EVAS_X11_16_FALSE = @BUILD_ECORE_EVAS_X11_16_FALSE@
 BUILD_ECORE_EVAS_X11_16_TRUE = @BUILD_ECORE_EVAS_X11_16_TRUE@
@@ -174,6 +176,7 @@ DEPDIR = @DEPDIR@
 DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
 DIRECTFB_LIBS = @DIRECTFB_LIBS@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -182,7 +185,31 @@ EET_CFLAGS = @EET_CFLAGS@
 EET_LIBS = @EET_LIBS@
 EGREP = @EGREP@
 EVAS_CFLAGS = @EVAS_CFLAGS@
+EVAS_DIRECT3D_CFLAGS = @EVAS_DIRECT3D_CFLAGS@
+EVAS_DIRECT3D_LIBS = @EVAS_DIRECT3D_LIBS@
+EVAS_DIRECTFB_CFLAGS = @EVAS_DIRECTFB_CFLAGS@
+EVAS_DIRECTFB_LIBS = @EVAS_DIRECTFB_LIBS@
+EVAS_FB_CFLAGS = @EVAS_FB_CFLAGS@
+EVAS_FB_LIBS = @EVAS_FB_LIBS@
 EVAS_LIBS = @EVAS_LIBS@
+EVAS_OPENGL_GLEW_CFLAGS = @EVAS_OPENGL_GLEW_CFLAGS@
+EVAS_OPENGL_GLEW_LIBS = @EVAS_OPENGL_GLEW_LIBS@
+EVAS_OPENGL_X11_CFLAGS = @EVAS_OPENGL_X11_CFLAGS@
+EVAS_OPENGL_X11_LIBS = @EVAS_OPENGL_X11_LIBS@
+EVAS_SOFTWARE_16_DDRAW_CFLAGS = @EVAS_SOFTWARE_16_DDRAW_CFLAGS@
+EVAS_SOFTWARE_16_DDRAW_LIBS = @EVAS_SOFTWARE_16_DDRAW_LIBS@
+EVAS_SOFTWARE_16_X11_CFLAGS = @EVAS_SOFTWARE_16_X11_CFLAGS@
+EVAS_SOFTWARE_16_X11_LIBS = @EVAS_SOFTWARE_16_X11_LIBS@
+EVAS_SOFTWARE_BUFFER_CFLAGS = @EVAS_SOFTWARE_BUFFER_CFLAGS@
+EVAS_SOFTWARE_BUFFER_LIBS = @EVAS_SOFTWARE_BUFFER_LIBS@
+EVAS_SOFTWARE_DDRAW_CFLAGS = @EVAS_SOFTWARE_DDRAW_CFLAGS@
+EVAS_SOFTWARE_DDRAW_LIBS = @EVAS_SOFTWARE_DDRAW_LIBS@
+EVAS_SOFTWARE_SDL_CFLAGS = @EVAS_SOFTWARE_SDL_CFLAGS@
+EVAS_SOFTWARE_SDL_LIBS = @EVAS_SOFTWARE_SDL_LIBS@
+EVAS_SOFTWARE_X11_CFLAGS = @EVAS_SOFTWARE_X11_CFLAGS@
+EVAS_SOFTWARE_X11_LIBS = @EVAS_SOFTWARE_X11_LIBS@
+EVAS_XRENDER_X11_CFLAGS = @EVAS_XRENDER_X11_CFLAGS@
+EVAS_XRENDER_X11_LIBS = @EVAS_XRENDER_X11_LIBS@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
@@ -196,6 +223,7 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -208,6 +236,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
 SDL_LIBS = @SDL_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -240,6 +269,8 @@ XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
 XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
 XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
 XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
+XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
+XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
 XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
 XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
 XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
@@ -259,6 +290,8 @@ XRENDER_CFLAGS = @XRENDER_CFLAGS@
 XRENDER_LIBS = @XRENDER_LIBS@
 XSS_CFLAGS = @XSS_CFLAGS@
 XSS_LIBS = @XSS_LIBS@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
 X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
@@ -369,6 +402,7 @@ winsock_libs = @winsock_libs@
 x_cflags = @x_cflags@
 x_includes = @x_includes@
 x_libs = @x_libs@
+ACLOCAL_AMFLAGS = -I m4
 SUBDIRS = src
 MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess \
                        config.h.in config.sub configure install-sh \
@@ -395,7 +429,8 @@ MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess \
 		       ecore.pc
 
 bin_SCRIPTS = 
-EXTRA_DIST = AUTHORS COPYING COPYING-PLAIN ecore.c.in gendoc ecore.supp \
+EXTRA_DIST = AUTHORS COPYING COPYING-PLAIN \
+	     autogen.sh ecore.c.in gendoc ecore.supp \
              Doxyfile \
 	     ecore.pc.in \
 	     ecore-con.pc.in \
diff --git a/README b/README
index 8ac7fb7..c2c30d8 100644
--- a/README
+++ b/README
@@ -1,4 +1,17 @@
-Ecore 0.9.9.042
+Ecore 0.9.9.043
+
+Requirements:
+-------------
+
+Must:
+  libc libm
+
+Recommended:
+  libX11 libXext libXcursor libXprint libXinerama libXrandr libXss libXrender
+  libXcomposite libXfixes libXdamage libXdpms libXtest OpenSSL CURL
+
+Optional:
+  XCB SDL DirectFB
 
 Ecore is the event/X abstraction layer that makes doing selections,
 Xdnd, general X stuff, event loops, timeouts and idle handlers fast,
@@ -18,7 +31,7 @@ BUILDING PACKAGES:
 
 RPM: To build rpm packages:
   
-  sudo rpm -ta ecore-0.9.9.042.tar.gz
+  sudo rpm -ta ecore-0.9.9.043.tar.gz
 
 You will find rpm packages in your system /usr/src/redhat/* dirs (note you may
 not need to use sudo or root if you have your own ~/.rpmrc. see rpm documents
@@ -26,11 +39,11 @@ for more details)
 
 DEB: To build deb packages:
 
-  tar zvf ecore-0.9.9.042.tar.gz
-  cd ecore-0.9.9.042
+  tar zvf ecore-0.9.9.043.tar.gz
+  cd ecore-0.9.9.043
   dpkg-buildpackage -us -uc -rfakeroot
   cd ..
-  rm -rf ecore-0.9.9.042
+  rm -rf ecore-0.9.9.043
 
 You will find all the debian source, binary etc. packages put in the directory
 where you first untarred the source tarball.
diff --git a/README.in b/README.in
index 7fede7a..2567738 100644
--- a/README.in
+++ b/README.in
@@ -1,5 +1,18 @@
 Ecore @VERSION@
 
+Requirements:
+-------------
+
+Must:
+  libc libm
+
+Recommended:
+  libX11 libXext libXcursor libXprint libXinerama libXrandr libXss libXrender
+  libXcomposite libXfixes libXdamage libXdpms libXtest OpenSSL CURL
+
+Optional:
+  XCB SDL DirectFB
+
 Ecore is the event/X abstraction layer that makes doing selections,
 Xdnd, general X stuff, event loops, timeouts and idle handlers fast,
 optimized, and convenient. It's a separate library so anyone can make
diff --git a/aclocal.m4 b/aclocal.m4
index a51f5a9..bef176f 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -13,7 +13,7 @@
 
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 
-# serial 51 Debian 1.5.24-1ubuntu1 AC_PROG_LIBTOOL
+# serial 52 Debian 1.5.26-1ubuntu1 AC_PROG_LIBTOOL
 
 
 # AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
@@ -101,7 +101,6 @@ AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
 AC_REQUIRE([AC_OBJEXT])dnl
 AC_REQUIRE([AC_EXEEXT])dnl
 dnl
-
 AC_LIBTOOL_SYS_MAX_CMD_LEN
 AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
 AC_LIBTOOL_OBJDIR
@@ -203,6 +202,8 @@ file_magic*)
   ;;
 esac
 
+_LT_REQUIRED_DARWIN_CHECKS
+
 AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
 AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
 enable_win32_dll=yes, enable_win32_dll=no)
@@ -282,9 +283,80 @@ ac_outfile=conftest.$ac_objext
 echo "$lt_simple_link_test_code" >conftest.$ac_ext
 eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
 _lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
+$rm -r conftest*
 ])# _LT_LINKER_BOILERPLATE
 
+# _LT_REQUIRED_DARWIN_CHECKS
+# --------------------------
+# Check for some things on darwin
+AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS],[
+  case $host_os in
+    rhapsody* | darwin*)
+    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
+    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+
+    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
+      [lt_cv_apple_cc_single_mod=no
+      if test -z "${LT_MULTI_MODULE}"; then
+   # By default we will add the -single_module flag. You can override
+   # by either setting the environment variable LT_MULTI_MODULE
+   # non-empty at configure time, or by adding -multi_module to the
+   # link flags.
+   echo "int foo(void){return 1;}" > conftest.c
+   $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+     -dynamiclib ${wl}-single_module conftest.c
+   if test -f libconftest.dylib; then
+     lt_cv_apple_cc_single_mod=yes
+     rm -rf libconftest.dylib*
+   fi
+   rm conftest.c
+      fi])
+    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
+      [lt_cv_ld_exported_symbols_list],
+      [lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+   [lt_cv_ld_exported_symbols_list=yes],
+   [lt_cv_ld_exported_symbols_list=no])
+   LDFLAGS="$save_LDFLAGS"
+    ])
+    case $host_os in
+    rhapsody* | darwin1.[[0123]])
+      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+    darwin1.*)
+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+    darwin*)
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+   10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+     _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+   10.[[012]]*)
+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+   10.*)
+     _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    else
+      _lt_dar_export_syms="~$NMEDIT -s \$output_objdir/\${libname}-symbols.expsym \${lib}"
+    fi
+    if test "$DSYMUTIL" != ":"; then
+      _lt_dsymutil="~$DSYMUTIL \$lib || :"
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
+])
 
 # _LT_AC_SYS_LIBPATH_AIX
 # ----------------------
@@ -609,7 +681,11 @@ sparc*-*solaris*)
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
       yes*) LD="${LD-ld} -m elf64_sparc" ;;
-      *)    LD="${LD-ld} -64" ;;
+      *)
+        if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+	  LD="${LD-ld} -64"
+	fi
+	;;
       esac
       ;;
     esac
@@ -702,7 +778,7 @@ AC_CACHE_CHECK([$1], [$2],
        $2=yes
      fi
    fi
-   $rm conftest*
+   $rm -r conftest*
    LDFLAGS="$save_LDFLAGS"
 ])
 
@@ -973,7 +1049,7 @@ else
     AC_CHECK_FUNC([shl_load],
 	  [lt_cv_dlopen="shl_load"],
       [AC_CHECK_LIB([dld], [shl_load],
-	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
+	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
 	[AC_CHECK_FUNC([dlopen],
 	      [lt_cv_dlopen="dlopen"],
 	  [AC_CHECK_LIB([dl], [dlopen],
@@ -981,7 +1057,7 @@ else
 	    [AC_CHECK_LIB([svld], [dlopen],
 		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
 	      [AC_CHECK_LIB([dld], [dld_link],
-		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
+		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
 	      ])
 	    ])
 	  ])
@@ -1298,7 +1374,7 @@ aix3*)
   soname_spec='${libname}${release}${shared_ext}$major'
   ;;
 
-aix4* | aix5*)
+aix[[4-9]]*)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -1831,6 +1907,13 @@ esac
 AC_MSG_RESULT([$dynamic_linker])
 test "$dynamic_linker" = no && can_build_shared=no
 
+AC_CACHE_VAL([lt_cv_sys_lib_search_path_spec],
+[lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"])
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+AC_CACHE_VAL([lt_cv_sys_lib_dlsearch_path_spec],
+[lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"])
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
 if test "$GCC" = yes; then
   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
@@ -2330,7 +2413,7 @@ lt_cv_deplibs_check_method='unknown'
 # whether `pass_all' will *always* work, you probably want this one.
 
 case $host_os in
-aix4* | aix5*)
+aix[[4-9]]*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -2766,7 +2849,7 @@ aix3*)
   fi
   ;;
 
-aix4* | aix5*)
+aix[[4-9]]*)
   if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
     test "$enable_shared" = yes && enable_static=no
   fi
@@ -2823,6 +2906,7 @@ _LT_AC_TAGVAR(postdep_objects, $1)=
 _LT_AC_TAGVAR(predeps, $1)=
 _LT_AC_TAGVAR(postdeps, $1)=
 _LT_AC_TAGVAR(compiler_lib_search_path, $1)=
+_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)=
 
 # Source file extension for C++ test sources.
 ac_ext=cpp
@@ -2932,7 +3016,7 @@ case $host_os in
     # FIXME: insert proper C++ library support
     _LT_AC_TAGVAR(ld_shlibs, $1)=no
     ;;
-  aix4* | aix5*)
+  aix[[4-9]]*)
     if test "$host_cpu" = ia64; then
       # On IA64, the linker does run time linking by default, so we don't
       # have to do anything special.
@@ -2945,7 +3029,7 @@ case $host_os in
       # Test if we are trying to use run time linking or normal
       # AIX style linking. If -brtl is somewhere in LDFLAGS, we
       # need to do runtime linking.
-      case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
+      case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
 	for ld_flag in $LDFLAGS; do
 	  case $ld_flag in
 	  *-brtl*)
@@ -3091,51 +3175,23 @@ case $host_os in
     fi
   ;;
       darwin* | rhapsody*)
-        case $host_os in
-        rhapsody* | darwin1.[[012]])
-         _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
-         ;;
-       *) # Darwin 1.3 on
-         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-           _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-         else
-           case ${MACOSX_DEPLOYMENT_TARGET} in
-             10.[[012]])
-               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-               ;;
-             10.*)
-               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup'
-               ;;
-           esac
-         fi
-         ;;
-        esac
       _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
       _LT_AC_TAGVAR(hardcode_direct, $1)=no
       _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
       _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
       _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-    if test "$GXX" = yes ; then
-      lt_int_apple_cc_single_mod=no
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
+      if test "$GXX" = yes ; then
       output_verbose_link_cmd='echo'
-      if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
-       lt_int_apple_cc_single_mod=yes
+      _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+      _LT_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+      _LT_AC_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+      if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+        _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+        _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
       fi
-      if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      else
-          _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-        fi
-        _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-        # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-          if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-            _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          else
-            _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          fi
-            _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
       else
       case $cc_basename in
         xlc*)
@@ -3386,7 +3442,7 @@ case $host_os in
 	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
 	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
 	;;
-      pgCC*)
+      pgCC* | pgcpp*)
         # Portland Group C++ compiler
 	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
   	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
@@ -3821,7 +3877,8 @@ lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
 # compiler output when linking a shared library.
 # Parse the compiler output and extract the necessary
 # objects, libraries and library flags.
-AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[
+AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
 dnl we can't use the lt_simple_compile_test_code here,
 dnl because it contains code intended for an executable,
 dnl not a library.  It's possible we should let each
@@ -3946,6 +4003,11 @@ fi
 
 $rm -f confest.$objext
 
+_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)=
+if test -n "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
+  _LT_AC_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_AC_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+
 # PORTME: override above test on systems where it is broken
 ifelse([$1],[CXX],
 [case $host_os in
@@ -4002,7 +4064,6 @@ solaris*)
   ;;
 esac
 ])
-
 case " $_LT_AC_TAGVAR(postdeps, $1) " in
 *" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
 esac
@@ -4087,7 +4148,7 @@ aix3*)
     postinstall_cmds='$RANLIB $lib'
   fi
   ;;
-aix4* | aix5*)
+aix[[4-9]]*)
   if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
     test "$enable_shared" = yes && enable_static=no
   fi
@@ -4264,6 +4325,7 @@ if test -f "$ltmain"; then
     _LT_AC_TAGVAR(predeps, $1) \
     _LT_AC_TAGVAR(postdeps, $1) \
     _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
+    _LT_AC_TAGVAR(compiler_lib_search_dirs, $1) \
     _LT_AC_TAGVAR(archive_cmds, $1) \
     _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
     _LT_AC_TAGVAR(postinstall_cmds, $1) \
@@ -4326,7 +4388,7 @@ ifelse([$1], [],
 # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
 # Free Software Foundation, Inc.
 #
 # This file is part of GNU Libtool:
@@ -4563,6 +4625,10 @@ predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
 # shared library.
 postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
 
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)
+
 # The library search path used internally by the compiler when linking
 # a shared library.
 compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
@@ -4912,7 +4978,7 @@ EOF
     echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
     cat conftest.$ac_ext >&5
   fi
-  rm -f conftest* conftst*
+  rm -rf conftest* conftst*
 
   # Do not use the global_symbol_pipe unless it works.
   if test "$pipe_works" = yes; then
@@ -4969,7 +5035,8 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
       # built for inclusion in a dll (and should export symbols for example).
       # Although the cygwin gcc ignores -fPIC, still need this for old-style
       # (--disable-auto-import) libraries
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      m4_if([$1], [GCJ], [],
+	[_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
       ;;
     darwin* | rhapsody*)
       # PIC is the default on this platform
@@ -5006,7 +5073,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
     esac
   else
     case $host_os in
-      aix4* | aix5*)
+      aix[[4-9]]*)
 	# All AIX code is PIC.
 	if test "$host_cpu" = ia64; then
 	  # AIX 5 now supports IA64 processor
@@ -5102,7 +5169,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
 	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
 	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
 	    ;;
-	  pgCC*)
+	  pgCC* | pgcpp*)
 	    # Portland Group C++ compiler.
 	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
 	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
@@ -5253,7 +5320,8 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
       # built for inclusion in a dll (and should export symbols for example).
       # Although the cygwin gcc ignores -fPIC, still need this for old-style
       # (--disable-auto-import) libraries
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      m4_if([$1], [GCJ], [],
+	[_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
       ;;
 
     darwin* | rhapsody*)
@@ -5323,7 +5391,8 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
     mingw* | cygwin* | pw32* | os2*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      m4_if([$1], [GCJ], [],
+	[_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
       ;;
 
     hpux9* | hpux10* | hpux11*)
@@ -5460,7 +5529,7 @@ AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
 #
 if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
   AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
-    _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),
+    _LT_AC_TAGVAR(lt_cv_prog_compiler_pic_works, $1),
     [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
     [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
      "" | " "*) ;;
@@ -5484,7 +5553,7 @@ esac
 #
 wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\"
 AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
-  _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
+  _LT_AC_TAGVAR(lt_cv_prog_compiler_static_works, $1),
   $lt_tmp_static_flag,
   [],
   [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
@@ -5500,7 +5569,7 @@ AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
 ifelse([$1],[CXX],[
   _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
   case $host_os in
-  aix4* | aix5*)
+  aix[[4-9]]*)
     # If we're using GNU nm, then we don't want the "-C" option.
     # -C means demangle to AIX nm, but means don't demangle with GNU nm
     if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
@@ -5522,6 +5591,7 @@ ifelse([$1],[CXX],[
     _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
   ;;
   esac
+  _LT_AC_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
 ],[
   runpath_var=
   _LT_AC_TAGVAR(allow_undefined_flag, $1)=
@@ -5552,12 +5622,14 @@ ifelse([$1],[CXX],[
   # it will be wrapped by ` (' and `)$', so one must not match beginning or
   # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
   # as well as any symbol that contains `d'.
-  _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"
+  _LT_AC_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
   # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
   # platforms (ab)use it in PIC code, but their linkers get confused if
   # the symbol is explicitly referenced.  Since portable code cannot
   # rely on this symbol name, it's probably fine to never include it in
   # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
+dnl Note also adjust exclude_expsyms for C++ above.
   extract_expsyms_cmds=
   # Just being paranoid about ensuring that cc_basename is set.
   _LT_CC_BASENAME([$compiler])
@@ -5607,7 +5679,7 @@ ifelse([$1],[CXX],[
 
     # See if GNU ld supports shared libraries.
     case $host_os in
-    aix3* | aix4* | aix5*)
+    aix[[3-9]]*)
       # On AIX/PPC, the GNU linker is very broken
       if test "$host_cpu" != ia64; then
 	_LT_AC_TAGVAR(ld_shlibs, $1)=no
@@ -5827,7 +5899,7 @@ _LT_EOF
       fi
       ;;
 
-    aix4* | aix5*)
+    aix[[4-9]]*)
       if test "$host_cpu" = ia64; then
 	# On IA64, the linker does run time linking by default, so we don't
 	# have to do anything special.
@@ -5847,7 +5919,7 @@ _LT_EOF
 	# Test if we are trying to use run time linking or normal
 	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
 	# need to do runtime linking.
-	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
+	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
 	  for ld_flag in $LDFLAGS; do
   	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
   	    aix_use_runtimelinking=yes
@@ -6007,11 +6079,10 @@ _LT_EOF
       _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
     if test "$GCC" = yes ; then
     	output_verbose_link_cmd='echo'
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+        _LT_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+        _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+        _LT_AC_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
     else
       case $cc_basename in
         xlc*)
diff --git a/config.h.in b/config.h.in
index b1f8107..ae53c80 100644
--- a/config.h.in
+++ b/config.h.in
@@ -114,6 +114,9 @@
 /* Build support for XCB xprint */
 #undef ECORE_XCB_XPRINT
 
+/* Build support for XCB xtest */
+#undef ECORE_XCB_XTEST
+
 /* Build support for Xcomposite */
 #undef ECORE_XCOMPOSITE
 
@@ -144,6 +147,9 @@
 /* Build support for Xss */
 #undef ECORE_XSS
 
+/* Build support for Xtest */
+#undef ECORE_XTEST
+
 /* Have abstract sockets namespace */
 #undef HAVE_ABSTRACT_SOCKETS
 
@@ -165,6 +171,9 @@
 /* Defined to 1 if XCB backend is enabled. */
 #undef HAVE_ECORE_X_XCB
 
+/* Define to 1 if you have the <features.h> header file. */
+#undef HAVE_FEATURES_H
+
 /* Define to 1 if you have the `gettimeofday' function. */
 #undef HAVE_GETTIMEOFDAY
 
@@ -174,6 +183,12 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
+/* Define to 1 if you have the <langinfo.h> header file. */
+#undef HAVE_LANGINFO_H
+
+/* Define to 1 if you have the <locale.h> header file. */
+#undef HAVE_LOCALE_H
+
 /* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H
 
@@ -204,9 +219,15 @@
 /* File monitoring with Inotify - sys/inotify.h */
 #undef HAVE_SYS_INOTIFY
 
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#undef HAVE_SYS_MMAN_H
+
 /* Define to 1 if you have the <sys/stat.h> header file. */
 #undef HAVE_SYS_STAT_H
 
+/* Define to 1 if you have the <sys/time.h> header file. */
+#undef HAVE_SYS_TIME_H
+
 /* Define to 1 if you have the <sys/types.h> header file. */
 #undef HAVE_SYS_TYPES_H
 
@@ -219,6 +240,12 @@
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
+/* Define to 1 if you have the <windows.h> header file. */
+#undef HAVE_WINDOWS_H
+
+/* Define to 1 if you have the <winsock2.h> header file. */
+#undef HAVE_WINSOCK2_H
+
 /* Define to 1 if your compiler has __attribute__ */
 #undef HAVE___ATTRIBUTE__
 
@@ -240,6 +267,9 @@
 /* Define to the version of this package. */
 #undef PACKAGE_VERSION
 
+/* Suffix for shared objects */
+#undef SHARED_LIB_SUFFIX
+
 /* The size of `int', as computed by sizeof. */
 #undef SIZEOF_INT
 
diff --git a/configure b/configure
index fcc1751..ccaa149 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for ecore 0.9.9.042.
+# Generated by GNU Autoconf 2.61 for ecore 0.9.9.043.
 #
 # Report bugs to <enlightenment-devel at lists.sourceforge.net>.
 #
@@ -726,8 +726,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='ecore'
 PACKAGE_TARNAME='ecore'
-PACKAGE_VERSION='0.9.9.042'
-PACKAGE_STRING='ecore 0.9.9.042'
+PACKAGE_VERSION='0.9.9.043'
+PACKAGE_STRING='ecore 0.9.9.043'
 PACKAGE_BUGREPORT='enlightenment-devel at lists.sourceforge.net'
 
 ac_unique_file="configure.in"
@@ -863,6 +863,8 @@ LN_S
 ECHO
 AR
 RANLIB
+DSYMUTIL
+NMEDIT
 DLLTOOL
 AS
 OBJDUMP
@@ -932,6 +934,8 @@ XCB_XINERAMA_CFLAGS
 XCB_XINERAMA_LIBS
 XCB_XPRINT_CFLAGS
 XCB_XPRINT_LIBS
+XCB_XTEST_CFLAGS
+XCB_XTEST_LIBS
 have_ecore_x_xcb_define
 XMKMF
 X_CFLAGS
@@ -963,11 +967,29 @@ XRANDR_CFLAGS
 XRANDR_LIBS
 XRENDER_CFLAGS
 XRENDER_LIBS
+XTEST_CFLAGS
+XTEST_LIBS
 XSS_CFLAGS
 XSS_LIBS
+EVAS_SOFTWARE_X11_CFLAGS
+EVAS_SOFTWARE_X11_LIBS
+EVAS_OPENGL_X11_CFLAGS
+EVAS_OPENGL_X11_LIBS
+EVAS_XRENDER_X11_CFLAGS
+EVAS_XRENDER_X11_LIBS
+EVAS_SOFTWARE_16_X11_CFLAGS
+EVAS_SOFTWARE_16_X11_LIBS
+EVAS_SOFTWARE_DDRAW_CFLAGS
+EVAS_SOFTWARE_DDRAW_LIBS
 ddraw_libs
+EVAS_SOFTWARE_16_DDRAW_CFLAGS
+EVAS_SOFTWARE_16_DDRAW_LIBS
 ddraw_16_libs
+EVAS_DIRECT3D_CFLAGS
+EVAS_DIRECT3D_LIBS
 direct3d_libs
+EVAS_OPENGL_GLEW_CFLAGS
+EVAS_OPENGL_GLEW_LIBS
 glew_libs
 BUILD_ECORE_WIN32_TRUE
 BUILD_ECORE_WIN32_FALSE
@@ -979,17 +1001,26 @@ BUILD_ECORE_DIRECTFB_TRUE
 BUILD_ECORE_DIRECTFB_FALSE
 ecore_directfb_cflags
 ecore_directfb_libs
+EVAS_DIRECTFB_CFLAGS
+EVAS_DIRECTFB_LIBS
 BUILD_ECORE_FB_TRUE
 BUILD_ECORE_FB_FALSE
 ecore_fb_cflags
 ecore_fb_libs
 tslib_libs
-SDL_CFLAGS
-SDL_LIBS
+EVAS_FB_CFLAGS
+EVAS_FB_LIBS
+SDL_CONFIG
 BUILD_ECORE_SDL_TRUE
 BUILD_ECORE_SDL_FALSE
 ecore_sdl_cflags
 ecore_sdl_libs
+SDL_CFLAGS
+SDL_LIBS
+EVAS_SOFTWARE_SDL_CFLAGS
+EVAS_SOFTWARE_SDL_LIBS
+EVAS_SOFTWARE_BUFFER_CFLAGS
+EVAS_SOFTWARE_BUFFER_LIBS
 BUILD_ECORE_FILE_TRUE
 BUILD_ECORE_FILE_FALSE
 ecore_file_cflags
@@ -1020,6 +1051,8 @@ requirements_ecore_x
 requirements_ecore_sdl
 BUILD_ECORE_X_XCB_TRUE
 BUILD_ECORE_X_XCB_FALSE
+BUILD_ECORE_EVAS_SDL_TRUE
+BUILD_ECORE_EVAS_SDL_FALSE
 BUILD_ECORE_EVAS_X11_TRUE
 BUILD_ECORE_EVAS_X11_FALSE
 BUILD_ECORE_EVAS_X11_GL_TRUE
@@ -1083,11 +1116,37 @@ XCB_XINERAMA_CFLAGS
 XCB_XINERAMA_LIBS
 XCB_XPRINT_CFLAGS
 XCB_XPRINT_LIBS
+XCB_XTEST_CFLAGS
+XCB_XTEST_LIBS
 XMKMF
+EVAS_SOFTWARE_X11_CFLAGS
+EVAS_SOFTWARE_X11_LIBS
+EVAS_OPENGL_X11_CFLAGS
+EVAS_OPENGL_X11_LIBS
+EVAS_XRENDER_X11_CFLAGS
+EVAS_XRENDER_X11_LIBS
+EVAS_SOFTWARE_16_X11_CFLAGS
+EVAS_SOFTWARE_16_X11_LIBS
+EVAS_SOFTWARE_DDRAW_CFLAGS
+EVAS_SOFTWARE_DDRAW_LIBS
+EVAS_SOFTWARE_16_DDRAW_CFLAGS
+EVAS_SOFTWARE_16_DDRAW_LIBS
+EVAS_DIRECT3D_CFLAGS
+EVAS_DIRECT3D_LIBS
+EVAS_OPENGL_GLEW_CFLAGS
+EVAS_OPENGL_GLEW_LIBS
 DIRECTFB_CFLAGS
 DIRECTFB_LIBS
+EVAS_DIRECTFB_CFLAGS
+EVAS_DIRECTFB_LIBS
+EVAS_FB_CFLAGS
+EVAS_FB_LIBS
+EVAS_SOFTWARE_SDL_CFLAGS
+EVAS_SOFTWARE_SDL_LIBS
 SDL_CFLAGS
-SDL_LIBS'
+SDL_LIBS
+EVAS_SOFTWARE_BUFFER_CFLAGS
+EVAS_SOFTWARE_BUFFER_LIBS'
 
 
 # Initialize some variables set by options.
@@ -1590,7 +1649,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures ecore 0.9.9.042 to adapt to many kinds of systems.
+\`configure' configures ecore 0.9.9.043 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1664,7 +1723,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of ecore 0.9.9.042:";;
+     short | recursive ) echo "Configuration of ecore 0.9.9.043:";;
    esac
   cat <<\_ACEOF
 
@@ -1709,7 +1768,7 @@ Optional Features:
   --disable-ecore-evas-fb disable fb in the ecore_evas module
   --enable-ecore-sdl      enable the ecore_sdl module. [default=disabled]
   --disable-ecore-evas-sdl
-                          disable sdl in the ecore_evas module
+                          disable SDL in the ecore_evas module
   --disable-ecore-evas-buffer
                           disable buffer in the ecore_evas module
   --disable-ecore-file    disable the ecore_file module. [default=enabled]
@@ -1731,6 +1790,7 @@ Optional Packages:
   --with-iconv-link=ICONV_LINK
                           explicitly specify an iconv link option
   --with-x                use the X Window System
+  --with-sdl-config=PATH  use sdl-config specified
 
 Some influential environment variables:
   CC          C compiler command
@@ -1799,13 +1859,66 @@ Some influential environment variables:
               C compiler flags for XCB_XPRINT, overriding pkg-config
   XCB_XPRINT_LIBS
               linker flags for XCB_XPRINT, overriding pkg-config
+  XCB_XTEST_CFLAGS
+              C compiler flags for XCB_XTEST, overriding pkg-config
+  XCB_XTEST_LIBS
+              linker flags for XCB_XTEST, overriding pkg-config
   XMKMF       Path to xmkmf, Makefile generator for X Window System
+  EVAS_SOFTWARE_X11_CFLAGS
+              C compiler flags for EVAS_SOFTWARE_X11, overriding pkg-config
+  EVAS_SOFTWARE_X11_LIBS
+              linker flags for EVAS_SOFTWARE_X11, overriding pkg-config
+  EVAS_OPENGL_X11_CFLAGS
+              C compiler flags for EVAS_OPENGL_X11, overriding pkg-config
+  EVAS_OPENGL_X11_LIBS
+              linker flags for EVAS_OPENGL_X11, overriding pkg-config
+  EVAS_XRENDER_X11_CFLAGS
+              C compiler flags for EVAS_XRENDER_X11, overriding pkg-config
+  EVAS_XRENDER_X11_LIBS
+              linker flags for EVAS_XRENDER_X11, overriding pkg-config
+  EVAS_SOFTWARE_16_X11_CFLAGS
+              C compiler flags for EVAS_SOFTWARE_16_X11, overriding pkg-config
+  EVAS_SOFTWARE_16_X11_LIBS
+              linker flags for EVAS_SOFTWARE_16_X11, overriding pkg-config
+  EVAS_SOFTWARE_DDRAW_CFLAGS
+              C compiler flags for EVAS_SOFTWARE_DDRAW, overriding pkg-config
+  EVAS_SOFTWARE_DDRAW_LIBS
+              linker flags for EVAS_SOFTWARE_DDRAW, overriding pkg-config
+  EVAS_SOFTWARE_16_DDRAW_CFLAGS
+              C compiler flags for EVAS_SOFTWARE_16_DDRAW, overriding
+              pkg-config
+  EVAS_SOFTWARE_16_DDRAW_LIBS
+              linker flags for EVAS_SOFTWARE_16_DDRAW, overriding pkg-config
+  EVAS_DIRECT3D_CFLAGS
+              C compiler flags for EVAS_DIRECT3D, overriding pkg-config
+  EVAS_DIRECT3D_LIBS
+              linker flags for EVAS_DIRECT3D, overriding pkg-config
+  EVAS_OPENGL_GLEW_CFLAGS
+              C compiler flags for EVAS_OPENGL_GLEW, overriding pkg-config
+  EVAS_OPENGL_GLEW_LIBS
+              linker flags for EVAS_OPENGL_GLEW, overriding pkg-config
   DIRECTFB_CFLAGS
               C compiler flags for DIRECTFB, overriding pkg-config
   DIRECTFB_LIBS
               linker flags for DIRECTFB, overriding pkg-config
+  EVAS_DIRECTFB_CFLAGS
+              C compiler flags for EVAS_DIRECTFB, overriding pkg-config
+  EVAS_DIRECTFB_LIBS
+              linker flags for EVAS_DIRECTFB, overriding pkg-config
+  EVAS_FB_CFLAGS
+              C compiler flags for EVAS_FB, overriding pkg-config
+  EVAS_FB_LIBS
+              linker flags for EVAS_FB, overriding pkg-config
+  EVAS_SOFTWARE_SDL_CFLAGS
+              C compiler flags for EVAS_SOFTWARE_SDL, overriding pkg-config
+  EVAS_SOFTWARE_SDL_LIBS
+              linker flags for EVAS_SOFTWARE_SDL, overriding pkg-config
   SDL_CFLAGS  C compiler flags for SDL, overriding pkg-config
   SDL_LIBS    linker flags for SDL, overriding pkg-config
+  EVAS_SOFTWARE_BUFFER_CFLAGS
+              C compiler flags for EVAS_SOFTWARE_BUFFER, overriding pkg-config
+  EVAS_SOFTWARE_BUFFER_LIBS
+              linker flags for EVAS_SOFTWARE_BUFFER, overriding pkg-config
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
@@ -1871,7 +1984,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-ecore configure 0.9.9.042
+ecore configure 0.9.9.043
 generated by GNU Autoconf 2.61
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1885,7 +1998,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by ecore $as_me 0.9.9.042, which was
+It was created by ecore $as_me 0.9.9.043, which was
 generated by GNU Autoconf 2.61.  Invocation command line was
 
   $ $0 $@
@@ -3709,7 +3822,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='ecore'
- VERSION='0.9.9.042'
+ VERSION='0.9.9.043'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -8234,7 +8347,7 @@ lt_cv_deplibs_check_method='unknown'
 # whether `pass_all' will *always* work, you probably want this one.
 
 case $host_os in
-aix4* | aix5*)
+aix[4-9]*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -8449,7 +8562,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 8452 "configure"' > conftest.$ac_ext
+  echo '#line 8565 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -8621,7 +8734,11 @@ sparc*-*solaris*)
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
       yes*) LD="${LD-ld} -m elf64_sparc" ;;
-      *)    LD="${LD-ld} -64" ;;
+      *)
+        if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+	  LD="${LD-ld} -64"
+	fi
+	;;
       esac
       ;;
     esac
@@ -9306,7 +9423,6 @@ fi
 
 
 # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-
 # find the maximum length of command line arguments
 { echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
 echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; }
@@ -9621,7 +9737,7 @@ EOF
     echo "$progname: failed program was:" >&5
     cat conftest.$ac_ext >&5
   fi
-  rm -f conftest* conftst*
+  rm -rf conftest* conftst*
 
   # Do not use the global_symbol_pipe unless it works.
   if test "$pipe_works" = yes; then
@@ -10181,6 +10297,318 @@ fi
   ;;
 esac
 
+
+  case $host_os in
+    rhapsody* | darwin*)
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_DSYMUTIL+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$DSYMUTIL"; then
+  ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+  { echo "$as_me:$LINENO: result: $DSYMUTIL" >&5
+echo "${ECHO_T}$DSYMUTIL" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+  ac_ct_DSYMUTIL=$DSYMUTIL
+  # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_DSYMUTIL"; then
+  ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+  { echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5
+echo "${ECHO_T}$ac_ct_DSYMUTIL" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+  if test "x$ac_ct_DSYMUTIL" = x; then
+    DSYMUTIL=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    DSYMUTIL=$ac_ct_DSYMUTIL
+  fi
+else
+  DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_NMEDIT+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$NMEDIT"; then
+  ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+  { echo "$as_me:$LINENO: result: $NMEDIT" >&5
+echo "${ECHO_T}$NMEDIT" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+  ac_ct_NMEDIT=$NMEDIT
+  # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_NMEDIT"; then
+  ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_NMEDIT="nmedit"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+  { echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5
+echo "${ECHO_T}$ac_ct_NMEDIT" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+  if test "x$ac_ct_NMEDIT" = x; then
+    NMEDIT=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    NMEDIT=$ac_ct_NMEDIT
+  fi
+else
+  NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+
+    { echo "$as_me:$LINENO: checking for -single_module linker flag" >&5
+echo $ECHO_N "checking for -single_module linker flag... $ECHO_C" >&6; }
+if test "${lt_cv_apple_cc_single_mod+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_apple_cc_single_mod=no
+      if test -z "${LT_MULTI_MODULE}"; then
+   # By default we will add the -single_module flag. You can override
+   # by either setting the environment variable LT_MULTI_MODULE
+   # non-empty at configure time, or by adding -multi_module to the
+   # link flags.
+   echo "int foo(void){return 1;}" > conftest.c
+   $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+     -dynamiclib ${wl}-single_module conftest.c
+   if test -f libconftest.dylib; then
+     lt_cv_apple_cc_single_mod=yes
+     rm -rf libconftest.dylib*
+   fi
+   rm conftest.c
+      fi
+fi
+{ echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5
+echo "${ECHO_T}$lt_cv_apple_cc_single_mod" >&6; }
+    { echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5
+echo $ECHO_N "checking for -exported_symbols_list linker flag... $ECHO_C" >&6; }
+if test "${lt_cv_ld_exported_symbols_list+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  lt_cv_ld_exported_symbols_list=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	lt_cv_ld_exported_symbols_list=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5
+echo "${ECHO_T}$lt_cv_ld_exported_symbols_list" >&6; }
+    case $host_os in
+    rhapsody* | darwin1.[0123])
+      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+    darwin1.*)
+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+    darwin*)
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+   10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+     _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+   10.[012]*)
+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+   10.*)
+     _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    else
+      _lt_dar_export_syms="~$NMEDIT -s \$output_objdir/\${libname}-symbols.expsym \${lib}"
+    fi
+    if test "$DSYMUTIL" != ":"; then
+      _lt_dsymutil="~$DSYMUTIL \$lib || :"
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
+
+
 enable_dlopen=no
 enable_win32_dll=yes
 
@@ -10246,7 +10674,7 @@ ac_outfile=conftest.$ac_objext
 echo "$lt_simple_link_test_code" >conftest.$ac_ext
 eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
 _lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
+$rm -r conftest*
 
 
 
@@ -10274,11 +10702,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:10277: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:10705: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:10281: \$? = $ac_status" >&5
+   echo "$as_me:10709: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -10548,10 +10976,10 @@ if test -n "$lt_prog_compiler_pic"; then
 
 { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works+set}" = set; then
+if test "${lt_cv_prog_compiler_pic_works+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  lt_prog_compiler_pic_works=no
+  lt_cv_prog_compiler_pic_works=no
   ac_outfile=conftest.$ac_objext
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
    lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
@@ -10564,27 +10992,27 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:10567: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:10995: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:10571: \$? = $ac_status" >&5
+   echo "$as_me:10999: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
      $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_prog_compiler_pic_works=yes
+       lt_cv_prog_compiler_pic_works=yes
      fi
    fi
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; }
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_pic_works" >&6; }
 
-if test x"$lt_prog_compiler_pic_works" = xyes; then
+if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
     case $lt_prog_compiler_pic in
      "" | " "*) ;;
      *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
@@ -10611,10 +11039,10 @@ esac
 wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
 { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works+set}" = set; then
+if test "${lt_cv_prog_compiler_static_works+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  lt_prog_compiler_static_works=no
+  lt_cv_prog_compiler_static_works=no
    save_LDFLAGS="$LDFLAGS"
    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
@@ -10627,20 +11055,20 @@ else
        $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_prog_compiler_static_works=yes
+         lt_cv_prog_compiler_static_works=yes
        fi
      else
-       lt_prog_compiler_static_works=yes
+       lt_cv_prog_compiler_static_works=yes
      fi
    fi
-   $rm conftest*
+   $rm -r conftest*
    LDFLAGS="$save_LDFLAGS"
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; }
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_static_works" >&6; }
 
-if test x"$lt_prog_compiler_static_works" = xyes; then
+if test x"$lt_cv_prog_compiler_static_works" = xyes; then
     :
 else
     lt_prog_compiler_static=
@@ -10668,11 +11096,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:10671: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:11099: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:10675: \$? = $ac_status" >&5
+   echo "$as_me:11103: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -10752,12 +11180,13 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
   # it will be wrapped by ` (' and `)$', so one must not match beginning or
   # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
   # as well as any symbol that contains `d'.
-  exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
+  exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
   # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
   # platforms (ab)use it in PIC code, but their linkers get confused if
   # the symbol is explicitly referenced.  Since portable code cannot
   # rely on this symbol name, it's probably fine to never include it in
   # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
   extract_expsyms_cmds=
   # Just being paranoid about ensuring that cc_basename is set.
   for cc_temp in $compiler""; do
@@ -10816,7 +11245,7 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 
     # See if GNU ld supports shared libraries.
     case $host_os in
-    aix3* | aix4* | aix5*)
+    aix[3-9]*)
       # On AIX/PPC, the GNU linker is very broken
       if test "$host_cpu" != ia64; then
 	ld_shlibs=no
@@ -11036,7 +11465,7 @@ _LT_EOF
       fi
       ;;
 
-    aix4* | aix5*)
+    aix[4-9]*)
       if test "$host_cpu" = ia64; then
 	# On IA64, the linker does run time linking by default, so we don't
 	# have to do anything special.
@@ -11056,7 +11485,7 @@ _LT_EOF
 	# Test if we are trying to use run time linking or normal
 	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
 	# need to do runtime linking.
-	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
 	  for ld_flag in $LDFLAGS; do
   	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
   	    aix_use_runtimelinking=yes
@@ -11328,11 +11757,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       link_all_deplibs=yes
     if test "$GCC" = yes ; then
     	output_verbose_link_cmd='echo'
-        archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-      archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+        module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+        archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+        module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
     else
       case $cc_basename in
         xlc*)
@@ -11852,7 +12280,7 @@ aix3*)
   soname_spec='${libname}${release}${shared_ext}$major'
   ;;
 
-aix4* | aix5*)
+aix[4-9]*)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -12386,6 +12814,21 @@ esac
 echo "${ECHO_T}$dynamic_linker" >&6; }
 test "$dynamic_linker" = no && can_build_shared=no
 
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
 if test "$GCC" = yes; then
   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
@@ -12705,7 +13148,7 @@ fi
 { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
 if test $ac_cv_lib_dld_shl_load = yes; then
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
 else
   { echo "$as_me:$LINENO: checking for dlopen" >&5
 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; }
@@ -12981,7 +13424,7 @@ fi
 { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
 if test $ac_cv_lib_dld_dld_link = yes; then
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
 fi
 
 
@@ -13030,7 +13473,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 13033 "configure"
+#line 13476 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13130,7 +13573,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 13133 "configure"
+#line 13576 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13257,7 +13700,7 @@ aix3*)
   fi
   ;;
 
-aix4* | aix5*)
+aix[4-9]*)
   if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
     test "$enable_shared" = yes && enable_static=no
   fi
@@ -13313,6 +13756,7 @@ if test -f "$ltmain"; then
     predeps \
     postdeps \
     compiler_lib_search_path \
+    compiler_lib_search_dirs \
     archive_cmds \
     archive_expsym_cmds \
     postinstall_cmds \
@@ -13373,7 +13817,7 @@ echo "$as_me: creating $ofile" >&6;}
 # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
 # Free Software Foundation, Inc.
 #
 # This file is part of GNU Libtool:
@@ -13609,6 +14053,10 @@ predeps=$lt_predeps
 # shared library.
 postdeps=$lt_postdeps
 
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
+
 # The library search path used internally by the compiler when linking
 # a shared library.
 compiler_lib_search_path=$lt_compiler_lib_search_path
@@ -13857,6 +14305,7 @@ postdep_objects_CXX=
 predeps_CXX=
 postdeps_CXX=
 compiler_lib_search_path_CXX=
+compiler_lib_search_dirs_CXX=
 
 # Source file extension for C++ test sources.
 ac_ext=cpp
@@ -13894,7 +14343,7 @@ ac_outfile=conftest.$ac_objext
 echo "$lt_simple_link_test_code" >conftest.$ac_ext
 eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
 _lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
+$rm -r conftest*
 
 
 # Allow CC to be a program name with arguments.
@@ -14101,7 +14550,7 @@ case $host_os in
     # FIXME: insert proper C++ library support
     ld_shlibs_CXX=no
     ;;
-  aix4* | aix5*)
+  aix[4-9]*)
     if test "$host_cpu" = ia64; then
       # On IA64, the linker does run time linking by default, so we don't
       # have to do anything special.
@@ -14114,7 +14563,7 @@ case $host_os in
       # Test if we are trying to use run time linking or normal
       # AIX style linking. If -brtl is somewhere in LDFLAGS, we
       # need to do runtime linking.
-      case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+      case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
 	for ld_flag in $LDFLAGS; do
 	  case $ld_flag in
 	  *-brtl*)
@@ -14372,51 +14821,23 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     fi
   ;;
       darwin* | rhapsody*)
-        case $host_os in
-        rhapsody* | darwin1.[012])
-         allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress'
-         ;;
-       *) # Darwin 1.3 on
-         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-           allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-         else
-           case ${MACOSX_DEPLOYMENT_TARGET} in
-             10.[012])
-               allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-               ;;
-             10.*)
-               allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup'
-               ;;
-           esac
-         fi
-         ;;
-        esac
       archive_cmds_need_lc_CXX=no
       hardcode_direct_CXX=no
       hardcode_automatic_CXX=yes
       hardcode_shlibpath_var_CXX=unsupported
       whole_archive_flag_spec_CXX=''
       link_all_deplibs_CXX=yes
-
-    if test "$GXX" = yes ; then
-      lt_int_apple_cc_single_mod=no
+      allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
+      if test "$GXX" = yes ; then
       output_verbose_link_cmd='echo'
-      if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
-       lt_int_apple_cc_single_mod=yes
+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+      if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+        archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
       fi
-      if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-       archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      else
-          archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-        fi
-        module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-        # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-          if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-            archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          else
-            archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          fi
-            module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
       else
       case $cc_basename in
         xlc*)
@@ -14667,7 +15088,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
 	whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
 	;;
-      pgCC*)
+      pgCC* | pgcpp*)
         # Portland Group C++ compiler
 	archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
   	archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
@@ -15074,7 +15495,6 @@ test "$ld_shlibs_CXX" = no && can_build_shared=no
 GCC_CXX="$GXX"
 LD_CXX="$LD"
 
-
 cat > conftest.$ac_ext <<EOF
 class Foo
 {
@@ -15176,6 +15596,11 @@ fi
 
 $rm -f confest.$objext
 
+compiler_lib_search_dirs_CXX=
+if test -n "$compiler_lib_search_path_CXX"; then
+  compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+
 # PORTME: override above test on systems where it is broken
 case $host_os in
 interix[3-9]*)
@@ -15231,7 +15656,6 @@ solaris*)
   ;;
 esac
 
-
 case " $postdeps_CXX " in
 *" -lc "*) archive_cmds_need_lc_CXX=no ;;
 esac
@@ -15307,7 +15731,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
     esac
   else
     case $host_os in
-      aix4* | aix5*)
+      aix[4-9]*)
 	# All AIX code is PIC.
 	if test "$host_cpu" = ia64; then
 	  # AIX 5 now supports IA64 processor
@@ -15403,7 +15827,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
 	    lt_prog_compiler_pic_CXX='-KPIC'
 	    lt_prog_compiler_static_CXX='-static'
 	    ;;
-	  pgCC*)
+	  pgCC* | pgcpp*)
 	    # Portland Group C++ compiler.
 	    lt_prog_compiler_wl_CXX='-Wl,'
 	    lt_prog_compiler_pic_CXX='-fpic'
@@ -15534,10 +15958,10 @@ if test -n "$lt_prog_compiler_pic_CXX"; then
 
 { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then
+if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  lt_prog_compiler_pic_works_CXX=no
+  lt_cv_prog_compiler_pic_works_CXX=no
   ac_outfile=conftest.$ac_objext
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
    lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
@@ -15550,27 +15974,27 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15553: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15977: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:15557: \$? = $ac_status" >&5
+   echo "$as_me:15981: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
      $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_prog_compiler_pic_works_CXX=yes
+       lt_cv_prog_compiler_pic_works_CXX=yes
      fi
    fi
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; }
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_CXX" >&6; }
 
-if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then
+if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
     case $lt_prog_compiler_pic_CXX in
      "" | " "*) ;;
      *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
@@ -15597,10 +16021,10 @@ esac
 wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
 { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works_CXX+set}" = set; then
+if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  lt_prog_compiler_static_works_CXX=no
+  lt_cv_prog_compiler_static_works_CXX=no
    save_LDFLAGS="$LDFLAGS"
    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
@@ -15613,20 +16037,20 @@ else
        $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_prog_compiler_static_works_CXX=yes
+         lt_cv_prog_compiler_static_works_CXX=yes
        fi
      else
-       lt_prog_compiler_static_works_CXX=yes
+       lt_cv_prog_compiler_static_works_CXX=yes
      fi
    fi
-   $rm conftest*
+   $rm -r conftest*
    LDFLAGS="$save_LDFLAGS"
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6; }
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_CXX" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_static_works_CXX" >&6; }
 
-if test x"$lt_prog_compiler_static_works_CXX" = xyes; then
+if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
     :
 else
     lt_prog_compiler_static_CXX=
@@ -15654,11 +16078,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15657: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16081: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:15661: \$? = $ac_status" >&5
+   echo "$as_me:16085: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -15711,7 +16135,7 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
 
   export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
   case $host_os in
-  aix4* | aix5*)
+  aix[4-9]*)
     # If we're using GNU nm, then we don't want the "-C" option.
     # -C means demangle to AIX nm, but means don't demangle with GNU nm
     if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
@@ -15733,6 +16157,7 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
     export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
   ;;
   esac
+  exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
 
 { echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
 echo "${ECHO_T}$ld_shlibs_CXX" >&6; }
@@ -15834,7 +16259,7 @@ aix3*)
   soname_spec='${libname}${release}${shared_ext}$major'
   ;;
 
-aix4* | aix5*)
+aix[4-9]*)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -16367,6 +16792,21 @@ esac
 echo "${ECHO_T}$dynamic_linker" >&6; }
 test "$dynamic_linker" = no && can_build_shared=no
 
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
 if test "$GCC" = yes; then
   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
@@ -16450,6 +16890,7 @@ if test -f "$ltmain"; then
     predeps_CXX \
     postdeps_CXX \
     compiler_lib_search_path_CXX \
+    compiler_lib_search_dirs_CXX \
     archive_cmds_CXX \
     archive_expsym_cmds_CXX \
     postinstall_cmds_CXX \
@@ -16698,6 +17139,10 @@ predeps=$lt_predeps_CXX
 # shared library.
 postdeps=$lt_postdeps_CXX
 
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
+
 # The library search path used internally by the compiler when linking
 # a shared library.
 compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
@@ -16889,7 +17334,7 @@ ac_outfile=conftest.$ac_objext
 echo "$lt_simple_link_test_code" >conftest.$ac_ext
 eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
 _lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
+$rm -r conftest*
 
 
 # Allow CC to be a program name with arguments.
@@ -16938,11 +17383,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16941: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17386: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:16945: \$? = $ac_status" >&5
+   echo "$as_me:17390: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -17002,7 +17447,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
       # built for inclusion in a dll (and should export symbols for example).
       # Although the cygwin gcc ignores -fPIC, still need this for old-style
       # (--disable-auto-import) libraries
-      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+
       ;;
 
     darwin* | rhapsody*)
@@ -17072,7 +17517,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
     mingw* | cygwin* | pw32* | os2*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+
       ;;
 
     hpux9* | hpux10* | hpux11*)
@@ -17212,10 +17657,10 @@ if test -n "$lt_prog_compiler_pic_GCJ"; then
 
 { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then
+if test "${lt_cv_prog_compiler_pic_works_GCJ+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  lt_prog_compiler_pic_works_GCJ=no
+  lt_cv_prog_compiler_pic_works_GCJ=no
   ac_outfile=conftest.$ac_objext
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
    lt_compiler_flag="$lt_prog_compiler_pic_GCJ"
@@ -17228,27 +17673,27 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:17231: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17676: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:17235: \$? = $ac_status" >&5
+   echo "$as_me:17680: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
      $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_prog_compiler_pic_works_GCJ=yes
+       lt_cv_prog_compiler_pic_works_GCJ=yes
      fi
    fi
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; }
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_GCJ" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_GCJ" >&6; }
 
-if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then
+if test x"$lt_cv_prog_compiler_pic_works_GCJ" = xyes; then
     case $lt_prog_compiler_pic_GCJ in
      "" | " "*) ;;
      *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;;
@@ -17275,10 +17720,10 @@ esac
 wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\"
 { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then
+if test "${lt_cv_prog_compiler_static_works_GCJ+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  lt_prog_compiler_static_works_GCJ=no
+  lt_cv_prog_compiler_static_works_GCJ=no
    save_LDFLAGS="$LDFLAGS"
    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
@@ -17291,20 +17736,20 @@ else
        $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_prog_compiler_static_works_GCJ=yes
+         lt_cv_prog_compiler_static_works_GCJ=yes
        fi
      else
-       lt_prog_compiler_static_works_GCJ=yes
+       lt_cv_prog_compiler_static_works_GCJ=yes
      fi
    fi
-   $rm conftest*
+   $rm -r conftest*
    LDFLAGS="$save_LDFLAGS"
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6; }
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_GCJ" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_static_works_GCJ" >&6; }
 
-if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then
+if test x"$lt_cv_prog_compiler_static_works_GCJ" = xyes; then
     :
 else
     lt_prog_compiler_static_GCJ=
@@ -17332,11 +17777,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:17335: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17780: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:17339: \$? = $ac_status" >&5
+   echo "$as_me:17784: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -17416,12 +17861,13 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
   # it will be wrapped by ` (' and `)$', so one must not match beginning or
   # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
   # as well as any symbol that contains `d'.
-  exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_"
+  exclude_expsyms_GCJ='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
   # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
   # platforms (ab)use it in PIC code, but their linkers get confused if
   # the symbol is explicitly referenced.  Since portable code cannot
   # rely on this symbol name, it's probably fine to never include it in
   # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
   extract_expsyms_cmds=
   # Just being paranoid about ensuring that cc_basename is set.
   for cc_temp in $compiler""; do
@@ -17480,7 +17926,7 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 
     # See if GNU ld supports shared libraries.
     case $host_os in
-    aix3* | aix4* | aix5*)
+    aix[3-9]*)
       # On AIX/PPC, the GNU linker is very broken
       if test "$host_cpu" != ia64; then
 	ld_shlibs_GCJ=no
@@ -17700,7 +18146,7 @@ _LT_EOF
       fi
       ;;
 
-    aix4* | aix5*)
+    aix[4-9]*)
       if test "$host_cpu" = ia64; then
 	# On IA64, the linker does run time linking by default, so we don't
 	# have to do anything special.
@@ -17720,7 +18166,7 @@ _LT_EOF
 	# Test if we are trying to use run time linking or normal
 	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
 	# need to do runtime linking.
-	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
 	  for ld_flag in $LDFLAGS; do
   	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
   	    aix_use_runtimelinking=yes
@@ -17992,11 +18438,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       link_all_deplibs_GCJ=yes
     if test "$GCC" = yes ; then
     	output_verbose_link_cmd='echo'
-        archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-      archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        archive_cmds_GCJ="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+        module_cmds_GCJ="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+        archive_expsym_cmds_GCJ="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+        module_expsym_cmds_GCJ="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
     else
       case $cc_basename in
         xlc*)
@@ -18465,7 +18910,7 @@ aix3*)
   soname_spec='${libname}${release}${shared_ext}$major'
   ;;
 
-aix4* | aix5*)
+aix[4-9]*)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -18998,6 +19443,21 @@ esac
 echo "${ECHO_T}$dynamic_linker" >&6; }
 test "$dynamic_linker" = no && can_build_shared=no
 
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
 if test "$GCC" = yes; then
   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
@@ -19081,6 +19541,7 @@ if test -f "$ltmain"; then
     predeps_GCJ \
     postdeps_GCJ \
     compiler_lib_search_path_GCJ \
+    compiler_lib_search_dirs_GCJ \
     archive_cmds_GCJ \
     archive_expsym_cmds_GCJ \
     postinstall_cmds_GCJ \
@@ -19329,6 +19790,10 @@ predeps=$lt_predeps_GCJ
 # shared library.
 postdeps=$lt_postdeps_GCJ
 
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_GCJ
+
 # The library search path used internally by the compiler when linking
 # a shared library.
 compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
@@ -19502,7 +19967,7 @@ ac_outfile=conftest.$ac_objext
 echo "$lt_simple_link_test_code" >conftest.$ac_ext
 eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
 _lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
+$rm -r conftest*
 
 
 # Allow CC to be a program name with arguments.
@@ -19562,6 +20027,7 @@ if test -f "$ltmain"; then
     predeps_RC \
     postdeps_RC \
     compiler_lib_search_path_RC \
+    compiler_lib_search_dirs_RC \
     archive_cmds_RC \
     archive_expsym_cmds_RC \
     postinstall_cmds_RC \
@@ -19810,6 +20276,10 @@ predeps=$lt_predeps_RC
 # shared library.
 postdeps=$lt_postdeps_RC
 
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_RC
+
 # The library search path used internally by the compiler when linking
 # a shared library.
 compiler_lib_search_path=$lt_compiler_lib_search_path_RC
@@ -19993,6 +20463,11 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool'
 
 
 
+cat >>confdefs.h <<_ACEOF
+#define SHARED_LIB_SUFFIX "$shrext_cmds"
+_ACEOF
+
+
 VMAJ=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $1);}'`
 VMIN=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $2);}'`
 VMIC=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $3);}'`
@@ -20018,6 +20493,7 @@ requirements_ecore_sdl=""
 
 
 
+
 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
 	if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -20326,7 +20802,15 @@ fi
 done
 
 
-for ac_header in netinet/in.h
+
+
+
+
+
+
+
+
+for ac_header in dlfcn.h features.h langinfo.h locale.h netinet/in.h sys/mman.h sys/time.h windows.h winsock2.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
@@ -20608,10 +21092,12 @@ fi
 
 	{ echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6; }
-                 have_openssl="no"
+
+        have_openssl="no"
 
 elif test $pkg_failed = untried; then
-	 have_openssl="no"
+
+        have_openssl="no"
 
 else
 	SSL_CFLAGS=$pkg_cv_SSL_CFLAGS
@@ -20624,10 +21110,10 @@ cat >>confdefs.h <<\_ACEOF
 #define USE_OPENSSL 1
 _ACEOF
 
-       requirements_ecore_con="$requirements_ecore_con openssl"
-       # no need to add it to req_ecore_ipc, since they
-       # depends on ecore_con anyway.
-       have_openssl="yes"
+        requirements_ecore_con="$requirements_ecore_con openssl"
+        # no need to add it to req_ecore_ipc, since they
+        # depends on ecore_con anyway.
+        have_openssl="yes"
 
 fi
 fi
@@ -20719,7 +21205,6 @@ cat >>confdefs.h <<\_ACEOF
 #define HAVE_CURL 1
 _ACEOF
 
-      requirements_ecore_file="$requirements_ecore_file libcurl"
       requirements_ecore_con="$requirements_ecore_con libcurl"
       have_curl="yes"
 
@@ -20955,12 +21440,12 @@ if test -n "$PKG_CONFIG"; then
         pkg_cv_EET_CFLAGS="$EET_CFLAGS"
     else
         if test -n "$PKG_CONFIG" && \
-    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"eet >= 0.9.10\"") >&5
-  ($PKG_CONFIG --exists --print-errors "eet >= 0.9.10") 2>&5
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"eet >= 1.0.0\"") >&5
+  ($PKG_CONFIG --exists --print-errors "eet >= 1.0.0") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-  pkg_cv_EET_CFLAGS=`$PKG_CONFIG --cflags "eet >= 0.9.10" 2>/dev/null`
+  pkg_cv_EET_CFLAGS=`$PKG_CONFIG --cflags "eet >= 1.0.0" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -20973,12 +21458,12 @@ if test -n "$PKG_CONFIG"; then
         pkg_cv_EET_LIBS="$EET_LIBS"
     else
         if test -n "$PKG_CONFIG" && \
-    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"eet >= 0.9.10\"") >&5
-  ($PKG_CONFIG --exists --print-errors "eet >= 0.9.10") 2>&5
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"eet >= 1.0.0\"") >&5
+  ($PKG_CONFIG --exists --print-errors "eet >= 1.0.0") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-  pkg_cv_EET_LIBS=`$PKG_CONFIG --libs "eet >= 0.9.10" 2>/dev/null`
+  pkg_cv_EET_LIBS=`$PKG_CONFIG --libs "eet >= 1.0.0" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -20997,9 +21482,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eet >= 0.9.10"`
+	        EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eet >= 1.0.0"`
         else
-	        EET_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eet >= 0.9.10"`
+	        EET_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eet >= 1.0.0"`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$EET_PKG_ERRORS" >&5
@@ -22395,6 +22880,83 @@ _ACEOF
 fi
 
 
+pkg_failed=no
+{ echo "$as_me:$LINENO: checking for XCB_XTEST" >&5
+echo $ECHO_N "checking for XCB_XTEST... $ECHO_C" >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$XCB_XTEST_CFLAGS"; then
+        pkg_cv_XCB_XTEST_CFLAGS="$XCB_XTEST_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xcb-xtest\"") >&5
+  ($PKG_CONFIG --exists --print-errors "xcb-xtest") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  pkg_cv_XCB_XTEST_CFLAGS=`$PKG_CONFIG --cflags "xcb-xtest" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$XCB_XTEST_LIBS"; then
+        pkg_cv_XCB_XTEST_LIBS="$XCB_XTEST_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xcb-xtest\"") >&5
+  ($PKG_CONFIG --exists --print-errors "xcb-xtest") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  pkg_cv_XCB_XTEST_LIBS=`$PKG_CONFIG --libs "xcb-xtest" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        XCB_XTEST_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-xtest"`
+        else
+	        XCB_XTEST_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-xtest"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$XCB_XTEST_PKG_ERRORS" >&5
+
+	{ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+                 have_ecore_x_xcb_xtest="no"
+elif test $pkg_failed = untried; then
+	 have_ecore_x_xcb_xtest="no"
+else
+	XCB_XTEST_CFLAGS=$pkg_cv_XCB_XTEST_CFLAGS
+	XCB_XTEST_LIBS=$pkg_cv_XCB_XTEST_LIBS
+        { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+	 have_ecore_x_xcb_xtest="yes"
+
+cat >>confdefs.h <<\_ACEOF
+#define ECORE_XCB_XTEST 1
+_ACEOF
+
+fi
+
+
 cat >>confdefs.h <<\_ACEOF
 #define BUILD_ECORE_X 1
 _ACEOF
@@ -23949,7 +24511,7 @@ fi
     Xcursor_cflags=""
     use_Xcursor="no"
     PCFLAGS=$CFLAGS
-    CFLAGS=$x_cflags" "$x_includes
+    CFLAGS="$x_cflags $x_includes"
     { echo "$as_me:$LINENO: checking for X11/Xcursor/Xcursor.h" >&5
 echo $ECHO_N "checking for X11/Xcursor/Xcursor.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_X11_Xcursor_Xcursor_h+set}" = set; then
@@ -25406,6 +25968,151 @@ CFLAGS=$SAVE_CFLAGS
 
 
 
+XTEST_CFLAGS=""
+XTEST_LIBS=""
+use_xtest="no"
+
+SAVE_CFLAGS=$CFLAGS
+CFLAGS="$x_cflags $x_includes"
+{ echo "$as_me:$LINENO: checking for X11/extensions/XTest.h" >&5
+echo $ECHO_N "checking for X11/extensions/XTest.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_X11_extensions_XTest_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+ #include <X11/Xlib.h>
+
+
+#include <X11/extensions/XTest.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_header_X11_extensions_XTest_h=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_header_X11_extensions_XTest_h=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_XTest_h" >&5
+echo "${ECHO_T}$ac_cv_header_X11_extensions_XTest_h" >&6; }
+if test $ac_cv_header_X11_extensions_XTest_h = yes; then
+
+   { echo "$as_me:$LINENO: checking for XTestFakeKeyEvent in -lXtst" >&5
+echo $ECHO_N "checking for XTestFakeKeyEvent in -lXtst... $ECHO_C" >&6; }
+if test "${ac_cv_lib_Xtst_XTestFakeKeyEvent+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lXtst  $x_libs
+    $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char XTestFakeKeyEvent ();
+int
+main ()
+{
+return XTestFakeKeyEvent ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_Xtst_XTestFakeKeyEvent=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_Xtst_XTestFakeKeyEvent=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_Xtst_XTestFakeKeyEvent" >&5
+echo "${ECHO_T}$ac_cv_lib_Xtst_XTestFakeKeyEvent" >&6; }
+if test $ac_cv_lib_Xtst_XTestFakeKeyEvent = yes; then
+
+
+cat >>confdefs.h <<\_ACEOF
+#define ECORE_XTEST 1
+_ACEOF
+
+      XTEST_LIBS="-lXtst"
+      use_xtest="yes"
+
+else
+   use_xtest="no"
+fi
+
+
+else
+   use_xtest="no"
+fi
+
+
+CFLAGS=$SAVE_CFLAGS
+
+
+
+
+
+
+
+
+
 XSS_CFLAGS=""
 XSS_LIBS=""
 use_xss="no"
@@ -25571,12 +26278,79 @@ echo $ECHO_N "checking whether ecore_evas x11 support is to be built... $ECHO_C"
 echo "${ECHO_T}$want_ecore_evas_x11" >&6; }
 
   if test "x$want_ecore_evas_x11" = "xyes"; then
-    if test -n "$PKG_CONFIG" && \
+
+pkg_failed=no
+{ echo "$as_me:$LINENO: checking for EVAS_SOFTWARE_X11" >&5
+echo $ECHO_N "checking for EVAS_SOFTWARE_X11... $ECHO_C" >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_SOFTWARE_X11_CFLAGS"; then
+        pkg_cv_EVAS_SOFTWARE_X11_CFLAGS="$EVAS_SOFTWARE_X11_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-software-x11\"") >&5
   ($PKG_CONFIG --exists --print-errors "evas-software-x11") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
+  pkg_cv_EVAS_SOFTWARE_X11_CFLAGS=`$PKG_CONFIG --cflags "evas-software-x11" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_SOFTWARE_X11_LIBS"; then
+        pkg_cv_EVAS_SOFTWARE_X11_LIBS="$EVAS_SOFTWARE_X11_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-software-x11\"") >&5
+  ($PKG_CONFIG --exists --print-errors "evas-software-x11") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  pkg_cv_EVAS_SOFTWARE_X11_LIBS=`$PKG_CONFIG --libs "evas-software-x11" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        EVAS_SOFTWARE_X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evas-software-x11"`
+        else
+	        EVAS_SOFTWARE_X11_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evas-software-x11"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$EVAS_SOFTWARE_X11_PKG_ERRORS" >&5
+
+	{ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+
+        have_ecore_evas_x11="no";
+
+elif test $pkg_failed = untried; then
+
+        have_ecore_evas_x11="no";
+
+else
+	EVAS_SOFTWARE_X11_CFLAGS=$pkg_cv_EVAS_SOFTWARE_X11_CFLAGS
+	EVAS_SOFTWARE_X11_LIBS=$pkg_cv_EVAS_SOFTWARE_X11_LIBS
+        { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
 
 
 cat >>confdefs.h <<\_ACEOF
@@ -25585,7 +26359,6 @@ _ACEOF
 
         have_ecore_evas_x11="yes";
 
-
 fi
   fi
 
@@ -25602,12 +26375,79 @@ echo $ECHO_N "checking whether ecore_evas x11 gl support is to be built... $ECHO
 echo "${ECHO_T}$want_ecore_evas_x11_gl" >&6; }
 
   if test "x$want_ecore_evas_x11_gl" = "xyes"; then
-    if test -n "$PKG_CONFIG" && \
+
+pkg_failed=no
+{ echo "$as_me:$LINENO: checking for EVAS_OPENGL_X11" >&5
+echo $ECHO_N "checking for EVAS_OPENGL_X11... $ECHO_C" >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_OPENGL_X11_CFLAGS"; then
+        pkg_cv_EVAS_OPENGL_X11_CFLAGS="$EVAS_OPENGL_X11_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-opengl-x11\"") >&5
   ($PKG_CONFIG --exists --print-errors "evas-opengl-x11") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
+  pkg_cv_EVAS_OPENGL_X11_CFLAGS=`$PKG_CONFIG --cflags "evas-opengl-x11" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_OPENGL_X11_LIBS"; then
+        pkg_cv_EVAS_OPENGL_X11_LIBS="$EVAS_OPENGL_X11_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-opengl-x11\"") >&5
+  ($PKG_CONFIG --exists --print-errors "evas-opengl-x11") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  pkg_cv_EVAS_OPENGL_X11_LIBS=`$PKG_CONFIG --libs "evas-opengl-x11" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        EVAS_OPENGL_X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evas-opengl-x11"`
+        else
+	        EVAS_OPENGL_X11_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evas-opengl-x11"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$EVAS_OPENGL_X11_PKG_ERRORS" >&5
+
+	{ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+
+        have_ecore_evas_x11_gl="no"
+
+elif test $pkg_failed = untried; then
+
+        have_ecore_evas_x11_gl="no"
+
+else
+	EVAS_OPENGL_X11_CFLAGS=$pkg_cv_EVAS_OPENGL_X11_CFLAGS
+	EVAS_OPENGL_X11_LIBS=$pkg_cv_EVAS_OPENGL_X11_LIBS
+        { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
 
 
 cat >>confdefs.h <<\_ACEOF
@@ -25616,7 +26456,6 @@ _ACEOF
 
         have_ecore_evas_x11_gl="yes";
 
-
 fi
   fi
 
@@ -25634,20 +26473,86 @@ echo $ECHO_N "checking whether ecore_evas xrender support is to be built... $ECH
 echo "${ECHO_T}$want_ecore_evas_xrender" >&6; }
 
   if test "x$want_ecore_evas_xrender" = "xyes"; then
-    if test -n "$PKG_CONFIG" && \
+
+pkg_failed=no
+{ echo "$as_me:$LINENO: checking for EVAS_XRENDER_X11" >&5
+echo $ECHO_N "checking for EVAS_XRENDER_X11... $ECHO_C" >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_XRENDER_X11_CFLAGS"; then
+        pkg_cv_EVAS_XRENDER_X11_CFLAGS="$EVAS_XRENDER_X11_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-xrender-x11\"") >&5
   ($PKG_CONFIG --exists --print-errors "evas-xrender-x11") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
+  pkg_cv_EVAS_XRENDER_X11_CFLAGS=`$PKG_CONFIG --cflags "evas-xrender-x11" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_XRENDER_X11_LIBS"; then
+        pkg_cv_EVAS_XRENDER_X11_LIBS="$EVAS_XRENDER_X11_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-xrender-x11\"") >&5
+  ($PKG_CONFIG --exists --print-errors "evas-xrender-x11") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  pkg_cv_EVAS_XRENDER_X11_LIBS=`$PKG_CONFIG --libs "evas-xrender-x11" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        EVAS_XRENDER_X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evas-xrender-x11"`
+        else
+	        EVAS_XRENDER_X11_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evas-xrender-x11"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$EVAS_XRENDER_X11_PKG_ERRORS" >&5
+
+	{ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+
+        have_ecore_evas_xrender="no"
+
+elif test $pkg_failed = untried; then
+
+        have_ecore_evas_xrender="no"
+
+else
+	EVAS_XRENDER_X11_CFLAGS=$pkg_cv_EVAS_XRENDER_X11_CFLAGS
+	EVAS_XRENDER_X11_LIBS=$pkg_cv_EVAS_XRENDER_X11_LIBS
+        { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
 
 
 cat >>confdefs.h <<\_ACEOF
 #define BUILD_ECORE_EVAS_XRENDER 1
 _ACEOF
 
-        have_ecore_evas_xrender="yes";
-
+        have_ecore_evas_xrender="yes"
 
 fi
   fi
@@ -25666,12 +26571,115 @@ echo $ECHO_N "checking whether ecore_evas x11-16 support is to be built... $ECHO
 echo "${ECHO_T}$want_ecore_evas_x11_16" >&6; }
 
   if test "x$want_ecore_evas_x11_16" = "xyes"; then
-    if test -n "$PKG_CONFIG" && \
+
+pkg_failed=no
+{ echo "$as_me:$LINENO: checking for EVAS_SOFTWARE_16_X11" >&5
+echo $ECHO_N "checking for EVAS_SOFTWARE_16_X11... $ECHO_C" >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_SOFTWARE_16_X11_CFLAGS"; then
+        pkg_cv_EVAS_SOFTWARE_16_X11_CFLAGS="$EVAS_SOFTWARE_16_X11_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-software-16-x11\"") >&5
   ($PKG_CONFIG --exists --print-errors "evas-software-16-x11") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
+  pkg_cv_EVAS_SOFTWARE_16_X11_CFLAGS=`$PKG_CONFIG --cflags "evas-software-16-x11" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_SOFTWARE_16_X11_LIBS"; then
+        pkg_cv_EVAS_SOFTWARE_16_X11_LIBS="$EVAS_SOFTWARE_16_X11_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-software-16-x11\"") >&5
+  ($PKG_CONFIG --exists --print-errors "evas-software-16-x11") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  pkg_cv_EVAS_SOFTWARE_16_X11_LIBS=`$PKG_CONFIG --libs "evas-software-16-x11" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        EVAS_SOFTWARE_16_X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evas-software-16-x11"`
+        else
+	        EVAS_SOFTWARE_16_X11_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evas-software-16-x11"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$EVAS_SOFTWARE_16_X11_PKG_ERRORS" >&5
+
+	{ { echo "$as_me:$LINENO: error: Package requirements (evas-software-16-x11) were not met:
+
+$EVAS_SOFTWARE_16_X11_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables EVAS_SOFTWARE_16_X11_CFLAGS
+and EVAS_SOFTWARE_16_X11_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" >&5
+echo "$as_me: error: Package requirements (evas-software-16-x11) were not met:
+
+$EVAS_SOFTWARE_16_X11_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables EVAS_SOFTWARE_16_X11_CFLAGS
+and EVAS_SOFTWARE_16_X11_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" >&2;}
+   { (exit 1); exit 1; }; }
+elif test $pkg_failed = untried; then
+	{ { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables EVAS_SOFTWARE_16_X11_CFLAGS
+and EVAS_SOFTWARE_16_X11_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details." >&5
+echo "$as_me: error: The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables EVAS_SOFTWARE_16_X11_CFLAGS
+and EVAS_SOFTWARE_16_X11_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+else
+	EVAS_SOFTWARE_16_X11_CFLAGS=$pkg_cv_EVAS_SOFTWARE_16_X11_CFLAGS
+	EVAS_SOFTWARE_16_X11_LIBS=$pkg_cv_EVAS_SOFTWARE_16_X11_LIBS
+        { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
 
 
 cat >>confdefs.h <<\_ACEOF
@@ -25693,96 +26701,328 @@ fi
 
 # TODO: We should first check if we have win32 available before checking for win32 evas
 # TODO: Need to check if we have evas before testing win32 evas engines
-{ echo "$as_me:$LINENO: checking for Evas Software DirectDraw engine" >&5
-echo $ECHO_N "checking for Evas Software DirectDraw engine... $ECHO_C" >&6; }
-if test -n "$PKG_CONFIG" && \
+
+pkg_failed=no
+{ echo "$as_me:$LINENO: checking for EVAS_SOFTWARE_DDRAW" >&5
+echo $ECHO_N "checking for EVAS_SOFTWARE_DDRAW... $ECHO_C" >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_SOFTWARE_DDRAW_CFLAGS"; then
+        pkg_cv_EVAS_SOFTWARE_DDRAW_CFLAGS="$EVAS_SOFTWARE_DDRAW_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-software-ddraw >= 0.9.9.41\"") >&5
   ($PKG_CONFIG --exists --print-errors "evas-software-ddraw >= 0.9.9.41") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-   have_ddraw="yes"
+  pkg_cv_EVAS_SOFTWARE_DDRAW_CFLAGS=`$PKG_CONFIG --cflags "evas-software-ddraw >= 0.9.9.41" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_SOFTWARE_DDRAW_LIBS"; then
+        pkg_cv_EVAS_SOFTWARE_DDRAW_LIBS="$EVAS_SOFTWARE_DDRAW_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-software-ddraw >= 0.9.9.41\"") >&5
+  ($PKG_CONFIG --exists --print-errors "evas-software-ddraw >= 0.9.9.41") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  pkg_cv_EVAS_SOFTWARE_DDRAW_LIBS=`$PKG_CONFIG --libs "evas-software-ddraw >= 0.9.9.41" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        EVAS_SOFTWARE_DDRAW_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evas-software-ddraw >= 0.9.9.41"`
+        else
+	        EVAS_SOFTWARE_DDRAW_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evas-software-ddraw >= 0.9.9.41"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$EVAS_SOFTWARE_DDRAW_PKG_ERRORS" >&5
+
+	{ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+                 have_ddraw="no"
+
+elif test $pkg_failed = untried; then
+	 have_ddraw="no"
+
+else
+	EVAS_SOFTWARE_DDRAW_CFLAGS=$pkg_cv_EVAS_SOFTWARE_DDRAW_CFLAGS
+	EVAS_SOFTWARE_DDRAW_LIBS=$pkg_cv_EVAS_SOFTWARE_DDRAW_LIBS
+        { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+	 have_ddraw="yes"
 
 cat >>confdefs.h <<\_ACEOF
 #define HAVE_DIRECTDRAW 1
 _ACEOF
 
     ddraw_libs="-lddraw -ldxguid"
-else
-   have_ddraw="no"
-
 fi
-{ echo "$as_me:$LINENO: result: $have_ddraw" >&5
-echo "${ECHO_T}$have_ddraw" >&6; }
 
 
-{ echo "$as_me:$LINENO: checking for Evas 16bpp Software DirectDraw engine" >&5
-echo $ECHO_N "checking for Evas 16bpp Software DirectDraw engine... $ECHO_C" >&6; }
-if test -n "$PKG_CONFIG" && \
+
+pkg_failed=no
+{ echo "$as_me:$LINENO: checking for EVAS_SOFTWARE_16_DDRAW" >&5
+echo $ECHO_N "checking for EVAS_SOFTWARE_16_DDRAW... $ECHO_C" >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_SOFTWARE_16_DDRAW_CFLAGS"; then
+        pkg_cv_EVAS_SOFTWARE_16_DDRAW_CFLAGS="$EVAS_SOFTWARE_16_DDRAW_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-software-16-ddraw >= 0.9.9.41\"") >&5
   ($PKG_CONFIG --exists --print-errors "evas-software-16-ddraw >= 0.9.9.41") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-   have_ddraw_16="yes"
+  pkg_cv_EVAS_SOFTWARE_16_DDRAW_CFLAGS=`$PKG_CONFIG --cflags "evas-software-16-ddraw >= 0.9.9.41" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_SOFTWARE_16_DDRAW_LIBS"; then
+        pkg_cv_EVAS_SOFTWARE_16_DDRAW_LIBS="$EVAS_SOFTWARE_16_DDRAW_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-software-16-ddraw >= 0.9.9.41\"") >&5
+  ($PKG_CONFIG --exists --print-errors "evas-software-16-ddraw >= 0.9.9.41") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  pkg_cv_EVAS_SOFTWARE_16_DDRAW_LIBS=`$PKG_CONFIG --libs "evas-software-16-ddraw >= 0.9.9.41" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        EVAS_SOFTWARE_16_DDRAW_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evas-software-16-ddraw >= 0.9.9.41"`
+        else
+	        EVAS_SOFTWARE_16_DDRAW_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evas-software-16-ddraw >= 0.9.9.41"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$EVAS_SOFTWARE_16_DDRAW_PKG_ERRORS" >&5
+
+	{ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+                 have_ddraw_16="no"
+
+elif test $pkg_failed = untried; then
+	 have_ddraw_16="no"
+
+else
+	EVAS_SOFTWARE_16_DDRAW_CFLAGS=$pkg_cv_EVAS_SOFTWARE_16_DDRAW_CFLAGS
+	EVAS_SOFTWARE_16_DDRAW_LIBS=$pkg_cv_EVAS_SOFTWARE_16_DDRAW_LIBS
+        { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+	 have_ddraw_16="yes"
 
 cat >>confdefs.h <<\_ACEOF
 #define HAVE_DIRECTDRAW_16 1
 _ACEOF
 
     ddraw_16_libs="-lddraw -ldxguid"
-else
-   have_ddraw_16="no"
-
 fi
-{ echo "$as_me:$LINENO: result: $have_ddraw_16" >&5
-echo "${ECHO_T}$have_ddraw_16" >&6; }
 
 
-{ echo "$as_me:$LINENO: checking for Evas Direct3D engine" >&5
-echo $ECHO_N "checking for Evas Direct3D engine... $ECHO_C" >&6; }
-if test -n "$PKG_CONFIG" && \
+
+pkg_failed=no
+{ echo "$as_me:$LINENO: checking for EVAS_DIRECT3D" >&5
+echo $ECHO_N "checking for EVAS_DIRECT3D... $ECHO_C" >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_DIRECT3D_CFLAGS"; then
+        pkg_cv_EVAS_DIRECT3D_CFLAGS="$EVAS_DIRECT3D_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-direct3d >= 0.9.9.41\"") >&5
   ($PKG_CONFIG --exists --print-errors "evas-direct3d >= 0.9.9.41") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-   have_direct3d="yes"
+  pkg_cv_EVAS_DIRECT3D_CFLAGS=`$PKG_CONFIG --cflags "evas-direct3d >= 0.9.9.41" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_DIRECT3D_LIBS"; then
+        pkg_cv_EVAS_DIRECT3D_LIBS="$EVAS_DIRECT3D_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-direct3d >= 0.9.9.41\"") >&5
+  ($PKG_CONFIG --exists --print-errors "evas-direct3d >= 0.9.9.41") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  pkg_cv_EVAS_DIRECT3D_LIBS=`$PKG_CONFIG --libs "evas-direct3d >= 0.9.9.41" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        EVAS_DIRECT3D_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evas-direct3d >= 0.9.9.41"`
+        else
+	        EVAS_DIRECT3D_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evas-direct3d >= 0.9.9.41"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$EVAS_DIRECT3D_PKG_ERRORS" >&5
+
+	{ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+                 have_direct3d="no"
+
+elif test $pkg_failed = untried; then
+	 have_direct3d="no"
+
+else
+	EVAS_DIRECT3D_CFLAGS=$pkg_cv_EVAS_DIRECT3D_CFLAGS
+	EVAS_DIRECT3D_LIBS=$pkg_cv_EVAS_DIRECT3D_LIBS
+        { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+	 have_direct3d="yes"
 
 cat >>confdefs.h <<\_ACEOF
 #define HAVE_DIRECT3D 1
 _ACEOF
 
     direct3d_libs="-ld3d9 -ld3dx9d"
-else
-   have_direct3d="no"
-
 fi
-{ echo "$as_me:$LINENO: result: $have_direct3d" >&5
-echo "${ECHO_T}$have_direct3d" >&6; }
 
 
-{ echo "$as_me:$LINENO: checking for Evas OpenGL Glew engine" >&5
-echo $ECHO_N "checking for Evas OpenGL Glew engine... $ECHO_C" >&6; }
-if test -n "$PKG_CONFIG" && \
+
+pkg_failed=no
+{ echo "$as_me:$LINENO: checking for EVAS_OPENGL_GLEW" >&5
+echo $ECHO_N "checking for EVAS_OPENGL_GLEW... $ECHO_C" >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_OPENGL_GLEW_CFLAGS"; then
+        pkg_cv_EVAS_OPENGL_GLEW_CFLAGS="$EVAS_OPENGL_GLEW_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-opengl-glew >= 0.9.9.41\"") >&5
+  ($PKG_CONFIG --exists --print-errors "evas-opengl-glew >= 0.9.9.41") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  pkg_cv_EVAS_OPENGL_GLEW_CFLAGS=`$PKG_CONFIG --cflags "evas-opengl-glew >= 0.9.9.41" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_OPENGL_GLEW_LIBS"; then
+        pkg_cv_EVAS_OPENGL_GLEW_LIBS="$EVAS_OPENGL_GLEW_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-opengl-glew >= 0.9.9.41\"") >&5
   ($PKG_CONFIG --exists --print-errors "evas-opengl-glew >= 0.9.9.41") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-   have_opengl_glew="yes"
+  pkg_cv_EVAS_OPENGL_GLEW_LIBS=`$PKG_CONFIG --libs "evas-opengl-glew >= 0.9.9.41" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        EVAS_OPENGL_GLEW_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evas-opengl-glew >= 0.9.9.41"`
+        else
+	        EVAS_OPENGL_GLEW_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evas-opengl-glew >= 0.9.9.41"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$EVAS_OPENGL_GLEW_PKG_ERRORS" >&5
+
+	{ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+                 have_opengl_glew="no"
+
+elif test $pkg_failed = untried; then
+	 have_opengl_glew="no"
+
+else
+	EVAS_OPENGL_GLEW_CFLAGS=$pkg_cv_EVAS_OPENGL_GLEW_CFLAGS
+	EVAS_OPENGL_GLEW_LIBS=$pkg_cv_EVAS_OPENGL_GLEW_LIBS
+        { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+	 have_opengl_glew="yes"
 
 cat >>confdefs.h <<\_ACEOF
 #define HAVE_OPENGL_GLEW 1
 _ACEOF
 
     glew_libs="-lglew32 -lgdi32"
-else
-   have_opengl_glew="no"
-
 fi
-{ echo "$as_me:$LINENO: result: $have_opengl_glew" >&5
-echo "${ECHO_T}$have_opengl_glew" >&6; }
 
 
 have_win32="no"
@@ -26035,12 +27275,115 @@ echo "${ECHO_T}$want_ecore_evas_dfb" >&6; }
   if test "x$want_ecore_evas_dfb" = "xyes" -a "x$have_ecore_directfb" = "xyes" ; then
     save_CFLAGS="$CFLAGS"
     CFLAGS="$CFLAGS $DIRECTFB_CFLAGS"
-    if test -n "$PKG_CONFIG" && \
+
+pkg_failed=no
+{ echo "$as_me:$LINENO: checking for EVAS_DIRECTFB" >&5
+echo $ECHO_N "checking for EVAS_DIRECTFB... $ECHO_C" >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_DIRECTFB_CFLAGS"; then
+        pkg_cv_EVAS_DIRECTFB_CFLAGS="$EVAS_DIRECTFB_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-directfb\"") >&5
   ($PKG_CONFIG --exists --print-errors "evas-directfb") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
+  pkg_cv_EVAS_DIRECTFB_CFLAGS=`$PKG_CONFIG --cflags "evas-directfb" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_DIRECTFB_LIBS"; then
+        pkg_cv_EVAS_DIRECTFB_LIBS="$EVAS_DIRECTFB_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-directfb\"") >&5
+  ($PKG_CONFIG --exists --print-errors "evas-directfb") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  pkg_cv_EVAS_DIRECTFB_LIBS=`$PKG_CONFIG --libs "evas-directfb" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        EVAS_DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evas-directfb"`
+        else
+	        EVAS_DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evas-directfb"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$EVAS_DIRECTFB_PKG_ERRORS" >&5
+
+	{ { echo "$as_me:$LINENO: error: Package requirements (evas-directfb) were not met:
+
+$EVAS_DIRECTFB_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables EVAS_DIRECTFB_CFLAGS
+and EVAS_DIRECTFB_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" >&5
+echo "$as_me: error: Package requirements (evas-directfb) were not met:
+
+$EVAS_DIRECTFB_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables EVAS_DIRECTFB_CFLAGS
+and EVAS_DIRECTFB_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" >&2;}
+   { (exit 1); exit 1; }; }
+elif test $pkg_failed = untried; then
+	{ { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables EVAS_DIRECTFB_CFLAGS
+and EVAS_DIRECTFB_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details." >&5
+echo "$as_me: error: The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables EVAS_DIRECTFB_CFLAGS
+and EVAS_DIRECTFB_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+else
+	EVAS_DIRECTFB_CFLAGS=$pkg_cv_EVAS_DIRECTFB_CFLAGS
+	EVAS_DIRECTFB_LIBS=$pkg_cv_EVAS_DIRECTFB_LIBS
+        { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
 
 
 cat >>confdefs.h <<\_ACEOF
@@ -26619,42 +27962,22 @@ fi
 echo "${ECHO_T}$want_ecore_evas_fb" >&6; }
 
   if test "x$want_ecore_evas_fb" = "xyes"; then
-    if test -n "$PKG_CONFIG" && \
-    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-framebuffer\"") >&5
-  ($PKG_CONFIG --exists --print-errors "evas-framebuffer") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-
-
-cat >>confdefs.h <<\_ACEOF
-#define BUILD_ECORE_EVAS_FB 1
-_ACEOF
-
-        have_ecore_evas_fb="yes"
-        requirements_ecore_evas="$requirements_ecore_evas ecore-fb"
-
-
-fi
-  fi
-fi
-
 
 pkg_failed=no
-{ echo "$as_me:$LINENO: checking for SDL" >&5
-echo $ECHO_N "checking for SDL... $ECHO_C" >&6; }
+{ echo "$as_me:$LINENO: checking for EVAS_FB" >&5
+echo $ECHO_N "checking for EVAS_FB... $ECHO_C" >&6; }
 
 if test -n "$PKG_CONFIG"; then
-    if test -n "$SDL_CFLAGS"; then
-        pkg_cv_SDL_CFLAGS="$SDL_CFLAGS"
+    if test -n "$EVAS_FB_CFLAGS"; then
+        pkg_cv_EVAS_FB_CFLAGS="$EVAS_FB_CFLAGS"
     else
         if test -n "$PKG_CONFIG" && \
-    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\"") >&5
-  ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-fb\"") >&5
+  ($PKG_CONFIG --exists --print-errors "evas-fb") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-  pkg_cv_SDL_CFLAGS=`$PKG_CONFIG --cflags "sdl >= 1.2.0" 2>/dev/null`
+  pkg_cv_EVAS_FB_CFLAGS=`$PKG_CONFIG --cflags "evas-fb" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -26663,16 +27986,16 @@ else
 	pkg_failed=untried
 fi
 if test -n "$PKG_CONFIG"; then
-    if test -n "$SDL_LIBS"; then
-        pkg_cv_SDL_LIBS="$SDL_LIBS"
+    if test -n "$EVAS_FB_LIBS"; then
+        pkg_cv_EVAS_FB_LIBS="$EVAS_FB_LIBS"
     else
         if test -n "$PKG_CONFIG" && \
-    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\"") >&5
-  ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-fb\"") >&5
+  ($PKG_CONFIG --exists --print-errors "evas-fb") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-  pkg_cv_SDL_LIBS=`$PKG_CONFIG --libs "sdl >= 1.2.0" 2>/dev/null`
+  pkg_cv_EVAS_FB_LIBS=`$PKG_CONFIG --libs "evas-fb" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -26691,27 +28014,276 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "sdl >= 1.2.0"`
+	        EVAS_FB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evas-fb"`
         else
-	        SDL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "sdl >= 1.2.0"`
+	        EVAS_FB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evas-fb"`
         fi
 	# Put the nasty error message in config.log where it belongs
-	echo "$SDL_PKG_ERRORS" >&5
+	echo "$EVAS_FB_PKG_ERRORS" >&5
 
-	{ echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-                 have_sdl="no"
+	{ { echo "$as_me:$LINENO: error: Package requirements (evas-fb) were not met:
+
+$EVAS_FB_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables EVAS_FB_CFLAGS
+and EVAS_FB_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" >&5
+echo "$as_me: error: Package requirements (evas-fb) were not met:
+
+$EVAS_FB_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables EVAS_FB_CFLAGS
+and EVAS_FB_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" >&2;}
+   { (exit 1); exit 1; }; }
 elif test $pkg_failed = untried; then
-	 have_sdl="no"
+	{ { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables EVAS_FB_CFLAGS
+and EVAS_FB_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details." >&5
+echo "$as_me: error: The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables EVAS_FB_CFLAGS
+and EVAS_FB_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
 else
-	SDL_CFLAGS=$pkg_cv_SDL_CFLAGS
-	SDL_LIBS=$pkg_cv_SDL_LIBS
+	EVAS_FB_CFLAGS=$pkg_cv_EVAS_FB_CFLAGS
+	EVAS_FB_LIBS=$pkg_cv_EVAS_FB_LIBS
         { echo "$as_me:$LINENO: result: yes" >&5
 echo "${ECHO_T}yes" >&6; }
-	 have_sdl="yes"
+
+
+cat >>confdefs.h <<\_ACEOF
+#define BUILD_ECORE_EVAS_FB 1
+_ACEOF
+
+        have_ecore_evas_fb="yes"
+        requirements_ecore_evas="$requirements_ecore_evas ecore-fb"
+
+
+fi
+  fi
+fi
+
+
+# Check whether --with-sdl-config was given.
+if test "${with_sdl_config+set}" = set; then
+  withval=$with_sdl_config;
+    SDL_CONFIG=$withval;
+    echo "using "$SDL_CONFIG" for sdl-config";
+
+else
+
+    if test -z "$SDL_CONFIG"; then
+        # Extract the first word of ""sdl-config"", so it can be a program name with args.
+set dummy "sdl-config"; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_path_SDL_CONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $SDL_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_SDL_CONFIG="$SDL_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_SDL_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_SDL_CONFIG" && ac_cv_path_SDL_CONFIG=""""
+  ;;
+esac
+fi
+SDL_CONFIG=$ac_cv_path_SDL_CONFIG
+if test -n "$SDL_CONFIG"; then
+  { echo "$as_me:$LINENO: result: $SDL_CONFIG" >&5
+echo "${ECHO_T}$SDL_CONFIG" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
 
+    fi
+
+fi
+
+if test -z "$SDL_CONFIG" ; then SDL_CONFIG="sdl-config"; fi
+
+sdl_cflags="";
+sdl_libs="";
+have_sdl="no"
+if test "${ac_cv_header_SDL_SDL_h+set}" = set; then
+  { echo "$as_me:$LINENO: checking for SDL/SDL.h" >&5
+echo $ECHO_N "checking for SDL/SDL.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_SDL_SDL_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_SDL_SDL_h" >&5
+echo "${ECHO_T}$ac_cv_header_SDL_SDL_h" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking SDL/SDL.h usability" >&5
+echo $ECHO_N "checking SDL/SDL.h usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <SDL/SDL.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking SDL/SDL.h presence" >&5
+echo $ECHO_N "checking SDL/SDL.h presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <SDL/SDL.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: SDL/SDL.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: SDL/SDL.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: SDL/SDL.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: SDL/SDL.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: SDL/SDL.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: SDL/SDL.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: SDL/SDL.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: SDL/SDL.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: SDL/SDL.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: SDL/SDL.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: SDL/SDL.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: SDL/SDL.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: SDL/SDL.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: SDL/SDL.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: SDL/SDL.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: SDL/SDL.h: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## -------------------------------------------------------- ##
+## Report this to enlightenment-devel at lists.sourceforge.net ##
+## -------------------------------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for SDL/SDL.h" >&5
+echo $ECHO_N "checking for SDL/SDL.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_SDL_SDL_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_SDL_SDL_h=$ac_header_preproc
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_SDL_SDL_h" >&5
+echo "${ECHO_T}$ac_cv_header_SDL_SDL_h" >&6; }
+
+fi
+if test $ac_cv_header_SDL_SDL_h = yes; then
+   have_sdl="yes"
+else
+   have_sdl="no"
+fi
+
+
+
+
 
 have_ecore_sdl="no"
 ecore_sdl_cflags=""
@@ -26775,36 +28347,108 @@ fi
 
 
 have_ecore_evas_sdl="no";
-if test "x$have_sdl" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
-  want_ecore_evas_sdl="yes";
-  { echo "$as_me:$LINENO: checking whether ecore_evas sdl support is to be built" >&5
-echo $ECHO_N "checking whether ecore_evas sdl support is to be built... $ECHO_C" >&6; }
-  # Check whether --enable-ecore-evas-sdl was given.
+if test "x$have_ecore_sdl" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
+    want_ecore_evas_sdl="yes";
+    { echo "$as_me:$LINENO: checking whether ecore_evas SDL support is to be built" >&5
+echo $ECHO_N "checking whether ecore_evas SDL support is to be built... $ECHO_C" >&6; }
+    # Check whether --enable-ecore-evas-sdl was given.
 if test "${enable_ecore_evas_sdl+set}" = set; then
   enableval=$enable_ecore_evas_sdl;  want_ecore_evas_sdl=$enableval
 
 fi
 
-  { echo "$as_me:$LINENO: result: $want_ecore_evas_sdl" >&5
+    { echo "$as_me:$LINENO: result: $want_ecore_evas_sdl" >&5
 echo "${ECHO_T}$want_ecore_evas_sdl" >&6; }
 
-  if test "x$want_ecore_evas_sdl" = "xyes"; then
-    save_CFLAGS=$CFLAGS
-    CFLAGS="$CFLAGS $SDL_CFLAGS"
-    if test -n "$PKG_CONFIG" && \
+    if test "x$want_ecore_evas_sdl" = "xyes"; then
+        save_CFLAGS=$CFLAGS
+        SDL_CFLAGS=`$SDL_CONFIG --cflags`
+        SDL_LIBS=`$SDL_CONFIG --libs`
+        CFLAGS="$CFLAGS $SDL_CFLAGS"
+
+
+
+
+pkg_failed=no
+{ echo "$as_me:$LINENO: checking for EVAS_SOFTWARE_SDL" >&5
+echo $ECHO_N "checking for EVAS_SOFTWARE_SDL... $ECHO_C" >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_SOFTWARE_SDL_CFLAGS"; then
+        pkg_cv_EVAS_SOFTWARE_SDL_CFLAGS="$EVAS_SOFTWARE_SDL_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-software-sdl\"") >&5
+  ($PKG_CONFIG --exists --print-errors "evas-software-sdl") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  pkg_cv_EVAS_SOFTWARE_SDL_CFLAGS=`$PKG_CONFIG --cflags "evas-software-sdl" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_SOFTWARE_SDL_LIBS"; then
+        pkg_cv_EVAS_SOFTWARE_SDL_LIBS="$EVAS_SOFTWARE_SDL_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-software-sdl\"") >&5
   ($PKG_CONFIG --exists --print-errors "evas-software-sdl") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
+  pkg_cv_EVAS_SOFTWARE_SDL_LIBS=`$PKG_CONFIG --libs "evas-software-sdl" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        EVAS_SOFTWARE_SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evas-software-sdl"`
+        else
+	        EVAS_SOFTWARE_SDL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evas-software-sdl"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$EVAS_SOFTWARE_SDL_PKG_ERRORS" >&5
+
+	{ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+
+            have_ecore_evas_sdl="no"
+
+elif test $pkg_failed = untried; then
+
+            have_ecore_evas_sdl="no"
+
+else
+	EVAS_SOFTWARE_SDL_CFLAGS=$pkg_cv_EVAS_SOFTWARE_SDL_CFLAGS
+	EVAS_SOFTWARE_SDL_LIBS=$pkg_cv_EVAS_SOFTWARE_SDL_LIBS
+        { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
 
 
 cat >>confdefs.h <<\_ACEOF
 #define BUILD_ECORE_EVAS_SDL 1
 _ACEOF
 
-        have_ecore_evas_sdl="yes"
-        requirements_ecore_evas="$requirements_ecore_evas ecore-sdl"
+            have_ecore_evas_sdl="yes"
+            requirements_ecore_evas="$requirements_ecore_evas ecore-sdl"
 
 pkg_failed=no
 { echo "$as_me:$LINENO: checking for SDL" >&5
@@ -26866,21 +28510,26 @@ fi
 
 	{ echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6; }
-                 dummy="no"
+
+                dummy="no"
+
 elif test $pkg_failed = untried; then
-	 dummy="no"
+
+                dummy="no"
+
 else
 	SDL_CFLAGS=$pkg_cv_SDL_CFLAGS
 	SDL_LIBS=$pkg_cv_SDL_LIBS
         { echo "$as_me:$LINENO: result: yes" >&5
 echo "${ECHO_T}yes" >&6; }
 
+
 cat >>confdefs.h <<\_ACEOF
 #define BUILD_ECORE_EVAS_SDL_130 1
 _ACEOF
 
-fi
 
+fi
 
 fi
     CFLAGS=$save_CFLAGS
@@ -26901,12 +28550,79 @@ fi
 echo "${ECHO_T}$want_ecore_evas_buffer" >&6; }
 
 if test "x$want_ecore_evas_buffer" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
-  if test -n "$PKG_CONFIG" && \
+
+pkg_failed=no
+{ echo "$as_me:$LINENO: checking for EVAS_SOFTWARE_BUFFER" >&5
+echo $ECHO_N "checking for EVAS_SOFTWARE_BUFFER... $ECHO_C" >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_SOFTWARE_BUFFER_CFLAGS"; then
+        pkg_cv_EVAS_SOFTWARE_BUFFER_CFLAGS="$EVAS_SOFTWARE_BUFFER_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-software-buffer\"") >&5
+  ($PKG_CONFIG --exists --print-errors "evas-software-buffer") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  pkg_cv_EVAS_SOFTWARE_BUFFER_CFLAGS=`$PKG_CONFIG --cflags "evas-software-buffer" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$EVAS_SOFTWARE_BUFFER_LIBS"; then
+        pkg_cv_EVAS_SOFTWARE_BUFFER_LIBS="$EVAS_SOFTWARE_BUFFER_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evas-software-buffer\"") >&5
   ($PKG_CONFIG --exists --print-errors "evas-software-buffer") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
+  pkg_cv_EVAS_SOFTWARE_BUFFER_LIBS=`$PKG_CONFIG --libs "evas-software-buffer" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        EVAS_SOFTWARE_BUFFER_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evas-software-buffer"`
+        else
+	        EVAS_SOFTWARE_BUFFER_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evas-software-buffer"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$EVAS_SOFTWARE_BUFFER_PKG_ERRORS" >&5
+
+	{ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+
+      have_ecore_evas_buffer="no"
+
+elif test $pkg_failed = untried; then
+
+      have_ecore_evas_buffer="no"
+
+else
+	EVAS_SOFTWARE_BUFFER_CFLAGS=$pkg_cv_EVAS_SOFTWARE_BUFFER_CFLAGS
+	EVAS_SOFTWARE_BUFFER_LIBS=$pkg_cv_EVAS_SOFTWARE_BUFFER_LIBS
+        { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
 
 
 cat >>confdefs.h <<\_ACEOF
@@ -26915,7 +28631,6 @@ _ACEOF
 
       have_ecore_evas_buffer="yes"
 
-
 fi
 fi
 
@@ -27155,6 +28870,7 @@ _ACEOF
 
     have_poll="yes"
   fi
+  requirements_ecore_file="$requirements_ecore_file $requirements_ecore_con"
 fi
 
 
@@ -27387,6 +29103,16 @@ fi
 
 
 
+if test $have_ecore_evas_sdl = yes; then
+  BUILD_ECORE_EVAS_SDL_TRUE=
+  BUILD_ECORE_EVAS_SDL_FALSE='#'
+else
+  BUILD_ECORE_EVAS_SDL_TRUE='#'
+  BUILD_ECORE_EVAS_SDL_FALSE=
+fi
+
+
+
 if test $have_ecore_evas_x11 = yes; then
   BUILD_ECORE_EVAS_X11_TRUE=
   BUILD_ECORE_EVAS_X11_FALSE='#'
@@ -27694,6 +29420,13 @@ echo "$as_me: error: conditional \"BUILD_ECORE_X_XCB\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${BUILD_ECORE_EVAS_SDL_TRUE}" && test -z "${BUILD_ECORE_EVAS_SDL_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"BUILD_ECORE_EVAS_SDL\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"BUILD_ECORE_EVAS_SDL\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${BUILD_ECORE_EVAS_X11_TRUE}" && test -z "${BUILD_ECORE_EVAS_X11_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"BUILD_ECORE_EVAS_X11\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -28043,7 +29776,7 @@ exec 6>&1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by ecore $as_me 0.9.9.042, which was
+This file was extended by ecore $as_me 0.9.9.043, which was
 generated by GNU Autoconf 2.61.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -28096,7 +29829,7 @@ Report bugs to <bug-autoconf at gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-ecore config.status 0.9.9.042
+ecore config.status 0.9.9.043
 configured by $0, generated by GNU Autoconf 2.61,
   with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
@@ -28407,7 +30140,7 @@ LN_S!$LN_S$ac_delim
 ECHO!$ECHO$ac_delim
 AR!$AR$ac_delim
 RANLIB!$RANLIB$ac_delim
-DLLTOOL!$DLLTOOL$ac_delim
+DSYMUTIL!$DSYMUTIL$ac_delim
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -28449,6 +30182,8 @@ _ACEOF
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
+NMEDIT!$NMEDIT$ac_delim
+DLLTOOL!$DLLTOOL$ac_delim
 AS!$AS$ac_delim
 OBJDUMP!$OBJDUMP$ac_delim
 CXXCPP!$CXXCPP$ac_delim
@@ -28517,6 +30252,8 @@ XCB_XINERAMA_CFLAGS!$XCB_XINERAMA_CFLAGS$ac_delim
 XCB_XINERAMA_LIBS!$XCB_XINERAMA_LIBS$ac_delim
 XCB_XPRINT_CFLAGS!$XCB_XPRINT_CFLAGS$ac_delim
 XCB_XPRINT_LIBS!$XCB_XPRINT_LIBS$ac_delim
+XCB_XTEST_CFLAGS!$XCB_XTEST_CFLAGS$ac_delim
+XCB_XTEST_LIBS!$XCB_XTEST_LIBS$ac_delim
 have_ecore_x_xcb_define!$have_ecore_x_xcb_define$ac_delim
 XMKMF!$XMKMF$ac_delim
 X_CFLAGS!$X_CFLAGS$ac_delim
@@ -28542,10 +30279,6 @@ XFIXES_CFLAGS!$XFIXES_CFLAGS$ac_delim
 XFIXES_LIBS!$XFIXES_LIBS$ac_delim
 XINERAMA_CFLAGS!$XINERAMA_CFLAGS$ac_delim
 XINERAMA_LIBS!$XINERAMA_LIBS$ac_delim
-XPRINT_CFLAGS!$XPRINT_CFLAGS$ac_delim
-XPRINT_LIBS!$XPRINT_LIBS$ac_delim
-XRANDR_CFLAGS!$XRANDR_CFLAGS$ac_delim
-XRANDR_LIBS!$XRANDR_LIBS$ac_delim
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -28587,13 +30320,35 @@ _ACEOF
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
+XPRINT_CFLAGS!$XPRINT_CFLAGS$ac_delim
+XPRINT_LIBS!$XPRINT_LIBS$ac_delim
+XRANDR_CFLAGS!$XRANDR_CFLAGS$ac_delim
+XRANDR_LIBS!$XRANDR_LIBS$ac_delim
 XRENDER_CFLAGS!$XRENDER_CFLAGS$ac_delim
 XRENDER_LIBS!$XRENDER_LIBS$ac_delim
+XTEST_CFLAGS!$XTEST_CFLAGS$ac_delim
+XTEST_LIBS!$XTEST_LIBS$ac_delim
 XSS_CFLAGS!$XSS_CFLAGS$ac_delim
 XSS_LIBS!$XSS_LIBS$ac_delim
+EVAS_SOFTWARE_X11_CFLAGS!$EVAS_SOFTWARE_X11_CFLAGS$ac_delim
+EVAS_SOFTWARE_X11_LIBS!$EVAS_SOFTWARE_X11_LIBS$ac_delim
+EVAS_OPENGL_X11_CFLAGS!$EVAS_OPENGL_X11_CFLAGS$ac_delim
+EVAS_OPENGL_X11_LIBS!$EVAS_OPENGL_X11_LIBS$ac_delim
+EVAS_XRENDER_X11_CFLAGS!$EVAS_XRENDER_X11_CFLAGS$ac_delim
+EVAS_XRENDER_X11_LIBS!$EVAS_XRENDER_X11_LIBS$ac_delim
+EVAS_SOFTWARE_16_X11_CFLAGS!$EVAS_SOFTWARE_16_X11_CFLAGS$ac_delim
+EVAS_SOFTWARE_16_X11_LIBS!$EVAS_SOFTWARE_16_X11_LIBS$ac_delim
+EVAS_SOFTWARE_DDRAW_CFLAGS!$EVAS_SOFTWARE_DDRAW_CFLAGS$ac_delim
+EVAS_SOFTWARE_DDRAW_LIBS!$EVAS_SOFTWARE_DDRAW_LIBS$ac_delim
 ddraw_libs!$ddraw_libs$ac_delim
+EVAS_SOFTWARE_16_DDRAW_CFLAGS!$EVAS_SOFTWARE_16_DDRAW_CFLAGS$ac_delim
+EVAS_SOFTWARE_16_DDRAW_LIBS!$EVAS_SOFTWARE_16_DDRAW_LIBS$ac_delim
 ddraw_16_libs!$ddraw_16_libs$ac_delim
+EVAS_DIRECT3D_CFLAGS!$EVAS_DIRECT3D_CFLAGS$ac_delim
+EVAS_DIRECT3D_LIBS!$EVAS_DIRECT3D_LIBS$ac_delim
 direct3d_libs!$direct3d_libs$ac_delim
+EVAS_OPENGL_GLEW_CFLAGS!$EVAS_OPENGL_GLEW_CFLAGS$ac_delim
+EVAS_OPENGL_GLEW_LIBS!$EVAS_OPENGL_GLEW_LIBS$ac_delim
 glew_libs!$glew_libs$ac_delim
 BUILD_ECORE_WIN32_TRUE!$BUILD_ECORE_WIN32_TRUE$ac_delim
 BUILD_ECORE_WIN32_FALSE!$BUILD_ECORE_WIN32_FALSE$ac_delim
@@ -28605,17 +30360,26 @@ BUILD_ECORE_DIRECTFB_TRUE!$BUILD_ECORE_DIRECTFB_TRUE$ac_delim
 BUILD_ECORE_DIRECTFB_FALSE!$BUILD_ECORE_DIRECTFB_FALSE$ac_delim
 ecore_directfb_cflags!$ecore_directfb_cflags$ac_delim
 ecore_directfb_libs!$ecore_directfb_libs$ac_delim
+EVAS_DIRECTFB_CFLAGS!$EVAS_DIRECTFB_CFLAGS$ac_delim
+EVAS_DIRECTFB_LIBS!$EVAS_DIRECTFB_LIBS$ac_delim
 BUILD_ECORE_FB_TRUE!$BUILD_ECORE_FB_TRUE$ac_delim
 BUILD_ECORE_FB_FALSE!$BUILD_ECORE_FB_FALSE$ac_delim
 ecore_fb_cflags!$ecore_fb_cflags$ac_delim
 ecore_fb_libs!$ecore_fb_libs$ac_delim
 tslib_libs!$tslib_libs$ac_delim
-SDL_CFLAGS!$SDL_CFLAGS$ac_delim
-SDL_LIBS!$SDL_LIBS$ac_delim
+EVAS_FB_CFLAGS!$EVAS_FB_CFLAGS$ac_delim
+EVAS_FB_LIBS!$EVAS_FB_LIBS$ac_delim
+SDL_CONFIG!$SDL_CONFIG$ac_delim
 BUILD_ECORE_SDL_TRUE!$BUILD_ECORE_SDL_TRUE$ac_delim
 BUILD_ECORE_SDL_FALSE!$BUILD_ECORE_SDL_FALSE$ac_delim
 ecore_sdl_cflags!$ecore_sdl_cflags$ac_delim
 ecore_sdl_libs!$ecore_sdl_libs$ac_delim
+SDL_CFLAGS!$SDL_CFLAGS$ac_delim
+SDL_LIBS!$SDL_LIBS$ac_delim
+EVAS_SOFTWARE_SDL_CFLAGS!$EVAS_SOFTWARE_SDL_CFLAGS$ac_delim
+EVAS_SOFTWARE_SDL_LIBS!$EVAS_SOFTWARE_SDL_LIBS$ac_delim
+EVAS_SOFTWARE_BUFFER_CFLAGS!$EVAS_SOFTWARE_BUFFER_CFLAGS$ac_delim
+EVAS_SOFTWARE_BUFFER_LIBS!$EVAS_SOFTWARE_BUFFER_LIBS$ac_delim
 BUILD_ECORE_FILE_TRUE!$BUILD_ECORE_FILE_TRUE$ac_delim
 BUILD_ECORE_FILE_FALSE!$BUILD_ECORE_FILE_FALSE$ac_delim
 ecore_file_cflags!$ecore_file_cflags$ac_delim
@@ -28646,11 +30410,54 @@ requirements_ecore_x!$requirements_ecore_x$ac_delim
 requirements_ecore_sdl!$requirements_ecore_sdl$ac_delim
 BUILD_ECORE_X_XCB_TRUE!$BUILD_ECORE_X_XCB_TRUE$ac_delim
 BUILD_ECORE_X_XCB_FALSE!$BUILD_ECORE_X_XCB_FALSE$ac_delim
+BUILD_ECORE_EVAS_SDL_TRUE!$BUILD_ECORE_EVAS_SDL_TRUE$ac_delim
+BUILD_ECORE_EVAS_SDL_FALSE!$BUILD_ECORE_EVAS_SDL_FALSE$ac_delim
 BUILD_ECORE_EVAS_X11_TRUE!$BUILD_ECORE_EVAS_X11_TRUE$ac_delim
 BUILD_ECORE_EVAS_X11_FALSE!$BUILD_ECORE_EVAS_X11_FALSE$ac_delim
 BUILD_ECORE_EVAS_X11_GL_TRUE!$BUILD_ECORE_EVAS_X11_GL_TRUE$ac_delim
 BUILD_ECORE_EVAS_X11_GL_FALSE!$BUILD_ECORE_EVAS_X11_GL_FALSE$ac_delim
 BUILD_ECORE_EVAS_XRENDER_TRUE!$BUILD_ECORE_EVAS_XRENDER_TRUE$ac_delim
+_ACEOF
+
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
+    break
+  elif $ac_last_try; then
+    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
+if test -n "$ac_eof"; then
+  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
+  ac_eof=`expr $ac_eof + 1`
+fi
+
+cat >>$CONFIG_STATUS <<_ACEOF
+cat >"\$tmp/subs-3.sed" <<\CEOF$ac_eof
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+_ACEOF
+sed '
+s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
+s/^/s,@/; s/!/@,|#_!!_#|/
+:n
+t n
+s/'"$ac_delim"'$/,g/; t
+s/$/\\/; p
+N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
+' >>$CONFIG_STATUS <conf$$subs.sed
+rm -f conf$$subs.sed
+cat >>$CONFIG_STATUS <<_ACEOF
+CEOF$ac_eof
+_ACEOF
+
+
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  cat >conf$$subs.sed <<_ACEOF
 BUILD_ECORE_EVAS_XRENDER_FALSE!$BUILD_ECORE_EVAS_XRENDER_FALSE$ac_delim
 BUILD_ECORE_EVAS_X11_16_TRUE!$BUILD_ECORE_EVAS_X11_16_TRUE$ac_delim
 BUILD_ECORE_EVAS_X11_16_FALSE!$BUILD_ECORE_EVAS_X11_16_FALSE$ac_delim
@@ -28664,7 +30471,7 @@ LIBOBJS!$LIBOBJS$ac_delim
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 _ACEOF
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 75; then
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 11; then
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
@@ -28682,7 +30489,7 @@ if test -n "$ac_eof"; then
 fi
 
 cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-3.sed" <<\CEOF$ac_eof
+cat >"\$tmp/subs-4.sed" <<\CEOF$ac_eof
 /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
 _ACEOF
 sed '
@@ -28945,7 +30752,7 @@ s&@abs_builddir@&$ac_abs_builddir&;t t
 s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
 s&@INSTALL@&$ac_INSTALL&;t t
 $ac_datarootdir_hack
-" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" | sed -f "$tmp/subs-3.sed" >$tmp/out
+" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" | sed -f "$tmp/subs-3.sed" | sed -f "$tmp/subs-4.sed" >$tmp/out
 
 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
   { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
@@ -29269,9 +31076,9 @@ echo "  Ecore_Txt....................: $have_ecore_txt"
 
 echo "  Ecore_Evas...................: $have_ecore_evas"
 if test "x$have_ecore_x_xcb" = "xyes" ; then
-  echo "  Ecore_X (XCB backend)........: $have_ecore_x_xcb (Xprint: $have_ecore_x_xcb_xprint) (Xinerama: $have_ecore_x_xcb_xinerama) (Xrandr: $have_ecore_x_xcb_randr) (Xscreensaver: $have_ecore_x_xcb_screensaver) (Xshape: $have_ecore_x_xcb_shape) (Xsync: $have_ecore_x_xcb_sync) (Xrender: $have_ecore_x_xcb_render) (Xfixes: $have_ecore_x_xcb_xfixes) (Xcomposite: $have_ecore_x_xcb_composite) (Xdamage: $have_ecore_x_xcb_damage) (Xdpms: $have_ecore_x_xcb_dpms)"
+  echo "  Ecore_X (XCB backend)........: $have_ecore_x_xcb (Xprint: $have_ecore_x_xcb_xprint) (Xinerama: $have_ecore_x_xcb_xinerama) (Xrandr: $have_ecore_x_xcb_randr) (Xscreensaver: $have_ecore_x_xcb_screensaver) (Xshape: $have_ecore_x_xcb_shape) (Xsync: $have_ecore_x_xcb_sync) (Xrender: $have_ecore_x_xcb_render) (Xfixes: $have_ecore_x_xcb_xfixes) (Xcomposite: $have_ecore_x_xcb_composite) (Xdamage: $have_ecore_x_xcb_damage) (Xdpms: $have_ecore_x_xcb_dpms) (Xtest $have_ecore_x_xcb_xtest)"
 else
-  echo "  Ecore_X (Xlib backend).......: $have_ecore_x (Xcursor: $use_Xcursor) (Xprint: $use_xprint) (Xinerama: $use_xinerama) (Xrandr: $use_xrandr) (Xscreensaver: $use_xss) (Xrender: $use_xrender) (Xcomposite: $use_xcomposite) (Xfixes: $use_xfixes) (Xdamage: $use_xdamage) (Xdpms: $use_xdpms)"
+  echo "  Ecore_X (Xlib backend).......: $have_ecore_x (Xcursor: $use_Xcursor) (Xprint: $use_xprint) (Xinerama: $use_xinerama) (Xrandr: $use_xrandr) (Xscreensaver: $use_xss) (Xrender: $use_xrender) (Xcomposite: $use_xcomposite) (Xfixes: $use_xfixes) (Xdamage: $use_xdamage) (Xdpms: $use_xdpms) (Xtest $use_xtest)"
 fi
 echo "  Ecore_Evas X11 Support.......: $have_ecore_evas_x11"
 echo "  Ecore_Evas X11 GL Support....: $have_ecore_evas_x11_gl"
diff --git a/configure.in b/configure.in
index a4ff91a..edb9f47 100644
--- a/configure.in
+++ b/configure.in
@@ -1,7 +1,7 @@
 # get rid of that stupid cache mechanism
 rm -f config.cache
 
-AC_INIT(ecore, 0.9.9.042, enlightenment-devel at lists.sourceforge.net)
+AC_INIT(ecore, 0.9.9.043, enlightenment-devel at lists.sourceforge.net)
 AC_PREREQ(2.52)
 AC_CONFIG_SRCDIR(configure.in)
 AC_CANONICAL_BUILD
@@ -25,6 +25,7 @@ AC_HEADER_SYS_WAIT
 AC_LIBTOOL_WIN32_DLL
 define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
 AC_PROG_LIBTOOL
+AC_DEFINE_UNQUOTED(SHARED_LIB_SUFFIX, "$shrext_cmds", [Suffix for shared objects])
 
 VMAJ=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $1);}'`
 VMIN=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $2);}'`
@@ -51,12 +52,13 @@ requirements_ecore_sdl=""
 
 dnl The first call to PKG_CHECK_MODULES is done conditionally,
 dnl so we should include this here:
+
 PKG_PROG_PKG_CONFIG
 
 dnl check common functions and headers
 AC_CHECK_FUNCS(gettimeofday)
 AC_CHECK_FUNCS(strlcpy)
-AC_CHECK_HEADERS(netinet/in.h)
+AC_CHECK_HEADERS([dlfcn.h features.h langinfo.h locale.h netinet/in.h sys/mman.h sys/time.h windows.h winsock2.h])
 AC_CHECK_LIB(dl, dlopen, dlopen_libs=-ldl)
 AC_SUBST(dlopen_libs)
 
@@ -72,16 +74,15 @@ AC_ARG_ENABLE(openssl,
 )
 
 if test "x$want_openssl" = "xyes"; then
-  PKG_CHECK_MODULES(SSL, openssl,
-    [
-       AC_DEFINE(USE_OPENSSL, 1, [Use OpenSSL])
-       requirements_ecore_con="$requirements_ecore_con openssl"
-       # no need to add it to req_ecore_ipc, since they
-       # depends on ecore_con anyway.
-       have_openssl="yes"
-    ],
-    [ have_openssl="no" ]
-  )
+    PKG_CHECK_MODULES([SSL], [openssl], [
+        AC_DEFINE(USE_OPENSSL, 1, [Use OpenSSL])
+        requirements_ecore_con="$requirements_ecore_con openssl"
+        # no need to add it to req_ecore_ipc, since they
+        # depends on ecore_con anyway.
+        have_openssl="yes"
+    ], [
+        have_openssl="no"
+    ])
 fi
 
 dnl curl
@@ -99,7 +100,6 @@ if test "x$want_curl" = "xyes"; then
   PKG_CHECK_MODULES(CURL, libcurl,
     [
       AC_DEFINE(HAVE_CURL, 1, [ Downloading with CURL ])
-      requirements_ecore_file="$requirements_ecore_file libcurl"
       requirements_ecore_con="$requirements_ecore_con libcurl"
       have_curl="yes"
     ],
@@ -146,7 +146,7 @@ dnl ecore_ipc
 ECORE_CHECK_MODULE([Ipc], [yes], [$have_ecore_con])
 
 dnl ecore_config
-PKG_CHECK_MODULES(EET, [eet >= 0.9.10],
+PKG_CHECK_MODULES(EET, [eet >= 1.0.0],
   [ have_eet="yes" ],
   [ have_eet="no" ]
 )
@@ -283,6 +283,11 @@ if test "x$want_ecore_x_xcb" = "xyes" ; then
       AC_DEFINE(ECORE_XCB_XPRINT, 1, [Build support for XCB xprint]) ],
       [ have_ecore_x_xcb_xprint="no" ])
 
+    PKG_CHECK_MODULES(XCB_XTEST, xcb-xtest,
+      [ have_ecore_x_xcb_xtest="yes"
+      AC_DEFINE(ECORE_XCB_XTEST, 1, [Build support for XCB xtest]) ],
+      [ have_ecore_x_xcb_xtest="no" ])
+
     AC_DEFINE(BUILD_ECORE_X, 1, [Build Ecore_X Module (XCB backend)])
     AC_DEFINE(HAVE_ECORE_X_XCB, 1, [Defined to 1 if XCB backend is enabled.])
 
@@ -324,7 +329,7 @@ if test "x$have_ecore_x_xcb" != "xyes" ; then
     Xcursor_cflags=""
     use_Xcursor="no"
     PCFLAGS=$CFLAGS
-    CFLAGS=$x_cflags" "$x_includes
+    CFLAGS="$x_cflags $x_includes"
     AC_CHECK_HEADER(X11/Xcursor/Xcursor.h,
       [
         AC_CHECK_LIB(Xcursor, XcursorImageLoadCursor,
@@ -365,6 +370,7 @@ if test "x$have_ecore_x_xcb" != "xyes" ; then
     ECORE_CHECK_X_EXTENSION([Xprint], [Print.h], [Xp], [XpQueryScreens])
     ECORE_CHECK_X_EXTENSION([Xrandr], [Xrandr.h], [Xrandr], [XRRSizes])
     ECORE_CHECK_X_EXTENSION([Xrender], [Xrender.h], [Xrender], [XRenderFindVisualFormat])
+    ECORE_CHECK_X_EXTENSION([Xtest], [XTest.h], [Xtst], [XTestFakeKeyEvent])
     ECORE_CHECK_X_EXTENSION([Xss], [scrnsaver.h], [Xss], [XScreenSaverSelectInput])
   fi
 fi
@@ -389,12 +395,12 @@ if test "x$have_ecore_x" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
   AC_MSG_RESULT($want_ecore_evas_x11)
   
   if test "x$want_ecore_evas_x11" = "xyes"; then
-    PKG_CHECK_EXISTS(evas-software-x11,
-      [
+    PKG_CHECK_MODULES(EVAS_SOFTWARE_X11, evas-software-x11, [
         AC_DEFINE(BUILD_ECORE_EVAS_X11, 1, [Support for X11 Engine in Ecore_Evas])
         have_ecore_evas_x11="yes";
-      ]
-    )
+    ], [
+        have_ecore_evas_x11="no";
+    ])
   fi
 
   dnl ecore_evas_x11_gl
@@ -410,12 +416,12 @@ if test "x$have_ecore_x" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
   AC_MSG_RESULT($want_ecore_evas_x11_gl)
   
   if test "x$want_ecore_evas_x11_gl" = "xyes"; then
-    PKG_CHECK_EXISTS(evas-opengl-x11,
-      [
+    PKG_CHECK_MODULES(EVAS_OPENGL_X11, evas-opengl-x11, [
         AC_DEFINE(BUILD_ECORE_EVAS_X11_GL, 1, [Support for GL Engine in Ecore_Evas])
         have_ecore_evas_x11_gl="yes";
-      ]
-    )
+    ], [
+        have_ecore_evas_x11_gl="no"
+    ])
   fi
 
   dnl ecore_evas_xrender
@@ -432,12 +438,12 @@ if test "x$have_ecore_x" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
   AC_MSG_RESULT($want_ecore_evas_xrender)
   
   if test "x$want_ecore_evas_xrender" = "xyes"; then
-    PKG_CHECK_EXISTS(evas-xrender-x11,
-      [
+    PKG_CHECK_MODULES(EVAS_XRENDER_X11, evas-xrender-x11, [
         AC_DEFINE(BUILD_ECORE_EVAS_XRENDER, 1, [Support for XRender Engine in Ecore_Evas])
-        have_ecore_evas_xrender="yes";
-      ]
-    )
+        have_ecore_evas_xrender="yes"
+    ], [
+        have_ecore_evas_xrender="no"
+    ])
   fi
 
   dnl ecore_evas_x11_16
@@ -454,7 +460,7 @@ if test "x$have_ecore_x" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
   AC_MSG_RESULT($want_ecore_evas_x11_16)
   
   if test "x$want_ecore_evas_x11_16" = "xyes"; then
-    PKG_CHECK_EXISTS(evas-software-16-x11,
+    PKG_CHECK_MODULES(EVAS_SOFTWARE_16_X11, evas-software-16-x11,
       [
         AC_DEFINE(BUILD_ECORE_EVAS_X11_16, 1, [Support for X11 16bpp Engine in Ecore_Evas])
         have_ecore_evas_x11_16="yes";
@@ -472,44 +478,36 @@ fi
 dnl ecore_win32
 # TODO: We should first check if we have win32 available before checking for win32 evas
 # TODO: Need to check if we have evas before testing win32 evas engines
-AC_MSG_CHECKING(for Evas Software DirectDraw engine)
-PKG_CHECK_EXISTS(evas-software-ddraw >= 0.9.9.41,
+PKG_CHECK_MODULES(EVAS_SOFTWARE_DDRAW, evas-software-ddraw >= 0.9.9.41,
   [ have_ddraw="yes"
     AC_DEFINE(HAVE_DIRECTDRAW, 1, [Build Ecore_Win32 with DirectDraw Code])
     ddraw_libs="-lddraw -ldxguid" ],
   [ have_ddraw="no" ]
 )
-AC_MSG_RESULT($have_ddraw)
 AC_SUBST(ddraw_libs)
 
-AC_MSG_CHECKING(for Evas 16bpp Software DirectDraw engine)
-PKG_CHECK_EXISTS(evas-software-16-ddraw >= 0.9.9.41,
+PKG_CHECK_MODULES(EVAS_SOFTWARE_16_DDRAW, evas-software-16-ddraw >= 0.9.9.41,
   [ have_ddraw_16="yes"
     AC_DEFINE(HAVE_DIRECTDRAW_16, 1, [Build Ecore_Win32 with 16 bpp DirectDraw Code])
     ddraw_16_libs="-lddraw -ldxguid" ],
   [ have_ddraw_16="no" ]
 )
-AC_MSG_RESULT($have_ddraw_16)
 AC_SUBST(ddraw_16_libs)
 
-AC_MSG_CHECKING(for Evas Direct3D engine)
-PKG_CHECK_EXISTS(evas-direct3d >= 0.9.9.41,
+PKG_CHECK_MODULES(EVAS_DIRECT3D, evas-direct3d >= 0.9.9.41,
   [ have_direct3d="yes"
     AC_DEFINE(HAVE_DIRECT3D, 1, [Build Ecore_Win32 with Direct3D Code])
     direct3d_libs="-ld3d9 -ld3dx9d" ],
   [ have_direct3d="no" ]
 )
-AC_MSG_RESULT($have_direct3d)
 AC_SUBST(direct3d_libs)
 
-AC_MSG_CHECKING(for Evas OpenGL Glew engine)
-PKG_CHECK_EXISTS(evas-opengl-glew >= 0.9.9.41,
+PKG_CHECK_MODULES(EVAS_OPENGL_GLEW, evas-opengl-glew >= 0.9.9.41,
   [ have_opengl_glew="yes"
     AC_DEFINE(HAVE_OPENGL_GLEW, 1, [Build Ecore_Win32 with OpenGL Glew Code])
     glew_libs="-lglew32 -lgdi32" ],
   [ have_opengl_glew="no" ]
 )
-AC_MSG_RESULT($have_opengl_glew)
 AC_SUBST(glew_libs)
 
 have_win32="no"
@@ -559,7 +557,7 @@ if test "x$have_ecore_directfb" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
   if test "x$want_ecore_evas_dfb" = "xyes" -a "x$have_ecore_directfb" = "xyes" ; then
     save_CFLAGS="$CFLAGS"
     CFLAGS="$CFLAGS $DIRECTFB_CFLAGS"
-    PKG_CHECK_EXISTS(evas-directfb,
+    PKG_CHECK_MODULES(EVAS_DIRECTFB, evas-directfb,
       [
         AC_DEFINE(BUILD_ECORE_EVAS_DIRECTFB, 1, [Support for DirectFB in Ecore_Evas])
         have_ecore_evas_dfb="yes"
@@ -600,7 +598,7 @@ if test "x$have_ecore_fb" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
   AC_MSG_RESULT($want_ecore_evas_fb)
   
   if test "x$want_ecore_evas_fb" = "xyes"; then
-    PKG_CHECK_EXISTS(evas-framebuffer,
+    PKG_CHECK_MODULES(EVAS_FB, evas-fb,
       [
         AC_DEFINE(BUILD_ECORE_EVAS_FB, 1, [Support for Linux FB in Ecore_Evas])
         have_ecore_evas_fb="yes"
@@ -611,36 +609,54 @@ if test "x$have_ecore_fb" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
 fi
 
 dnl ecore_sdl
-PKG_CHECK_MODULES(SDL, sdl >= 1.2.0,
-    [ have_sdl="yes" ],
-    [ have_sdl="no" ])
+AC_ARG_WITH(sdl-config, AC_HELP_STRING([--with-sdl-config=PATH], [use sdl-config specified]), [
+    SDL_CONFIG=$withval;
+    echo "using "$SDL_CONFIG" for sdl-config";
+], [
+    if test -z "$SDL_CONFIG"; then
+        AC_PATH_PROG(SDL_CONFIG, "sdl-config", "", $PATH)
+    fi
+])
+if test -z "$SDL_CONFIG" ; then SDL_CONFIG="sdl-config"; fi
+
+sdl_cflags="";
+sdl_libs="";
+have_sdl="no"
+AC_CHECK_HEADER(SDL/SDL.h, [ have_sdl="yes" ], [ have_sdl="no" ])
 
 ECORE_CHECK_MODULE([SDL], [no], [$have_sdl])
 
 dnl ecore_evas_sdl
 have_ecore_evas_sdl="no";
-if test "x$have_sdl" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
-  want_ecore_evas_sdl="yes";
-  AC_MSG_CHECKING(whether ecore_evas sdl support is to be built)
-  AC_ARG_ENABLE(ecore-evas-sdl,
-    AC_HELP_STRING([--disable-ecore-evas-sdl], [disable sdl in the ecore_evas module]),
-    [ want_ecore_evas_sdl=$enableval ]
-  )
-  AC_MSG_RESULT($want_ecore_evas_sdl)
-  
-  if test "x$want_ecore_evas_sdl" = "xyes"; then
-    save_CFLAGS=$CFLAGS
-    CFLAGS="$CFLAGS $SDL_CFLAGS"
-    PKG_CHECK_EXISTS(evas-software-sdl,
-      [
-        AC_DEFINE(BUILD_ECORE_EVAS_SDL, 1, [Support for SDL in Ecore_Evas])
-        have_ecore_evas_sdl="yes"
-        requirements_ecore_evas="$requirements_ecore_evas ecore-sdl"
-        PKG_CHECK_MODULES(SDL, sdl >= 1.3.0,
-          [ AC_DEFINE(BUILD_ECORE_EVAS_SDL_130, 1, [Support for SVN SDL]) ],
-	  [ dummy="no" ])
-      ]
+if test "x$have_ecore_sdl" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
+    want_ecore_evas_sdl="yes";
+    AC_MSG_CHECKING([whether ecore_evas SDL support is to be built])
+    AC_ARG_ENABLE(ecore-evas-sdl,
+        AC_HELP_STRING([--disable-ecore-evas-sdl], [disable SDL in the ecore_evas module]),
+        [ want_ecore_evas_sdl=$enableval ]
     )
+    AC_MSG_RESULT($want_ecore_evas_sdl)
+  
+    if test "x$want_ecore_evas_sdl" = "xyes"; then
+        save_CFLAGS=$CFLAGS
+        SDL_CFLAGS=`$SDL_CONFIG --cflags`
+        SDL_LIBS=`$SDL_CONFIG --libs`
+        CFLAGS="$CFLAGS $SDL_CFLAGS"
+        AC_SUBST(SDL_CFLAGS)
+        AC_SUBST(SDL_LIBS)
+
+        PKG_CHECK_MODULES(EVAS_SOFTWARE_SDL, evas-software-sdl, [
+            AC_DEFINE(BUILD_ECORE_EVAS_SDL, 1, [Support for SDL in Ecore_Evas])
+            have_ecore_evas_sdl="yes"
+            requirements_ecore_evas="$requirements_ecore_evas ecore-sdl"
+            PKG_CHECK_MODULES(SDL, sdl >= 1.3.0, [
+                AC_DEFINE(BUILD_ECORE_EVAS_SDL_130, 1, [Support for SVN SDL])
+            ], [
+                dummy="no"
+            ])
+        ], [
+            have_ecore_evas_sdl="no"
+        ])
     CFLAGS=$save_CFLAGS
   fi
 fi
@@ -656,12 +672,13 @@ AC_ARG_ENABLE(ecore-evas-buffer,
 AC_MSG_RESULT($want_ecore_evas_buffer)
 
 if test "x$want_ecore_evas_buffer" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
-  PKG_CHECK_EXISTS(evas-software-buffer,
+  PKG_CHECK_MODULES(EVAS_SOFTWARE_BUFFER, evas-software-buffer,
     [
       AC_DEFINE(BUILD_ECORE_EVAS_BUFFER, 1, [Support for Buffers in Ecore_Evas])
       have_ecore_evas_buffer="yes"
-    ]
-  )
+    ], [
+      have_ecore_evas_buffer="no"
+  ])
 fi
 
 dnl ecore_file
@@ -720,6 +737,7 @@ if test "x$have_ecore_file" = "xyes"; then
     AC_DEFINE(HAVE_POLL, 1, [ File monitoring with polling ])
     have_poll="yes"
   fi
+  requirements_ecore_file="$requirements_ecore_file $requirements_ecore_con"
 fi
 
 dnl ecore_desktop
@@ -753,6 +771,7 @@ AC_SUBST(requirements_ecore_sdl)
 # set up conditionals
 AM_CONDITIONAL(BUILD_ECORE_X, test $have_ecore_x = yes -a $have_ecore_x_xcb = no)
 AM_CONDITIONAL(BUILD_ECORE_X_XCB, test $have_ecore_x_xcb = yes)
+AM_CONDITIONAL(BUILD_ECORE_EVAS_SDL, test $have_ecore_evas_sdl = yes)
 AM_CONDITIONAL(BUILD_ECORE_EVAS_X11, test $have_ecore_evas_x11 = yes)
 AM_CONDITIONAL(BUILD_ECORE_EVAS_X11_GL, test $have_ecore_evas_x11_gl = yes)
 AM_CONDITIONAL(BUILD_ECORE_EVAS_XRENDER, test $have_ecore_evas_xrender = yes)
@@ -815,9 +834,9 @@ echo "  Ecore_Txt....................: $have_ecore_txt"
 
 echo "  Ecore_Evas...................: $have_ecore_evas"
 if test "x$have_ecore_x_xcb" = "xyes" ; then
-  echo "  Ecore_X (XCB backend)........: $have_ecore_x_xcb (Xprint: $have_ecore_x_xcb_xprint) (Xinerama: $have_ecore_x_xcb_xinerama) (Xrandr: $have_ecore_x_xcb_randr) (Xscreensaver: $have_ecore_x_xcb_screensaver) (Xshape: $have_ecore_x_xcb_shape) (Xsync: $have_ecore_x_xcb_sync) (Xrender: $have_ecore_x_xcb_render) (Xfixes: $have_ecore_x_xcb_xfixes) (Xcomposite: $have_ecore_x_xcb_composite) (Xdamage: $have_ecore_x_xcb_damage) (Xdpms: $have_ecore_x_xcb_dpms)"
+  echo "  Ecore_X (XCB backend)........: $have_ecore_x_xcb (Xprint: $have_ecore_x_xcb_xprint) (Xinerama: $have_ecore_x_xcb_xinerama) (Xrandr: $have_ecore_x_xcb_randr) (Xscreensaver: $have_ecore_x_xcb_screensaver) (Xshape: $have_ecore_x_xcb_shape) (Xsync: $have_ecore_x_xcb_sync) (Xrender: $have_ecore_x_xcb_render) (Xfixes: $have_ecore_x_xcb_xfixes) (Xcomposite: $have_ecore_x_xcb_composite) (Xdamage: $have_ecore_x_xcb_damage) (Xdpms: $have_ecore_x_xcb_dpms) (Xtest $have_ecore_x_xcb_xtest)"
 else
-  echo "  Ecore_X (Xlib backend).......: $have_ecore_x (Xcursor: $use_Xcursor) (Xprint: $use_xprint) (Xinerama: $use_xinerama) (Xrandr: $use_xrandr) (Xscreensaver: $use_xss) (Xrender: $use_xrender) (Xcomposite: $use_xcomposite) (Xfixes: $use_xfixes) (Xdamage: $use_xdamage) (Xdpms: $use_xdpms)"
+  echo "  Ecore_X (Xlib backend).......: $have_ecore_x (Xcursor: $use_Xcursor) (Xprint: $use_xprint) (Xinerama: $use_xinerama) (Xrandr: $use_xrandr) (Xscreensaver: $use_xss) (Xrender: $use_xrender) (Xcomposite: $use_xcomposite) (Xfixes: $use_xfixes) (Xdamage: $use_xdamage) (Xdpms: $use_xdpms) (Xtest $use_xtest)"
 fi
 echo "  Ecore_Evas X11 Support.......: $have_ecore_evas_x11"
 echo "  Ecore_Evas X11 GL Support....: $have_ecore_evas_x11_gl"
diff --git a/ecore-evas.pc.in b/ecore-evas.pc.in
index 7c9a487..164b863 100644
--- a/ecore-evas.pc.in
+++ b/ecore-evas.pc.in
@@ -7,5 +7,5 @@ Name: ecore-evas
 Description: E core library, Evas module
 Requires: ecore @requirements_ecore_evas@
 Version: @VERSION@
-Libs: -L${libdir} @ecore_evas_libs@
+Libs: -L${libdir} -lecore_evas @ecore_evas_libs@
 Cflags: -I${includedir}
diff --git a/ecore.spec b/ecore.spec
index 0004e17..00bd7e8 100644
--- a/ecore.spec
+++ b/ecore.spec
@@ -35,7 +35,7 @@
 
 Summary: Enlightened Core X interface library
 Name: ecore
-Version: 0.9.9.042
+Version: 0.9.9.043
 Release: 0.%(date '+%Y%m%d')
 License: BSD
 Group: User Interface/X
diff --git a/ltmain.sh b/ltmain.sh
index 2160ef7..e420fac 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -2,7 +2,7 @@
 # NOTE: Changing this file will not affect anything until you rerun configure.
 #
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
-# 2007  Free Software Foundation, Inc.
+# 2007, 2008  Free Software Foundation, Inc.
 # Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
 #
 # This program is free software; you can redistribute it and/or modify
@@ -43,8 +43,8 @@ EXIT_FAILURE=1
 
 PROGRAM=ltmain.sh
 PACKAGE=libtool
-VERSION="1.5.24 Debian 1.5.24-1ubuntu1"
-TIMESTAMP=" (1.1220.2.456 2007/06/24 02:25:32)"
+VERSION="1.5.26 Debian 1.5.26-1ubuntu1"
+TIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)"
 
 # Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
@@ -113,15 +113,21 @@ esac
 # These must not be set unconditionally because not all systems understand
 # e.g. LANG=C (notably SCO).
 # We save the old values to restore during execute mode.
-for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+lt_env=
+for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
 do
   eval "if test \"\${$lt_var+set}\" = set; then
 	  save_$lt_var=\$$lt_var
+	  lt_env=\"$lt_var=\$$lt_var \$lt_env\"
 	  $lt_var=C
 	  export $lt_var
 	fi"
 done
 
+if test -n "$lt_env"; then
+  lt_env="env $lt_env"
+fi
+
 # Make sure IFS has a sensible default
 lt_nl='
 '
@@ -485,7 +491,7 @@ do
     echo "\
 $PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP
 
-Copyright (C) 2007  Free Software Foundation, Inc.
+Copyright (C) 2008  Free Software Foundation, Inc.
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
     exit $?
@@ -788,6 +794,7 @@ if test -z "$show_help"; then
     *.for) xform=for ;;
     *.java) xform=java ;;
     *.obj) xform=obj ;;
+    *.sx) xform=sx ;;
     esac
 
     libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
@@ -956,7 +963,7 @@ EOF
       $run $rm "$lobj" "$output_obj"
 
       $show "$command"
-      if $run eval "$command"; then :
+      if $run eval $lt_env "$command"; then :
       else
 	test -n "$output_obj" && $run $rm $removelist
 	exit $EXIT_FAILURE
@@ -1028,7 +1035,7 @@ EOF
       command="$command$suppress_output"
       $run $rm "$obj" "$output_obj"
       $show "$command"
-      if $run eval "$command"; then :
+      if $run eval $lt_env "$command"; then :
       else
 	$run $rm $removelist
 	exit $EXIT_FAILURE
@@ -1161,6 +1168,7 @@ EOF
     thread_safe=no
     vinfo=
     vinfo_number=no
+    single_module="${wl}-single_module"
 
     func_infer_tag $base_compile
 
@@ -1646,6 +1654,11 @@ EOF
 	continue
 	;;
 
+      -multi_module)
+	single_module="${wl}-multi_module"
+	continue
+	;;
+
       -module)
 	module=yes
 	continue
@@ -2152,7 +2165,12 @@ EOF
 	    continue
 	  fi
 	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
-	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
+	  if test "$linkmode" = lib; then
+	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
+	  else
+	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
+	  fi
+	  for searchdir in $searchdirs; do
 	    for search_ext in .la $std_shrext .so .a; do
 	      # Search the libtool library
 	      lib="$searchdir/lib${name}${search_ext}"
@@ -2948,12 +2966,18 @@ EOF
 		  # we do not want to link against static libs,
 		  # but need to link against shared
 		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+		  eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
 		  if test -n "$deplibrary_names" ; then
 		    for tmp in $deplibrary_names ; do
 		      depdepl=$tmp
 		    done
-		    if test -f "$path/$depdepl" ; then
+		    if test -f "$deplibdir/$depdepl" ; then
+		      depdepl="$deplibdir/$depdepl"
+	      	    elif test -f "$path/$depdepl" ; then
 		      depdepl="$path/$depdepl"
+		    else
+		      # Can't find it, oh well...
+		      depdepl=
 		    fi
 		    # do not add paths which are already there
 		    case " $newlib_search_path " in
@@ -3101,9 +3125,10 @@ EOF
 
     case $linkmode in
     oldlib)
-      if test -n "$deplibs"; then
-	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
-      fi
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;;
+      esac
 
       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
@@ -4245,9 +4270,10 @@ EOF
       ;;
 
     obj)
-      if test -n "$deplibs"; then
-	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
-      fi
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;;
+      esac
 
       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
@@ -6486,7 +6512,7 @@ relink_command=\"$relink_command\""
       fi
 
       # Restore saved environment variables
-      for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
       do
 	eval "if test \"\${save_$lt_var+set}\" = set; then
 		$lt_var=\$save_$lt_var; export $lt_var
diff --git a/src/Makefile.in b/src/Makefile.in
index e240c9a..9062b83 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -84,6 +84,8 @@ BUILD_ECORE_EVAS_DIRECTFB_TRUE = @BUILD_ECORE_EVAS_DIRECTFB_TRUE@
 BUILD_ECORE_EVAS_FALSE = @BUILD_ECORE_EVAS_FALSE@
 BUILD_ECORE_EVAS_FB_FALSE = @BUILD_ECORE_EVAS_FB_FALSE@
 BUILD_ECORE_EVAS_FB_TRUE = @BUILD_ECORE_EVAS_FB_TRUE@
+BUILD_ECORE_EVAS_SDL_FALSE = @BUILD_ECORE_EVAS_SDL_FALSE@
+BUILD_ECORE_EVAS_SDL_TRUE = @BUILD_ECORE_EVAS_SDL_TRUE@
 BUILD_ECORE_EVAS_TRUE = @BUILD_ECORE_EVAS_TRUE@
 BUILD_ECORE_EVAS_X11_16_FALSE = @BUILD_ECORE_EVAS_X11_16_FALSE@
 BUILD_ECORE_EVAS_X11_16_TRUE = @BUILD_ECORE_EVAS_X11_16_TRUE@
@@ -132,6 +134,7 @@ DEPDIR = @DEPDIR@
 DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
 DIRECTFB_LIBS = @DIRECTFB_LIBS@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -140,7 +143,31 @@ EET_CFLAGS = @EET_CFLAGS@
 EET_LIBS = @EET_LIBS@
 EGREP = @EGREP@
 EVAS_CFLAGS = @EVAS_CFLAGS@
+EVAS_DIRECT3D_CFLAGS = @EVAS_DIRECT3D_CFLAGS@
+EVAS_DIRECT3D_LIBS = @EVAS_DIRECT3D_LIBS@
+EVAS_DIRECTFB_CFLAGS = @EVAS_DIRECTFB_CFLAGS@
+EVAS_DIRECTFB_LIBS = @EVAS_DIRECTFB_LIBS@
+EVAS_FB_CFLAGS = @EVAS_FB_CFLAGS@
+EVAS_FB_LIBS = @EVAS_FB_LIBS@
 EVAS_LIBS = @EVAS_LIBS@
+EVAS_OPENGL_GLEW_CFLAGS = @EVAS_OPENGL_GLEW_CFLAGS@
+EVAS_OPENGL_GLEW_LIBS = @EVAS_OPENGL_GLEW_LIBS@
+EVAS_OPENGL_X11_CFLAGS = @EVAS_OPENGL_X11_CFLAGS@
+EVAS_OPENGL_X11_LIBS = @EVAS_OPENGL_X11_LIBS@
+EVAS_SOFTWARE_16_DDRAW_CFLAGS = @EVAS_SOFTWARE_16_DDRAW_CFLAGS@
+EVAS_SOFTWARE_16_DDRAW_LIBS = @EVAS_SOFTWARE_16_DDRAW_LIBS@
+EVAS_SOFTWARE_16_X11_CFLAGS = @EVAS_SOFTWARE_16_X11_CFLAGS@
+EVAS_SOFTWARE_16_X11_LIBS = @EVAS_SOFTWARE_16_X11_LIBS@
+EVAS_SOFTWARE_BUFFER_CFLAGS = @EVAS_SOFTWARE_BUFFER_CFLAGS@
+EVAS_SOFTWARE_BUFFER_LIBS = @EVAS_SOFTWARE_BUFFER_LIBS@
+EVAS_SOFTWARE_DDRAW_CFLAGS = @EVAS_SOFTWARE_DDRAW_CFLAGS@
+EVAS_SOFTWARE_DDRAW_LIBS = @EVAS_SOFTWARE_DDRAW_LIBS@
+EVAS_SOFTWARE_SDL_CFLAGS = @EVAS_SOFTWARE_SDL_CFLAGS@
+EVAS_SOFTWARE_SDL_LIBS = @EVAS_SOFTWARE_SDL_LIBS@
+EVAS_SOFTWARE_X11_CFLAGS = @EVAS_SOFTWARE_X11_CFLAGS@
+EVAS_SOFTWARE_X11_LIBS = @EVAS_SOFTWARE_X11_LIBS@
+EVAS_XRENDER_X11_CFLAGS = @EVAS_XRENDER_X11_CFLAGS@
+EVAS_XRENDER_X11_LIBS = @EVAS_XRENDER_X11_LIBS@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
@@ -154,6 +181,7 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -166,6 +194,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
 SDL_LIBS = @SDL_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -198,6 +227,8 @@ XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
 XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
 XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
 XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
+XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
+XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
 XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
 XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
 XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
@@ -217,6 +248,8 @@ XRENDER_CFLAGS = @XRENDER_CFLAGS@
 XRENDER_LIBS = @XRENDER_LIBS@
 XSS_CFLAGS = @XSS_CFLAGS@
 XSS_LIBS = @XSS_LIBS@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
 X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
diff --git a/src/bin/Makefile.in b/src/bin/Makefile.in
index ccd0d29..874603a 100644
--- a/src/bin/Makefile.in
+++ b/src/bin/Makefile.in
@@ -97,6 +97,8 @@ BUILD_ECORE_EVAS_DIRECTFB_TRUE = @BUILD_ECORE_EVAS_DIRECTFB_TRUE@
 BUILD_ECORE_EVAS_FALSE = @BUILD_ECORE_EVAS_FALSE@
 BUILD_ECORE_EVAS_FB_FALSE = @BUILD_ECORE_EVAS_FB_FALSE@
 BUILD_ECORE_EVAS_FB_TRUE = @BUILD_ECORE_EVAS_FB_TRUE@
+BUILD_ECORE_EVAS_SDL_FALSE = @BUILD_ECORE_EVAS_SDL_FALSE@
+BUILD_ECORE_EVAS_SDL_TRUE = @BUILD_ECORE_EVAS_SDL_TRUE@
 BUILD_ECORE_EVAS_TRUE = @BUILD_ECORE_EVAS_TRUE@
 BUILD_ECORE_EVAS_X11_16_FALSE = @BUILD_ECORE_EVAS_X11_16_FALSE@
 BUILD_ECORE_EVAS_X11_16_TRUE = @BUILD_ECORE_EVAS_X11_16_TRUE@
@@ -145,6 +147,7 @@ DEPDIR = @DEPDIR@
 DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
 DIRECTFB_LIBS = @DIRECTFB_LIBS@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -153,7 +156,31 @@ EET_CFLAGS = @EET_CFLAGS@
 EET_LIBS = @EET_LIBS@
 EGREP = @EGREP@
 EVAS_CFLAGS = @EVAS_CFLAGS@
+EVAS_DIRECT3D_CFLAGS = @EVAS_DIRECT3D_CFLAGS@
+EVAS_DIRECT3D_LIBS = @EVAS_DIRECT3D_LIBS@
+EVAS_DIRECTFB_CFLAGS = @EVAS_DIRECTFB_CFLAGS@
+EVAS_DIRECTFB_LIBS = @EVAS_DIRECTFB_LIBS@
+EVAS_FB_CFLAGS = @EVAS_FB_CFLAGS@
+EVAS_FB_LIBS = @EVAS_FB_LIBS@
 EVAS_LIBS = @EVAS_LIBS@
+EVAS_OPENGL_GLEW_CFLAGS = @EVAS_OPENGL_GLEW_CFLAGS@
+EVAS_OPENGL_GLEW_LIBS = @EVAS_OPENGL_GLEW_LIBS@
+EVAS_OPENGL_X11_CFLAGS = @EVAS_OPENGL_X11_CFLAGS@
+EVAS_OPENGL_X11_LIBS = @EVAS_OPENGL_X11_LIBS@
+EVAS_SOFTWARE_16_DDRAW_CFLAGS = @EVAS_SOFTWARE_16_DDRAW_CFLAGS@
+EVAS_SOFTWARE_16_DDRAW_LIBS = @EVAS_SOFTWARE_16_DDRAW_LIBS@
+EVAS_SOFTWARE_16_X11_CFLAGS = @EVAS_SOFTWARE_16_X11_CFLAGS@
+EVAS_SOFTWARE_16_X11_LIBS = @EVAS_SOFTWARE_16_X11_LIBS@
+EVAS_SOFTWARE_BUFFER_CFLAGS = @EVAS_SOFTWARE_BUFFER_CFLAGS@
+EVAS_SOFTWARE_BUFFER_LIBS = @EVAS_SOFTWARE_BUFFER_LIBS@
+EVAS_SOFTWARE_DDRAW_CFLAGS = @EVAS_SOFTWARE_DDRAW_CFLAGS@
+EVAS_SOFTWARE_DDRAW_LIBS = @EVAS_SOFTWARE_DDRAW_LIBS@
+EVAS_SOFTWARE_SDL_CFLAGS = @EVAS_SOFTWARE_SDL_CFLAGS@
+EVAS_SOFTWARE_SDL_LIBS = @EVAS_SOFTWARE_SDL_LIBS@
+EVAS_SOFTWARE_X11_CFLAGS = @EVAS_SOFTWARE_X11_CFLAGS@
+EVAS_SOFTWARE_X11_LIBS = @EVAS_SOFTWARE_X11_LIBS@
+EVAS_XRENDER_X11_CFLAGS = @EVAS_XRENDER_X11_CFLAGS@
+EVAS_XRENDER_X11_LIBS = @EVAS_XRENDER_X11_LIBS@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
@@ -167,6 +194,7 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -179,6 +207,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
 SDL_LIBS = @SDL_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -211,6 +240,8 @@ XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
 XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
 XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
 XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
+XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
+XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
 XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
 XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
 XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
@@ -230,6 +261,8 @@ XRENDER_CFLAGS = @XRENDER_CFLAGS@
 XRENDER_LIBS = @XRENDER_LIBS@
 XSS_CFLAGS = @XSS_CFLAGS@
 XSS_LIBS = @XSS_LIBS@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
 X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
diff --git a/src/lib/Makefile.in b/src/lib/Makefile.in
index ffbe401..895d026 100644
--- a/src/lib/Makefile.in
+++ b/src/lib/Makefile.in
@@ -84,6 +84,8 @@ BUILD_ECORE_EVAS_DIRECTFB_TRUE = @BUILD_ECORE_EVAS_DIRECTFB_TRUE@
 BUILD_ECORE_EVAS_FALSE = @BUILD_ECORE_EVAS_FALSE@
 BUILD_ECORE_EVAS_FB_FALSE = @BUILD_ECORE_EVAS_FB_FALSE@
 BUILD_ECORE_EVAS_FB_TRUE = @BUILD_ECORE_EVAS_FB_TRUE@
+BUILD_ECORE_EVAS_SDL_FALSE = @BUILD_ECORE_EVAS_SDL_FALSE@
+BUILD_ECORE_EVAS_SDL_TRUE = @BUILD_ECORE_EVAS_SDL_TRUE@
 BUILD_ECORE_EVAS_TRUE = @BUILD_ECORE_EVAS_TRUE@
 BUILD_ECORE_EVAS_X11_16_FALSE = @BUILD_ECORE_EVAS_X11_16_FALSE@
 BUILD_ECORE_EVAS_X11_16_TRUE = @BUILD_ECORE_EVAS_X11_16_TRUE@
@@ -132,6 +134,7 @@ DEPDIR = @DEPDIR@
 DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
 DIRECTFB_LIBS = @DIRECTFB_LIBS@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -140,7 +143,31 @@ EET_CFLAGS = @EET_CFLAGS@
 EET_LIBS = @EET_LIBS@
 EGREP = @EGREP@
 EVAS_CFLAGS = @EVAS_CFLAGS@
+EVAS_DIRECT3D_CFLAGS = @EVAS_DIRECT3D_CFLAGS@
+EVAS_DIRECT3D_LIBS = @EVAS_DIRECT3D_LIBS@
+EVAS_DIRECTFB_CFLAGS = @EVAS_DIRECTFB_CFLAGS@
+EVAS_DIRECTFB_LIBS = @EVAS_DIRECTFB_LIBS@
+EVAS_FB_CFLAGS = @EVAS_FB_CFLAGS@
+EVAS_FB_LIBS = @EVAS_FB_LIBS@
 EVAS_LIBS = @EVAS_LIBS@
+EVAS_OPENGL_GLEW_CFLAGS = @EVAS_OPENGL_GLEW_CFLAGS@
+EVAS_OPENGL_GLEW_LIBS = @EVAS_OPENGL_GLEW_LIBS@
+EVAS_OPENGL_X11_CFLAGS = @EVAS_OPENGL_X11_CFLAGS@
+EVAS_OPENGL_X11_LIBS = @EVAS_OPENGL_X11_LIBS@
+EVAS_SOFTWARE_16_DDRAW_CFLAGS = @EVAS_SOFTWARE_16_DDRAW_CFLAGS@
+EVAS_SOFTWARE_16_DDRAW_LIBS = @EVAS_SOFTWARE_16_DDRAW_LIBS@
+EVAS_SOFTWARE_16_X11_CFLAGS = @EVAS_SOFTWARE_16_X11_CFLAGS@
+EVAS_SOFTWARE_16_X11_LIBS = @EVAS_SOFTWARE_16_X11_LIBS@
+EVAS_SOFTWARE_BUFFER_CFLAGS = @EVAS_SOFTWARE_BUFFER_CFLAGS@
+EVAS_SOFTWARE_BUFFER_LIBS = @EVAS_SOFTWARE_BUFFER_LIBS@
+EVAS_SOFTWARE_DDRAW_CFLAGS = @EVAS_SOFTWARE_DDRAW_CFLAGS@
+EVAS_SOFTWARE_DDRAW_LIBS = @EVAS_SOFTWARE_DDRAW_LIBS@
+EVAS_SOFTWARE_SDL_CFLAGS = @EVAS_SOFTWARE_SDL_CFLAGS@
+EVAS_SOFTWARE_SDL_LIBS = @EVAS_SOFTWARE_SDL_LIBS@
+EVAS_SOFTWARE_X11_CFLAGS = @EVAS_SOFTWARE_X11_CFLAGS@
+EVAS_SOFTWARE_X11_LIBS = @EVAS_SOFTWARE_X11_LIBS@
+EVAS_XRENDER_X11_CFLAGS = @EVAS_XRENDER_X11_CFLAGS@
+EVAS_XRENDER_X11_LIBS = @EVAS_XRENDER_X11_LIBS@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
@@ -154,6 +181,7 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -166,6 +194,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
 SDL_LIBS = @SDL_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -198,6 +227,8 @@ XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
 XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
 XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
 XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
+XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
+XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
 XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
 XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
 XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
@@ -217,6 +248,8 @@ XRENDER_CFLAGS = @XRENDER_CFLAGS@
 XRENDER_LIBS = @XRENDER_LIBS@
 XSS_CFLAGS = @XSS_CFLAGS@
 XSS_LIBS = @XSS_LIBS@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
 X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
diff --git a/src/lib/ecore/Ecore.h b/src/lib/ecore/Ecore.h
index 20870bf..834f4c2 100644
--- a/src/lib/ecore/Ecore.h
+++ b/src/lib/ecore/Ecore.h
@@ -61,6 +61,9 @@
 extern "C" {
 #endif
 
+#define ECORE_CALLBACK_CANCEL 0 /**< Return value to remove a callback */
+#define ECORE_CALLBACK_RENEW 1  /**< Return value to keep a callback */ 
+
 #define ECORE_EVENT_NONE            0
 #define ECORE_EVENT_SIGNAL_USER     1 /**< User signal event */
 #define ECORE_EVENT_SIGNAL_HUP      2 /**< Hup signal event */
@@ -92,7 +95,8 @@ extern "C" {
 	ECORE_EXE_PIPE_ERROR_LINE_BUFFERED = 16, /**< Errors are buffered until a newline and delivered 1 event per line */
 	ECORE_EXE_PIPE_AUTO = 32, /**< stdout and stderr are buffered automatically */
 	ECORE_EXE_RESPAWN = 64, /**< FIXME: Exe is restarted if it dies */
-	ECORE_EXE_USE_SH = 128 /**< Use /bin/sh to run the command. */
+	ECORE_EXE_USE_SH = 128, /**< Use /bin/sh to run the command. */
+	ECORE_EXE_NOT_LEADER = 256 /**< Do not use setsid() to have the executed process be its own session leader */
      };
    typedef enum _Ecore_Exe_Flags Ecore_Exe_Flags;
 
@@ -126,9 +130,6 @@ extern "C" {
    typedef struct _Ecore_Exe_Event_Data_Line   Ecore_Exe_Event_Data_Line; /**< Lines from a child process */
    typedef struct _Ecore_Exe_Event_Data        Ecore_Exe_Event_Data; /**< Data from a child process */
 
-#ifndef _WIN32
-#endif
-
    struct _Ecore_Event_Signal_User /** User signal event */
      {
 	int   number; /**< The signal number. Either 1 or 2 */
@@ -277,6 +278,8 @@ extern "C" {
    EAPI Ecore_Timer *ecore_timer_add(double in, int (*func) (void *data), const void *data);
    EAPI void        *ecore_timer_del(Ecore_Timer *timer);
    EAPI void         ecore_timer_interval_set(Ecore_Timer *timer, double in);
+   EAPI void         ecore_timer_freeze(Ecore_Timer *timer);
+   EAPI void         ecore_timer_thaw(Ecore_Timer *timer);
 
    EAPI Ecore_Animator *ecore_animator_add(int (*func) (void *data), const void *data);
    EAPI void           *ecore_animator_del(Ecore_Animator *animator);
diff --git a/src/lib/ecore/Ecore_Data.h b/src/lib/ecore/Ecore_Data.h
index 9608f38..1957f7d 100644
--- a/src/lib/ecore/Ecore_Data.h
+++ b/src/lib/ecore/Ecore_Data.h
@@ -178,11 +178,11 @@ extern "C" {
    EAPI int ecore_dlist_prepend_list(Ecore_DList * _e_dlist, Ecore_DList * prepend);
    
    /* Info about list's state */
-# define ecore_dlist_first(list) ecore_list_first(ECORE_LIST(list))
-# define ecore_dlist_last(list) ecore_list_last(ECORE_LIST(list))
+# define ecore_dlist_first(list) ecore_list_first(list)
+# define ecore_dlist_last(list) ecore_list_last(list)
    EAPI void *ecore_dlist_current(Ecore_DList *list);
    EAPI int ecore_dlist_index(Ecore_DList *list);
-# define ecore_dlist_count(list) ecore_list_count(ECORE_LIST(list))
+# define ecore_dlist_count(list) ecore_list_count(list)
    
    /* Removing items from the list */
    EAPI void *ecore_dlist_remove(Ecore_DList * _e_dlist);
@@ -192,7 +192,7 @@ extern "C" {
    
    /* Traversing the list */
 # define ecore_dlist_for_each(list, function, user_data) \
-   ecore_list_for_each(ECORE_LIST(list), function, user_data)
+   ecore_list_for_each(list, function, user_data)
    EAPI void *ecore_dlist_first_goto(Ecore_DList * _e_dlist);
    EAPI void *ecore_dlist_last_goto(Ecore_DList * _e_dlist);
    EAPI void *ecore_dlist_index_goto(Ecore_DList * _e_dlist, int index);
diff --git a/src/lib/ecore/Ecore_Str.h b/src/lib/ecore/Ecore_Str.h
index 025f702..20ec003 100644
--- a/src/lib/ecore/Ecore_Str.h
+++ b/src/lib/ecore/Ecore_Str.h
@@ -46,6 +46,8 @@ EAPI size_t ecore_strlcat(char *dst, const char *src, size_t siz);
 EAPI int ecore_str_has_prefix(const char *str, const char *prefix);
 
 EAPI int ecore_str_has_suffix(const char *str, const char *suffix);
+EAPI int ecore_str_has_extension(const char *str, const char *ext);
+
 EAPI char **ecore_str_split(const char *string, const char *delimiter, 
                             int max_tokens);
 
diff --git a/src/lib/ecore/Makefile.in b/src/lib/ecore/Makefile.in
index 3b13172..6220d23 100644
--- a/src/lib/ecore/Makefile.in
+++ b/src/lib/ecore/Makefile.in
@@ -111,6 +111,8 @@ BUILD_ECORE_EVAS_DIRECTFB_TRUE = @BUILD_ECORE_EVAS_DIRECTFB_TRUE@
 BUILD_ECORE_EVAS_FALSE = @BUILD_ECORE_EVAS_FALSE@
 BUILD_ECORE_EVAS_FB_FALSE = @BUILD_ECORE_EVAS_FB_FALSE@
 BUILD_ECORE_EVAS_FB_TRUE = @BUILD_ECORE_EVAS_FB_TRUE@
+BUILD_ECORE_EVAS_SDL_FALSE = @BUILD_ECORE_EVAS_SDL_FALSE@
+BUILD_ECORE_EVAS_SDL_TRUE = @BUILD_ECORE_EVAS_SDL_TRUE@
 BUILD_ECORE_EVAS_TRUE = @BUILD_ECORE_EVAS_TRUE@
 BUILD_ECORE_EVAS_X11_16_FALSE = @BUILD_ECORE_EVAS_X11_16_FALSE@
 BUILD_ECORE_EVAS_X11_16_TRUE = @BUILD_ECORE_EVAS_X11_16_TRUE@
@@ -159,6 +161,7 @@ DEPDIR = @DEPDIR@
 DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
 DIRECTFB_LIBS = @DIRECTFB_LIBS@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -167,7 +170,31 @@ EET_CFLAGS = @EET_CFLAGS@
 EET_LIBS = @EET_LIBS@
 EGREP = @EGREP@
 EVAS_CFLAGS = @EVAS_CFLAGS@
+EVAS_DIRECT3D_CFLAGS = @EVAS_DIRECT3D_CFLAGS@
+EVAS_DIRECT3D_LIBS = @EVAS_DIRECT3D_LIBS@
+EVAS_DIRECTFB_CFLAGS = @EVAS_DIRECTFB_CFLAGS@
+EVAS_DIRECTFB_LIBS = @EVAS_DIRECTFB_LIBS@
+EVAS_FB_CFLAGS = @EVAS_FB_CFLAGS@
+EVAS_FB_LIBS = @EVAS_FB_LIBS@
 EVAS_LIBS = @EVAS_LIBS@
+EVAS_OPENGL_GLEW_CFLAGS = @EVAS_OPENGL_GLEW_CFLAGS@
+EVAS_OPENGL_GLEW_LIBS = @EVAS_OPENGL_GLEW_LIBS@
+EVAS_OPENGL_X11_CFLAGS = @EVAS_OPENGL_X11_CFLAGS@
+EVAS_OPENGL_X11_LIBS = @EVAS_OPENGL_X11_LIBS@
+EVAS_SOFTWARE_16_DDRAW_CFLAGS = @EVAS_SOFTWARE_16_DDRAW_CFLAGS@
+EVAS_SOFTWARE_16_DDRAW_LIBS = @EVAS_SOFTWARE_16_DDRAW_LIBS@
+EVAS_SOFTWARE_16_X11_CFLAGS = @EVAS_SOFTWARE_16_X11_CFLAGS@
+EVAS_SOFTWARE_16_X11_LIBS = @EVAS_SOFTWARE_16_X11_LIBS@
+EVAS_SOFTWARE_BUFFER_CFLAGS = @EVAS_SOFTWARE_BUFFER_CFLAGS@
+EVAS_SOFTWARE_BUFFER_LIBS = @EVAS_SOFTWARE_BUFFER_LIBS@
+EVAS_SOFTWARE_DDRAW_CFLAGS = @EVAS_SOFTWARE_DDRAW_CFLAGS@
+EVAS_SOFTWARE_DDRAW_LIBS = @EVAS_SOFTWARE_DDRAW_LIBS@
+EVAS_SOFTWARE_SDL_CFLAGS = @EVAS_SOFTWARE_SDL_CFLAGS@
+EVAS_SOFTWARE_SDL_LIBS = @EVAS_SOFTWARE_SDL_LIBS@
+EVAS_SOFTWARE_X11_CFLAGS = @EVAS_SOFTWARE_X11_CFLAGS@
+EVAS_SOFTWARE_X11_LIBS = @EVAS_SOFTWARE_X11_LIBS@
+EVAS_XRENDER_X11_CFLAGS = @EVAS_XRENDER_X11_CFLAGS@
+EVAS_XRENDER_X11_LIBS = @EVAS_XRENDER_X11_LIBS@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
@@ -181,6 +208,7 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -193,6 +221,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
 SDL_LIBS = @SDL_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -225,6 +254,8 @@ XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
 XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
 XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
 XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
+XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
+XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
 XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
 XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
 XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
@@ -244,6 +275,8 @@ XRENDER_CFLAGS = @XRENDER_CFLAGS@
 XRENDER_LIBS = @XRENDER_LIBS@
 XSS_CFLAGS = @XSS_CFLAGS@
 XSS_LIBS = @XSS_LIBS@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
 X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
diff --git a/src/lib/ecore/ecore.c b/src/lib/ecore/ecore.c
index 41b2556..1d471e8 100644
--- a/src/lib/ecore/ecore.c
+++ b/src/lib/ecore/ecore.c
@@ -1,11 +1,16 @@
-#include <locale.h>
-#ifndef _WIN32
+#include <config.h>
+#ifdef HAVE_LOCALE_H
+# include <locale.h>
+#endif
+#ifdef HAVE_LANGINFO_H
 # include <langinfo.h>
-#else
+#endif
+#ifdef HAVE_WINDOWS_H
 # define WIN32_LEAN_AND_MEAN
 # include <windows.h>
 # undef WIN32_LEAN_AND_MEAN
-#endif /* _WIN32 */
+#endif
+
 #include "ecore_private.h"
 #include "Ecore.h"
 
@@ -58,10 +63,8 @@ ecore_init(void)
 	 */
 	if (getenv("ECORE_FPS_DEBUG")) _ecore_fps_debug = 1;
 	if (_ecore_fps_debug) _ecore_fps_debug_init();
-#ifndef _WIN32
 	_ecore_signal_init();
-        _ecore_exe_init();
-#endif
+	_ecore_exe_init();
      }
 
    return _ecore_init_count;
@@ -86,18 +89,14 @@ ecore_shutdown(void)
    if (_ecore_fps_debug) _ecore_fps_debug_shutdown();
    _ecore_poller_shutdown();
    _ecore_animator_shutdown();
-#ifndef _WIN32
    _ecore_exe_shutdown();
-#endif
    _ecore_idle_enterer_shutdown();
    _ecore_idle_exiter_shutdown();
    _ecore_idler_shutdown();
    _ecore_timer_shutdown();
    _ecore_event_shutdown();
    _ecore_main_shutdown();
-#ifndef _WIN32
    _ecore_signal_shutdown();
-#endif
 
    return _ecore_init_count;
 }
diff --git a/src/lib/ecore/ecore_anim.c b/src/lib/ecore/ecore_anim.c
index 9c5f282..7c24813 100644
--- a/src/lib/ecore/ecore_anim.c
+++ b/src/lib/ecore/ecore_anim.c
@@ -21,9 +21,9 @@ static double          animators_frametime = 1.0 / 30.0;
  * be passed the @p data pointer as its parameter.
  * 
  * When the animator @p func is called, it must return a value of either 1 or 0. 
- * If it returns 1, it will be called again at the next tick, or if it returns
- * 0 it will be deleted automatically making any references/handles for it
- * invalid.
+ * If it returns 1 (or ECORE_CALLBACK_RENEW), it will be called again at the 
+ * next tick, or if it returns 0 (or ECORE_CALLBACK_CANCEL) it will be deleted 
+ * automatically making any references/handles for it invalid.
  */
 EAPI Ecore_Animator *
 ecore_animator_add(int (*func) (void *data), const void *data)
diff --git a/src/lib/ecore/ecore_events.c b/src/lib/ecore/ecore_events.c
index 3a1f3e7..6bd9ec9 100644
--- a/src/lib/ecore/ecore_events.c
+++ b/src/lib/ecore/ecore_events.c
@@ -35,10 +35,11 @@ static void                *ecore_raw_event_event =  NULL;
  * provided in this call as the @p data parameter.
  * 
  * When the callback @p func is called, it must return 1 or 0. If it returns 
- * 1, It will keep being called as per normal, for each handler set up for that
- * event type. If it returns 0, it will cease processing handlers for that
- * particular event, so all handler set to handle that event type that have not
- * already been called, will not be.
+ * 1 (or ECORE_CALLBACK_RENEW), It will keep being called as per normal, for 
+ * each handler set up for that event type. If it returns 0 (or 
+ * ECORE_CALLBACK_CANCEL), it will cease processing handlers for that particular
+ * event, so all handler set to handle that event type that have not already 
+ * been called, will not be.
  */
 EAPI Ecore_Event_Handler *
 ecore_event_handler_add(int type, int (*func) (void *data, int type, void *event), const void *data)
diff --git a/src/lib/ecore/ecore_exe.c b/src/lib/ecore/ecore_exe.c
index ac0c583..0517e35 100644
--- a/src/lib/ecore/ecore_exe.c
+++ b/src/lib/ecore/ecore_exe.c
@@ -1296,7 +1296,7 @@ _ecore_exe_exec_it(const char *exe_cmd, Ecore_Exe_Flags flags)
 	  }
      }
 
-   setsid();
+   if (!(flags & ECORE_EXE_NOT_LEADER)) setsid();
    if ((flags & ECORE_EXE_USE_SH))
      {
 	errno = 0;
diff --git a/src/lib/ecore/ecore_hash.c b/src/lib/ecore/ecore_hash.c
index 36f8fe3..3fe93b7 100644
--- a/src/lib/ecore/ecore_hash.c
+++ b/src/lib/ecore/ecore_hash.c
@@ -19,14 +19,14 @@
 		< ((double)ECORE_HASH_CHAIN_MAX * 0.375) : FALSE)
 
 /* Private hash manipulation functions */
-static int _ecore_hash_add_node(Ecore_Hash *hash, Ecore_Hash_Node *node);
-static Ecore_Hash_Node * _ecore_hash_get_node(Ecore_Hash *hash, const void *key);
+static int _ecore_hash_node_add(Ecore_Hash *hash, Ecore_Hash_Node *node);
+static Ecore_Hash_Node * _ecore_hash_node_get(Ecore_Hash *hash, const void *key);
 static int _ecore_hash_increase(Ecore_Hash *hash);
 static int _ecore_hash_decrease(Ecore_Hash *hash);
 inline int _ecore_hash_rehash(Ecore_Hash *hash, Ecore_Hash_Node **old_table, int old_size);
 static int _ecore_hash_bucket_destroy(Ecore_Hash_Node *list, Ecore_Free_Cb keyd,
 				      Ecore_Free_Cb valued);
-inline Ecore_Hash_Node * _ecore_hash_get_bucket(Ecore_Hash *hash,
+inline Ecore_Hash_Node * _ecore_hash_bucket_get(Ecore_Hash *hash,
 						Ecore_Hash_Node *bucket, const void *key);
 
 static Ecore_Hash_Node *_ecore_hash_node_new(void *key, void *value);
@@ -151,7 +151,7 @@ ecore_hash_set(Ecore_Hash *hash, void *key, void *value)
 
    CHECK_PARAM_POINTER_RETURN("hash", hash, FALSE);
 
-   node = _ecore_hash_get_node(hash, key);
+   node = _ecore_hash_node_get(hash, key);
    if (node)
      {
 	if (hash->free_key) hash->free_key(key);
@@ -163,7 +163,7 @@ ecore_hash_set(Ecore_Hash *hash, void *key, void *value)
      {
 	node = _ecore_hash_node_new(key, value);
 	if (node)
-	  ret = _ecore_hash_add_node(hash, node);
+	  ret = _ecore_hash_node_add(hash, node);
      }
 
    return ret;
@@ -192,7 +192,7 @@ ecore_hash_hash_set(Ecore_Hash *hash, Ecore_Hash *set)
 	  {
 	     set->buckets[i] = old->next;
 	     old->next = NULL;
-	     node = _ecore_hash_get_node(hash, old->key);
+	     node = _ecore_hash_node_get(hash, old->key);
 	     if (node)
 	       {
 		  /* This key already exists. Delete the old and add the new
@@ -204,7 +204,7 @@ ecore_hash_hash_set(Ecore_Hash *hash, Ecore_Hash *set)
 		  free(old);
 	       }
 	     else
-	       _ecore_hash_add_node(hash, old);
+	       _ecore_hash_node_add(hash, old);
 	  }
      }
    FREE(set->buckets);
@@ -411,7 +411,7 @@ _ecore_hash_bucket_destroy(Ecore_Hash_Node *list, Ecore_Free_Cb keyd, Ecore_Free
  * @return Returns FALSE on error, TRUE on success
  */
 static int
-_ecore_hash_add_node(Ecore_Hash *hash, Ecore_Hash_Node *node)
+_ecore_hash_node_add(Ecore_Hash *hash, Ecore_Hash_Node *node)
 {
    unsigned int hash_val;
 
@@ -452,7 +452,7 @@ ecore_hash_get(Ecore_Hash *hash, const void *key)
 
    CHECK_PARAM_POINTER_RETURN("hash", hash, NULL);
 
-   node = _ecore_hash_get_node(hash, key);
+   node = _ecore_hash_node_get(hash, key);
    if (!node)
      return NULL;
 
@@ -578,7 +578,7 @@ ecore_hash_find(Ecore_Hash *hash, Ecore_Compare_Cb compare, const void *value)
  * @return Returns NULL on error, node corresponding to key on success
  */
 static Ecore_Hash_Node *
-_ecore_hash_get_node(Ecore_Hash *hash, const void *key)
+_ecore_hash_node_get(Ecore_Hash *hash, const void *key)
 {
    unsigned int hash_val;
    Ecore_Hash_Node *node = NULL;
@@ -599,7 +599,7 @@ _ecore_hash_get_node(Ecore_Hash *hash, const void *key)
    /* Grab the bucket at the specified position */
    if (hash->buckets[hash_val])
      {
-	node = _ecore_hash_get_bucket(hash, hash->buckets[hash_val], key);
+	node = _ecore_hash_bucket_get(hash, hash->buckets[hash_val], key);
 	/*
 	 * Move matched node to the front of the list as it's likely
 	 * to be searched for again soon.
@@ -622,7 +622,7 @@ _ecore_hash_get_node(Ecore_Hash *hash, const void *key)
  * @return Returns NULL on error or not found, the found node on success
  */
 inline Ecore_Hash_Node *
-_ecore_hash_get_bucket(Ecore_Hash *hash, Ecore_Hash_Node *bucket, const void *key)
+_ecore_hash_bucket_get(Ecore_Hash *hash, Ecore_Hash_Node *bucket, const void *key)
 {
    Ecore_Hash_Node *prev = NULL;
    Ecore_Hash_Node *node = NULL;
@@ -789,7 +789,7 @@ _ecore_hash_rehash(Ecore_Hash *hash, Ecore_Hash_Node **old_table, int old_size)
 	  {
 	     old_table[i] = old->next;
 	     old->next = NULL;
-	     _ecore_hash_add_node(hash, old);
+	     _ecore_hash_node_add(hash, old);
 	  }
      }
 
diff --git a/src/lib/ecore/ecore_idler.c b/src/lib/ecore/ecore_idler.c
index ff837b2..ff2dd7e 100644
--- a/src/lib/ecore/ecore_idler.c
+++ b/src/lib/ecore/ecore_idler.c
@@ -13,8 +13,9 @@ static int          idlers_delete_me = 0;
  *
  * Add an idler handle to the event loop, returning a handle on success and
  * NULL otherwise.  The function @p func will be called repeatedly while
- * no other events are ready to be processed, as long as it returns 1. A return
- * of 0 deletes the idler.
+ * no other events are ready to be processed, as long as it returns 1 
+ * (or ECORE_CALLBACK_RENEW). A return of 0 (or ECORE_CALLBACK_CANCEL) deletes 
+ * the idler.
  *
  * Idlers are useful for progressively prossessing data without blocking.
  */
diff --git a/src/lib/ecore/ecore_main.c b/src/lib/ecore/ecore_main.c
index 052252e..9e5aedf 100644
--- a/src/lib/ecore/ecore_main.c
+++ b/src/lib/ecore/ecore_main.c
@@ -2,9 +2,11 @@
  * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
  */
 
-#ifdef _WIN32
+#include <config.h>
+
+#ifdef HAVE_WINSOCK2_H
 # include <winsock2.h>
-#endif /* _WIN32 */
+#endif
 
 #include <math.h>
 #include <sys/time.h>
@@ -110,16 +112,17 @@ ecore_main_loop_quit(void)
  *
  * Normally the return value from the @p func is "zero means this handler is
  * finished and can be deleted" as is usual for handler callbacks.  However,
- * if the @p buf_func is supplied, then the return value from the @p func is "non
- * zero means the handler should be called again in a tight loop".
+ * if the @p buf_func is supplied, then the return value from the @p func is 
+ * "non zero means the handler should be called again in a tight loop".
  *
  * @p buf_func is called during event loop handling to check if data that has
  * been read from the file descriptor is in a buffer and is available to
  * read.  Some systems (notably xlib) handle their own buffering, and would
  * otherwise not work with select().  These systems should use a @p buf_func.
  * This is a most annoying hack, only ecore_x uses it, so refer to that for
- * an example.  NOTE - @p func should probably return "one" always if @p buf_func
- * is used, to avoid confusion with the other return walue semantics.
+ * an example.  NOTE - @p func should probably return "one" always if 
+ * @p buf_func is used, to avoid confusion with the other return value 
+ * semantics.
  *
  * @param   fd       The file descriptor to watch.
  * @param   flags    To watch it for read (@c ECORE_FD_READ) and/or
@@ -346,9 +349,7 @@ _ecore_main_select(double timeout)
 	     if (fdh->fd > max_fd) max_fd = fdh->fd;
 	  }
      }
-#ifndef _WIN32
    if (_ecore_signal_count_get()) return -1;
-#endif /* _WIN32 */
    ret = select(max_fd + 1, &rfds, &wfds, &exfds, t);
    if (ret < 0)
      {
@@ -532,10 +533,8 @@ _ecore_main_loop_iterate_internal(int once_only)
      }
    /* any timers re-added as a result of these are allowed to go */
    _ecore_timer_enable_new();
-#ifndef _WIN32
    /* process signals into events .... */
    while (_ecore_signal_count_get()) _ecore_signal_call();
-#endif /* _WIN32 */
    if (_ecore_event_exist())
      {
 	have_event = 1;
@@ -555,9 +554,7 @@ _ecore_main_loop_iterate_internal(int once_only)
 	if (_ecore_main_select(0.0) > 0) have_event = 1;
 
 	if (_ecore_main_win32_message(0.0) > 0) have_msg = 1;
-#ifndef _WIN32
 	if (_ecore_signal_count_get() > 0) have_signal = 1;
-#endif /* _WIN32 */
 
 	if (have_signal || have_event || have_msg)
 	  goto process_events;
@@ -608,9 +605,7 @@ _ecore_main_loop_iterate_internal(int once_only)
 	       {
 		  if (_ecore_main_select(-1.0) > 0) have_event = 1;
 		  if (_ecore_main_win32_message(-1.0) > 0) have_msg = 1;
-#ifndef _WIN32
 		  if (_ecore_signal_count_get() > 0) have_signal = 1;
-#endif /* _WIN32 */
 	       }
 	     /* idlers */
 	     else
@@ -621,9 +616,7 @@ _ecore_main_loop_iterate_internal(int once_only)
 		       if (_ecore_event_exist()) break;
 		       if (_ecore_main_select(0.0) > 0) have_event = 1;
 		       if (_ecore_main_win32_message(0.0) > 0) have_msg = 1;
-#ifndef _WIN32
 		       if (_ecore_signal_count_get() > 0) have_signal = 1;
-#endif /* _WIN32 */
 		       if (have_event || have_signal || have_msg) break;
 		       next_time = _ecore_timer_next_get();
 		       if (next_time >= 0) goto start_loop;
@@ -639,9 +632,7 @@ _ecore_main_loop_iterate_internal(int once_only)
 	       {
 		  if (_ecore_main_select(next_time) > 0) have_event = 1;
 		  if (_ecore_main_win32_message(next_time) > 0) have_msg = 1;
-#ifndef _WIN32
 		  if (_ecore_signal_count_get() > 0) have_signal = 1;
-#endif /* _WIN32 */
 	       }
 	     /* idlers */
 	     else
@@ -654,9 +645,7 @@ _ecore_main_loop_iterate_internal(int once_only)
 		       if (_ecore_event_exist()) break;
 		       if (_ecore_main_select(0.0) > 0) have_event = 1;
 		       if (_ecore_main_win32_message(0.0) > 0) have_msg = 1;
-#ifndef _WIN32
 		       if (_ecore_signal_count_get() > 0) have_signal = 1;
-#endif /* _WIN32 */
 		       if (have_event || have_signal || have_msg) break;
 		       cur_time = ecore_time_get();
 		       t = ecore_time_get() - cur_time;
@@ -682,10 +671,8 @@ _ecore_main_loop_iterate_internal(int once_only)
    if (have_event) _ecore_main_fd_handlers_call();
    do
      {
-#ifndef _WIN32
 	/* process signals into events .... */
 	while (_ecore_signal_count_get()) _ecore_signal_call();
-#endif /* _WIN32 */
 
 	/* handle events ... */
 	_ecore_event_call();
diff --git a/src/lib/ecore/ecore_path.c b/src/lib/ecore/ecore_path.c
index ac4849e..27c37eb 100644
--- a/src/lib/ecore/ecore_path.c
+++ b/src/lib/ecore/ecore_path.c
@@ -1,6 +1,9 @@
 /*
  * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
  */
+
+#include <config.h>
+
 #include "ecore_private.h"
 #include "Ecore_Data.h"
 #include "Ecore_Str.h"
@@ -183,11 +186,7 @@ ecore_path_group_available(Ecore_Path_Group *group)
 
 	     ext = strrchr(d->d_name, '.');
 
-#ifndef _WIN32
-	     if (!ext || strncmp(ext, ".so", 3))
-#else
-	     if (!ext || strncmp(ext, ".dll", 4))
-#endif /* _WIN32 */
+	     if (!ext || strncmp(ext, SHARED_LIB_SUFFIX, sizeof(SHARED_LIB_SUFFIX)))
 	       continue;
 
 	     snprintf(ppath, PATH_MAX, "%s/%s", path, d->d_name);
@@ -241,7 +240,8 @@ ecore_plugin_available_get(Ecore_Path_Group *group)
 	struct stat st;
 	struct dirent *d;
 
-	stat(path, &st);
+	if (stat(path, &st) < 0)
+	  continue;
 
 	if (!S_ISDIR(st.st_mode))
 	  continue;
@@ -259,11 +259,7 @@ ecore_plugin_available_get(Ecore_Path_Group *group)
 	     if (*d->d_name == '.')
 	       continue;
 
-#ifndef _WIN32
-	     if (!ecore_str_has_suffix(d->d_name, ".so"))
-#else
-	     if (!ecore_str_has_suffix(d->d_name, ".dll"))
-#endif /* _WIN32 */
+	     if (!ecore_str_has_suffix(d->d_name, SHARED_LIB_SUFFIX))
 	       continue;
 
 	     snprintf(ppath, PATH_MAX, "%s/%s", path, d->d_name);
diff --git a/src/lib/ecore/ecore_plugin.c b/src/lib/ecore/ecore_plugin.c
index 91fb43c..de8def5 100644
--- a/src/lib/ecore/ecore_plugin.c
+++ b/src/lib/ecore/ecore_plugin.c
@@ -2,21 +2,26 @@
  * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
  */
 
-#ifndef _WIN32
+#include <config.h>
+
+#ifdef HAVE_DLFCN_H
 # include <dlfcn.h>
-#else
+#endif
+
+#ifdef HAVE_WINDOWS_H
 # define WIN32_LEAN_AND_MEAN
 # include <windows.h>
 # undef WIN32_LEAN_AND_MEAN
-# include <stdlib.h>
-# include <stdio.h>
-#endif /* _WIN32 */
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>
 
 #include "ecore_private.h"
 #include "Ecore_Data.h"
 
 /* FIXME: that hack is a temporary one. That code will be in MinGW soon */
-#ifdef _WIN32
+#if defined(_WIN32) && !defined(HAVE_DLFCN_H)
 
 # define RTLD_LAZY 1   /* lazy function call binding */
 # define RTLD_NOW 2    /* immediate function call binding */
@@ -86,7 +91,7 @@ char *dlerror (void)
      return NULL;
 }
 
-#endif /* _WIN32 */
+#endif
 
 
 static Ecore_List *loaded_plugins = NULL;
@@ -118,28 +123,19 @@ ecore_plugin_load(Ecore_Path_Group *group, const char *plugin_name, const char *
 
    CHECK_PARAM_POINTER_RETURN("plugin_name", plugin_name, NULL);
 
-#ifndef _WIN32
-   if (!version || *version == '\0')
-     snprintf(temp, sizeof(temp), "%s.so", plugin_name);
-   else
-     snprintf(temp, sizeof(temp), "%s.so.%s", plugin_name, version);
-#else
    if (!version || *version == '\0')
-     snprintf(temp, sizeof(temp), "%s.dll", plugin_name);
+     snprintf(temp, sizeof(temp), "%s" SHARED_LIB_SUFFIX, plugin_name);
    else
-     snprintf(temp, sizeof(temp), "%s-%s.dll", plugin_name, version);
-#endif /* _WIN32 */
+     snprintf(temp, sizeof(temp), "%s" SHARED_LIB_SUFFIX ".%s", plugin_name, version);
 
    path = ecore_path_group_find(group, temp);
 
-#ifndef _WIN32
    if (!path && version)
      {
 	/* if this file doesn't exist try a different order */
-	snprintf(temp, sizeof(temp), "%s.%s.so", plugin_name, version);
+	snprintf(temp, sizeof(temp), "%s.%s" SHARED_LIB_SUFFIX, plugin_name, version);
 	path = ecore_path_group_find(group, temp);
      }
-#endif /* _WIN32 */
 
    if (!path)
      return NULL;
diff --git a/src/lib/ecore/ecore_poll.c b/src/lib/ecore/ecore_poll.c
index 88e4291..74eee7f 100644
--- a/src/lib/ecore/ecore_poll.c
+++ b/src/lib/ecore/ecore_poll.c
@@ -255,8 +255,9 @@ ecore_poller_poll_interval_get(Ecore_Poller_Type type)
  * failure. The function @p func will be called at tick intervals described
  * above. The function will be passed the @p data pointer as its parameter.
  * 
- * When the poller @p func is called, it must return a value of either 1 or 0. 
- * If it returns 1, it will be called again at the next tick, or if it returns
+ * When the poller @p func is called, it must return a value of either 
+ * 1 (or ECORE_CALLBACK_RENEW) or 0 (or ECORE_CALLBACK_CANCEL). If it 
+ * returns 1, it will be called again at the next tick, or if it returns
  * 0 it will be deleted automatically making any references/handles for it
  * invalid.
  */
diff --git a/src/lib/ecore/ecore_private.h b/src/lib/ecore/ecore_private.h
index b6c039d..289c2e0 100644
--- a/src/lib/ecore/ecore_private.h
+++ b/src/lib/ecore/ecore_private.h
@@ -1,6 +1,10 @@
 #ifndef _ECORE_PRIVATE_H
 #define _ECORE_PRIVATE_H
 
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -13,14 +17,10 @@
 #include <limits.h>
 #include <dirent.h>
 
-#ifndef _WIN32
+#ifdef HAVE_SYS_MMAN_H
 # include <sys/mman.h>
 #endif
 
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
 #ifdef EAPI
 # undef EAPI
 #endif
@@ -159,7 +159,8 @@ enum _Ecore_Exe_Flags
    ECORE_EXE_PIPE_ERROR_LINE_BUFFERED = 16,
    ECORE_EXE_PIPE_AUTO = 32,
    ECORE_EXE_RESPAWN = 64,
-   ECORE_EXE_USE_SH = 128
+   ECORE_EXE_USE_SH = 128,
+   ECORE_EXE_NOT_LEADER = 256
    /* FIXME: Getting respawn to work
     *
     * There is no way that we can do anything about the internal state info of
@@ -281,14 +282,16 @@ struct _Ecore_Exe
 
 struct _Ecore_Timer
 {
-   Ecore_List2   __list_data;
+   Ecore_List2     __list_data;
    ECORE_MAGIC;
-   double       in;
-   double       at;
-   signed char  delete_me : 1;
-   signed char  just_added : 1;
-   int        (*func) (void *data);
-   void        *data;
+   double          in;
+   double          at;
+   double          pending;
+   unsigned char   delete_me : 1;
+   unsigned char   just_added : 1;
+   unsigned char   frozen : 1;
+   int           (*func) (void *data);
+   void           *data;
 };
 
 struct _Ecore_Idler
@@ -424,12 +427,22 @@ void         *_ecore_event_signal_realtime_new(void);
 
 void          _ecore_main_shutdown(void);
 
+#ifdef _WIN32
+static inline void _ecore_signal_shutdown(void) { }
+static inline void _ecore_signal_init(void) { }
+static inline int  _ecore_signal_count_get(void) { return 0; }
+static inline void _ecore_signal_call(void) { }
+#else
 void          _ecore_signal_shutdown(void);
 void          _ecore_signal_init(void);
 int           _ecore_signal_count_get(void);
 void          _ecore_signal_call(void);
+#endif
 
-#ifndef _WIN32
+#ifdef _WIN32
+static inline void _ecore_exe_init(void) { }
+static inline void _ecore_exe_shutdown(void) { }
+#else
 void          _ecore_exe_init(void);
 void          _ecore_exe_shutdown(void);
 Ecore_Exe    *_ecore_exe_find(pid_t pid);
diff --git a/src/lib/ecore/ecore_signal.c b/src/lib/ecore/ecore_signal.c
index e2f500d..4c555c6 100644
--- a/src/lib/ecore/ecore_signal.c
+++ b/src/lib/ecore/ecore_signal.c
@@ -33,6 +33,9 @@ static void _ecore_signal_callback_sigrt(int sig, siginfo_t *si, void *foo);
 
 static int _ecore_signal_exe_exit_delay(void *data);
 
+//#define MAXSIGQ 256 // 32k
+#define MAXSIGQ 64 // 8k
+
 static volatile sig_atomic_t sig_count = 0;
 static volatile sig_atomic_t sigchld_count = 0;
 static volatile sig_atomic_t sigusr1_count = 0;
@@ -41,23 +44,25 @@ static volatile sig_atomic_t sighup_count = 0;
 static volatile sig_atomic_t sigquit_count = 0;
 static volatile sig_atomic_t sigint_count = 0;
 static volatile sig_atomic_t sigterm_count = 0;
-
-static volatile siginfo_t sigchld_info;
-static volatile siginfo_t sigusr1_info;
-static volatile siginfo_t sigusr2_info;
-static volatile siginfo_t sighup_info;
-static volatile siginfo_t sigquit_info;
-static volatile siginfo_t sigint_info;
-static volatile siginfo_t sigterm_info;
-
 #ifdef SIGPWR
 static volatile sig_atomic_t sigpwr_count = 0;
-static volatile siginfo_t sigpwr_info = {0};
 #endif
-
 #ifdef SIGRTMIN
 static volatile sig_atomic_t *sigrt_count = NULL;
-static volatile siginfo_t *sigrt_info = NULL;
+#endif
+
+static volatile siginfo_t sigchld_info[MAXSIGQ];
+static volatile siginfo_t sigusr1_info[MAXSIGQ];
+static volatile siginfo_t sigusr2_info[MAXSIGQ];
+static volatile siginfo_t sighup_info[MAXSIGQ];
+static volatile siginfo_t sigquit_info[MAXSIGQ];
+static volatile siginfo_t sigint_info[MAXSIGQ];
+static volatile siginfo_t sigterm_info[MAXSIGQ];
+#ifdef SIGPWR
+static volatile siginfo_t sigpwr_info[MAXSIGQ];
+#endif
+#ifdef SIGRTMIN
+static volatile siginfo_t *sigrt_info[MAXSIGQ];
 #endif
 
 void
@@ -102,10 +107,13 @@ _ecore_signal_shutdown(void)
 	sigrt_count = NULL;
      }
 
-   if (sigrt_info)
+   for (i = 0; i < MAXSIGQ; i++)
      {
-	free((siginfo_t *) sigrt_info);
-	sigrt_info = NULL;
+	if (sigrt_info[i])
+	  {
+	     free((siginfo_t *) sigrt_info[i]);
+	     sigrt_info[i] = NULL;
+	  }
      }
 #endif
 }
@@ -134,8 +142,11 @@ _ecore_signal_init(void)
    sigrt_count = calloc(1, sizeof(sig_atomic_t) * num);
    assert(sigrt_count);
 
-   sigrt_info = calloc(1, sizeof(siginfo_t) * num);
-   assert(sigrt_info);
+   for (i = 0; i < MAXSIGQ; i++)
+     {
+	sigrt_info[i] = calloc(1, sizeof(siginfo_t) * num);
+	assert(sigrt_info[i]);
+     }
 
    for (i = 0; i < num; i++)
       _ecore_signal_callback_set(SIGRTMIN + i, _ecore_signal_callback_sigrt);
@@ -154,8 +165,32 @@ _ecore_signal_call(void)
 #ifdef SIGRTMIN
    int i, num = SIGRTMAX - SIGRTMIN;
 #endif
-
-   while (sigchld_count > 0)
+   volatile sig_atomic_t n;
+   sigset_t oldset, newset;
+   
+   if (sig_count == 0) return;
+   sigemptyset(&newset);
+   sigaddset(&newset, SIGPIPE);
+   sigaddset(&newset, SIGALRM);
+   sigaddset(&newset, SIGCHLD);
+   sigaddset(&newset, SIGUSR1);
+   sigaddset(&newset, SIGUSR2);
+   sigaddset(&newset, SIGHUP);
+   sigaddset(&newset, SIGQUIT);
+   sigaddset(&newset, SIGINT);
+   sigaddset(&newset, SIGTERM);
+#ifdef SIGPWR
+   sigaddset(&newset, SIGPWR);
+#endif
+#ifdef SIGRTMIN
+   for (i = 0; i < num; i++)
+     sigaddset(&newset, SIGRTMIN + i);
+#endif   
+   sigprocmask(SIG_BLOCK, &newset, &oldset);
+   if (sigchld_count > MAXSIGQ)
+     printf("ECORE WARNING. %i SIGCHLD in queue. max queue size %i. losing "
+	    "siginfo for extra signals.\n", sigchld_count, MAXSIGQ);
+   for (n = 0; n < sigchld_count; n++)
      {
 	pid_t pid;
 	int status;
@@ -183,8 +218,8 @@ _ecore_signal_call(void)
 		  e->pid = pid;
 		  e->exe = _ecore_exe_find(pid);
 
-		  if (sigchld_info.si_signo)
-		    e->data = sigchld_info; /* No need to clone this. */
+		  if ((n < MAXSIGQ) && (sigchld_info[n].si_signo))
+		    e->data = sigchld_info[n]; /* No need to clone this. */
 
                   if ((e->exe) && (e->exe->flags & (ECORE_EXE_PIPE_READ | ECORE_EXE_PIPE_ERROR)))
                      {
@@ -220,10 +255,14 @@ _ecore_signal_call(void)
 		    }
 	       }
 	  }
-	sigchld_count--;
 	sig_count--;
      }
-   while (sigusr1_count > 0)
+   sigchld_count = 0;
+   
+   if (sigusr1_count > MAXSIGQ)
+     printf("ECORE WARNING. %i SIGUSR1 in queue. max queue size %i. losing "
+	    "siginfo for extra signals.\n", sigusr1_count, MAXSIGQ);
+   for (n = 0; n < sigusr1_count; n++)
      {
 	Ecore_Event_Signal_User *e;
 
@@ -232,15 +271,19 @@ _ecore_signal_call(void)
 	  {
 	     e->number = 1;
 
-	     if (sigusr1_info.si_signo)
-	       e->data = sigusr1_info;
+	     if ((n < MAXSIGQ) && (sigusr1_info[n].si_signo))
+	       e->data = sigusr1_info[n];
 
 	     ecore_event_add(ECORE_EVENT_SIGNAL_USER, e, NULL, NULL);
 	  }
-	sigusr1_count--;
 	sig_count--;
      }
-   while (sigusr2_count > 0)
+   sigusr1_count = 0;
+   
+   if (sigusr2_count > MAXSIGQ)
+     printf("ECORE WARNING. %i SIGUSR2 in queue. max queue size %i. losing "
+	    "siginfo for extra signals.\n", sigusr2_count, MAXSIGQ);
+   for (n = 0; n < sigusr2_count; n++)
      {
 	Ecore_Event_Signal_User *e;
 
@@ -249,30 +292,38 @@ _ecore_signal_call(void)
 	  {
 	     e->number = 2;
 
-	     if (sigusr2_info.si_signo)
-	       e->data = sigusr2_info;
+	     if ((n < MAXSIGQ) && (sigusr2_info[n].si_signo))
+	       e->data = sigusr2_info[n];
 
 	     ecore_event_add(ECORE_EVENT_SIGNAL_USER, e, NULL, NULL);
 	  }
-	sigusr2_count--;
 	sig_count--;
      }
-   while (sighup_count > 0)
+   sigusr2_count = 0;
+   
+   if (sighup_count > MAXSIGQ)
+     printf("ECORE WARNING. %i SIGHUP in queue. max queue size %i. losing "
+	    "siginfo for extra signals.\n", sighup_count, MAXSIGQ);
+   for (n = 0; n < sighup_count; n++)
      {
 	Ecore_Event_Signal_Hup *e;
 
 	e = _ecore_event_signal_hup_new();
 	if (e)
 	  {
-	     if (sighup_info.si_signo)
-	       e->data = sighup_info;
+	     if ((n < MAXSIGQ) && (sighup_info[n].si_signo))
+	       e->data = sighup_info[n];
 
 	     ecore_event_add(ECORE_EVENT_SIGNAL_HUP, e, NULL, NULL);
 	  }
-	sighup_count--;
 	sig_count--;
      }
-   while (sigquit_count > 0)
+   sighup_count = 0;
+   
+   if (sigquit_count > MAXSIGQ)
+     printf("ECORE WARNING. %i SIGQUIT in queue. max queue size %i. losing "
+	    "siginfo for extra signals.\n", sigquit_count, MAXSIGQ);
+   for (n = 0; n < sigquit_count; n++)
      {
 	Ecore_Event_Signal_Exit *e;
 
@@ -281,15 +332,19 @@ _ecore_signal_call(void)
 	  {
 	     e->quit = 1;
 
-	     if (sigquit_info.si_signo)
-	       e->data = sigquit_info;
+	     if ((n < MAXSIGQ) && (sigquit_info[n].si_signo))
+	       e->data = sigquit_info[n];
 
 	     ecore_event_add(ECORE_EVENT_SIGNAL_EXIT, e, NULL, NULL);
 	  }
-	sigquit_count--;
 	sig_count--;
      }
-   while (sigint_count > 0)
+   sigquit_count = 0;
+
+   if (sigint_count > MAXSIGQ)
+     printf("ECORE WARNING. %i SIGINT in queue. max queue size %i. losing "
+	    "siginfo for extra signals.\n", sigint_count, MAXSIGQ);
+   for (n = 0; n < sigint_count; n++)
      {
 	Ecore_Event_Signal_Exit *e;
 
@@ -298,15 +353,19 @@ _ecore_signal_call(void)
 	  {
 	     e->interrupt = 1;
 
-	     if (sigint_info.si_signo)
-	       e->data = sigint_info;
+	     if ((n < MAXSIGQ) && (sigint_info[n].si_signo))
+	       e->data = sigint_info[n];
 
 	     ecore_event_add(ECORE_EVENT_SIGNAL_EXIT, e, NULL, NULL);
 	  }
-	sigint_count--;
 	sig_count--;
      }
-   while (sigterm_count > 0)
+   sigint_count = 0;
+   
+   if (sigterm_count > MAXSIGQ)
+     printf("ECORE WARNING. %i SIGTERM in queue. max queue size %i. losing "
+	    "siginfo for extra signals.\n", sigterm_count, MAXSIGQ);
+   for (n = 0; n < sigterm_count; n++)
      {
 	Ecore_Event_Signal_Exit *e;
 
@@ -315,36 +374,43 @@ _ecore_signal_call(void)
 	  {
 	     e->terminate = 1;
 
-	     if (sigterm_info.si_signo)
-	       e->data = sigterm_info;
+	     if ((n < MAXSIGQ) && (sigterm_info[n].si_signo))
+	       e->data = sigterm_info[n];
 
 	     ecore_event_add(ECORE_EVENT_SIGNAL_EXIT, e, NULL, NULL);
 	  }
-	sigterm_count--;
 	sig_count--;
      }
+   sigterm_count = 0;
+   
 #ifdef SIGPWR
-   while (sigpwr_count > 0)
+   if (sigpwr_count > MAXSIGQ)
+     printf("ECORE WARNING. %i SIGPWR in queue. max queue size %i. losing "
+	    "siginfo for extra signals.\n", sigpwr_count, MAXSIGQ);
+   for (n = 0; n < sigpwr_count; n++)
      {
 	Ecore_Event_Signal_Power *e;
 
 	e = _ecore_event_signal_power_new();
 	if (e)
 	  {
-	     if (sigpwr_info.si_signo)
-	       e->data = sigpwr_info;
+	     if ((n < MAXSIGQ) && (sigpwr_info[n].si_signo))
+	       e->data = sigpwr_info[n];
 
 	     ecore_event_add(ECORE_EVENT_SIGNAL_POWER, e, NULL, NULL);
 	  }
-	sigpwr_count--;
 	sig_count--;
      }
+   sigpwr_count = 0;
 #endif
 
 #ifdef SIGRTMIN
    for (i = 0; i < num; i++)
      {
-	while (sigrt_count[i] > 0)
+	if (sigrt_count[i] > MAXSIGQ)
+	  printf("ECORE WARNING. %i SIGRT%i in queue. max queue size %i. losing "
+		 "siginfo for extra signals.\n", i + 1, sigrt_count[i], MAXSIGQ);
+	for (n = 0; n < sigrt_count[i]; n++)
 	  {
 	     Ecore_Event_Signal_Realtime *e;
 
@@ -352,17 +418,17 @@ _ecore_signal_call(void)
 	       {
 		  e->num = i;
 
-		  if (sigrt_info[i].si_signo)
-		    e->data = sigrt_info[i];
+		  if ((n < MAXSIGQ) && (sigrt_info[n][i].si_signo))
+		    e->data = sigrt_info[n][i];
 
 		  ecore_event_add(ECORE_EVENT_SIGNAL_REALTIME, e, NULL, NULL);
 	       }
-
-	     sigrt_count[i]--;
 	     sig_count--;
 	  }
+	sigrt_count[i] = 0;
      }
 #endif
+   sigprocmask(SIG_SETMASK, &oldset, NULL);
 }
 
 static void
@@ -384,10 +450,15 @@ _ecore_signal_callback_ignore(int sig __UNUSED__, siginfo_t *si __UNUSED__, void
 static void
 _ecore_signal_callback_sigchld(int sig __UNUSED__, siginfo_t *si, void *foo __UNUSED__)
 {
-   if (si)
-     sigchld_info = *si;
-   else
-     sigchld_info.si_signo = 0;
+   volatile sig_atomic_t n;
+   n = sigchld_count;
+   if (n < MAXSIGQ)
+     {
+	if (si)
+	  sigchld_info[n] = *si;
+	else
+	  sigchld_info[n].si_signo = 0;
+     }
 
    sigchld_count++;
    sig_count++;
@@ -396,11 +467,15 @@ _ecore_signal_callback_sigchld(int sig __UNUSED__, siginfo_t *si, void *foo __UN
 static void
 _ecore_signal_callback_sigusr1(int sig __UNUSED__, siginfo_t *si, void *foo __UNUSED__)
 {
-   if (si)
-     sigusr1_info = *si;
-   else
-     sigusr1_info.si_signo = 0;
-
+   volatile sig_atomic_t n;
+   n = sigchld_count;
+   if (n < MAXSIGQ)
+     {
+	if (si)
+	  sigusr1_info[n] = *si;
+	else
+	  sigusr1_info[n].si_signo = 0;
+     }
    sigusr1_count++;
    sig_count++;
 }
@@ -408,11 +483,15 @@ _ecore_signal_callback_sigusr1(int sig __UNUSED__, siginfo_t *si, void *foo __UN
 static void
 _ecore_signal_callback_sigusr2(int sig __UNUSED__, siginfo_t *si, void *foo __UNUSED__)
 {
-   if (si)
-     sigusr2_info = *si;
-   else
-     sigusr2_info.si_signo = 0;
-
+   volatile sig_atomic_t n;
+   n = sigchld_count;
+   if (n < MAXSIGQ)
+     {
+	if (si)
+	  sigusr2_info[n] = *si;
+	else
+	  sigusr2_info[n].si_signo = 0;
+     }
    sigusr2_count++;
    sig_count++;
 }
@@ -420,11 +499,15 @@ _ecore_signal_callback_sigusr2(int sig __UNUSED__, siginfo_t *si, void *foo __UN
 static void
 _ecore_signal_callback_sighup(int sig __UNUSED__, siginfo_t *si, void *foo __UNUSED__)
 {
-   if (si)
-     sighup_info = *si;
-   else
-     sighup_info.si_signo = 0;
-
+   volatile sig_atomic_t n;
+   n = sigchld_count;
+   if (n < MAXSIGQ)
+     {
+	if (si)
+	  sighup_info[n] = *si;
+	else
+	  sighup_info[n].si_signo = 0;
+     }
    sighup_count++;
    sig_count++;
 }
@@ -432,11 +515,15 @@ _ecore_signal_callback_sighup(int sig __UNUSED__, siginfo_t *si, void *foo __UNU
 static void
 _ecore_signal_callback_sigquit(int sig __UNUSED__, siginfo_t *si, void *foo __UNUSED__)
 {
-   if (si)
-     sigquit_info = *si;
-   else
-     sigquit_info.si_signo = 0;
-
+   volatile sig_atomic_t n;
+   n = sigchld_count;
+   if (n < MAXSIGQ)
+     {
+	if (si)
+	  sigquit_info[n] = *si;
+	else
+	  sigquit_info[n].si_signo = 0;
+     }
    sigquit_count++;
    sig_count++;
 }
@@ -444,11 +531,15 @@ _ecore_signal_callback_sigquit(int sig __UNUSED__, siginfo_t *si, void *foo __UN
 static void
 _ecore_signal_callback_sigint(int sig __UNUSED__, siginfo_t *si, void *foo __UNUSED__)
 {
-   if (si)
-     sigint_info = *si;
-   else
-     sigint_info.si_signo = 0;
-
+   volatile sig_atomic_t n;
+   n = sigchld_count;
+   if (n < MAXSIGQ)
+     {
+	if (si)
+	  sigint_info[n] = *si;
+	else
+	  sigint_info[n].si_signo = 0;
+     }
    sigint_count++;
    sig_count++;
 }
@@ -456,11 +547,15 @@ _ecore_signal_callback_sigint(int sig __UNUSED__, siginfo_t *si, void *foo __UNU
 static void
 _ecore_signal_callback_sigterm(int sig __UNUSED__, siginfo_t *si, void *foo __UNUSED__)
 {
-   if (si)
-     sigterm_info = *si;
-   else
-     sigterm_info.si_signo = 0;
-
+   volatile sig_atomic_t n;
+   n = sigchld_count;
+   if (n < MAXSIGQ)
+     {
+	if (si)
+	  sigterm_info[n] = *si;
+	else
+	  sigterm_info[n].si_signo = 0;
+     }
    sigterm_count++;
    sig_count++;
 }
@@ -469,11 +564,15 @@ _ecore_signal_callback_sigterm(int sig __UNUSED__, siginfo_t *si, void *foo __UN
 static void
 _ecore_signal_callback_sigpwr(int sig __UNUSED__, siginfo_t *si, void *foo __UNUSED__)
 {
-   if (si)
-     sigpwr_info = *si;
-   else
-     sigpwr_info.si_signo = 0;
-
+   volatile sig_atomic_t n;
+   n = sigchld_count;
+   if (n < MAXSIGQ)
+     {
+	if (si)
+	  sigpwr_info[n] = *si;
+	else
+	  sigpwr_info[n].si_signo = 0;
+     }
    sigpwr_count++;
    sig_count++;
 }
@@ -483,11 +582,15 @@ _ecore_signal_callback_sigpwr(int sig __UNUSED__, siginfo_t *si, void *foo __UNU
 static void
 _ecore_signal_callback_sigrt(int sig, siginfo_t *si, void *foo __UNUSED__)
 {
-   if (si)
-     sigrt_info[sig - SIGRTMIN] = *si;
-   else
-     sigrt_info[sig - SIGRTMIN].si_signo = 0;
-
+   volatile sig_atomic_t n;
+   n = sigchld_count;
+   if (n < MAXSIGQ)
+     {
+	if (si)
+	  sigrt_info[n][sig - SIGRTMIN] = *si;
+	else
+	  sigrt_info[n][sig - SIGRTMIN].si_signo = 0;
+     }
    sigrt_count[sig - SIGRTMIN]++;
    sig_count++;
 }
diff --git a/src/lib/ecore/ecore_str.c b/src/lib/ecore/ecore_str.c
index 8eb6a6c..cb5c2cc 100644
--- a/src/lib/ecore/ecore_str.c
+++ b/src/lib/ecore/ecore_str.c
@@ -23,6 +23,8 @@
 #include "ecore_private.h"
 #include "Ecore_Str.h"
 
+static int ecore_str_has_suffix_helper(const char *str, const char *suffix, 
+		int (*cmp)(const char *, const char *));
 /**
  * @param dst the destination
  * @param src the source
@@ -140,18 +142,47 @@ ecore_str_has_prefix(const char *str, const char *prefix)
 int
 ecore_str_has_suffix(const char *str, const char *suffix)
 {
-   size_t str_len;
-   size_t suffix_len;
-
    CHECK_PARAM_POINTER_RETURN("str", str, 0);
    CHECK_PARAM_POINTER_RETURN("suffix", suffix, 0);
+   
+   return ecore_str_has_suffix_helper(str, suffix, strcmp);
+}
+
+/**
+ * This function does the same like ecore_str_has_suffix(), but with a
+ * case insensitive compare.
+ *
+ * @param str the string to work with
+ * @param ext the  extension to check for
+ * @return true if str has the given extension
+ * @brief checks if the string has the given extension
+ */
+int
+ecore_str_has_extension(const char *str, const char *ext)
+{
+   CHECK_PARAM_POINTER_RETURN("str", str, 0);
+   CHECK_PARAM_POINTER_RETURN("ext", ext, 0);
+   
+   return ecore_str_has_suffix_helper(str, ext, strcasecmp);
+}
+
+/*
+ * Internal helper function used by ecore_str_has_suffix() and 
+ * ecore_str_has_extension()
+ */
+static int
+ecore_str_has_suffix_helper(const char *str, const char *suffix, 
+		int (*cmp)(const char *, const char *))
+{
+   size_t str_len;
+   size_t suffix_len;
 
    str_len = strlen(str);
    suffix_len = strlen(suffix);
    if (suffix_len > str_len)
      return 0;
 
-   return (strncmp(str + str_len - suffix_len, suffix, suffix_len) == 0);
+   return cmp(str + str_len - suffix_len, suffix) == 0;
 }
 
 /**
diff --git a/src/lib/ecore/ecore_strings.c b/src/lib/ecore/ecore_strings.c
index 06d76f2..79fd939 100644
--- a/src/lib/ecore/ecore_strings.c
+++ b/src/lib/ecore/ecore_strings.c
@@ -70,15 +70,20 @@ ecore_string_instance(const char *string)
    str = ecore_hash_get(ecore_strings, string);
    if (!str)
      {
+	int length;
 
 	/*
 	 * Allocate and initialize a new string reference.
 	 */
-	str = (Ecore_String *)malloc(sizeof(Ecore_String));
+	length = strlen(string) + 1;
 
-	str->string = strdup(string);
+	str = (Ecore_String *)malloc(sizeof(Ecore_String) + length * sizeof(char));
+
+	str->string = (char*)(str + 1);
 	str->references = 0;
 
+	memcpy(str->string, string, length);
+
 	ecore_hash_set(ecore_strings, str->string, str);
      }
 
@@ -110,7 +115,6 @@ ecore_string_release(const char *string)
    if (str->references < 1)
      {
 	ecore_hash_remove(ecore_strings, (char *)string);
-	FREE(str->string);
 	FREE(str);
      }
 }
@@ -147,6 +151,5 @@ ecore_string_free_cb(void *data)
    Ecore_String *str;
 
    str = data;
-   FREE(str->string);
    FREE(str);
 }
diff --git a/src/lib/ecore/ecore_time.c b/src/lib/ecore/ecore_time.c
index 865c641..73f4ba9 100644
--- a/src/lib/ecore/ecore_time.c
+++ b/src/lib/ecore/ecore_time.c
@@ -2,11 +2,13 @@
  * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
  */
 
-#ifdef _WIN32
+#include <config.h>
+#ifdef HAVE_WINDOWS_H
 # define WIN32_LEAN_AND_MEAN
 # include <windows.h>
 # undef WIN32_LEAN_AND_MEAN
-#else
+#endif
+#ifdef HAVE_SYS_TIME_H
 # include <sys/time.h>
 #endif
 #include "ecore_private.h"
diff --git a/src/lib/ecore/ecore_timer.c b/src/lib/ecore/ecore_timer.c
index f534df1..93fce30 100644
--- a/src/lib/ecore/ecore_timer.c
+++ b/src/lib/ecore/ecore_timer.c
@@ -6,6 +6,7 @@ static void _ecore_timer_set(Ecore_Timer *timer, double at, double in, int (*fun
 static int          timers_added = 0;
 static int          timers_delete_me = 0;
 static Ecore_Timer *timers = NULL;
+static Ecore_Timer *suspended = NULL;
 static double       last_check = 0.0;
 
 /**
@@ -28,7 +29,8 @@ static double       last_check = 0.0;
  * failure. The function @p func will be called every @in@ seconds. The
  * function will be passed the @p data pointer as its parameter.
  * 
- * When the timer @p func is called, it must return a value of either 1 or 0. 
+ * When the timer @p func is called, it must return a value of either 1 
+ * (or ECORE_CALLBACK_RENEW) or 0 (or ECORE_CALLBACK_CANCEL). 
  * If it returns 1, it will be called again at the next tick, or if it returns
  * 0 it will be deleted automatically making any references/handles for it
  * invalid.
@@ -94,6 +96,112 @@ ecore_timer_interval_set(Ecore_Timer *timer, double in)
    timer->in = in;
 }
 
+/**
+ * Add some delay for the next occurence of a timer.
+ * This doesn't affect the interval of a timer.
+ *
+ * @param   timer The timer to change.
+ * @param   add   The dalay to add to the next iteration.
+ * @ingroup Ecore_Time_Group
+ */
+EAPI void
+ecore_timer_delay(Ecore_Timer *timer, double add)
+{
+   if (!ECORE_MAGIC_CHECK(timer, ECORE_MAGIC_TIMER))
+     {
+	ECORE_MAGIC_FAIL(timer, ECORE_MAGIC_TIMER,
+			 "ecore_timer_delay");
+	return;
+     }
+
+   if (timer->frozen)
+     {
+	timer->pending += add;
+     }
+   else
+     {
+	timers = _ecore_list2_remove(timers, timer);
+	_ecore_timer_set(timer, timer->at + add, timer->in, timer->func, timer->data);
+     }
+}
+
+/**
+ * Get the pending time regarding a timer.
+ *
+ * @param	timer The timer to learn from.
+ * @ingroup	Ecore_Time_Group
+ */
+EAPI double
+ecore_timer_pending_get(Ecore_Timer *timer)
+{
+   double	now;
+
+   if (!ECORE_MAGIC_CHECK(timer, ECORE_MAGIC_TIMER))
+     {
+	ECORE_MAGIC_FAIL(timer, ECORE_MAGIC_TIMER,
+			 "ecore_timer_pending_get");
+	return 0;
+     }
+
+   now = ecore_time_get();
+
+   if (timer->frozen)
+     return timer->pending;
+   return timer->at - now;
+}
+
+/**
+ *
+ *
+ */
+EAPI void
+ecore_timer_freeze(Ecore_Timer *timer)
+{
+   double now;
+
+   if (!ECORE_MAGIC_CHECK(timer, ECORE_MAGIC_TIMER))
+     {
+	ECORE_MAGIC_FAIL(timer, ECORE_MAGIC_TIMER,
+                         "ecore_timer_freeze");
+        return ;
+     }
+
+   /* Timer already frozen */
+   if (timer->frozen)
+     return ;
+
+   timers = _ecore_list2_remove(timers, timer);
+   suspended = _ecore_list2_prepend(suspended, timer);
+
+   now = ecore_time_get();
+
+   timer->pending = timer->at - now;
+   timer->at = 0.0;
+   timer->frozen = 1;
+}
+
+EAPI void
+ecore_timer_thaw(Ecore_Timer *timer)
+{
+   double now;
+
+   if (!ECORE_MAGIC_CHECK(timer, ECORE_MAGIC_TIMER))
+     {
+	ECORE_MAGIC_FAIL(timer, ECORE_MAGIC_TIMER,
+                         "ecore_timer_thaw");
+        return ;
+     }
+
+   /* Timer not frozen */
+   if (!timer->frozen)
+     return ;
+
+   suspended = _ecore_list2_remove(suspended, timer);
+   now = ecore_time_get();
+
+   _ecore_timer_set(timer, timer->pending + now, timer->in, timer->func, timer->data);
+}
+
 void
 _ecore_timer_shutdown(void)
 {
@@ -106,6 +214,16 @@ _ecore_timer_shutdown(void)
 	ECORE_MAGIC_SET(timer, ECORE_MAGIC_NONE);
 	free(timer);
      }
+
+   while (suspended)
+     {
+        Ecore_Timer *timer;
+
+        timer = suspended;
+        suspended = _ecore_list2_remove(suspended, timer);
+        ECORE_MAGIC_SET(timer, ECORE_MAGIC_NONE);
+        free(timer);
+     }
 }
 
 void
@@ -129,6 +247,21 @@ _ecore_timer_cleanup(void)
 	     if (timers_delete_me == 0) return;
 	  }
      }
+   for (l = (Ecore_List2 *)suspended; l;)
+     {
+	Ecore_Timer *timer;
+	
+	timer = (Ecore_Timer *)l;
+	l = l->next;
+	if (timer->delete_me)
+	  {
+	     suspended = _ecore_list2_remove(suspended, timer);
+	     ECORE_MAGIC_SET(timer, ECORE_MAGIC_NONE);
+	     free(timer);
+	     timers_delete_me--;
+	     if (timers_delete_me == 0) return;
+	  }
+     }
    timers_delete_me = 0;
 }
 
@@ -187,8 +320,8 @@ _ecore_timer_call(double when)
      {
 	timer = (Ecore_Timer *)l;
 	if ((timer->at <= when) &&
-	    (!timer->just_added) &&
-	    (!timer->delete_me))
+	    (timer->just_added == 0) &&
+	    (timer->delete_me == 0))
 	  {
 	     timers = _ecore_list2_remove(timers, timer);
 	     _ecore_timer_call(when);
@@ -232,6 +365,8 @@ _ecore_timer_set(Ecore_Timer *timer, double at, double in, int (*func) (void *da
    timer->func = func;
    timer->data = data;
    timer->just_added = 1;
+   timer->frozen = 0;
+   timer->pending = 0.0;
    if (timers)
      {
 	for (l = ((Ecore_List2 *)(timers))->last; l; l = l->prev)
diff --git a/src/lib/ecore/ecore_value.c b/src/lib/ecore/ecore_value.c
index d58715d..4c30079 100644
--- a/src/lib/ecore/ecore_value.c
+++ b/src/lib/ecore/ecore_value.c
@@ -45,6 +45,7 @@ ecore_print_warning(const char *function, const char *sparam)
 	   "\t%s\n\n"
 	   "\tbeing NULL. Please fix your program.\n", function, sparam);
    fflush(stderr);
+   if (getenv("ECORE_ERROR_ABORT")) abort();
 }
 
 /**
diff --git a/src/lib/ecore_con/Ecore_Con.h b/src/lib/ecore_con/Ecore_Con.h
index c116078..183a84c 100644
--- a/src/lib/ecore_con/Ecore_Con.h
+++ b/src/lib/ecore_con/Ecore_Con.h
@@ -25,6 +25,7 @@
 # endif
 #endif
 
+#include <time.h>
 #include <netdb.h>
 #include <Ecore_Data.h>
 
@@ -58,6 +59,7 @@
  * @li @ref Ecore_Con_Lib_Group
  * @li @ref Ecore_Con_Server_Group
  * @li @ref Ecore_Con_Client_Group
+ * @li @ref Ecore_Con_Url_Group
  */
 
 #ifdef __cplusplus
@@ -148,8 +150,14 @@ extern "C" {
    struct _Ecore_Con_Event_Url_Progress
      {
 	Ecore_Con_Url    *url_con;
-	double            total;
-	double            now;
+	struct {
+	   double         total;
+	   double         now;
+	} down;
+	struct {
+	   double         total;
+	   double         now;
+	} up;
      };
 
    EAPI extern int ECORE_CON_EVENT_CLIENT_ADD;
@@ -160,8 +168,7 @@ extern "C" {
    EAPI extern int ECORE_CON_EVENT_SERVER_DATA;
    EAPI extern int ECORE_CON_EVENT_URL_DATA;
    EAPI extern int ECORE_CON_EVENT_URL_COMPLETE;
-   EAPI extern int ECORE_CON_EVENT_URL_PROGRESS_DOWNLOAD;
-   EAPI extern int ECORE_CON_EVENT_URL_PROGRESS_UPLOAD;
+   EAPI extern int ECORE_CON_EVENT_URL_PROGRESS;
    
    EAPI int               ecore_con_init(void);
    EAPI int               ecore_con_shutdown(void);
@@ -195,6 +202,8 @@ extern "C" {
    EAPI void              ecore_con_url_data_set(Ecore_Con_Url *url_con, void *data);
    EAPI void             *ecore_con_url_data_get(Ecore_Con_Url *url_con);
    EAPI int               ecore_con_url_url_set(Ecore_Con_Url *url_con, const char *url);
+   EAPI void		  ecore_con_url_fd_set(Ecore_Con_Url *url_con, int fd);
+   EAPI int		  ecore_con_url_received_bytes_get(Ecore_Con_Url *url_con);
    EAPI int               ecore_con_url_send(Ecore_Con_Url *url_con, void *data, size_t length, char *content_type);
    EAPI void              ecore_con_url_time(Ecore_Con_Url *url_con, Ecore_Con_Url_Time condition, time_t tm);
 
diff --git a/src/lib/ecore_con/Makefile.in b/src/lib/ecore_con/Makefile.in
index c9c2bd5..08a507b 100644
--- a/src/lib/ecore_con/Makefile.in
+++ b/src/lib/ecore_con/Makefile.in
@@ -109,6 +109,8 @@ BUILD_ECORE_EVAS_DIRECTFB_TRUE = @BUILD_ECORE_EVAS_DIRECTFB_TRUE@
 BUILD_ECORE_EVAS_FALSE = @BUILD_ECORE_EVAS_FALSE@
 BUILD_ECORE_EVAS_FB_FALSE = @BUILD_ECORE_EVAS_FB_FALSE@
 BUILD_ECORE_EVAS_FB_TRUE = @BUILD_ECORE_EVAS_FB_TRUE@
+BUILD_ECORE_EVAS_SDL_FALSE = @BUILD_ECORE_EVAS_SDL_FALSE@
+BUILD_ECORE_EVAS_SDL_TRUE = @BUILD_ECORE_EVAS_SDL_TRUE@
 BUILD_ECORE_EVAS_TRUE = @BUILD_ECORE_EVAS_TRUE@
 BUILD_ECORE_EVAS_X11_16_FALSE = @BUILD_ECORE_EVAS_X11_16_FALSE@
 BUILD_ECORE_EVAS_X11_16_TRUE = @BUILD_ECORE_EVAS_X11_16_TRUE@
@@ -157,6 +159,7 @@ DEPDIR = @DEPDIR@
 DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
 DIRECTFB_LIBS = @DIRECTFB_LIBS@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -165,7 +168,31 @@ EET_CFLAGS = @EET_CFLAGS@
 EET_LIBS = @EET_LIBS@
 EGREP = @EGREP@
 EVAS_CFLAGS = @EVAS_CFLAGS@
+EVAS_DIRECT3D_CFLAGS = @EVAS_DIRECT3D_CFLAGS@
+EVAS_DIRECT3D_LIBS = @EVAS_DIRECT3D_LIBS@
+EVAS_DIRECTFB_CFLAGS = @EVAS_DIRECTFB_CFLAGS@
+EVAS_DIRECTFB_LIBS = @EVAS_DIRECTFB_LIBS@
+EVAS_FB_CFLAGS = @EVAS_FB_CFLAGS@
+EVAS_FB_LIBS = @EVAS_FB_LIBS@
 EVAS_LIBS = @EVAS_LIBS@
+EVAS_OPENGL_GLEW_CFLAGS = @EVAS_OPENGL_GLEW_CFLAGS@
+EVAS_OPENGL_GLEW_LIBS = @EVAS_OPENGL_GLEW_LIBS@
+EVAS_OPENGL_X11_CFLAGS = @EVAS_OPENGL_X11_CFLAGS@
+EVAS_OPENGL_X11_LIBS = @EVAS_OPENGL_X11_LIBS@
+EVAS_SOFTWARE_16_DDRAW_CFLAGS = @EVAS_SOFTWARE_16_DDRAW_CFLAGS@
+EVAS_SOFTWARE_16_DDRAW_LIBS = @EVAS_SOFTWARE_16_DDRAW_LIBS@
+EVAS_SOFTWARE_16_X11_CFLAGS = @EVAS_SOFTWARE_16_X11_CFLAGS@
+EVAS_SOFTWARE_16_X11_LIBS = @EVAS_SOFTWARE_16_X11_LIBS@
+EVAS_SOFTWARE_BUFFER_CFLAGS = @EVAS_SOFTWARE_BUFFER_CFLAGS@
+EVAS_SOFTWARE_BUFFER_LIBS = @EVAS_SOFTWARE_BUFFER_LIBS@
+EVAS_SOFTWARE_DDRAW_CFLAGS = @EVAS_SOFTWARE_DDRAW_CFLAGS@
+EVAS_SOFTWARE_DDRAW_LIBS = @EVAS_SOFTWARE_DDRAW_LIBS@
+EVAS_SOFTWARE_SDL_CFLAGS = @EVAS_SOFTWARE_SDL_CFLAGS@
+EVAS_SOFTWARE_SDL_LIBS = @EVAS_SOFTWARE_SDL_LIBS@
+EVAS_SOFTWARE_X11_CFLAGS = @EVAS_SOFTWARE_X11_CFLAGS@
+EVAS_SOFTWARE_X11_LIBS = @EVAS_SOFTWARE_X11_LIBS@
+EVAS_XRENDER_X11_CFLAGS = @EVAS_XRENDER_X11_CFLAGS@
+EVAS_XRENDER_X11_LIBS = @EVAS_XRENDER_X11_LIBS@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
@@ -179,6 +206,7 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -191,6 +219,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
 SDL_LIBS = @SDL_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -223,6 +252,8 @@ XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
 XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
 XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
 XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
+XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
+XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
 XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
 XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
 XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
@@ -242,6 +273,8 @@ XRENDER_CFLAGS = @XRENDER_CFLAGS@
 XRENDER_LIBS = @XRENDER_LIBS@
 XSS_CFLAGS = @XSS_CFLAGS@
 XSS_LIBS = @XSS_LIBS@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
 X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c
index 42dab53..943df58 100644
--- a/src/lib/ecore_con/ecore_con.c
+++ b/src/lib/ecore_con/ecore_con.c
@@ -9,7 +9,7 @@
 #include <errno.h>
 #include <netdb.h>
 
-#include "config.h"
+#include <config.h>
 
 #if USE_OPENSSL
 #include <time.h>
@@ -21,9 +21,10 @@
 #include "ecore_con_private.h"
 
 #ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#elif _WIN32
-#include <winsock2.h>
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_WINSOCK2_H
+# include <winsock2.h>
 #endif
 
 static void _ecore_con_cb_dns_lookup(void *data, struct hostent *he);
@@ -198,7 +199,12 @@ ecore_con_server_add(Ecore_Con_Type compl_type, const char *name, int port,
 	  {
 	     mask = 0;
 	     if (name[0] == '/')
-	       snprintf(buf, sizeof(buf), "%s|%i", name, port);
+	       {
+		  if (port >= 0)
+		    snprintf(buf, sizeof(buf), "%s|%i", name, port);
+		  else
+		    snprintf(buf, sizeof(buf), "%s", name);
+	       }
 	     else
 	       snprintf(buf, sizeof(buf), "/tmp/.ecore_service|%s|%i", name, port);
 	  }
@@ -619,7 +625,7 @@ ecore_con_server_connected_get(Ecore_Con_Server *svr)
  * @return  The list of clients on this server.
  * @ingroup Ecore_Con_Server_Group
  */
-EAPI Ecore_List*
+EAPI Ecore_List *
 ecore_con_server_clients_get(Ecore_Con_Server *svr)
 {
    if (!ECORE_MAGIC_CHECK(svr, ECORE_MAGIC_CON_SERVER))
diff --git a/src/lib/ecore_con/ecore_con_private.h b/src/lib/ecore_con/ecore_con_private.h
index 8b4dc6a..d5d9258 100644
--- a/src/lib/ecore_con/ecore_con_private.h
+++ b/src/lib/ecore_con/ecore_con_private.h
@@ -22,7 +22,6 @@
 
 struct _Ecore_Con_Client
 {
-   Ecore_List        __list_data;
    ECORE_MAGIC;
    int               fd;
    Ecore_Con_Server *server;
@@ -39,7 +38,6 @@ struct _Ecore_Con_Client
 
 struct _Ecore_Con_Server
 {
-   Ecore_List        __list_data;
    ECORE_MAGIC;
    int               fd;
    Ecore_Con_Type    type;
@@ -80,6 +78,11 @@ struct _Ecore_Con_Url
    void              *data;
 
    Ecore_Fd_Handler  *fd_handler;
+   int		      fd;
+   int		      flags;
+
+   int		      received;
+   int		      write_fd;
 
    unsigned char      active : 1;
 };
diff --git a/src/lib/ecore_con/ecore_con_url.c b/src/lib/ecore_con/ecore_con_url.c
index ce77912..24e7d77 100644
--- a/src/lib/ecore_con/ecore_con_url.c
+++ b/src/lib/ecore_con/ecore_con_url.c
@@ -40,6 +40,20 @@
 #include "Ecore_Con.h"
 #include "ecore_con_private.h"
 
+#include <errno.h>
+
+/**
+ * @defgroup Ecore_Con_Url_Group Ecore URL Connection Functions
+ *
+ * Utility functions that set up, use and shut down the Ecore URL 
+ * Connection library.
+ * FIXME: write detailed description
+ */
+
+int ECORE_CON_EVENT_URL_DATA = 0;
+int ECORE_CON_EVENT_URL_COMPLETE = 0;
+int ECORE_CON_EVENT_URL_PROGRESS = 0;
+
 #ifdef HAVE_CURL
 static int _ecore_con_url_fd_handler(void *data, Ecore_Fd_Handler *fd_handler);
 static int _ecore_con_url_perform(Ecore_Con_Url *url_con);
@@ -48,15 +62,11 @@ static int _ecore_con_url_progress_cb(void *clientp, double dltotal, double dlno
 static void _ecore_con_event_url_free(void *data __UNUSED__, void *ev);
 static int _ecore_con_url_process_completed_jobs(Ecore_Con_Url *url_con_to_match);
 
-int ECORE_CON_EVENT_URL_DATA = 0;
-int ECORE_CON_EVENT_URL_COMPLETE = 0;
-int ECORE_CON_EVENT_URL_PROGRESS_DOWNLOAD = 0;
-int ECORE_CON_EVENT_URL_PROGRESS_UPLOAD = 0;
-
-static CURLM *curlm = NULL;
-static Ecore_List *_url_con_list = NULL;
-static fd_set _current_fd_set;
-static int init_count = 0;
+static Ecore_Idler	*_fd_idler_handler = NULL;
+static Ecore_List	*_url_con_list = NULL;
+static CURLM		*curlm = NULL;
+static fd_set		 _current_fd_set;
+static int		 init_count = 0;
 
 struct _Ecore_Con_Url_Event
 {
@@ -92,6 +102,12 @@ _url_complete_push_event(int type, void *ev)
 
 #endif
 
+/**
+ * Initialises the Ecore_Con_Url library.
+ * @return Number of times the library has been initialised without being
+ *          shut down.
+ * @ingroup Ecore_Con_Url_Group
+ */
 EAPI int
 ecore_con_url_init(void)
 {
@@ -100,8 +116,7 @@ ecore_con_url_init(void)
      {
 	ECORE_CON_EVENT_URL_DATA = ecore_event_type_new();
 	ECORE_CON_EVENT_URL_COMPLETE = ecore_event_type_new();
-	ECORE_CON_EVENT_URL_PROGRESS_DOWNLOAD = ecore_event_type_new();
-	ECORE_CON_EVENT_URL_PROGRESS_UPLOAD = ecore_event_type_new();
+	ECORE_CON_EVENT_URL_PROGRESS = ecore_event_type_new();
      }
 
    if (!_url_con_list)
@@ -135,6 +150,11 @@ ecore_con_url_init(void)
 #endif
 }
 
+/**
+ * Shuts down the Ecore_Con_Url library.
+ * @return  Number of calls that still uses Ecore_Con_Url
+ * @ingroup Ecore_Con_Url_Group
+ */
 EAPI int
 ecore_con_url_shutdown(void)
 {
@@ -149,7 +169,7 @@ ecore_con_url_shutdown(void)
 	if (!ecore_list_empty_is(_url_con_list))
 	  {
 	     Ecore_Con_Url *url_con;
-	     while ((url_con = ecore_list_first_remove(_url_con_list)))
+	     while ((url_con = ecore_list_first(_url_con_list)))
 	       {
 		  ecore_con_url_destroy(url_con);
 	       }
@@ -169,6 +189,11 @@ ecore_con_url_shutdown(void)
    return 1;
 }
 
+/**
+ * Creates and initializes a new Ecore_Con_Url.
+ * @return  NULL on error, a new Ecore_Con_Url on success.
+ * @ingroup Ecore_Con_Url_Group
+ */
 EAPI Ecore_Con_Url *
 ecore_con_url_new(const char *url)
 {
@@ -206,6 +231,11 @@ ecore_con_url_new(const char *url)
    curl_easy_setopt(url_con->curl_easy, CURLOPT_TIMEOUT, 300);
    curl_easy_setopt(url_con->curl_easy, CURLOPT_FOLLOWLOCATION, 1);
 
+   curl_easy_setopt(url_con->curl_easy, CURLOPT_ENCODING, "gzip,deflate");
+
+   url_con->fd = -1;
+   url_con->write_fd = -1;
+
    return url_con;
 #else
    return NULL;
@@ -213,6 +243,11 @@ ecore_con_url_new(const char *url)
 #endif
 }
 
+/**
+ * Frees the Ecore_Con_Url.
+ * @return  FIXME: To be documented. 
+ * @ingroup Ecore_Con_Url_Group
+ */
 EAPI void
 ecore_con_url_destroy(Ecore_Con_Url *url_con)
 {
@@ -226,11 +261,20 @@ ecore_con_url_destroy(Ecore_Con_Url *url_con)
 
    ECORE_MAGIC_SET(url_con, ECORE_MAGIC_NONE);
    if (url_con->fd_handler)
-     ecore_main_fd_handler_del(url_con->fd_handler);
+     {
+	ecore_main_fd_handler_del(url_con->fd_handler);
+	url_con->fd = -1;
+     }
    if (url_con->curl_easy)
      {
 	if (url_con->active)
-	  curl_multi_remove_handle(curlm, url_con->curl_easy);
+	  {
+	     if (ecore_list_find(_url_con_list, ecore_direct_compare, url_con) == url_con)
+	       ecore_list_remove(_url_con_list);
+	     url_con->active = 0;
+
+	     curl_multi_remove_handle(curlm, url_con->curl_easy);
+	  }
 	curl_easy_cleanup(url_con->curl_easy);
      }
    curl_slist_free_all(url_con->headers);
@@ -242,6 +286,11 @@ ecore_con_url_destroy(Ecore_Con_Url *url_con)
 #endif
 }
 
+/**
+ * FIXME: To be documented.
+ * @return  FIXME: To be documented.
+ * @ingroup Ecore_Con_Url_Group
+ */
 EAPI int
 ecore_con_url_url_set(Ecore_Con_Url *url_con, const char *url)
 {
@@ -267,6 +316,11 @@ ecore_con_url_url_set(Ecore_Con_Url *url_con, const char *url)
 #endif
 }
 
+/**
+ * FIXME: To be documented.
+ * @return  FIXME: To be documented.
+ * @ingroup Ecore_Con_Url_Group
+ */
 EAPI void
 ecore_con_url_data_set(Ecore_Con_Url *url_con, void *data)
 {
@@ -285,6 +339,11 @@ ecore_con_url_data_set(Ecore_Con_Url *url_con, void *data)
 #endif
 }
 
+/**
+ * FIXME: To be documented.
+ * @return  FIXME: To be documented.
+ * @ingroup Ecore_Con_Url_Group
+ */
 EAPI void *
 ecore_con_url_data_get(Ecore_Con_Url *url_con)
 {
@@ -302,6 +361,11 @@ ecore_con_url_data_get(Ecore_Con_Url *url_con)
 #endif
 }
 
+/**
+ * FIXME: To be documented.
+ * @return  FIXME: To be documented.
+ * @ingroup Ecore_Con_Url_Group
+ */
 EAPI void
 ecore_con_url_time(Ecore_Con_Url *url_con, Ecore_Con_Url_Time condition, time_t tm)
 {
@@ -322,6 +386,49 @@ ecore_con_url_time(Ecore_Con_Url *url_con, Ecore_Con_Url_Time condition, time_t
 #endif
 }
 
+/**
+ * FIXME: To be documented.
+ * @return  FIXME: To be documented.
+ * @ingroup Ecore_Con_Url_Group
+ */
+EAPI void
+ecore_con_url_fd_set(Ecore_Con_Url *url_con, int fd)
+{
+#ifdef HAVE_CURL
+   if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
+     {
+	ECORE_MAGIC_FAIL(url_con, ECORE_MAGIC_CON_URL, "ecore_con_url_set");
+	return ;
+     }
+   url_con->write_fd = fd;
+#endif   
+}
+
+/**
+ * FIXME: To be documented.
+ * @return  FIXME: To be documented.
+ * @ingroup Ecore_Con_Url_Group
+ */
+EAPI int
+ecore_con_url_received_bytes_get(Ecore_Con_Url *url_con)
+{
+#ifdef HAVE_CURL
+   if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
+     {
+	ECORE_MAGIC_FAIL(url_con, ECORE_MAGIC_CON_URL, "ecore_con_url_received_bytes_get");
+	return -1;
+     }
+
+   return url_con->received;
+#endif   
+   return 0;
+}
+
+/**
+ * FIXME: To be documented.
+ * @return  FIXME: To be documented.
+ * @ingroup Ecore_Con_Url_Group
+ */
 EAPI int
 ecore_con_url_send(Ecore_Con_Url *url_con, void *data, size_t length, char *content_type)
 {
@@ -386,6 +493,57 @@ ecore_con_url_send(Ecore_Con_Url *url_con, void *data, size_t length, char *cont
 }
 
 #ifdef HAVE_CURL
+static int
+_ecore_con_url_suspend_fd_handler(void)
+{
+   Ecore_Con_Url	*url_con;
+   int			 deleted = 0;
+
+   if (!_url_con_list)
+     return 0;
+
+   ecore_list_first_goto(_url_con_list);
+   while ((url_con = ecore_list_current(_url_con_list)))
+     {
+	if (url_con->active && url_con->fd_handler)
+	  {
+	     ecore_main_fd_handler_del(url_con->fd_handler);
+	     url_con->fd_handler = NULL;
+	     deleted++;
+	  }
+	ecore_list_next(_url_con_list);
+     }
+
+   return deleted;
+}
+
+static int
+_ecore_con_url_restart_fd_handler(void)
+{
+   Ecore_Con_Url	*url_con;
+   int			 activated = 0;
+
+   if (!_url_con_list)
+     return 0;
+
+   ecore_list_first_goto(_url_con_list);
+   while ((url_con = ecore_list_current(_url_con_list)))
+     {
+	if (url_con->fd_handler == NULL
+	    && url_con->fd != -1)
+	  {
+	     url_con->fd_handler = ecore_main_fd_handler_add(url_con->fd,
+							     url_con->flags,
+							     _ecore_con_url_fd_handler,
+							     NULL, NULL, NULL);
+	     activated++;
+	  }
+	ecore_list_next(_url_con_list);
+     }
+
+   return activated;
+}
+
 static size_t
 _ecore_con_url_data_cb(void *buffer, size_t size, size_t nmemb, void *userp)
 {
@@ -394,15 +552,50 @@ _ecore_con_url_data_cb(void *buffer, size_t size, size_t nmemb, void *userp)
    size_t real_size = size * nmemb;
 
    url_con = (Ecore_Con_Url *)userp;
-   e = malloc(sizeof(Ecore_Con_Event_Url_Data) + sizeof(unsigned char) * (real_size - 1));
-   if (e)
+
+   if (!url_con) return -1;
+   if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
      {
-	e->url_con = url_con;
-	e->size = real_size;
-	memcpy(e->data, buffer, real_size);
-	ecore_event_add(ECORE_CON_EVENT_URL_DATA, e,
-			_ecore_con_event_url_free, NULL);
+	ECORE_MAGIC_FAIL(url_con, ECORE_MAGIC_CON_URL, "ecore_con_url_data_cb");
+	return -1;
+     }
+
+   url_con->received += real_size;
+
+   if (url_con->write_fd < 0)
+     {
+	e = malloc(sizeof(Ecore_Con_Event_Url_Data) + sizeof(unsigned char) * (real_size - 1));
+	if (e)
+	  {
+	     e->url_con = url_con;
+	     e->size = real_size;
+	     memcpy(e->data, buffer, real_size);
+	     ecore_event_add(ECORE_CON_EVENT_URL_DATA, e,
+			     _ecore_con_event_url_free, NULL);
+	  }
      }
+   else
+     {
+	ssize_t	count = 0;
+	size_t	total_size = real_size;
+	size_t	offset = 0;
+
+	while (total_size > 0)
+	  {
+	     count = write(url_con->write_fd, (char*) buffer + offset, total_size);
+	     if (count < 0)
+	       {
+		  if (errno != EAGAIN && errno != EINTR)
+		    return -1;
+	       }
+	     else
+	       {
+		  total_size -= count;
+		  offset += count;
+	       }
+	  }
+     }
+
    return real_size;
 }
 
@@ -425,12 +618,21 @@ _ecore_con_url_data_cb(void *buffer, size_t size, size_t nmemb, void *userp)
 static int
 _ecore_con_url_progress_cb(void *clientp, double dltotal, double dlnow, double ultotal, double ulnow)
 {
-   Ecore_Con_Url *url_con;
+   Ecore_Con_Event_Url_Progress	*e;
+   Ecore_Con_Url		*url_con;
 
    url_con = clientp;
 
-   ECORE_CON_URL_TRANSMISSION(Download, ECORE_CON_EVENT_URL_PROGRESS_DOWNLOAD, url_con, dltotal, dlnow);
-   ECORE_CON_URL_TRANSMISSION(Upload, ECORE_CON_EVENT_URL_PROGRESS_UPLOAD, url_con, ultotal, ulnow);
+   e = calloc(1, sizeof(Ecore_Con_Event_Url_Progress));
+   if (e)
+     {
+	e->url_con = url_con;
+	e->down.total = dltotal;
+	e->down.now = dlnow;
+	e->up.total = ultotal;
+	e->up.now = ulnow;
+	ecore_event_add(ECORE_CON_EVENT_URL_PROGRESS, e, _ecore_con_event_url_free, NULL);
+     }
 
    return 0;
 }
@@ -439,6 +641,7 @@ static int
 _ecore_con_url_perform(Ecore_Con_Url *url_con)
 {
    fd_set read_set, write_set, exc_set;
+   double start;
    int fd_max;
    int fd;
    int flags;
@@ -447,8 +650,10 @@ _ecore_con_url_perform(Ecore_Con_Url *url_con)
 
    ecore_list_append(_url_con_list, url_con);
 
+   start = ecore_time_get();
    url_con->active = 1;
    curl_multi_add_handle(curlm, url_con->curl_easy);
+   /* This one can't be stopped, or the download never start. */
    while (curl_multi_perform(curlm, &still_running) == CURLM_CALL_MULTI_PERFORM);
 
    completed_immediately =  _ecore_con_url_process_completed_jobs(url_con);
@@ -473,9 +678,12 @@ _ecore_con_url_perform(Ecore_Con_Url *url_con)
 		  if (flags)
 		    {
 		       FD_SET(fd, &_current_fd_set);
+		       url_con->fd = fd;
+		       url_con->flags = flags;
 		       url_con->fd_handler = ecore_main_fd_handler_add(fd, flags,
 								       _ecore_con_url_fd_handler,
 								       NULL, NULL, NULL);
+		       break;
 		    }
 	       }
 	  }
@@ -484,6 +692,7 @@ _ecore_con_url_perform(Ecore_Con_Url *url_con)
 	     /* Failed to set up an fd_handler */
 	     curl_multi_remove_handle(curlm, url_con->curl_easy);
 	     url_con->active = 0;
+	     url_con->fd = -1;
 	     return 0;
 	  }
      }
@@ -492,14 +701,41 @@ _ecore_con_url_perform(Ecore_Con_Url *url_con)
 }
 
 static int
+_ecore_con_url_idler_handler(void *data)
+{
+   double	start;
+   int		done = 1;
+   int		still_running;
+
+   start = ecore_time_get();
+   while (curl_multi_perform(curlm, &still_running) == CURLM_CALL_MULTI_PERFORM)
+     /* make this 1/20th of a second to keep interactivity high */
+     if ((ecore_time_get() - start) > 0.2)
+       {
+	  done = 0;
+	  break;
+       }
+
+   _ecore_con_url_process_completed_jobs(NULL);
+
+   if (done)
+     {
+	_ecore_con_url_restart_fd_handler();
+	_fd_idler_handler = NULL;
+	return 0;
+     }
+
+   return 1;
+}
+
+static int
 _ecore_con_url_fd_handler(void *data __UNUSED__, Ecore_Fd_Handler *fd_handler __UNUSED__)
 {
-   int still_running;
+   _ecore_con_url_suspend_fd_handler();
 
-   /* FIXME: Can this run for a long time? Maybe limit how long it can run */
-   while (curl_multi_perform(curlm, &still_running) == CURLM_CALL_MULTI_PERFORM);
+   if (_fd_idler_handler == NULL)
+     _fd_idler_handler = ecore_idler_add(_ecore_con_url_idler_handler, NULL);
 
-   _ecore_con_url_process_completed_jobs(NULL);
    return 1;
 }
 
@@ -526,11 +762,12 @@ _ecore_con_url_process_completed_jobs(Ecore_Con_Url *url_con_to_match)
 		  if (url_con_to_match && (url_con == url_con_to_match)) {
 		       job_matched = 1;
 		  }
-		  if (url_con->fd_handler)
+		  if (url_con->fd != -1)
 		    {
-		       FD_CLR(ecore_main_fd_handler_fd_get(url_con->fd_handler),
-			      &_current_fd_set);
-		       ecore_main_fd_handler_del(url_con->fd_handler);
+		       FD_CLR(url_con->fd, &_current_fd_set);
+		       if (url_con->fd_handler)
+			 ecore_main_fd_handler_del(url_con->fd_handler);
+		       url_con->fd = -1;
 		       url_con->fd_handler = NULL;
 		    }
 		  ecore_list_remove(_url_con_list);
@@ -556,6 +793,7 @@ _ecore_con_url_process_completed_jobs(Ecore_Con_Url *url_con_to_match)
      }
    return job_matched;
 }
+
 static void
 _ecore_con_event_url_free(void *data __UNUSED__, void *ev)
 {
diff --git a/src/lib/ecore_config/Makefile.in b/src/lib/ecore_config/Makefile.in
index 7d998cd..91c3e1c 100644
--- a/src/lib/ecore_config/Makefile.in
+++ b/src/lib/ecore_config/Makefile.in
@@ -122,6 +122,8 @@ BUILD_ECORE_EVAS_DIRECTFB_TRUE = @BUILD_ECORE_EVAS_DIRECTFB_TRUE@
 BUILD_ECORE_EVAS_FALSE = @BUILD_ECORE_EVAS_FALSE@
 BUILD_ECORE_EVAS_FB_FALSE = @BUILD_ECORE_EVAS_FB_FALSE@
 BUILD_ECORE_EVAS_FB_TRUE = @BUILD_ECORE_EVAS_FB_TRUE@
+BUILD_ECORE_EVAS_SDL_FALSE = @BUILD_ECORE_EVAS_SDL_FALSE@
+BUILD_ECORE_EVAS_SDL_TRUE = @BUILD_ECORE_EVAS_SDL_TRUE@
 BUILD_ECORE_EVAS_TRUE = @BUILD_ECORE_EVAS_TRUE@
 BUILD_ECORE_EVAS_X11_16_FALSE = @BUILD_ECORE_EVAS_X11_16_FALSE@
 BUILD_ECORE_EVAS_X11_16_TRUE = @BUILD_ECORE_EVAS_X11_16_TRUE@
@@ -170,6 +172,7 @@ DEPDIR = @DEPDIR@
 DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
 DIRECTFB_LIBS = @DIRECTFB_LIBS@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -178,7 +181,31 @@ EET_CFLAGS = @EET_CFLAGS@
 EET_LIBS = @EET_LIBS@
 EGREP = @EGREP@
 EVAS_CFLAGS = @EVAS_CFLAGS@
+EVAS_DIRECT3D_CFLAGS = @EVAS_DIRECT3D_CFLAGS@
+EVAS_DIRECT3D_LIBS = @EVAS_DIRECT3D_LIBS@
+EVAS_DIRECTFB_CFLAGS = @EVAS_DIRECTFB_CFLAGS@
+EVAS_DIRECTFB_LIBS = @EVAS_DIRECTFB_LIBS@
+EVAS_FB_CFLAGS = @EVAS_FB_CFLAGS@
+EVAS_FB_LIBS = @EVAS_FB_LIBS@
 EVAS_LIBS = @EVAS_LIBS@
+EVAS_OPENGL_GLEW_CFLAGS = @EVAS_OPENGL_GLEW_CFLAGS@
+EVAS_OPENGL_GLEW_LIBS = @EVAS_OPENGL_GLEW_LIBS@
+EVAS_OPENGL_X11_CFLAGS = @EVAS_OPENGL_X11_CFLAGS@
+EVAS_OPENGL_X11_LIBS = @EVAS_OPENGL_X11_LIBS@
+EVAS_SOFTWARE_16_DDRAW_CFLAGS = @EVAS_SOFTWARE_16_DDRAW_CFLAGS@
+EVAS_SOFTWARE_16_DDRAW_LIBS = @EVAS_SOFTWARE_16_DDRAW_LIBS@
+EVAS_SOFTWARE_16_X11_CFLAGS = @EVAS_SOFTWARE_16_X11_CFLAGS@
+EVAS_SOFTWARE_16_X11_LIBS = @EVAS_SOFTWARE_16_X11_LIBS@
+EVAS_SOFTWARE_BUFFER_CFLAGS = @EVAS_SOFTWARE_BUFFER_CFLAGS@
+EVAS_SOFTWARE_BUFFER_LIBS = @EVAS_SOFTWARE_BUFFER_LIBS@
+EVAS_SOFTWARE_DDRAW_CFLAGS = @EVAS_SOFTWARE_DDRAW_CFLAGS@
+EVAS_SOFTWARE_DDRAW_LIBS = @EVAS_SOFTWARE_DDRAW_LIBS@
+EVAS_SOFTWARE_SDL_CFLAGS = @EVAS_SOFTWARE_SDL_CFLAGS@
+EVAS_SOFTWARE_SDL_LIBS = @EVAS_SOFTWARE_SDL_LIBS@
+EVAS_SOFTWARE_X11_CFLAGS = @EVAS_SOFTWARE_X11_CFLAGS@
+EVAS_SOFTWARE_X11_LIBS = @EVAS_SOFTWARE_X11_LIBS@
+EVAS_XRENDER_X11_CFLAGS = @EVAS_XRENDER_X11_CFLAGS@
+EVAS_XRENDER_X11_LIBS = @EVAS_XRENDER_X11_LIBS@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
@@ -192,6 +219,7 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -204,6 +232,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
 SDL_LIBS = @SDL_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -236,6 +265,8 @@ XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
 XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
 XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
 XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
+XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
+XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
 XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
 XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
 XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
@@ -255,6 +286,8 @@ XRENDER_CFLAGS = @XRENDER_CFLAGS@
 XRENDER_LIBS = @XRENDER_LIBS@
 XSS_CFLAGS = @XSS_CFLAGS@
 XSS_LIBS = @XSS_LIBS@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
 X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
diff --git a/src/lib/ecore_desktop/Makefile.in b/src/lib/ecore_desktop/Makefile.in
index 4626543..47d1b9d 100644
--- a/src/lib/ecore_desktop/Makefile.in
+++ b/src/lib/ecore_desktop/Makefile.in
@@ -117,6 +117,8 @@ BUILD_ECORE_EVAS_DIRECTFB_TRUE = @BUILD_ECORE_EVAS_DIRECTFB_TRUE@
 BUILD_ECORE_EVAS_FALSE = @BUILD_ECORE_EVAS_FALSE@
 BUILD_ECORE_EVAS_FB_FALSE = @BUILD_ECORE_EVAS_FB_FALSE@
 BUILD_ECORE_EVAS_FB_TRUE = @BUILD_ECORE_EVAS_FB_TRUE@
+BUILD_ECORE_EVAS_SDL_FALSE = @BUILD_ECORE_EVAS_SDL_FALSE@
+BUILD_ECORE_EVAS_SDL_TRUE = @BUILD_ECORE_EVAS_SDL_TRUE@
 BUILD_ECORE_EVAS_TRUE = @BUILD_ECORE_EVAS_TRUE@
 BUILD_ECORE_EVAS_X11_16_FALSE = @BUILD_ECORE_EVAS_X11_16_FALSE@
 BUILD_ECORE_EVAS_X11_16_TRUE = @BUILD_ECORE_EVAS_X11_16_TRUE@
@@ -165,6 +167,7 @@ DEPDIR = @DEPDIR@
 DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
 DIRECTFB_LIBS = @DIRECTFB_LIBS@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -173,7 +176,31 @@ EET_CFLAGS = @EET_CFLAGS@
 EET_LIBS = @EET_LIBS@
 EGREP = @EGREP@
 EVAS_CFLAGS = @EVAS_CFLAGS@
+EVAS_DIRECT3D_CFLAGS = @EVAS_DIRECT3D_CFLAGS@
+EVAS_DIRECT3D_LIBS = @EVAS_DIRECT3D_LIBS@
+EVAS_DIRECTFB_CFLAGS = @EVAS_DIRECTFB_CFLAGS@
+EVAS_DIRECTFB_LIBS = @EVAS_DIRECTFB_LIBS@
+EVAS_FB_CFLAGS = @EVAS_FB_CFLAGS@
+EVAS_FB_LIBS = @EVAS_FB_LIBS@
 EVAS_LIBS = @EVAS_LIBS@
+EVAS_OPENGL_GLEW_CFLAGS = @EVAS_OPENGL_GLEW_CFLAGS@
+EVAS_OPENGL_GLEW_LIBS = @EVAS_OPENGL_GLEW_LIBS@
+EVAS_OPENGL_X11_CFLAGS = @EVAS_OPENGL_X11_CFLAGS@
+EVAS_OPENGL_X11_LIBS = @EVAS_OPENGL_X11_LIBS@
+EVAS_SOFTWARE_16_DDRAW_CFLAGS = @EVAS_SOFTWARE_16_DDRAW_CFLAGS@
+EVAS_SOFTWARE_16_DDRAW_LIBS = @EVAS_SOFTWARE_16_DDRAW_LIBS@
+EVAS_SOFTWARE_16_X11_CFLAGS = @EVAS_SOFTWARE_16_X11_CFLAGS@
+EVAS_SOFTWARE_16_X11_LIBS = @EVAS_SOFTWARE_16_X11_LIBS@
+EVAS_SOFTWARE_BUFFER_CFLAGS = @EVAS_SOFTWARE_BUFFER_CFLAGS@
+EVAS_SOFTWARE_BUFFER_LIBS = @EVAS_SOFTWARE_BUFFER_LIBS@
+EVAS_SOFTWARE_DDRAW_CFLAGS = @EVAS_SOFTWARE_DDRAW_CFLAGS@
+EVAS_SOFTWARE_DDRAW_LIBS = @EVAS_SOFTWARE_DDRAW_LIBS@
+EVAS_SOFTWARE_SDL_CFLAGS = @EVAS_SOFTWARE_SDL_CFLAGS@
+EVAS_SOFTWARE_SDL_LIBS = @EVAS_SOFTWARE_SDL_LIBS@
+EVAS_SOFTWARE_X11_CFLAGS = @EVAS_SOFTWARE_X11_CFLAGS@
+EVAS_SOFTWARE_X11_LIBS = @EVAS_SOFTWARE_X11_LIBS@
+EVAS_XRENDER_X11_CFLAGS = @EVAS_XRENDER_X11_CFLAGS@
+EVAS_XRENDER_X11_LIBS = @EVAS_XRENDER_X11_LIBS@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
@@ -187,6 +214,7 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -199,6 +227,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
 SDL_LIBS = @SDL_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -231,6 +260,8 @@ XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
 XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
 XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
 XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
+XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
+XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
 XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
 XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
 XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
@@ -250,6 +281,8 @@ XRENDER_CFLAGS = @XRENDER_CFLAGS@
 XRENDER_LIBS = @XRENDER_LIBS@
 XSS_CFLAGS = @XSS_CFLAGS@
 XSS_LIBS = @XSS_LIBS@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
 X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
diff --git a/src/lib/ecore_directfb/Makefile.in b/src/lib/ecore_directfb/Makefile.in
index 049b066..abd03de 100644
--- a/src/lib/ecore_directfb/Makefile.in
+++ b/src/lib/ecore_directfb/Makefile.in
@@ -110,6 +110,8 @@ BUILD_ECORE_EVAS_DIRECTFB_TRUE = @BUILD_ECORE_EVAS_DIRECTFB_TRUE@
 BUILD_ECORE_EVAS_FALSE = @BUILD_ECORE_EVAS_FALSE@
 BUILD_ECORE_EVAS_FB_FALSE = @BUILD_ECORE_EVAS_FB_FALSE@
 BUILD_ECORE_EVAS_FB_TRUE = @BUILD_ECORE_EVAS_FB_TRUE@
+BUILD_ECORE_EVAS_SDL_FALSE = @BUILD_ECORE_EVAS_SDL_FALSE@
+BUILD_ECORE_EVAS_SDL_TRUE = @BUILD_ECORE_EVAS_SDL_TRUE@
 BUILD_ECORE_EVAS_TRUE = @BUILD_ECORE_EVAS_TRUE@
 BUILD_ECORE_EVAS_X11_16_FALSE = @BUILD_ECORE_EVAS_X11_16_FALSE@
 BUILD_ECORE_EVAS_X11_16_TRUE = @BUILD_ECORE_EVAS_X11_16_TRUE@
@@ -158,6 +160,7 @@ DEPDIR = @DEPDIR@
 DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
 DIRECTFB_LIBS = @DIRECTFB_LIBS@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -166,7 +169,31 @@ EET_CFLAGS = @EET_CFLAGS@
 EET_LIBS = @EET_LIBS@
 EGREP = @EGREP@
 EVAS_CFLAGS = @EVAS_CFLAGS@
+EVAS_DIRECT3D_CFLAGS = @EVAS_DIRECT3D_CFLAGS@
+EVAS_DIRECT3D_LIBS = @EVAS_DIRECT3D_LIBS@
+EVAS_DIRECTFB_CFLAGS = @EVAS_DIRECTFB_CFLAGS@
+EVAS_DIRECTFB_LIBS = @EVAS_DIRECTFB_LIBS@
+EVAS_FB_CFLAGS = @EVAS_FB_CFLAGS@
+EVAS_FB_LIBS = @EVAS_FB_LIBS@
 EVAS_LIBS = @EVAS_LIBS@
+EVAS_OPENGL_GLEW_CFLAGS = @EVAS_OPENGL_GLEW_CFLAGS@
+EVAS_OPENGL_GLEW_LIBS = @EVAS_OPENGL_GLEW_LIBS@
+EVAS_OPENGL_X11_CFLAGS = @EVAS_OPENGL_X11_CFLAGS@
+EVAS_OPENGL_X11_LIBS = @EVAS_OPENGL_X11_LIBS@
+EVAS_SOFTWARE_16_DDRAW_CFLAGS = @EVAS_SOFTWARE_16_DDRAW_CFLAGS@
+EVAS_SOFTWARE_16_DDRAW_LIBS = @EVAS_SOFTWARE_16_DDRAW_LIBS@
+EVAS_SOFTWARE_16_X11_CFLAGS = @EVAS_SOFTWARE_16_X11_CFLAGS@
+EVAS_SOFTWARE_16_X11_LIBS = @EVAS_SOFTWARE_16_X11_LIBS@
+EVAS_SOFTWARE_BUFFER_CFLAGS = @EVAS_SOFTWARE_BUFFER_CFLAGS@
+EVAS_SOFTWARE_BUFFER_LIBS = @EVAS_SOFTWARE_BUFFER_LIBS@
+EVAS_SOFTWARE_DDRAW_CFLAGS = @EVAS_SOFTWARE_DDRAW_CFLAGS@
+EVAS_SOFTWARE_DDRAW_LIBS = @EVAS_SOFTWARE_DDRAW_LIBS@
+EVAS_SOFTWARE_SDL_CFLAGS = @EVAS_SOFTWARE_SDL_CFLAGS@
+EVAS_SOFTWARE_SDL_LIBS = @EVAS_SOFTWARE_SDL_LIBS@
+EVAS_SOFTWARE_X11_CFLAGS = @EVAS_SOFTWARE_X11_CFLAGS@
+EVAS_SOFTWARE_X11_LIBS = @EVAS_SOFTWARE_X11_LIBS@
+EVAS_XRENDER_X11_CFLAGS = @EVAS_XRENDER_X11_CFLAGS@
+EVAS_XRENDER_X11_LIBS = @EVAS_XRENDER_X11_LIBS@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
@@ -180,6 +207,7 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -192,6 +220,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
 SDL_LIBS = @SDL_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -224,6 +253,8 @@ XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
 XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
 XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
 XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
+XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
+XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
 XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
 XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
 XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
@@ -243,6 +274,8 @@ XRENDER_CFLAGS = @XRENDER_CFLAGS@
 XRENDER_LIBS = @XRENDER_LIBS@
 XSS_CFLAGS = @XSS_CFLAGS@
 XSS_LIBS = @XSS_LIBS@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
 X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
diff --git a/src/lib/ecore_evas/Makefile.in b/src/lib/ecore_evas/Makefile.in
index abaf731..c37c775 100644
--- a/src/lib/ecore_evas/Makefile.in
+++ b/src/lib/ecore_evas/Makefile.in
@@ -118,6 +118,8 @@ BUILD_ECORE_EVAS_DIRECTFB_TRUE = @BUILD_ECORE_EVAS_DIRECTFB_TRUE@
 BUILD_ECORE_EVAS_FALSE = @BUILD_ECORE_EVAS_FALSE@
 BUILD_ECORE_EVAS_FB_FALSE = @BUILD_ECORE_EVAS_FB_FALSE@
 BUILD_ECORE_EVAS_FB_TRUE = @BUILD_ECORE_EVAS_FB_TRUE@
+BUILD_ECORE_EVAS_SDL_FALSE = @BUILD_ECORE_EVAS_SDL_FALSE@
+BUILD_ECORE_EVAS_SDL_TRUE = @BUILD_ECORE_EVAS_SDL_TRUE@
 BUILD_ECORE_EVAS_TRUE = @BUILD_ECORE_EVAS_TRUE@
 BUILD_ECORE_EVAS_X11_16_FALSE = @BUILD_ECORE_EVAS_X11_16_FALSE@
 BUILD_ECORE_EVAS_X11_16_TRUE = @BUILD_ECORE_EVAS_X11_16_TRUE@
@@ -166,6 +168,7 @@ DEPDIR = @DEPDIR@
 DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
 DIRECTFB_LIBS = @DIRECTFB_LIBS@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -174,7 +177,31 @@ EET_CFLAGS = @EET_CFLAGS@
 EET_LIBS = @EET_LIBS@
 EGREP = @EGREP@
 EVAS_CFLAGS = @EVAS_CFLAGS@
+EVAS_DIRECT3D_CFLAGS = @EVAS_DIRECT3D_CFLAGS@
+EVAS_DIRECT3D_LIBS = @EVAS_DIRECT3D_LIBS@
+EVAS_DIRECTFB_CFLAGS = @EVAS_DIRECTFB_CFLAGS@
+EVAS_DIRECTFB_LIBS = @EVAS_DIRECTFB_LIBS@
+EVAS_FB_CFLAGS = @EVAS_FB_CFLAGS@
+EVAS_FB_LIBS = @EVAS_FB_LIBS@
 EVAS_LIBS = @EVAS_LIBS@
+EVAS_OPENGL_GLEW_CFLAGS = @EVAS_OPENGL_GLEW_CFLAGS@
+EVAS_OPENGL_GLEW_LIBS = @EVAS_OPENGL_GLEW_LIBS@
+EVAS_OPENGL_X11_CFLAGS = @EVAS_OPENGL_X11_CFLAGS@
+EVAS_OPENGL_X11_LIBS = @EVAS_OPENGL_X11_LIBS@
+EVAS_SOFTWARE_16_DDRAW_CFLAGS = @EVAS_SOFTWARE_16_DDRAW_CFLAGS@
+EVAS_SOFTWARE_16_DDRAW_LIBS = @EVAS_SOFTWARE_16_DDRAW_LIBS@
+EVAS_SOFTWARE_16_X11_CFLAGS = @EVAS_SOFTWARE_16_X11_CFLAGS@
+EVAS_SOFTWARE_16_X11_LIBS = @EVAS_SOFTWARE_16_X11_LIBS@
+EVAS_SOFTWARE_BUFFER_CFLAGS = @EVAS_SOFTWARE_BUFFER_CFLAGS@
+EVAS_SOFTWARE_BUFFER_LIBS = @EVAS_SOFTWARE_BUFFER_LIBS@
+EVAS_SOFTWARE_DDRAW_CFLAGS = @EVAS_SOFTWARE_DDRAW_CFLAGS@
+EVAS_SOFTWARE_DDRAW_LIBS = @EVAS_SOFTWARE_DDRAW_LIBS@
+EVAS_SOFTWARE_SDL_CFLAGS = @EVAS_SOFTWARE_SDL_CFLAGS@
+EVAS_SOFTWARE_SDL_LIBS = @EVAS_SOFTWARE_SDL_LIBS@
+EVAS_SOFTWARE_X11_CFLAGS = @EVAS_SOFTWARE_X11_CFLAGS@
+EVAS_SOFTWARE_X11_LIBS = @EVAS_SOFTWARE_X11_LIBS@
+EVAS_XRENDER_X11_CFLAGS = @EVAS_XRENDER_X11_CFLAGS@
+EVAS_XRENDER_X11_LIBS = @EVAS_XRENDER_X11_LIBS@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
@@ -188,6 +215,7 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -200,6 +228,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
 SDL_LIBS = @SDL_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -232,6 +261,8 @@ XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
 XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
 XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
 XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
+XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
+XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
 XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
 XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
 XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
@@ -251,6 +282,8 @@ XRENDER_CFLAGS = @XRENDER_CFLAGS@
 XRENDER_LIBS = @XRENDER_LIBS@
 XSS_CFLAGS = @XSS_CFLAGS@
 XSS_LIBS = @XSS_LIBS@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
 X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
diff --git a/src/lib/ecore_evas/ecore_evas_private.h b/src/lib/ecore_evas/ecore_evas_private.h
index 91c6623..72ca495 100644
--- a/src/lib/ecore_evas/ecore_evas_private.h
+++ b/src/lib/ecore_evas/ecore_evas_private.h
@@ -4,13 +4,17 @@
 #ifndef _ECORE_EVAS_PRIVATE_H
 #define _ECORE_EVAS_PRIVATE_H
 
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
 #include "Ecore_Data.h"
 
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
 
-#ifndef _WIN32
+#ifdef HAVE_SYS_MMAN_H
 # include <sys/mman.h>
 #endif
 
diff --git a/src/lib/ecore_fb/Makefile.in b/src/lib/ecore_fb/Makefile.in
index fddaf20..ae7c44d 100644
--- a/src/lib/ecore_fb/Makefile.in
+++ b/src/lib/ecore_fb/Makefile.in
@@ -110,6 +110,8 @@ BUILD_ECORE_EVAS_DIRECTFB_TRUE = @BUILD_ECORE_EVAS_DIRECTFB_TRUE@
 BUILD_ECORE_EVAS_FALSE = @BUILD_ECORE_EVAS_FALSE@
 BUILD_ECORE_EVAS_FB_FALSE = @BUILD_ECORE_EVAS_FB_FALSE@
 BUILD_ECORE_EVAS_FB_TRUE = @BUILD_ECORE_EVAS_FB_TRUE@
+BUILD_ECORE_EVAS_SDL_FALSE = @BUILD_ECORE_EVAS_SDL_FALSE@
+BUILD_ECORE_EVAS_SDL_TRUE = @BUILD_ECORE_EVAS_SDL_TRUE@
 BUILD_ECORE_EVAS_TRUE = @BUILD_ECORE_EVAS_TRUE@
 BUILD_ECORE_EVAS_X11_16_FALSE = @BUILD_ECORE_EVAS_X11_16_FALSE@
 BUILD_ECORE_EVAS_X11_16_TRUE = @BUILD_ECORE_EVAS_X11_16_TRUE@
@@ -158,6 +160,7 @@ DEPDIR = @DEPDIR@
 DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
 DIRECTFB_LIBS = @DIRECTFB_LIBS@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -166,7 +169,31 @@ EET_CFLAGS = @EET_CFLAGS@
 EET_LIBS = @EET_LIBS@
 EGREP = @EGREP@
 EVAS_CFLAGS = @EVAS_CFLAGS@
+EVAS_DIRECT3D_CFLAGS = @EVAS_DIRECT3D_CFLAGS@
+EVAS_DIRECT3D_LIBS = @EVAS_DIRECT3D_LIBS@
+EVAS_DIRECTFB_CFLAGS = @EVAS_DIRECTFB_CFLAGS@
+EVAS_DIRECTFB_LIBS = @EVAS_DIRECTFB_LIBS@
+EVAS_FB_CFLAGS = @EVAS_FB_CFLAGS@
+EVAS_FB_LIBS = @EVAS_FB_LIBS@
 EVAS_LIBS = @EVAS_LIBS@
+EVAS_OPENGL_GLEW_CFLAGS = @EVAS_OPENGL_GLEW_CFLAGS@
+EVAS_OPENGL_GLEW_LIBS = @EVAS_OPENGL_GLEW_LIBS@
+EVAS_OPENGL_X11_CFLAGS = @EVAS_OPENGL_X11_CFLAGS@
+EVAS_OPENGL_X11_LIBS = @EVAS_OPENGL_X11_LIBS@
+EVAS_SOFTWARE_16_DDRAW_CFLAGS = @EVAS_SOFTWARE_16_DDRAW_CFLAGS@
+EVAS_SOFTWARE_16_DDRAW_LIBS = @EVAS_SOFTWARE_16_DDRAW_LIBS@
+EVAS_SOFTWARE_16_X11_CFLAGS = @EVAS_SOFTWARE_16_X11_CFLAGS@
+EVAS_SOFTWARE_16_X11_LIBS = @EVAS_SOFTWARE_16_X11_LIBS@
+EVAS_SOFTWARE_BUFFER_CFLAGS = @EVAS_SOFTWARE_BUFFER_CFLAGS@
+EVAS_SOFTWARE_BUFFER_LIBS = @EVAS_SOFTWARE_BUFFER_LIBS@
+EVAS_SOFTWARE_DDRAW_CFLAGS = @EVAS_SOFTWARE_DDRAW_CFLAGS@
+EVAS_SOFTWARE_DDRAW_LIBS = @EVAS_SOFTWARE_DDRAW_LIBS@
+EVAS_SOFTWARE_SDL_CFLAGS = @EVAS_SOFTWARE_SDL_CFLAGS@
+EVAS_SOFTWARE_SDL_LIBS = @EVAS_SOFTWARE_SDL_LIBS@
+EVAS_SOFTWARE_X11_CFLAGS = @EVAS_SOFTWARE_X11_CFLAGS@
+EVAS_SOFTWARE_X11_LIBS = @EVAS_SOFTWARE_X11_LIBS@
+EVAS_XRENDER_X11_CFLAGS = @EVAS_XRENDER_X11_CFLAGS@
+EVAS_XRENDER_X11_LIBS = @EVAS_XRENDER_X11_LIBS@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
@@ -180,6 +207,7 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -192,6 +220,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
 SDL_LIBS = @SDL_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -224,6 +253,8 @@ XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
 XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
 XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
 XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
+XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
+XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
 XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
 XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
 XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
@@ -243,6 +274,8 @@ XRENDER_CFLAGS = @XRENDER_CFLAGS@
 XRENDER_LIBS = @XRENDER_LIBS@
 XSS_CFLAGS = @XSS_CFLAGS@
 XSS_LIBS = @XSS_LIBS@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
 X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
diff --git a/src/lib/ecore_fb/ecore_fb_li.c b/src/lib/ecore_fb/ecore_fb_li.c
index 90d279d..cc1d591 100644
--- a/src/lib/ecore_fb/ecore_fb_li.c
+++ b/src/lib/ecore_fb/ecore_fb_li.c
@@ -1,15 +1,6 @@
 #include "Ecore_Fb.h"
 #include "ecore_fb_private.h"
 
-
-/* Copyright (C) Brad Hards (1999-2002).
- * this macro is used to tell if "bit" is set in "array"
- * it selects a byte from the array, and does a boolean AND 
- * operation with a byte that only has the relevant bit set. 
- * eg. to check for the 12th bit, we do (array[1] & 1<<4)
- */
-#define TEST_BIT(bit, array)    (array[bit/8] & (1<<(bit%8)))
-
 #define CLICK_THRESHOLD_DEFAULT 0.25
 
 static Ecore_List *_ecore_fb_li_devices = NULL;
@@ -19,6 +10,28 @@ static const char *_ecore_fb_li_kbd_syms[128 * 6] =
 #include "ecore_fb_keytable.h"
 };
 
+/* Initial Copyright (C) Brad Hards (1999-2002),
+ * this function is used to tell if "bit" is set in "array"
+ * it selects a byte from the array, and does a boolean AND
+ * operation with a byte that only has the relevant bit set.
+ * eg. to check for the 12th bit, we do (array[1] & 1<<4).
+ * Moved to static inline in order to force compiler to otimized
+ * the unsued part away or force a link error if long has an unexpected
+ * size.
+ *						- bigeasy
+ */
+extern int long_has_neither_32_not_64_bits(void);
+static inline int test_bit(int bit, unsigned long *array)
+{
+	if (sizeof(long) == 4)
+		return array[bit / 32] & (1 << (bit % 32));
+
+	else if (sizeof(long) == 8)
+		return array[bit / 64] & (1 << (bit % 64));
+
+	else long_has_neither_32_nor_64_bits();
+}
+
 static void 
 _ecore_fb_li_event_free_key_down(void *data, void *ev)
 {
@@ -334,6 +347,10 @@ ecore_fb_input_device_listen(Ecore_Fb_Input_Device *dev, int listen)
 	dev->listen = listen;
 }
 
+#ifndef EV_CNT
+#define EV_CNT	(EV_MAX+1)
+#endif
+
 /*
  * Opens an input device
  */
@@ -341,7 +358,7 @@ EAPI Ecore_Fb_Input_Device *
 ecore_fb_input_device_open(const char *dev)
 {
 	Ecore_Fb_Input_Device *device;
-	char event_type_bitmask[EV_MAX/8 + 1];
+	unsigned long event_type_bitmask[EV_CNT / 32 + 1];
 	int event_type;
 	int fd;
 
@@ -378,7 +395,7 @@ ecore_fb_input_device_open(const char *dev)
 	/* set info */
 	for(event_type = 0; event_type < EV_MAX; event_type++)
 	{
-		if(!TEST_BIT(event_type, event_type_bitmask))
+		if(!test_bit(event_type, event_type_bitmask))
 			continue;
 		switch(event_type)
 		{
diff --git a/src/lib/ecore_file/Makefile.am b/src/lib/ecore_file/Makefile.am
index 3e52f50..05e1ee3 100644
--- a/src/lib/ecore_file/Makefile.am
+++ b/src/lib/ecore_file/Makefile.am
@@ -2,6 +2,7 @@ MAINTAINERCLEANFILES = Makefile.in
 
 AM_CPPFLAGS = \
 -I$(top_srcdir)/src/lib/ecore \
+-I$(top_srcdir)/src/lib/ecore_con \
 -I$(top_builddir)/src/lib/ecore \
 @CURL_CFLAGS@
 
@@ -21,7 +22,8 @@ ecore_file_download.c
 
 libecore_file_la_LIBADD = \
 $(top_builddir)/src/lib/ecore/libecore.la \
- at CURL_LIBS@ @ecore_file_win32_lib@ @winsock_libs@
+$(top_builddir)/src/lib/ecore_con/libecore_con.la \
+ at ecore_file_win32_lib@ @winsock_libs@
 
 libecore_file_la_LDFLAGS = @create_shared_lib@ -version-info @version_info@
 
diff --git a/src/lib/ecore_file/Makefile.in b/src/lib/ecore_file/Makefile.in
index 55d638f..9a4b328 100644
--- a/src/lib/ecore_file/Makefile.in
+++ b/src/lib/ecore_file/Makefile.in
@@ -59,7 +59,8 @@ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"
 libLTLIBRARIES_INSTALL = $(INSTALL)
 LTLIBRARIES = $(lib_LTLIBRARIES)
- at BUILD_ECORE_FILE_TRUE@libecore_file_la_DEPENDENCIES = $(top_builddir)/src/lib/ecore/libecore.la
+ at BUILD_ECORE_FILE_TRUE@libecore_file_la_DEPENDENCIES = $(top_builddir)/src/lib/ecore/libecore.la \
+ at BUILD_ECORE_FILE_TRUE@	$(top_builddir)/src/lib/ecore_con/libecore_con.la
 am__libecore_file_la_SOURCES_DIST = ecore_file.c ecore_file_private.h \
 	ecore_file_monitor.c ecore_file_monitor_inotify.c \
 	ecore_file_monitor_poll.c ecore_file_path.c \
@@ -116,6 +117,8 @@ BUILD_ECORE_EVAS_DIRECTFB_TRUE = @BUILD_ECORE_EVAS_DIRECTFB_TRUE@
 BUILD_ECORE_EVAS_FALSE = @BUILD_ECORE_EVAS_FALSE@
 BUILD_ECORE_EVAS_FB_FALSE = @BUILD_ECORE_EVAS_FB_FALSE@
 BUILD_ECORE_EVAS_FB_TRUE = @BUILD_ECORE_EVAS_FB_TRUE@
+BUILD_ECORE_EVAS_SDL_FALSE = @BUILD_ECORE_EVAS_SDL_FALSE@
+BUILD_ECORE_EVAS_SDL_TRUE = @BUILD_ECORE_EVAS_SDL_TRUE@
 BUILD_ECORE_EVAS_TRUE = @BUILD_ECORE_EVAS_TRUE@
 BUILD_ECORE_EVAS_X11_16_FALSE = @BUILD_ECORE_EVAS_X11_16_FALSE@
 BUILD_ECORE_EVAS_X11_16_TRUE = @BUILD_ECORE_EVAS_X11_16_TRUE@
@@ -164,6 +167,7 @@ DEPDIR = @DEPDIR@
 DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
 DIRECTFB_LIBS = @DIRECTFB_LIBS@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -172,7 +176,31 @@ EET_CFLAGS = @EET_CFLAGS@
 EET_LIBS = @EET_LIBS@
 EGREP = @EGREP@
 EVAS_CFLAGS = @EVAS_CFLAGS@
+EVAS_DIRECT3D_CFLAGS = @EVAS_DIRECT3D_CFLAGS@
+EVAS_DIRECT3D_LIBS = @EVAS_DIRECT3D_LIBS@
+EVAS_DIRECTFB_CFLAGS = @EVAS_DIRECTFB_CFLAGS@
+EVAS_DIRECTFB_LIBS = @EVAS_DIRECTFB_LIBS@
+EVAS_FB_CFLAGS = @EVAS_FB_CFLAGS@
+EVAS_FB_LIBS = @EVAS_FB_LIBS@
 EVAS_LIBS = @EVAS_LIBS@
+EVAS_OPENGL_GLEW_CFLAGS = @EVAS_OPENGL_GLEW_CFLAGS@
+EVAS_OPENGL_GLEW_LIBS = @EVAS_OPENGL_GLEW_LIBS@
+EVAS_OPENGL_X11_CFLAGS = @EVAS_OPENGL_X11_CFLAGS@
+EVAS_OPENGL_X11_LIBS = @EVAS_OPENGL_X11_LIBS@
+EVAS_SOFTWARE_16_DDRAW_CFLAGS = @EVAS_SOFTWARE_16_DDRAW_CFLAGS@
+EVAS_SOFTWARE_16_DDRAW_LIBS = @EVAS_SOFTWARE_16_DDRAW_LIBS@
+EVAS_SOFTWARE_16_X11_CFLAGS = @EVAS_SOFTWARE_16_X11_CFLAGS@
+EVAS_SOFTWARE_16_X11_LIBS = @EVAS_SOFTWARE_16_X11_LIBS@
+EVAS_SOFTWARE_BUFFER_CFLAGS = @EVAS_SOFTWARE_BUFFER_CFLAGS@
+EVAS_SOFTWARE_BUFFER_LIBS = @EVAS_SOFTWARE_BUFFER_LIBS@
+EVAS_SOFTWARE_DDRAW_CFLAGS = @EVAS_SOFTWARE_DDRAW_CFLAGS@
+EVAS_SOFTWARE_DDRAW_LIBS = @EVAS_SOFTWARE_DDRAW_LIBS@
+EVAS_SOFTWARE_SDL_CFLAGS = @EVAS_SOFTWARE_SDL_CFLAGS@
+EVAS_SOFTWARE_SDL_LIBS = @EVAS_SOFTWARE_SDL_LIBS@
+EVAS_SOFTWARE_X11_CFLAGS = @EVAS_SOFTWARE_X11_CFLAGS@
+EVAS_SOFTWARE_X11_LIBS = @EVAS_SOFTWARE_X11_LIBS@
+EVAS_XRENDER_X11_CFLAGS = @EVAS_XRENDER_X11_CFLAGS@
+EVAS_XRENDER_X11_LIBS = @EVAS_XRENDER_X11_LIBS@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
@@ -186,6 +214,7 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -198,6 +227,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
 SDL_LIBS = @SDL_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -230,6 +260,8 @@ XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
 XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
 XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
 XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
+XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
+XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
 XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
 XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
 XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
@@ -249,6 +281,8 @@ XRENDER_CFLAGS = @XRENDER_CFLAGS@
 XRENDER_LIBS = @XRENDER_LIBS@
 XSS_CFLAGS = @XSS_CFLAGS@
 XSS_LIBS = @XSS_LIBS@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
 X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
@@ -362,6 +396,7 @@ x_libs = @x_libs@
 MAINTAINERCLEANFILES = Makefile.in
 AM_CPPFLAGS = \
 -I$(top_srcdir)/src/lib/ecore \
+-I$(top_srcdir)/src/lib/ecore_con \
 -I$(top_builddir)/src/lib/ecore \
 @CURL_CFLAGS@
 
@@ -378,7 +413,8 @@ AM_CPPFLAGS = \
 
 @BUILD_ECORE_FILE_TRUE at libecore_file_la_LIBADD = \
 @BUILD_ECORE_FILE_TRUE@$(top_builddir)/src/lib/ecore/libecore.la \
- at BUILD_ECORE_FILE_TRUE@@CURL_LIBS@ @ecore_file_win32_lib@ @winsock_libs@
+ at BUILD_ECORE_FILE_TRUE@$(top_builddir)/src/lib/ecore_con/libecore_con.la \
+ at BUILD_ECORE_FILE_TRUE@@ecore_file_win32_lib@ @winsock_libs@
 
 @BUILD_ECORE_FILE_TRUE at libecore_file_la_LDFLAGS = @create_shared_lib@ -version-info @version_info@
 EXTRA_DIST = \
diff --git a/src/lib/ecore_file/ecore_file.c b/src/lib/ecore_file/ecore_file.c
index 3183456..c029808 100644
--- a/src/lib/ecore_file/ecore_file.c
+++ b/src/lib/ecore_file/ecore_file.c
@@ -2,11 +2,13 @@
  * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
  */
 
+#include <config.h>
+
 #ifndef _FILE_OFFSET_BITS
 # define _FILE_OFFSET_BITS  64
 #endif
 
-#ifdef __linux__
+#ifdef HAVE_FEATURES_H
 # include <features.h>
 #endif
 #include <ctype.h>
@@ -457,6 +459,11 @@ ecore_file_realpath(const char *file)
 {
    char  buf[PATH_MAX];
 
+   /*
+    * Some implementations of realpath do not conform to the SUS.
+    * And as a result we must prevent a null arg from being passed.
+    */
+   if (!file) return strdup("");
    if (!realpath(file, buf)) return strdup("");
 
    return strdup(buf);
diff --git a/src/lib/ecore_file/ecore_file_download.c b/src/lib/ecore_file/ecore_file_download.c
index 85ede05..990e79c 100644
--- a/src/lib/ecore_file/ecore_file_download.c
+++ b/src/lib/ecore_file/ecore_file_download.c
@@ -1,111 +1,99 @@
 /*
  * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
  */
+#include "Ecore_Con.h"
 #include "ecore_file_private.h"
 
-static int init = 0;
-
-#ifdef HAVE_CURL
-#include <curl/curl.h>
-
-typedef struct _Ecore_File_Download_Job Ecore_File_Download_Job;
+#define ECORE_MAGIC_FILE_DOWNLOAD_JOB	0xf7427cb8
 
+typedef struct _Ecore_File_Download_Job		Ecore_File_Download_Job;
 struct _Ecore_File_Download_Job
 {
-   Ecore_Fd_Handler *fd_handler;
-   CURL *curl;
-   void (*completion_cb)(void *data, const char *file, int status);
-   int (*progress_cb)(void *data, const char *file, long int dltotal, long int dlnow, long int ultotal, long int ulnow);
-   void *data;
-   FILE *file;
-   char *dst;
+   ECORE_MAGIC;
+
+   Ecore_Con_Url	*url_con;
+   FILE			*file;
+
+   char			*dst;
+
+   void	(*completion_cb)(void *data, const char *file, int status);
+
+   int	(*progress_cb)  (void *data, const char *file,
+			 long int dltotal, long int dlnow,
+			 long int ultotal, long int ulnow);
 };
 
+#ifdef HAVE_CURL
 Ecore_File_Download_Job *_ecore_file_download_curl(const char *url, const char *dst,
 						   void (*completion_cb)(void *data, const char *file, int status),
 						   int (*progress_cb)(void *data, const char *file, long int dltotal, long int dlnow, long int ultotal, long int ulnow),
 						   void *data);
-static int _ecore_file_download_curl_fd_handler(void *data, Ecore_Fd_Handler *fd_handler);
 
-static CURLM *curlm;
-static Ecore_List *_job_list;
-static fd_set _current_fd_set;
+static int _ecore_file_download_url_complete_cb(void *data, int type, void *event);
+static int _ecore_file_download_url_progress_cb(void *data, int type, void *event);
 #endif
+static void _ecore_file_download_abort(Ecore_File_Download_Job *job);
+
+static int			 init = 0;
+static Ecore_Event_Handler	*_url_complete_handler = NULL;
+static Ecore_Event_Handler	*_url_progress_download = NULL;
+static Ecore_List		*_job_list;
 
-int
+EAPI int
 ecore_file_download_init(void)
 {
-   if (++init != 1) return init;
+   ecore_con_url_init();
 
+   if (init++ == 0)
+     {
 #ifdef HAVE_CURL
-   FD_ZERO(&_current_fd_set);
-   _job_list = ecore_list_new();
-   if (!_job_list) return --init;
-
-   if (curl_global_init(CURL_GLOBAL_NOTHING)) return 0;
-
-   curlm = curl_multi_init();
-   if (!curlm)
+	_url_complete_handler = ecore_event_handler_add(ECORE_CON_EVENT_URL_COMPLETE, _ecore_file_download_url_complete_cb, NULL);
+	_url_progress_download = ecore_event_handler_add(ECORE_CON_EVENT_URL_PROGRESS, _ecore_file_download_url_progress_cb, NULL);
+#endif	
+     }
+   if (!_job_list)
      {
-	ecore_list_destroy(_job_list);
-	_job_list = NULL;
-	return --init;
+	_job_list = ecore_list_new();
+	if (!_job_list) return 0;
      }
-#endif
-   return init;
+
+   return 1;
 }
 
-int
+EAPI int
 ecore_file_download_shutdown(void)
 {
-   if (--init != 0) return init;
-#ifdef HAVE_CURL
-   Ecore_File_Download_Job *job;
-
-   if (!ecore_list_empty_is(_job_list))
+   if (--init == 0)
      {
-	ecore_list_first_goto(_job_list);
-	while ((job = ecore_list_next(_job_list)))
-	  {
-	     ecore_main_fd_handler_del(job->fd_handler);
-	     curl_multi_remove_handle(curlm, job->curl);
-	     curl_easy_cleanup(job->curl);
-	     fclose(job->file);
-	     free(job->dst);
-	     free(job);
-	  }
+	if (_url_complete_handler)
+	  ecore_event_handler_del(_url_complete_handler);
+	if (_url_progress_download)
+	  ecore_event_handler_del(_url_progress_download);
+	_url_complete_handler = NULL;
+	_url_progress_download = NULL;
+	if (_job_list)
+	  ecore_list_destroy(_job_list);
+	_job_list = NULL;
      }
-   ecore_list_destroy(_job_list);
-   curl_multi_cleanup(curlm);
-   curl_global_cleanup();
-#endif
-   return init;
+
+   return ecore_con_url_shutdown();
 }
 
-void
+EAPI void
 ecore_file_download_abort_all(void)
 {
-#ifdef HAVE_CURL
-   Ecore_File_Download_Job *job;
-
-   if (!_job_list)
-     return;
-
-   ecore_list_first_goto(_job_list);
-   while ((job = ecore_list_next(_job_list)))
+   if (!ecore_list_empty_is(_job_list))
      {
-	ecore_main_fd_handler_del(job->fd_handler);
-	curl_multi_remove_handle(curlm, job->curl);
-	curl_easy_cleanup(job->curl);
-	fclose(job->file);
-	free(job->dst);
-	free(job);
+	Ecore_File_Download_Job *job;
+
+	while ((job = ecore_list_first_remove(_job_list)))
+	  {
+	     _ecore_file_download_abort(job);
+	  }
      }
    ecore_list_clear(_job_list);
-#endif
 }
 
-
 /**
  * Download @p url to the given @p dst
  * @param  url The complete url to download
@@ -192,17 +180,55 @@ ecore_file_download_protocol_available(const char *protocol)
 }
 
 #ifdef HAVE_CURL
-/* this reports the downloads progress. if we return 0, then download
- * continues, if we return anything else, then the download stops */
 static int
-_ecore_file_download_curl_progress_func(void *clientp, double dltotal, double dlnow, double ultotal, double ulnow)
+_ecore_file_download_url_compare_job(const void *data1, const void *data2)
 {
-   Ecore_File_Download_Job *job;
+   const Ecore_File_Download_Job	*job = data1;
+   const Ecore_Con_Url			*url = data2;
+
+   if (job->url_con == url) return 0;
+   return -1;
+}
+
+static int
+_ecore_file_download_url_complete_cb(void *data, int type, void *event)
+{
+   Ecore_Con_Event_Url_Complete	*ev = event;
+   Ecore_File_Download_Job	*job;
 
-   job = clientp;
+   job = ecore_list_find(_job_list, _ecore_file_download_url_compare_job, ev->url_con);
+   if (!ECORE_MAGIC_CHECK(job, ECORE_MAGIC_FILE_DOWNLOAD_JOB)) return 1;
+
+   ecore_list_remove(_job_list);
+
+   if (job->completion_cb)
+     job->completion_cb(ecore_con_url_data_get(job->url_con), job->dst, !ev->status);
+
+   _ecore_file_download_abort(job);
+
+   return 0;
+}
+
+static int
+_ecore_file_download_url_progress_cb(void *data, int type, void *event)
+{
+/* this reports the downloads progress. if we return 0, then download
+ * continues, if we return anything else, then the download stops */
+   Ecore_Con_Event_Url_Progress	*ev = event;
+   Ecore_File_Download_Job	*job;
+
+   job = ecore_list_find(_job_list, _ecore_file_download_url_compare_job, ev->url_con);
+   if (!ECORE_MAGIC_CHECK(job, ECORE_MAGIC_FILE_DOWNLOAD_JOB)) return 1;
+
+   if (job->progress_cb)
+     if (job->progress_cb(ecore_con_url_data_get(job->url_con), job->dst,
+			  (long int) ev->down.total, (long int) ev->down.now,
+			  (long int) ev->up.total, (long int) ev->up.now) != 0)
+       {
+	  ecore_list_remove(_job_list);
+	  _ecore_file_download_abort(job);
+       }
 
-   if(job->progress_cb)
-     return job->progress_cb(job->data, job->dst, (long int)dltotal, (long int)dlnow, (long int)ultotal, (long int)ulnow);
    return 0;
 }
 
@@ -212,180 +238,52 @@ _ecore_file_download_curl(const char *url, const char *dst,
 						int status),
 			  int (*progress_cb)(void *data, const char *file,
 					     long int dltotal, long int dlnow,
-					     long int ultotal,
-					     long int ulnow),
+					     long int ultotal, long int ulnow),
 			  void *data)
 {
-   CURLMsg *curlmsg;
-   fd_set read_set, write_set, exc_set;
-   int fd_max;
-   int fd;
-   int flags;
-   int n_remaining, still_running;
    Ecore_File_Download_Job *job;
-   double start = 0.0;
 
    job = calloc(1, sizeof(Ecore_File_Download_Job));
    if (!job) return NULL;
 
+   ECORE_MAGIC_SET(job, ECORE_MAGIC_FILE_DOWNLOAD_JOB);
+
    job->file = fopen(dst, "wb");
    if (!job->file)
      {
 	free(job);
 	return NULL;
      }
-   job->curl = curl_easy_init();
-   if (!job->curl)
+   job->url_con = ecore_con_url_new(url);
+   if (!job->url_con)
      {
 	fclose(job->file);
 	free(job);
 	return NULL;
      }
 
-   curl_easy_setopt(job->curl, CURLOPT_URL, url);
-   curl_easy_setopt(job->curl, CURLOPT_WRITEDATA, job->file);
-   curl_easy_setopt(job->curl, CURLOPT_FOLLOWLOCATION, TRUE);
-   
-   if (progress_cb)
-     {
-	curl_easy_setopt(job->curl, CURLOPT_NOPROGRESS, FALSE);
-	curl_easy_setopt(job->curl, CURLOPT_PROGRESSDATA, job);
-	curl_easy_setopt(job->curl, CURLOPT_PROGRESSFUNCTION, _ecore_file_download_curl_progress_func);
-     }
+   ecore_con_url_fd_set(job->url_con, fileno(job->file));
+   ecore_con_url_data_set(job->url_con, data);
+
+   job->dst = strdup(dst);
 
-   job->data = data;
    job->completion_cb = completion_cb;
    job->progress_cb = progress_cb;
-   job->dst = strdup(dst);
    ecore_list_append(_job_list, job);
 
-   curl_multi_add_handle(curlm, job->curl);
-   start = ecore_time_get();
-   while (curl_multi_perform(curlm, &still_running) == CURLM_CALL_MULTI_PERFORM)
-     {
-	/* make this 1/100th of a second to keep interactivity high. really
-	 * though this needs to somehow get the fd from curl and use an fd handler
-	 * and thus select
-	 */
-	if ((ecore_time_get() - start) > 0.01) break;
-     }
-
-   /* check for completed jobs */
-   while ((curlmsg = curl_multi_info_read(curlm, &n_remaining)) != NULL)
-     {
-	Ecore_File_Download_Job *current;
-
-	if (curlmsg->msg != CURLMSG_DONE) continue;
-
-	/* find the job which is done */
-	ecore_list_first_goto(_job_list);
-	while ((current = ecore_list_current(_job_list)))
-	  {
-	     if (curlmsg->easy_handle == current->curl)
-	       {
-		  /* We have a match -- delete the job */
-		  if (current == job)
-		    job = NULL;
-		  if (current->fd_handler)
-		    {
-		       FD_CLR(ecore_main_fd_handler_fd_get(current->fd_handler),
-			      &_current_fd_set);
-		       ecore_main_fd_handler_del(current->fd_handler);
-		    }
-		  ecore_list_remove(_job_list);
-		  curl_multi_remove_handle(curlm, current->curl);
-		  curl_easy_cleanup(current->curl);
-		  fclose(current->file);
-		  if (current->completion_cb)
-		    current->completion_cb(current->data, current->dst,
-					   curlmsg->data.result);
-		  free(current->dst);
-		  free(current);
-		  break;
-	       }
-	     ecore_list_next(_job_list);
-	  }
-     }
-
-   if (job)
-     {
-	FD_ZERO(&read_set);
-	FD_ZERO(&write_set);
-	FD_ZERO(&exc_set);
-
-	/* Stupid curl, why can't I get the fd to the current added job? */
-	curl_multi_fdset(curlm, &read_set, &write_set, &exc_set, &fd_max);
-	for (fd = 0; fd <= fd_max; fd++)
-	  {
-	     if (!FD_ISSET(fd, &_current_fd_set))
-	       {
-		  flags = 0;
-		  if (FD_ISSET(fd, &read_set)) flags |= ECORE_FD_READ;
-		  if (FD_ISSET(fd, &write_set)) flags |= ECORE_FD_WRITE;
-		  if (FD_ISSET(fd, &exc_set)) flags |= ECORE_FD_ERROR;
-		  if (flags)
-		    {
-		       FD_SET(fd, &_current_fd_set);
-		       job->fd_handler = ecore_main_fd_handler_add(fd, flags,
-								   _ecore_file_download_curl_fd_handler,
-								   NULL, NULL, NULL);
-		    }
-	       }
-	  }
-	if (!job->fd_handler)
-	  {
-	     curl_easy_cleanup(job->curl);
-	     fclose(job->file);
-	     free(job);
-	     job = NULL;
-	  }
-     }
+   ecore_con_url_send(job->url_con, NULL, 0, NULL);
 
    return job;
 }
+#endif
 
-static int
-_ecore_file_download_curl_fd_handler(void *data __UNUSED__, Ecore_Fd_Handler *fd_handler __UNUSED__)
+static void
+_ecore_file_download_abort(Ecore_File_Download_Job *job)
 {
-   Ecore_File_Download_Job *job;
-   CURLMsg *curlmsg;
-   int n_remaining, still_running;
-   double start = 0.0;
-
-   start = ecore_time_get();
-   while (curl_multi_perform(curlm, &still_running) == CURLM_CALL_MULTI_PERFORM)
-     {
-	if ((ecore_time_get() - start) > 0.2) break;
-     }
-
-   /* Loop jobs and check if any are done */
-   while ((curlmsg = curl_multi_info_read(curlm, &n_remaining)) != NULL)
-     {
-	if (curlmsg->msg != CURLMSG_DONE) continue;
-
-	/* find the job which is done */
-	ecore_list_first_goto(_job_list);
-	while ((job = ecore_list_current(_job_list)))
-	  {
-	     if (curlmsg->easy_handle == job->curl)
-	       {
-		  /* We have a match -- delete the job */
-		  FD_CLR(ecore_main_fd_handler_fd_get(job->fd_handler),
-			&_current_fd_set);
-		  ecore_list_remove(_job_list);
-		  ecore_main_fd_handler_del(job->fd_handler);
-		  curl_multi_remove_handle(curlm, job->curl);
-		  curl_easy_cleanup(job->curl);
-		  fclose(job->file);
-		  if (job->completion_cb)
-		    job->completion_cb(job->data, job->dst, !curlmsg->data.result);
-		  free(job->dst);
-		  free(job);
-		  break;
-	       }
-	     ecore_list_next(_job_list);
-	  }
-     }
-   return 1;
+#ifdef HAVE_CURL
+   ecore_con_url_destroy(job->url_con);
+#endif  
+   fclose(job->file);
+   free(job->dst);
+   free(job);
 }
-#endif
diff --git a/src/lib/ecore_imf/Makefile.in b/src/lib/ecore_imf/Makefile.in
index f87f105..101d763 100644
--- a/src/lib/ecore_imf/Makefile.in
+++ b/src/lib/ecore_imf/Makefile.in
@@ -110,6 +110,8 @@ BUILD_ECORE_EVAS_DIRECTFB_TRUE = @BUILD_ECORE_EVAS_DIRECTFB_TRUE@
 BUILD_ECORE_EVAS_FALSE = @BUILD_ECORE_EVAS_FALSE@
 BUILD_ECORE_EVAS_FB_FALSE = @BUILD_ECORE_EVAS_FB_FALSE@
 BUILD_ECORE_EVAS_FB_TRUE = @BUILD_ECORE_EVAS_FB_TRUE@
+BUILD_ECORE_EVAS_SDL_FALSE = @BUILD_ECORE_EVAS_SDL_FALSE@
+BUILD_ECORE_EVAS_SDL_TRUE = @BUILD_ECORE_EVAS_SDL_TRUE@
 BUILD_ECORE_EVAS_TRUE = @BUILD_ECORE_EVAS_TRUE@
 BUILD_ECORE_EVAS_X11_16_FALSE = @BUILD_ECORE_EVAS_X11_16_FALSE@
 BUILD_ECORE_EVAS_X11_16_TRUE = @BUILD_ECORE_EVAS_X11_16_TRUE@
@@ -158,6 +160,7 @@ DEPDIR = @DEPDIR@
 DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
 DIRECTFB_LIBS = @DIRECTFB_LIBS@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -166,7 +169,31 @@ EET_CFLAGS = @EET_CFLAGS@
 EET_LIBS = @EET_LIBS@
 EGREP = @EGREP@
 EVAS_CFLAGS = @EVAS_CFLAGS@
+EVAS_DIRECT3D_CFLAGS = @EVAS_DIRECT3D_CFLAGS@
+EVAS_DIRECT3D_LIBS = @EVAS_DIRECT3D_LIBS@
+EVAS_DIRECTFB_CFLAGS = @EVAS_DIRECTFB_CFLAGS@
+EVAS_DIRECTFB_LIBS = @EVAS_DIRECTFB_LIBS@
+EVAS_FB_CFLAGS = @EVAS_FB_CFLAGS@
+EVAS_FB_LIBS = @EVAS_FB_LIBS@
 EVAS_LIBS = @EVAS_LIBS@
+EVAS_OPENGL_GLEW_CFLAGS = @EVAS_OPENGL_GLEW_CFLAGS@
+EVAS_OPENGL_GLEW_LIBS = @EVAS_OPENGL_GLEW_LIBS@
+EVAS_OPENGL_X11_CFLAGS = @EVAS_OPENGL_X11_CFLAGS@
+EVAS_OPENGL_X11_LIBS = @EVAS_OPENGL_X11_LIBS@
+EVAS_SOFTWARE_16_DDRAW_CFLAGS = @EVAS_SOFTWARE_16_DDRAW_CFLAGS@
+EVAS_SOFTWARE_16_DDRAW_LIBS = @EVAS_SOFTWARE_16_DDRAW_LIBS@
+EVAS_SOFTWARE_16_X11_CFLAGS = @EVAS_SOFTWARE_16_X11_CFLAGS@
+EVAS_SOFTWARE_16_X11_LIBS = @EVAS_SOFTWARE_16_X11_LIBS@
+EVAS_SOFTWARE_BUFFER_CFLAGS = @EVAS_SOFTWARE_BUFFER_CFLAGS@
+EVAS_SOFTWARE_BUFFER_LIBS = @EVAS_SOFTWARE_BUFFER_LIBS@
+EVAS_SOFTWARE_DDRAW_CFLAGS = @EVAS_SOFTWARE_DDRAW_CFLAGS@
+EVAS_SOFTWARE_DDRAW_LIBS = @EVAS_SOFTWARE_DDRAW_LIBS@
+EVAS_SOFTWARE_SDL_CFLAGS = @EVAS_SOFTWARE_SDL_CFLAGS@
+EVAS_SOFTWARE_SDL_LIBS = @EVAS_SOFTWARE_SDL_LIBS@
+EVAS_SOFTWARE_X11_CFLAGS = @EVAS_SOFTWARE_X11_CFLAGS@
+EVAS_SOFTWARE_X11_LIBS = @EVAS_SOFTWARE_X11_LIBS@
+EVAS_XRENDER_X11_CFLAGS = @EVAS_XRENDER_X11_CFLAGS@
+EVAS_XRENDER_X11_LIBS = @EVAS_XRENDER_X11_LIBS@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
@@ -180,6 +207,7 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -192,6 +220,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
 SDL_LIBS = @SDL_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -224,6 +253,8 @@ XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
 XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
 XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
 XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
+XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
+XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
 XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
 XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
 XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
@@ -243,6 +274,8 @@ XRENDER_CFLAGS = @XRENDER_CFLAGS@
 XRENDER_LIBS = @XRENDER_LIBS@
 XSS_CFLAGS = @XSS_CFLAGS@
 XSS_LIBS = @XSS_LIBS@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
 X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
diff --git a/src/lib/ecore_imf/ecore_imf_context.c b/src/lib/ecore_imf/ecore_imf_context.c
index 7f23c9e..83f1fd4 100644
--- a/src/lib/ecore_imf/ecore_imf_context.c
+++ b/src/lib/ecore_imf/ecore_imf_context.c
@@ -89,7 +89,11 @@ ecore_imf_context_default_id_by_canvas_type_get(const char *canvas_type)
    int best_goodness = 0;
 
    id = getenv("ECORE_IMF_MODULE");
-   if (id && ecore_imf_module_get(id)) return id;
+   if (id)
+     {
+	if (strcmp(id, "none") == 0) return NULL;
+	if (ecore_imf_module_get(id)) return id;
+     }
 
    modules = ecore_imf_module_available_get();
    if (!modules) return NULL;
@@ -551,7 +555,7 @@ ecore_imf_context_new(const Ecore_IMF_Context_Class *ctxc)
 {
    Ecore_IMF_Context *ctx;
 
-   if (!ctx) return NULL;
+   if (!ctxc) return NULL;
    ctx = malloc(sizeof(Ecore_IMF_Context));
    if (!ctx) return NULL;
    ECORE_MAGIC_SET(ctx, ECORE_MAGIC_CONTEXT);
diff --git a/src/lib/ecore_imf_evas/Makefile.in b/src/lib/ecore_imf_evas/Makefile.in
index e7b63a4..569e3ec 100644
--- a/src/lib/ecore_imf_evas/Makefile.in
+++ b/src/lib/ecore_imf_evas/Makefile.in
@@ -109,6 +109,8 @@ BUILD_ECORE_EVAS_DIRECTFB_TRUE = @BUILD_ECORE_EVAS_DIRECTFB_TRUE@
 BUILD_ECORE_EVAS_FALSE = @BUILD_ECORE_EVAS_FALSE@
 BUILD_ECORE_EVAS_FB_FALSE = @BUILD_ECORE_EVAS_FB_FALSE@
 BUILD_ECORE_EVAS_FB_TRUE = @BUILD_ECORE_EVAS_FB_TRUE@
+BUILD_ECORE_EVAS_SDL_FALSE = @BUILD_ECORE_EVAS_SDL_FALSE@
+BUILD_ECORE_EVAS_SDL_TRUE = @BUILD_ECORE_EVAS_SDL_TRUE@
 BUILD_ECORE_EVAS_TRUE = @BUILD_ECORE_EVAS_TRUE@
 BUILD_ECORE_EVAS_X11_16_FALSE = @BUILD_ECORE_EVAS_X11_16_FALSE@
 BUILD_ECORE_EVAS_X11_16_TRUE = @BUILD_ECORE_EVAS_X11_16_TRUE@
@@ -157,6 +159,7 @@ DEPDIR = @DEPDIR@
 DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
 DIRECTFB_LIBS = @DIRECTFB_LIBS@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -165,7 +168,31 @@ EET_CFLAGS = @EET_CFLAGS@
 EET_LIBS = @EET_LIBS@
 EGREP = @EGREP@
 EVAS_CFLAGS = @EVAS_CFLAGS@
+EVAS_DIRECT3D_CFLAGS = @EVAS_DIRECT3D_CFLAGS@
+EVAS_DIRECT3D_LIBS = @EVAS_DIRECT3D_LIBS@
+EVAS_DIRECTFB_CFLAGS = @EVAS_DIRECTFB_CFLAGS@
+EVAS_DIRECTFB_LIBS = @EVAS_DIRECTFB_LIBS@
+EVAS_FB_CFLAGS = @EVAS_FB_CFLAGS@
+EVAS_FB_LIBS = @EVAS_FB_LIBS@
 EVAS_LIBS = @EVAS_LIBS@
+EVAS_OPENGL_GLEW_CFLAGS = @EVAS_OPENGL_GLEW_CFLAGS@
+EVAS_OPENGL_GLEW_LIBS = @EVAS_OPENGL_GLEW_LIBS@
+EVAS_OPENGL_X11_CFLAGS = @EVAS_OPENGL_X11_CFLAGS@
+EVAS_OPENGL_X11_LIBS = @EVAS_OPENGL_X11_LIBS@
+EVAS_SOFTWARE_16_DDRAW_CFLAGS = @EVAS_SOFTWARE_16_DDRAW_CFLAGS@
+EVAS_SOFTWARE_16_DDRAW_LIBS = @EVAS_SOFTWARE_16_DDRAW_LIBS@
+EVAS_SOFTWARE_16_X11_CFLAGS = @EVAS_SOFTWARE_16_X11_CFLAGS@
+EVAS_SOFTWARE_16_X11_LIBS = @EVAS_SOFTWARE_16_X11_LIBS@
+EVAS_SOFTWARE_BUFFER_CFLAGS = @EVAS_SOFTWARE_BUFFER_CFLAGS@
+EVAS_SOFTWARE_BUFFER_LIBS = @EVAS_SOFTWARE_BUFFER_LIBS@
+EVAS_SOFTWARE_DDRAW_CFLAGS = @EVAS_SOFTWARE_DDRAW_CFLAGS@
+EVAS_SOFTWARE_DDRAW_LIBS = @EVAS_SOFTWARE_DDRAW_LIBS@
+EVAS_SOFTWARE_SDL_CFLAGS = @EVAS_SOFTWARE_SDL_CFLAGS@
+EVAS_SOFTWARE_SDL_LIBS = @EVAS_SOFTWARE_SDL_LIBS@
+EVAS_SOFTWARE_X11_CFLAGS = @EVAS_SOFTWARE_X11_CFLAGS@
+EVAS_SOFTWARE_X11_LIBS = @EVAS_SOFTWARE_X11_LIBS@
+EVAS_XRENDER_X11_CFLAGS = @EVAS_XRENDER_X11_CFLAGS@
+EVAS_XRENDER_X11_LIBS = @EVAS_XRENDER_X11_LIBS@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
@@ -179,6 +206,7 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -191,6 +219,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
 SDL_LIBS = @SDL_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -223,6 +252,8 @@ XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
 XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
 XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
 XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
+XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
+XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
 XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
 XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
 XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
@@ -242,6 +273,8 @@ XRENDER_CFLAGS = @XRENDER_CFLAGS@
 XRENDER_LIBS = @XRENDER_LIBS@
 XSS_CFLAGS = @XSS_CFLAGS@
 XSS_LIBS = @XSS_LIBS@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
 X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
diff --git a/src/lib/ecore_ipc/Makefile.in b/src/lib/ecore_ipc/Makefile.in
index 2986188..bad5d3b 100644
--- a/src/lib/ecore_ipc/Makefile.in
+++ b/src/lib/ecore_ipc/Makefile.in
@@ -107,6 +107,8 @@ BUILD_ECORE_EVAS_DIRECTFB_TRUE = @BUILD_ECORE_EVAS_DIRECTFB_TRUE@
 BUILD_ECORE_EVAS_FALSE = @BUILD_ECORE_EVAS_FALSE@
 BUILD_ECORE_EVAS_FB_FALSE = @BUILD_ECORE_EVAS_FB_FALSE@
 BUILD_ECORE_EVAS_FB_TRUE = @BUILD_ECORE_EVAS_FB_TRUE@
+BUILD_ECORE_EVAS_SDL_FALSE = @BUILD_ECORE_EVAS_SDL_FALSE@
+BUILD_ECORE_EVAS_SDL_TRUE = @BUILD_ECORE_EVAS_SDL_TRUE@
 BUILD_ECORE_EVAS_TRUE = @BUILD_ECORE_EVAS_TRUE@
 BUILD_ECORE_EVAS_X11_16_FALSE = @BUILD_ECORE_EVAS_X11_16_FALSE@
 BUILD_ECORE_EVAS_X11_16_TRUE = @BUILD_ECORE_EVAS_X11_16_TRUE@
@@ -155,6 +157,7 @@ DEPDIR = @DEPDIR@
 DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
 DIRECTFB_LIBS = @DIRECTFB_LIBS@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -163,7 +166,31 @@ EET_CFLAGS = @EET_CFLAGS@
 EET_LIBS = @EET_LIBS@
 EGREP = @EGREP@
 EVAS_CFLAGS = @EVAS_CFLAGS@
+EVAS_DIRECT3D_CFLAGS = @EVAS_DIRECT3D_CFLAGS@
+EVAS_DIRECT3D_LIBS = @EVAS_DIRECT3D_LIBS@
+EVAS_DIRECTFB_CFLAGS = @EVAS_DIRECTFB_CFLAGS@
+EVAS_DIRECTFB_LIBS = @EVAS_DIRECTFB_LIBS@
+EVAS_FB_CFLAGS = @EVAS_FB_CFLAGS@
+EVAS_FB_LIBS = @EVAS_FB_LIBS@
 EVAS_LIBS = @EVAS_LIBS@
+EVAS_OPENGL_GLEW_CFLAGS = @EVAS_OPENGL_GLEW_CFLAGS@
+EVAS_OPENGL_GLEW_LIBS = @EVAS_OPENGL_GLEW_LIBS@
+EVAS_OPENGL_X11_CFLAGS = @EVAS_OPENGL_X11_CFLAGS@
+EVAS_OPENGL_X11_LIBS = @EVAS_OPENGL_X11_LIBS@
+EVAS_SOFTWARE_16_DDRAW_CFLAGS = @EVAS_SOFTWARE_16_DDRAW_CFLAGS@
+EVAS_SOFTWARE_16_DDRAW_LIBS = @EVAS_SOFTWARE_16_DDRAW_LIBS@
+EVAS_SOFTWARE_16_X11_CFLAGS = @EVAS_SOFTWARE_16_X11_CFLAGS@
+EVAS_SOFTWARE_16_X11_LIBS = @EVAS_SOFTWARE_16_X11_LIBS@
+EVAS_SOFTWARE_BUFFER_CFLAGS = @EVAS_SOFTWARE_BUFFER_CFLAGS@
+EVAS_SOFTWARE_BUFFER_LIBS = @EVAS_SOFTWARE_BUFFER_LIBS@
+EVAS_SOFTWARE_DDRAW_CFLAGS = @EVAS_SOFTWARE_DDRAW_CFLAGS@
+EVAS_SOFTWARE_DDRAW_LIBS = @EVAS_SOFTWARE_DDRAW_LIBS@
+EVAS_SOFTWARE_SDL_CFLAGS = @EVAS_SOFTWARE_SDL_CFLAGS@
+EVAS_SOFTWARE_SDL_LIBS = @EVAS_SOFTWARE_SDL_LIBS@
+EVAS_SOFTWARE_X11_CFLAGS = @EVAS_SOFTWARE_X11_CFLAGS@
+EVAS_SOFTWARE_X11_LIBS = @EVAS_SOFTWARE_X11_LIBS@
+EVAS_XRENDER_X11_CFLAGS = @EVAS_XRENDER_X11_CFLAGS@
+EVAS_XRENDER_X11_LIBS = @EVAS_XRENDER_X11_LIBS@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
@@ -177,6 +204,7 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -189,6 +217,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
 SDL_LIBS = @SDL_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -221,6 +250,8 @@ XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
 XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
 XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
 XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
+XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
+XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
 XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
 XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
 XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
@@ -240,6 +271,8 @@ XRENDER_CFLAGS = @XRENDER_CFLAGS@
 XRENDER_LIBS = @XRENDER_LIBS@
 XSS_CFLAGS = @XSS_CFLAGS@
 XSS_LIBS = @XSS_LIBS@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
 X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
diff --git a/src/lib/ecore_ipc/ecore_ipc.c b/src/lib/ecore_ipc/ecore_ipc.c
index 293041f..1ea7887 100644
--- a/src/lib/ecore_ipc/ecore_ipc.c
+++ b/src/lib/ecore_ipc/ecore_ipc.c
@@ -1,14 +1,15 @@
 #include "Ecore.h"
-#include "config.h"
+#include <config.h>
 #include "Ecore_Con.h"
 #include "ecore_private.h"
 #include "ecore_ipc_private.h"
 #include "Ecore_Ipc.h"
 
 #ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#elif _WIN32
-#include <winsock2.h>
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_WINSOCK2_H
+# include <winsock2.h>
 #endif
 
 #define DLT_ZERO   0
diff --git a/src/lib/ecore_job/Makefile.in b/src/lib/ecore_job/Makefile.in
index a9467a0..94cb3fb 100644
--- a/src/lib/ecore_job/Makefile.in
+++ b/src/lib/ecore_job/Makefile.in
@@ -107,6 +107,8 @@ BUILD_ECORE_EVAS_DIRECTFB_TRUE = @BUILD_ECORE_EVAS_DIRECTFB_TRUE@
 BUILD_ECORE_EVAS_FALSE = @BUILD_ECORE_EVAS_FALSE@
 BUILD_ECORE_EVAS_FB_FALSE = @BUILD_ECORE_EVAS_FB_FALSE@
 BUILD_ECORE_EVAS_FB_TRUE = @BUILD_ECORE_EVAS_FB_TRUE@
+BUILD_ECORE_EVAS_SDL_FALSE = @BUILD_ECORE_EVAS_SDL_FALSE@
+BUILD_ECORE_EVAS_SDL_TRUE = @BUILD_ECORE_EVAS_SDL_TRUE@
 BUILD_ECORE_EVAS_TRUE = @BUILD_ECORE_EVAS_TRUE@
 BUILD_ECORE_EVAS_X11_16_FALSE = @BUILD_ECORE_EVAS_X11_16_FALSE@
 BUILD_ECORE_EVAS_X11_16_TRUE = @BUILD_ECORE_EVAS_X11_16_TRUE@
@@ -155,6 +157,7 @@ DEPDIR = @DEPDIR@
 DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
 DIRECTFB_LIBS = @DIRECTFB_LIBS@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -163,7 +166,31 @@ EET_CFLAGS = @EET_CFLAGS@
 EET_LIBS = @EET_LIBS@
 EGREP = @EGREP@
 EVAS_CFLAGS = @EVAS_CFLAGS@
+EVAS_DIRECT3D_CFLAGS = @EVAS_DIRECT3D_CFLAGS@
+EVAS_DIRECT3D_LIBS = @EVAS_DIRECT3D_LIBS@
+EVAS_DIRECTFB_CFLAGS = @EVAS_DIRECTFB_CFLAGS@
+EVAS_DIRECTFB_LIBS = @EVAS_DIRECTFB_LIBS@
+EVAS_FB_CFLAGS = @EVAS_FB_CFLAGS@
+EVAS_FB_LIBS = @EVAS_FB_LIBS@
 EVAS_LIBS = @EVAS_LIBS@
+EVAS_OPENGL_GLEW_CFLAGS = @EVAS_OPENGL_GLEW_CFLAGS@
+EVAS_OPENGL_GLEW_LIBS = @EVAS_OPENGL_GLEW_LIBS@
+EVAS_OPENGL_X11_CFLAGS = @EVAS_OPENGL_X11_CFLAGS@
+EVAS_OPENGL_X11_LIBS = @EVAS_OPENGL_X11_LIBS@
+EVAS_SOFTWARE_16_DDRAW_CFLAGS = @EVAS_SOFTWARE_16_DDRAW_CFLAGS@
+EVAS_SOFTWARE_16_DDRAW_LIBS = @EVAS_SOFTWARE_16_DDRAW_LIBS@
+EVAS_SOFTWARE_16_X11_CFLAGS = @EVAS_SOFTWARE_16_X11_CFLAGS@
+EVAS_SOFTWARE_16_X11_LIBS = @EVAS_SOFTWARE_16_X11_LIBS@
+EVAS_SOFTWARE_BUFFER_CFLAGS = @EVAS_SOFTWARE_BUFFER_CFLAGS@
+EVAS_SOFTWARE_BUFFER_LIBS = @EVAS_SOFTWARE_BUFFER_LIBS@
+EVAS_SOFTWARE_DDRAW_CFLAGS = @EVAS_SOFTWARE_DDRAW_CFLAGS@
+EVAS_SOFTWARE_DDRAW_LIBS = @EVAS_SOFTWARE_DDRAW_LIBS@
+EVAS_SOFTWARE_SDL_CFLAGS = @EVAS_SOFTWARE_SDL_CFLAGS@
+EVAS_SOFTWARE_SDL_LIBS = @EVAS_SOFTWARE_SDL_LIBS@
+EVAS_SOFTWARE_X11_CFLAGS = @EVAS_SOFTWARE_X11_CFLAGS@
+EVAS_SOFTWARE_X11_LIBS = @EVAS_SOFTWARE_X11_LIBS@
+EVAS_XRENDER_X11_CFLAGS = @EVAS_XRENDER_X11_CFLAGS@
+EVAS_XRENDER_X11_LIBS = @EVAS_XRENDER_X11_LIBS@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
@@ -177,6 +204,7 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -189,6 +217,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
 SDL_LIBS = @SDL_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -221,6 +250,8 @@ XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
 XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
 XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
 XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
+XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
+XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
 XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
 XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
 XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
@@ -240,6 +271,8 @@ XRENDER_CFLAGS = @XRENDER_CFLAGS@
 XRENDER_LIBS = @XRENDER_LIBS@
 XSS_CFLAGS = @XSS_CFLAGS@
 XSS_LIBS = @XSS_LIBS@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
 X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
diff --git a/src/lib/ecore_sdl/Ecore_Sdl.h b/src/lib/ecore_sdl/Ecore_Sdl.h
index 37a89bc..3aa6c79 100644
--- a/src/lib/ecore_sdl/Ecore_Sdl.h
+++ b/src/lib/ecore_sdl/Ecore_Sdl.h
@@ -1,5 +1,5 @@
-#ifndef _ECORE_FB_H
-#define _ECORE_FB_H
+#ifndef _ECORE_SDL_H
+#define _ECORE_SDL_H
 
 #ifdef EAPI
 #undef EAPI
diff --git a/src/lib/ecore_sdl/Makefile.in b/src/lib/ecore_sdl/Makefile.in
index aa52d2c..7640935 100644
--- a/src/lib/ecore_sdl/Makefile.in
+++ b/src/lib/ecore_sdl/Makefile.in
@@ -107,6 +107,8 @@ BUILD_ECORE_EVAS_DIRECTFB_TRUE = @BUILD_ECORE_EVAS_DIRECTFB_TRUE@
 BUILD_ECORE_EVAS_FALSE = @BUILD_ECORE_EVAS_FALSE@
 BUILD_ECORE_EVAS_FB_FALSE = @BUILD_ECORE_EVAS_FB_FALSE@
 BUILD_ECORE_EVAS_FB_TRUE = @BUILD_ECORE_EVAS_FB_TRUE@
+BUILD_ECORE_EVAS_SDL_FALSE = @BUILD_ECORE_EVAS_SDL_FALSE@
+BUILD_ECORE_EVAS_SDL_TRUE = @BUILD_ECORE_EVAS_SDL_TRUE@
 BUILD_ECORE_EVAS_TRUE = @BUILD_ECORE_EVAS_TRUE@
 BUILD_ECORE_EVAS_X11_16_FALSE = @BUILD_ECORE_EVAS_X11_16_FALSE@
 BUILD_ECORE_EVAS_X11_16_TRUE = @BUILD_ECORE_EVAS_X11_16_TRUE@
@@ -155,6 +157,7 @@ DEPDIR = @DEPDIR@
 DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
 DIRECTFB_LIBS = @DIRECTFB_LIBS@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -163,7 +166,31 @@ EET_CFLAGS = @EET_CFLAGS@
 EET_LIBS = @EET_LIBS@
 EGREP = @EGREP@
 EVAS_CFLAGS = @EVAS_CFLAGS@
+EVAS_DIRECT3D_CFLAGS = @EVAS_DIRECT3D_CFLAGS@
+EVAS_DIRECT3D_LIBS = @EVAS_DIRECT3D_LIBS@
+EVAS_DIRECTFB_CFLAGS = @EVAS_DIRECTFB_CFLAGS@
+EVAS_DIRECTFB_LIBS = @EVAS_DIRECTFB_LIBS@
+EVAS_FB_CFLAGS = @EVAS_FB_CFLAGS@
+EVAS_FB_LIBS = @EVAS_FB_LIBS@
 EVAS_LIBS = @EVAS_LIBS@
+EVAS_OPENGL_GLEW_CFLAGS = @EVAS_OPENGL_GLEW_CFLAGS@
+EVAS_OPENGL_GLEW_LIBS = @EVAS_OPENGL_GLEW_LIBS@
+EVAS_OPENGL_X11_CFLAGS = @EVAS_OPENGL_X11_CFLAGS@
+EVAS_OPENGL_X11_LIBS = @EVAS_OPENGL_X11_LIBS@
+EVAS_SOFTWARE_16_DDRAW_CFLAGS = @EVAS_SOFTWARE_16_DDRAW_CFLAGS@
+EVAS_SOFTWARE_16_DDRAW_LIBS = @EVAS_SOFTWARE_16_DDRAW_LIBS@
+EVAS_SOFTWARE_16_X11_CFLAGS = @EVAS_SOFTWARE_16_X11_CFLAGS@
+EVAS_SOFTWARE_16_X11_LIBS = @EVAS_SOFTWARE_16_X11_LIBS@
+EVAS_SOFTWARE_BUFFER_CFLAGS = @EVAS_SOFTWARE_BUFFER_CFLAGS@
+EVAS_SOFTWARE_BUFFER_LIBS = @EVAS_SOFTWARE_BUFFER_LIBS@
+EVAS_SOFTWARE_DDRAW_CFLAGS = @EVAS_SOFTWARE_DDRAW_CFLAGS@
+EVAS_SOFTWARE_DDRAW_LIBS = @EVAS_SOFTWARE_DDRAW_LIBS@
+EVAS_SOFTWARE_SDL_CFLAGS = @EVAS_SOFTWARE_SDL_CFLAGS@
+EVAS_SOFTWARE_SDL_LIBS = @EVAS_SOFTWARE_SDL_LIBS@
+EVAS_SOFTWARE_X11_CFLAGS = @EVAS_SOFTWARE_X11_CFLAGS@
+EVAS_SOFTWARE_X11_LIBS = @EVAS_SOFTWARE_X11_LIBS@
+EVAS_XRENDER_X11_CFLAGS = @EVAS_XRENDER_X11_CFLAGS@
+EVAS_XRENDER_X11_LIBS = @EVAS_XRENDER_X11_LIBS@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
@@ -177,6 +204,7 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -189,6 +217,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
 SDL_LIBS = @SDL_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -221,6 +250,8 @@ XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
 XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
 XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
 XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
+XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
+XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
 XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
 XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
 XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
@@ -240,6 +271,8 @@ XRENDER_CFLAGS = @XRENDER_CFLAGS@
 XRENDER_LIBS = @XRENDER_LIBS@
 XSS_CFLAGS = @XSS_CFLAGS@
 XSS_LIBS = @XSS_LIBS@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
 X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
diff --git a/src/lib/ecore_sdl/ecore_sdl.c b/src/lib/ecore_sdl/ecore_sdl.c
index 0a53596..2d9d316 100644
--- a/src/lib/ecore_sdl/ecore_sdl.c
+++ b/src/lib/ecore_sdl/ecore_sdl.c
@@ -89,8 +89,8 @@ ecore_sdl_feed_events(void)
           }
           case SDL_MOUSEBUTTONDOWN:
           {
-             if (event.button.button == 5 ||
-                 event.button.button == 6)
+             if (event.button.button == SDL_BUTTON_WHEELUP ||
+                 event.button.button == SDL_BUTTON_WHEELDOWN)
                {
                   Ecore_Sdl_Event_Mouse_Wheel   *ev;
 
@@ -98,7 +98,7 @@ ecore_sdl_feed_events(void)
                   ev->x = event.button.x;
                   ev->y = event.button.y;
                   ev->direction = 0;
-                  ev->wheel = event.button.button == 5 ? -1 : 1;
+                  ev->wheel = event.button.button == SDL_BUTTON_WHEELDOWN ? -1 : 1;
                   ev->time = time;
 
                   ecore_event_add(ECORE_SDL_EVENT_MOUSE_WHEEL, ev, NULL, NULL);
diff --git a/src/lib/ecore_txt/Makefile.in b/src/lib/ecore_txt/Makefile.in
index 296b4bc..6c7417a 100644
--- a/src/lib/ecore_txt/Makefile.in
+++ b/src/lib/ecore_txt/Makefile.in
@@ -108,6 +108,8 @@ BUILD_ECORE_EVAS_DIRECTFB_TRUE = @BUILD_ECORE_EVAS_DIRECTFB_TRUE@
 BUILD_ECORE_EVAS_FALSE = @BUILD_ECORE_EVAS_FALSE@
 BUILD_ECORE_EVAS_FB_FALSE = @BUILD_ECORE_EVAS_FB_FALSE@
 BUILD_ECORE_EVAS_FB_TRUE = @BUILD_ECORE_EVAS_FB_TRUE@
+BUILD_ECORE_EVAS_SDL_FALSE = @BUILD_ECORE_EVAS_SDL_FALSE@
+BUILD_ECORE_EVAS_SDL_TRUE = @BUILD_ECORE_EVAS_SDL_TRUE@
 BUILD_ECORE_EVAS_TRUE = @BUILD_ECORE_EVAS_TRUE@
 BUILD_ECORE_EVAS_X11_16_FALSE = @BUILD_ECORE_EVAS_X11_16_FALSE@
 BUILD_ECORE_EVAS_X11_16_TRUE = @BUILD_ECORE_EVAS_X11_16_TRUE@
@@ -156,6 +158,7 @@ DEPDIR = @DEPDIR@
 DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
 DIRECTFB_LIBS = @DIRECTFB_LIBS@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -164,7 +167,31 @@ EET_CFLAGS = @EET_CFLAGS@
 EET_LIBS = @EET_LIBS@
 EGREP = @EGREP@
 EVAS_CFLAGS = @EVAS_CFLAGS@
+EVAS_DIRECT3D_CFLAGS = @EVAS_DIRECT3D_CFLAGS@
+EVAS_DIRECT3D_LIBS = @EVAS_DIRECT3D_LIBS@
+EVAS_DIRECTFB_CFLAGS = @EVAS_DIRECTFB_CFLAGS@
+EVAS_DIRECTFB_LIBS = @EVAS_DIRECTFB_LIBS@
+EVAS_FB_CFLAGS = @EVAS_FB_CFLAGS@
+EVAS_FB_LIBS = @EVAS_FB_LIBS@
 EVAS_LIBS = @EVAS_LIBS@
+EVAS_OPENGL_GLEW_CFLAGS = @EVAS_OPENGL_GLEW_CFLAGS@
+EVAS_OPENGL_GLEW_LIBS = @EVAS_OPENGL_GLEW_LIBS@
+EVAS_OPENGL_X11_CFLAGS = @EVAS_OPENGL_X11_CFLAGS@
+EVAS_OPENGL_X11_LIBS = @EVAS_OPENGL_X11_LIBS@
+EVAS_SOFTWARE_16_DDRAW_CFLAGS = @EVAS_SOFTWARE_16_DDRAW_CFLAGS@
+EVAS_SOFTWARE_16_DDRAW_LIBS = @EVAS_SOFTWARE_16_DDRAW_LIBS@
+EVAS_SOFTWARE_16_X11_CFLAGS = @EVAS_SOFTWARE_16_X11_CFLAGS@
+EVAS_SOFTWARE_16_X11_LIBS = @EVAS_SOFTWARE_16_X11_LIBS@
+EVAS_SOFTWARE_BUFFER_CFLAGS = @EVAS_SOFTWARE_BUFFER_CFLAGS@
+EVAS_SOFTWARE_BUFFER_LIBS = @EVAS_SOFTWARE_BUFFER_LIBS@
+EVAS_SOFTWARE_DDRAW_CFLAGS = @EVAS_SOFTWARE_DDRAW_CFLAGS@
+EVAS_SOFTWARE_DDRAW_LIBS = @EVAS_SOFTWARE_DDRAW_LIBS@
+EVAS_SOFTWARE_SDL_CFLAGS = @EVAS_SOFTWARE_SDL_CFLAGS@
+EVAS_SOFTWARE_SDL_LIBS = @EVAS_SOFTWARE_SDL_LIBS@
+EVAS_SOFTWARE_X11_CFLAGS = @EVAS_SOFTWARE_X11_CFLAGS@
+EVAS_SOFTWARE_X11_LIBS = @EVAS_SOFTWARE_X11_LIBS@
+EVAS_XRENDER_X11_CFLAGS = @EVAS_XRENDER_X11_CFLAGS@
+EVAS_XRENDER_X11_LIBS = @EVAS_XRENDER_X11_LIBS@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
@@ -178,6 +205,7 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -190,6 +218,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
 SDL_LIBS = @SDL_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -222,6 +251,8 @@ XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
 XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
 XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
 XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
+XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
+XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
 XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
 XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
 XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
@@ -241,6 +272,8 @@ XRENDER_CFLAGS = @XRENDER_CFLAGS@
 XRENDER_LIBS = @XRENDER_LIBS@
 XSS_CFLAGS = @XSS_CFLAGS@
 XSS_LIBS = @XSS_LIBS@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
 X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
diff --git a/src/lib/ecore_win32/Makefile.in b/src/lib/ecore_win32/Makefile.in
index 32102ce..3e8b868 100644
--- a/src/lib/ecore_win32/Makefile.in
+++ b/src/lib/ecore_win32/Makefile.in
@@ -125,6 +125,8 @@ BUILD_ECORE_EVAS_DIRECTFB_TRUE = @BUILD_ECORE_EVAS_DIRECTFB_TRUE@
 BUILD_ECORE_EVAS_FALSE = @BUILD_ECORE_EVAS_FALSE@
 BUILD_ECORE_EVAS_FB_FALSE = @BUILD_ECORE_EVAS_FB_FALSE@
 BUILD_ECORE_EVAS_FB_TRUE = @BUILD_ECORE_EVAS_FB_TRUE@
+BUILD_ECORE_EVAS_SDL_FALSE = @BUILD_ECORE_EVAS_SDL_FALSE@
+BUILD_ECORE_EVAS_SDL_TRUE = @BUILD_ECORE_EVAS_SDL_TRUE@
 BUILD_ECORE_EVAS_TRUE = @BUILD_ECORE_EVAS_TRUE@
 BUILD_ECORE_EVAS_X11_16_FALSE = @BUILD_ECORE_EVAS_X11_16_FALSE@
 BUILD_ECORE_EVAS_X11_16_TRUE = @BUILD_ECORE_EVAS_X11_16_TRUE@
@@ -173,6 +175,7 @@ DEPDIR = @DEPDIR@
 DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
 DIRECTFB_LIBS = @DIRECTFB_LIBS@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -181,7 +184,31 @@ EET_CFLAGS = @EET_CFLAGS@
 EET_LIBS = @EET_LIBS@
 EGREP = @EGREP@
 EVAS_CFLAGS = @EVAS_CFLAGS@
+EVAS_DIRECT3D_CFLAGS = @EVAS_DIRECT3D_CFLAGS@
+EVAS_DIRECT3D_LIBS = @EVAS_DIRECT3D_LIBS@
+EVAS_DIRECTFB_CFLAGS = @EVAS_DIRECTFB_CFLAGS@
+EVAS_DIRECTFB_LIBS = @EVAS_DIRECTFB_LIBS@
+EVAS_FB_CFLAGS = @EVAS_FB_CFLAGS@
+EVAS_FB_LIBS = @EVAS_FB_LIBS@
 EVAS_LIBS = @EVAS_LIBS@
+EVAS_OPENGL_GLEW_CFLAGS = @EVAS_OPENGL_GLEW_CFLAGS@
+EVAS_OPENGL_GLEW_LIBS = @EVAS_OPENGL_GLEW_LIBS@
+EVAS_OPENGL_X11_CFLAGS = @EVAS_OPENGL_X11_CFLAGS@
+EVAS_OPENGL_X11_LIBS = @EVAS_OPENGL_X11_LIBS@
+EVAS_SOFTWARE_16_DDRAW_CFLAGS = @EVAS_SOFTWARE_16_DDRAW_CFLAGS@
+EVAS_SOFTWARE_16_DDRAW_LIBS = @EVAS_SOFTWARE_16_DDRAW_LIBS@
+EVAS_SOFTWARE_16_X11_CFLAGS = @EVAS_SOFTWARE_16_X11_CFLAGS@
+EVAS_SOFTWARE_16_X11_LIBS = @EVAS_SOFTWARE_16_X11_LIBS@
+EVAS_SOFTWARE_BUFFER_CFLAGS = @EVAS_SOFTWARE_BUFFER_CFLAGS@
+EVAS_SOFTWARE_BUFFER_LIBS = @EVAS_SOFTWARE_BUFFER_LIBS@
+EVAS_SOFTWARE_DDRAW_CFLAGS = @EVAS_SOFTWARE_DDRAW_CFLAGS@
+EVAS_SOFTWARE_DDRAW_LIBS = @EVAS_SOFTWARE_DDRAW_LIBS@
+EVAS_SOFTWARE_SDL_CFLAGS = @EVAS_SOFTWARE_SDL_CFLAGS@
+EVAS_SOFTWARE_SDL_LIBS = @EVAS_SOFTWARE_SDL_LIBS@
+EVAS_SOFTWARE_X11_CFLAGS = @EVAS_SOFTWARE_X11_CFLAGS@
+EVAS_SOFTWARE_X11_LIBS = @EVAS_SOFTWARE_X11_LIBS@
+EVAS_XRENDER_X11_CFLAGS = @EVAS_XRENDER_X11_CFLAGS@
+EVAS_XRENDER_X11_LIBS = @EVAS_XRENDER_X11_LIBS@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
@@ -195,6 +222,7 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -207,6 +235,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
 SDL_LIBS = @SDL_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -239,6 +268,8 @@ XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
 XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
 XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
 XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
+XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
+XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
 XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
 XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
 XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
@@ -258,6 +289,8 @@ XRENDER_CFLAGS = @XRENDER_CFLAGS@
 XRENDER_LIBS = @XRENDER_LIBS@
 XSS_CFLAGS = @XSS_CFLAGS@
 XSS_LIBS = @XSS_LIBS@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
 X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
diff --git a/src/lib/ecore_x/Ecore_X.h b/src/lib/ecore_x/Ecore_X.h
index 605e231..8ee23ca 100644
--- a/src/lib/ecore_x/Ecore_X.h
+++ b/src/lib/ecore_x/Ecore_X.h
@@ -1448,6 +1448,7 @@ EAPI void                ecore_x_netwm_window_type_set(Ecore_X_Window win, Ecore
 EAPI void                ecore_x_netwm_window_type_get_prefetch(Ecore_X_Window window);
 EAPI void                ecore_x_netwm_window_type_get_fetch(void);
 EAPI int                 ecore_x_netwm_window_type_get(Ecore_X_Window win, Ecore_X_Window_Type *type);
+EAPI int                 ecore_x_netwm_window_types_get(Ecore_X_Window win, Ecore_X_Window_Type **types);
 EAPI int                 ecore_x_netwm_allowed_action_isset(Ecore_X_Window win, Ecore_X_Action action);
 EAPI void                ecore_x_netwm_allowed_action_set(Ecore_X_Window win, Ecore_X_Action *action, unsigned int num);
 EAPI void                ecore_x_netwm_allowed_action_get_prefetch(Ecore_X_Window window);
@@ -1680,7 +1681,9 @@ EAPI void              ecore_x_dpms_timeout_standby_set(unsigned int new_timeout
 EAPI void              ecore_x_dpms_timeout_suspend_set(unsigned int new_timeout);
 EAPI void              ecore_x_dpms_timeout_off_set(unsigned int new_timeout);
 
-
+EAPI int ecore_x_test_fake_key_down(const char *key);
+EAPI int ecore_x_test_fake_key_up(const char *key);
+       
 #ifdef __cplusplus
 }
 #endif
diff --git a/src/lib/ecore_x/Makefile.am b/src/lib/ecore_x/Makefile.am
index d7b44d3..fd46526 100644
--- a/src/lib/ecore_x/Makefile.am
+++ b/src/lib/ecore_x/Makefile.am
@@ -13,6 +13,7 @@ AM_CPPFLAGS = \
 @XCB_XFIXES_CFLAGS@ \
 @XCB_XINERAMA_CFLAGS@ \
 @XCB_XPRINT_CFLAGS@ \
+ at XCB_XTEST_CFLAGS@ \
 @XCB_CFLAGS@ \
 -I$(top_srcdir)/src/lib/ecore \
 -I$(top_srcdir)/src/lib/ecore_txt \
@@ -30,6 +31,7 @@ AM_CPPFLAGS = \
 @XRANDR_CFLAGS@ \
 @XRENDER_CFLAGS@ \
 @XSS_CFLAGS@ \
+ at XTEST_CFLAGS@ \
 @x_cflags@ \
 -I$(top_srcdir)/src/lib/ecore \
 -I$(top_srcdir)/src/lib/ecore_txt \
@@ -85,6 +87,7 @@ libecore_x_la_LIBADD = \
 @XCB_XFIXES_LIBS@ \
 @XCB_XINERAMA_LIBS@ \
 @XCB_XPRINT_LIBS@ \
+ at XCB_XTEST_LIBS@ \
 @XCB_LIBS@ \
 $(top_builddir)/src/lib/ecore/libecore.la \
 $(top_builddir)/src/lib/ecore_txt/libecore_txt.la
@@ -130,6 +133,7 @@ ecore_x_screensaver.c \
 ecore_x_dpms.c \
 ecore_x_drawable.c \
 ecore_x_cursor.c \
+ecore_x_test.c \
 ecore_x_private.h
 
 libecore_x_la_LIBADD = \
@@ -143,6 +147,7 @@ libecore_x_la_LIBADD = \
 @XRANDR_LIBS@ \
 @XRENDER_LIBS@ \
 @XSS_LIBS@ \
+ at XTEST_LIBS@ \
 @x_libs@ \
 $(top_builddir)/src/lib/ecore/libecore.la \
 $(top_builddir)/src/lib/ecore_txt/libecore_txt.la
@@ -185,4 +190,5 @@ ecore_x_screensaver.c \
 ecore_x_dpms.c \
 ecore_x_drawable.c \
 ecore_x_cursor.c \
+ecore_x_test.c \
 ecore_x_private.h
diff --git a/src/lib/ecore_x/Makefile.in b/src/lib/ecore_x/Makefile.in
index fca3bc0..6647552 100644
--- a/src/lib/ecore_x/Makefile.in
+++ b/src/lib/ecore_x/Makefile.in
@@ -67,16 +67,16 @@ am__libecore_x_la_SOURCES_DIST = ecore_x.c ecore_x_dnd.c \
 	ecore_x_window_prop.c ecore_x_window_shape.c ecore_x_pixmap.c \
 	ecore_x_gc.c ecore_x_xinerama.c ecore_x_screensaver.c \
 	ecore_x_dpms.c ecore_x_drawable.c ecore_x_cursor.c \
-	ecore_x_private.h ecore_xcb_atom.c ecore_xcb_cursor.c \
-	ecore_xcb_damage.c ecore_xcb_composite.c ecore_xcb_dnd.c \
-	ecore_xcb_dpms.c ecore_xcb_drawable.c ecore_xcb_e.c \
-	ecore_xcb_events.c ecore_xcb_fixes.c ecore_xcb_gc.c \
-	ecore_xcb_icccm.c ecore_xcb_mwm.c ecore_xcb_netwm.c \
-	ecore_xcb_pixmap.c ecore_xcb_randr.c ecore_xcb_reply.c \
-	ecore_xcb_screensaver.c ecore_xcb_selection.c \
-	ecore_xcb_shape.c ecore_xcb_sync.c ecore_xcb_window.c \
-	ecore_xcb_window_prop.c ecore_xcb_xinerama.c ecore_xcb.c \
-	ecore_xcb_private.h
+	ecore_x_test.c ecore_x_private.h ecore_xcb_atom.c \
+	ecore_xcb_cursor.c ecore_xcb_damage.c ecore_xcb_composite.c \
+	ecore_xcb_dnd.c ecore_xcb_dpms.c ecore_xcb_drawable.c \
+	ecore_xcb_e.c ecore_xcb_events.c ecore_xcb_fixes.c \
+	ecore_xcb_gc.c ecore_xcb_icccm.c ecore_xcb_mwm.c \
+	ecore_xcb_netwm.c ecore_xcb_pixmap.c ecore_xcb_randr.c \
+	ecore_xcb_reply.c ecore_xcb_screensaver.c \
+	ecore_xcb_selection.c ecore_xcb_shape.c ecore_xcb_sync.c \
+	ecore_xcb_window.c ecore_xcb_window_prop.c \
+	ecore_xcb_xinerama.c ecore_xcb.c ecore_xcb_private.h
 @BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE at am_libecore_x_la_OBJECTS =  \
 @BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE@	ecore_x.lo \
 @BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE@	ecore_x_dnd.lo \
@@ -101,7 +101,8 @@ am__libecore_x_la_SOURCES_DIST = ecore_x.c ecore_x_dnd.c \
 @BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE@	ecore_x_screensaver.lo \
 @BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE@	ecore_x_dpms.lo \
 @BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE@	ecore_x_drawable.lo \
- at BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE@	ecore_x_cursor.lo
+ at BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE@	ecore_x_cursor.lo \
+ at BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE@	ecore_x_test.lo
 @BUILD_ECORE_X_XCB_TRUE at am_libecore_x_la_OBJECTS = ecore_xcb_atom.lo \
 @BUILD_ECORE_X_XCB_TRUE@	ecore_xcb_cursor.lo \
 @BUILD_ECORE_X_XCB_TRUE@	ecore_xcb_damage.lo \
@@ -167,6 +168,8 @@ BUILD_ECORE_EVAS_DIRECTFB_TRUE = @BUILD_ECORE_EVAS_DIRECTFB_TRUE@
 BUILD_ECORE_EVAS_FALSE = @BUILD_ECORE_EVAS_FALSE@
 BUILD_ECORE_EVAS_FB_FALSE = @BUILD_ECORE_EVAS_FB_FALSE@
 BUILD_ECORE_EVAS_FB_TRUE = @BUILD_ECORE_EVAS_FB_TRUE@
+BUILD_ECORE_EVAS_SDL_FALSE = @BUILD_ECORE_EVAS_SDL_FALSE@
+BUILD_ECORE_EVAS_SDL_TRUE = @BUILD_ECORE_EVAS_SDL_TRUE@
 BUILD_ECORE_EVAS_TRUE = @BUILD_ECORE_EVAS_TRUE@
 BUILD_ECORE_EVAS_X11_16_FALSE = @BUILD_ECORE_EVAS_X11_16_FALSE@
 BUILD_ECORE_EVAS_X11_16_TRUE = @BUILD_ECORE_EVAS_X11_16_TRUE@
@@ -215,6 +218,7 @@ DEPDIR = @DEPDIR@
 DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
 DIRECTFB_LIBS = @DIRECTFB_LIBS@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -223,7 +227,31 @@ EET_CFLAGS = @EET_CFLAGS@
 EET_LIBS = @EET_LIBS@
 EGREP = @EGREP@
 EVAS_CFLAGS = @EVAS_CFLAGS@
+EVAS_DIRECT3D_CFLAGS = @EVAS_DIRECT3D_CFLAGS@
+EVAS_DIRECT3D_LIBS = @EVAS_DIRECT3D_LIBS@
+EVAS_DIRECTFB_CFLAGS = @EVAS_DIRECTFB_CFLAGS@
+EVAS_DIRECTFB_LIBS = @EVAS_DIRECTFB_LIBS@
+EVAS_FB_CFLAGS = @EVAS_FB_CFLAGS@
+EVAS_FB_LIBS = @EVAS_FB_LIBS@
 EVAS_LIBS = @EVAS_LIBS@
+EVAS_OPENGL_GLEW_CFLAGS = @EVAS_OPENGL_GLEW_CFLAGS@
+EVAS_OPENGL_GLEW_LIBS = @EVAS_OPENGL_GLEW_LIBS@
+EVAS_OPENGL_X11_CFLAGS = @EVAS_OPENGL_X11_CFLAGS@
+EVAS_OPENGL_X11_LIBS = @EVAS_OPENGL_X11_LIBS@
+EVAS_SOFTWARE_16_DDRAW_CFLAGS = @EVAS_SOFTWARE_16_DDRAW_CFLAGS@
+EVAS_SOFTWARE_16_DDRAW_LIBS = @EVAS_SOFTWARE_16_DDRAW_LIBS@
+EVAS_SOFTWARE_16_X11_CFLAGS = @EVAS_SOFTWARE_16_X11_CFLAGS@
+EVAS_SOFTWARE_16_X11_LIBS = @EVAS_SOFTWARE_16_X11_LIBS@
+EVAS_SOFTWARE_BUFFER_CFLAGS = @EVAS_SOFTWARE_BUFFER_CFLAGS@
+EVAS_SOFTWARE_BUFFER_LIBS = @EVAS_SOFTWARE_BUFFER_LIBS@
+EVAS_SOFTWARE_DDRAW_CFLAGS = @EVAS_SOFTWARE_DDRAW_CFLAGS@
+EVAS_SOFTWARE_DDRAW_LIBS = @EVAS_SOFTWARE_DDRAW_LIBS@
+EVAS_SOFTWARE_SDL_CFLAGS = @EVAS_SOFTWARE_SDL_CFLAGS@
+EVAS_SOFTWARE_SDL_LIBS = @EVAS_SOFTWARE_SDL_LIBS@
+EVAS_SOFTWARE_X11_CFLAGS = @EVAS_SOFTWARE_X11_CFLAGS@
+EVAS_SOFTWARE_X11_LIBS = @EVAS_SOFTWARE_X11_LIBS@
+EVAS_XRENDER_X11_CFLAGS = @EVAS_XRENDER_X11_CFLAGS@
+EVAS_XRENDER_X11_LIBS = @EVAS_XRENDER_X11_LIBS@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
@@ -237,6 +265,7 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -249,6 +278,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
 SDL_LIBS = @SDL_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -281,6 +311,8 @@ XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
 XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
 XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
 XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
+XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
+XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
 XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
 XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
 XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
@@ -300,6 +332,8 @@ XRENDER_CFLAGS = @XRENDER_CFLAGS@
 XRENDER_LIBS = @XRENDER_LIBS@
 XSS_CFLAGS = @XSS_CFLAGS@
 XSS_LIBS = @XSS_LIBS@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
 X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
@@ -422,6 +456,7 @@ MAINTAINERCLEANFILES = Makefile.in
 @BUILD_ECORE_X_XCB_FALSE@@XRANDR_CFLAGS@ \
 @BUILD_ECORE_X_XCB_FALSE@@XRENDER_CFLAGS@ \
 @BUILD_ECORE_X_XCB_FALSE@@XSS_CFLAGS@ \
+ at BUILD_ECORE_X_XCB_FALSE@@XTEST_CFLAGS@ \
 @BUILD_ECORE_X_XCB_FALSE@@x_cflags@ \
 @BUILD_ECORE_X_XCB_FALSE at -I$(top_srcdir)/src/lib/ecore \
 @BUILD_ECORE_X_XCB_FALSE at -I$(top_srcdir)/src/lib/ecore_txt \
@@ -440,6 +475,7 @@ MAINTAINERCLEANFILES = Makefile.in
 @BUILD_ECORE_X_XCB_TRUE@@XCB_XFIXES_CFLAGS@ \
 @BUILD_ECORE_X_XCB_TRUE@@XCB_XINERAMA_CFLAGS@ \
 @BUILD_ECORE_X_XCB_TRUE@@XCB_XPRINT_CFLAGS@ \
+ at BUILD_ECORE_X_XCB_TRUE@@XCB_XTEST_CFLAGS@ \
 @BUILD_ECORE_X_XCB_TRUE@@XCB_CFLAGS@ \
 @BUILD_ECORE_X_XCB_TRUE at -I$(top_srcdir)/src/lib/ecore \
 @BUILD_ECORE_X_XCB_TRUE at -I$(top_srcdir)/src/lib/ecore_txt \
@@ -483,6 +519,7 @@ MAINTAINERCLEANFILES = Makefile.in
 @BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE at ecore_x_dpms.c \
 @BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE at ecore_x_drawable.c \
 @BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE at ecore_x_cursor.c \
+ at BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE at ecore_x_test.c \
 @BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE at ecore_x_private.h
 
 @BUILD_ECORE_X_XCB_TRUE at libecore_x_la_SOURCES = \
@@ -524,6 +561,7 @@ MAINTAINERCLEANFILES = Makefile.in
 @BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE@@XRANDR_LIBS@ \
 @BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE@@XRENDER_LIBS@ \
 @BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE@@XSS_LIBS@ \
+ at BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE@@XTEST_LIBS@ \
 @BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE@@x_libs@ \
 @BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE@$(top_builddir)/src/lib/ecore/libecore.la \
 @BUILD_ECORE_X_TRUE@@BUILD_ECORE_X_XCB_FALSE@$(top_builddir)/src/lib/ecore_txt/libecore_txt.la
@@ -540,6 +578,7 @@ MAINTAINERCLEANFILES = Makefile.in
 @BUILD_ECORE_X_XCB_TRUE@@XCB_XFIXES_LIBS@ \
 @BUILD_ECORE_X_XCB_TRUE@@XCB_XINERAMA_LIBS@ \
 @BUILD_ECORE_X_XCB_TRUE@@XCB_XPRINT_LIBS@ \
+ at BUILD_ECORE_X_XCB_TRUE@@XCB_XTEST_LIBS@ \
 @BUILD_ECORE_X_XCB_TRUE@@XCB_LIBS@ \
 @BUILD_ECORE_X_XCB_TRUE@$(top_builddir)/src/lib/ecore/libecore.la \
 @BUILD_ECORE_X_XCB_TRUE@$(top_builddir)/src/lib/ecore_txt/libecore_txt.la
@@ -582,6 +621,7 @@ ecore_x_screensaver.c \
 ecore_x_dpms.c \
 ecore_x_drawable.c \
 ecore_x_cursor.c \
+ecore_x_test.c \
 ecore_x_private.h
 
 all: all-am
@@ -673,6 +713,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ecore_x_screensaver.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ecore_x_selection.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ecore_x_sync.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ecore_x_test.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ecore_x_window.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ecore_x_window_prop.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ecore_x_window_shape.Plo at am__quote@
diff --git a/src/lib/ecore_x/ecore_x_events.c b/src/lib/ecore_x/ecore_x_events.c
index cafe7d3..e51e5be 100644
--- a/src/lib/ecore_x/ecore_x_events.c
+++ b/src/lib/ecore_x/ecore_x_events.c
@@ -1662,7 +1662,7 @@ _ecore_x_event_handle_screensaver_notify(XEvent *xevent)
    e->win = screensaver_event->window;
    if (screensaver_event->state == ScreenSaverOn)
      e->on = 1;
-   else 
+  else 
      e->on = 0;
    e->time = screensaver_event->time;
    ecore_event_add(ECORE_X_EVENT_SCREENSAVER_NOTIFY, e, NULL, NULL);
diff --git a/src/lib/ecore_x/ecore_x_netwm.c b/src/lib/ecore_x/ecore_x_netwm.c
index 8f3df40..6c9308a 100644
--- a/src/lib/ecore_x/ecore_x_netwm.c
+++ b/src/lib/ecore_x/ecore_x_netwm.c
@@ -999,34 +999,42 @@ ecore_x_netwm_window_type_set(Ecore_X_Window win, Ecore_X_Window_Type type)
 EAPI int
 ecore_x_netwm_window_type_get(Ecore_X_Window win, Ecore_X_Window_Type *type)
 {
-   int                  num, i;
-   Ecore_X_Atom        *atoms;
+   int                  num;
+   Ecore_X_Atom        *atoms = NULL;
 
    if (type) *type = ECORE_X_WINDOW_TYPE_NORMAL;
 
-   num = ecore_x_window_prop_atom_list_get(win, ECORE_X_ATOM_NET_WM_WINDOW_TYPE,
+   num = ecore_x_window_prop_atom_list_get(win, 
+					   ECORE_X_ATOM_NET_WM_WINDOW_TYPE,
 					   &atoms);
-   if (num < 0)
-     {
-	/* IMO this is not the place to mix netwm and icccm /kwo */
-	/* Check if WM_TRANSIENT_FOR is set */
-	if ((type) && (ecore_x_icccm_transient_for_get(win)))
-	  *type = ECORE_X_WINDOW_TYPE_DIALOG;
-	return 1;
-     }
+   if ((type) && (num >= 1) && (atoms))
+     *type = _ecore_x_netwm_window_type_type_get(atoms[0]);
+
+   free(atoms);
+   if (num >= 1) return 1;
+   return 0;
+}
+
+EAPI int
+ecore_x_netwm_window_types_get(Ecore_X_Window win, Ecore_X_Window_Type **types)
+{
+   int                  num, i;
+   Ecore_X_Atom        *atoms = NULL;
 
-   if (type)
+   if (types) *types = NULL;
+   num = ecore_x_window_prop_atom_list_get(win,
+					   ECORE_X_ATOM_NET_WM_WINDOW_TYPE,
+					   &atoms);
+   if ((num <= 0) || (!atoms))
      {
-	for (i = 0; i < num; ++i)
-	  {
-	     *type = _ecore_x_netwm_window_type_type_get(atoms[i]);
-	     if (*type != ECORE_X_WINDOW_TYPE_UNKNOWN)
-	       break;
-	  }
+	if (atoms) free(atoms);
+	return 0;
      }
-
-   free(atoms);
-   return 1;
+   for (i = 0; i < num; i++)
+     atoms[i] = _ecore_x_netwm_window_type_type_get(atoms[i]);
+   if (types) *types = atoms;
+   else free(atoms);
+   return num;
 }
 
 static Ecore_X_Atom
diff --git a/src/lib/ecore_x/ecore_x_window.c b/src/lib/ecore_x/ecore_x_window.c
index 1fc232d..517fcac 100644
--- a/src/lib/ecore_x/ecore_x_window.c
+++ b/src/lib/ecore_x/ecore_x_window.c
@@ -487,7 +487,7 @@ ecore_x_window_focus(Ecore_X_Window win)
 {
    if (win == 0) win = DefaultRootWindow(_ecore_x_disp);   
 //   XSetInputFocus(_ecore_x_disp, win, RevertToNone, CurrentTime);
-   XSetInputFocus(_ecore_x_disp, win, PointerRoot, CurrentTime);
+   XSetInputFocus(_ecore_x_disp, win, RevertToPointerRoot, CurrentTime);
 }
 
 /**
diff --git a/src/lib/ecore_x/ecore_xcb_dnd.c b/src/lib/ecore_x/ecore_xcb_dnd.c
index ae2ca7a..b270d3d 100644
--- a/src/lib/ecore_x/ecore_xcb_dnd.c
+++ b/src/lib/ecore_x/ecore_xcb_dnd.c
@@ -637,7 +637,7 @@ _ecore_x_dnd_drag(Ecore_X_Window root,
 
         ecore_x_dnd_version_get_prefetch(win);
         cookie_tree = xcb_query_tree_unchecked(_ecore_xcb_conn, win);
-        
+
         ecore_x_dnd_version_get_fetch();
         /* We found the correct window ? */
         if (ecore_x_dnd_version_get(win))
@@ -675,7 +675,7 @@ _ecore_x_dnd_drag(Ecore_X_Window root,
 
         ecore_x_dnd_version_get_prefetch(win);
         ecore_x_dnd_type_get_prefetch(_source->win);
-        
+
         ecore_x_dnd_version_get_fetch();
         if (!ecore_x_dnd_version_get(win))
           {
diff --git a/src/lib/ecore_x/ecore_xcb_screensaver.c b/src/lib/ecore_x/ecore_xcb_screensaver.c
index f78e57b..6fdf8c4 100644
--- a/src/lib/ecore_x/ecore_xcb_screensaver.c
+++ b/src/lib/ecore_x/ecore_xcb_screensaver.c
@@ -163,13 +163,13 @@ ecore_x_get_screensaver_fetch(void)
  * @ingroup Ecore_X_ScrenSaver_Group
  */
 EAPI void
-ecore_x_screensaver_timeout_set(double timeout)
+ecore_x_screensaver_timeout_set(int timeout)
 {
    xcb_get_screen_saver_reply_t *reply;
 
    reply = _ecore_xcb_reply_get();
    if (!reply) return;
-   
+
    xcb_set_screen_saver(_ecore_xcb_conn,
                         (int16_t)timeout,
                         reply->interval,
@@ -189,7 +189,7 @@ ecore_x_screensaver_timeout_set(double timeout)
  * then ecore_x_get_screensaver_fetch(), which gets the reply.
  * @ingroup Ecore_X_ScrenSaver_Group
  */
-EAPI double
+EAPI int
 ecore_x_screensaver_timeout_get(void)
 {
    xcb_get_screen_saver_reply_t *reply;
@@ -197,7 +197,7 @@ ecore_x_screensaver_timeout_get(void)
    reply = _ecore_xcb_reply_get();
    if (!reply) return 0.0;
 
-   return (double)reply->timeout;
+   return (int)reply->timeout;
 }
 
 
@@ -213,13 +213,13 @@ ecore_x_screensaver_timeout_get(void)
  * @ingroup Ecore_X_ScrenSaver_Group
  */
 EAPI void
-ecore_x_screensaver_interval_set(double interval)
+ecore_x_screensaver_interval_set(int interval)
 {
    xcb_get_screen_saver_reply_t *reply;
 
    reply = _ecore_xcb_reply_get();
    if (!reply) return;
-   
+
    xcb_set_screen_saver(_ecore_xcb_conn,
                         reply->timeout,
                         (int16_t)interval,
@@ -239,7 +239,7 @@ ecore_x_screensaver_interval_set(double interval)
  * then ecore_x_get_screensaver_fetch(), which gets the reply.
  * @ingroup Ecore_X_ScrenSaver_Group
  */
-EAPI double
+EAPI int
 ecore_x_screensaver_interval_get(void)
 {
    xcb_get_screen_saver_reply_t *reply;
@@ -247,7 +247,7 @@ ecore_x_screensaver_interval_get(void)
    reply = _ecore_xcb_reply_get();
    if (!reply) return 0.0;
 
-   return (double)reply->interval;
+   return (int)reply->interval;
 }
 
 
@@ -263,13 +263,13 @@ ecore_x_screensaver_interval_get(void)
  * @ingroup Ecore_X_ScrenSaver_Group
  */
 EAPI void
-ecore_x_screensaver_blank_set(double blank)
+ecore_x_screensaver_blank_set(int blank)
 {
    xcb_get_screen_saver_reply_t *reply;
 
    reply = _ecore_xcb_reply_get();
    if (!reply) return;
-   
+
    xcb_set_screen_saver(_ecore_xcb_conn,
                         reply->timeout,
                         reply->interval,
@@ -289,7 +289,7 @@ ecore_x_screensaver_blank_set(double blank)
  * then ecore_x_get_screensaver_fetch(), which gets the reply.
  * @ingroup Ecore_X_ScrenSaver_Group
  */
-EAPI double
+EAPI int
 ecore_x_screensaver_blank_get(void)
 {
    xcb_get_screen_saver_reply_t *reply;
@@ -297,7 +297,7 @@ ecore_x_screensaver_blank_get(void)
    reply = _ecore_xcb_reply_get();
    if (!reply) return 0.0;
 
-   return (double)reply->prefer_blanking;
+   return (int)reply->prefer_blanking;
 }
 
 
@@ -313,13 +313,13 @@ ecore_x_screensaver_blank_get(void)
  * @ingroup Ecore_X_ScrenSaver_Group
  */
 EAPI void
-ecore_x_screensaver_expose_set(double expose)
+ecore_x_screensaver_expose_set(int expose)
 {
    xcb_get_screen_saver_reply_t *reply;
 
    reply = _ecore_xcb_reply_get();
    if (!reply) return;
-   
+
    xcb_set_screen_saver(_ecore_xcb_conn,
                         reply->timeout,
                         reply->interval,
@@ -339,7 +339,7 @@ ecore_x_screensaver_expose_set(double expose)
  * then ecore_x_get_screensaver_fetch(), which gets the reply.
  * @ingroup Ecore_X_ScrenSaver_Group
  */
-EAPI double
+EAPI int
 ecore_x_screensaver_expose_get(void)
 {
    xcb_get_screen_saver_reply_t *reply;
@@ -347,7 +347,7 @@ ecore_x_screensaver_expose_get(void)
    reply = _ecore_xcb_reply_get();
    if (!reply) return 0.0;
 
-   return (double)reply->allow_exposures;
+   return (int)reply->allow_exposures;
 }
 
 

-- 
Core abstraction layer for enlightenment DR 0.17



More information about the Pkg-e-commits mailing list