Evas tests: Fixed warnings.
[profile/ivi/evas.git] / configure.ac
index 692bafd..46ebb80 100644 (file)
@@ -1,9 +1,9 @@
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 m4_define([v_maj], [1])
-m4_define([v_min], [0])
-m4_define([v_mic], [999])
-m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v export || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n']))
+m4_define([v_min], [6])
+m4_define([v_mic], [99])
+m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v '\(export\|Unversioned directory\)' || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n']))
 m4_if(v_rev, [0], [m4_define([v_rev], m4_esyscmd([git log 2> /dev/null | (grep -m1 git-svn-id || echo 0) | sed -e 's/.*@\([0-9]*\).*/\1/' | tr -d '\n']))])
 ##--   When released, remove the dnl on the below line
 dnl m4_undefine([v_rev])
@@ -77,7 +77,7 @@ AC_CANONICAL_BUILD
 AC_CANONICAL_HOST
 
 case "$host_os" in
-   mingw32ce* | cegcc*)
+   mingw32ce*)
       MODULE_ARCH="$host_os-$host_cpu"
       ;;
    *)
@@ -92,24 +92,27 @@ want_fribidi="auto"
 want_harfbuzz="auto"
 want_pixman="no"
 want_evas_cserve="yes"
+want_evas_cserve2="yes"
 
 want_evas_engine_buffer="yes"
 want_evas_engine_software_xlib="no"
 want_evas_engine_software_xcb="no"
 want_evas_engine_software_gdi="no"
 want_evas_engine_software_ddraw="no"
-want_evas_engine_software_sdl="no"
 want_evas_engine_software_8_x11="no"
 want_evas_engine_software_16_x11="no"
-want_evas_engine_software_16_ddraw="no"
 want_evas_engine_software_16_wince="no"
 want_evas_engine_software_16_sdl="no"
 want_evas_engine_gl_xlib="no"
 want_evas_engine_gl_xcb="no"
 want_evas_engine_gl_sdl="no"
+want_evas_engine_gl_cocoa="no"
 want_evas_engine_direct3d="no"
 want_evas_engine_fb="no"
 want_evas_engine_directfb="no"
+want_evas_engine_psl1ght="no"
+want_evas_engine_wayland_shm="no"
+want_evas_engine_wayland_egl="no"
 
 want_evas_image_loader_edb="yes"
 want_evas_image_loader_eet="yes"
@@ -130,7 +133,7 @@ want_evas_image_loader_generic="yes"
 want_evas_font_loader_eet="yes"
 
 case "$host_os" in
-   mingw32ce* | cegcc*)
+   mingw32ce*)
       want_fontconfig="no"
       want_evas_engine_software_16_wince="yes"
       want_evas_image_loader_edb="no"
@@ -142,12 +145,12 @@ case "$host_os" in
       want_evas_engine_software_gdi="yes"
       want_evas_engine_software_ddraw="yes"
       want_evas_engine_direct3d="yes"
-      want_evas_engine_software_16_ddraw="yes"
       want_evas_image_loader_edb="no"
       want_evas_image_loader_svg="no"
       ;;
    darwin*)
       want_evas_engine_software_xlib="auto"
+      want_evas_engine_gl_cocoa="auto"
       ;;
    *)
       want_evas_engine_software_xlib="auto"
@@ -155,12 +158,20 @@ case "$host_os" in
       want_evas_engine_software_xcb="no"
       want_evas_engine_gl_xcb="no"
       want_evas_engine_fb="auto"
+      want_evas_engine_wayland_shm="auto"
+      want_evas_engine_wayland_egl="auto"
 ### no - not ready/usable/complete
 #      want_evas_engine_software_8_x11="auto"
 #      want_evas_engine_software_16_x11="auto"
       ;;
 esac
 
+case "$host_vendor" in
+  ps3*)
+      want_evas_engine_psl1ght="static"
+      ;;
+esac
+
 requirement_evas=""
 
 
@@ -224,17 +235,31 @@ EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"])
 # Evil library for compilation on Windows CE
 
 case "$host_os" in
-   mingw* | cegcc*)
-      PKG_CHECK_MODULES([EVIL], [evil])
+   mingw*)
+      PKG_CHECK_MODULES([EVIL], [evil >= 1.0.0])
       AC_DEFINE(HAVE_EVIL, 1, [Set to 1 if evil package is installed])
       requirement_evas="evil ${requirement_evas}"
    ;;
 esac
 
+### Checks for portability layer
+
+PKG_CHECK_MODULES([EXOTIC],
+   [exotic],
+   [enable_exotic="yes"],
+   [enable_exotic="no"])
+
+if test "x${enable_exotic}" = "xyes"; then
+    requirement_evas="exotic ${requirement_evas}"
+
+    AC_DEFINE([HAVE_EXOTIC], [1], [Define to 1 if you have Exotic.])
+fi
+AM_CONDITIONAL([EVAS_HAVE_EXOTIC], [test "x${enable_exotic}" = "xyes"])
+
 ## strong dependencies
 
 # Eina
-PKG_CHECK_MODULES([EINA], [eina >= 1.0.0])
+PKG_CHECK_MODULES([EINA], [eina >= 1.6.0])
 CPPFLAGS_SAVE="$CPPFLAGS"
 CPPFLAGS="$CPPFLAGS $EINA_CFLAGS"
 AC_CHECK_SIZEOF(Eina_Unicode,, [#include <Eina.h>])
@@ -243,7 +268,7 @@ CPPFLAGS="$CPPFLAGS_SAVE"
 # Freetype
 PKG_CHECK_MODULES([FREETYPE], [freetype2 >= 9.3.0])
 
-requirement_evas="freetype2 eina >= 1.0.0 ${requirement_evas}"
+requirement_evas="freetype2 eina >= 1.6.0 ${requirement_evas}"
 
 ## optional dependencies
 
@@ -355,7 +380,7 @@ AC_ARG_ENABLE([harfbuzz],
 
 if test "x${want_harfbuzz}" = "xyes" -o "x${want_harfbuzz}" = "xauto" ; then
    PKG_CHECK_MODULES([HARFBUZZ],
-      [harfbuzz >= 0.6.0],
+      [harfbuzz >= 0.9.0],
       [
        have_harfbuzz="yes"
        requirement_evas="harfbuzz ${requirement_evas}"
@@ -394,8 +419,8 @@ fi
 # Pixman
 have_pixman="no"
 AC_ARG_ENABLE([pixman],
-   AC_HELP_STRING([--disable-pixman],
-      [disable pixman for software rendering. @<:@default=enabled@:>@]),
+   AC_HELP_STRING([--enable-pixman],
+      [enable pixman for software rendering. @<:@default=enabled@:>@]),
    [
     if test "x${enableval}" = "xyes" ; then
        want_pixman="yes"
@@ -420,14 +445,77 @@ if test "x${want_pixman}" = "xyes" -o "x${want_pixman}" = "xauto" ; then
       ])
 fi
 
+have_pixman_font="no"
+AC_ARG_ENABLE(pixman-font,
+  AC_HELP_STRING([--enable-pixman-font], [Allow pixman to render fonts]),
+  [ 
+    have_pixman_font="yes"
+    AC_DEFINE(PIXMAN_FONT, 1, [Allow pixman to render fonts])
+  ]
+)
+
+have_pixman_rect="no"
+AC_ARG_ENABLE(pixman-rect,
+  AC_HELP_STRING([--enable-pixman-rect], [Allow pixman to render rects]),
+  [ 
+    have_pixman_rect="yes"
+    AC_DEFINE(PIXMAN_RECT, 1, [Allow pixman to render rects])
+  ]
+)
+
+have_pixman_line="no"
+AC_ARG_ENABLE(pixman-line,
+  AC_HELP_STRING([--enable-pixman-line], [Allow pixman to render lines]),
+  [ 
+    have_pixman_line="yes"
+    AC_DEFINE(PIXMAN_LINE, 1, [Allow pixman to render lines])
+  ]
+)
+
+have_pixman_poly="no"
+AC_ARG_ENABLE(pixman-poly,
+  AC_HELP_STRING([--enable-pixman-poly], [Allow pixman to render polys]),
+  [ 
+    have_pixman_poly="yes"
+    AC_DEFINE(PIXMAN_POLY, 1, [Allow pixman to render polys])
+  ]
+)
+
+have_pixman_image="no"
+AC_ARG_ENABLE(pixman-image,
+  AC_HELP_STRING([--enable-pixman-image], [Allow pixman to render images]),
+  [ 
+    have_pixman_image="yes"
+    AC_DEFINE(PIXMAN_IMAGE, 1, [Allow pixman to render images])
+  ]
+)
+
+have_pixman_image_scale_sample="no"
+AC_ARG_ENABLE(pixman-image-scale-sample,
+  AC_HELP_STRING([--enable-pixman-image-scale-sample], [Allow pixman to render sampled scaled images]),
+  [ 
+    have_pixman_image_scale_sample="yes"
+    AC_DEFINE(PIXMAN_IMAGE_SCALE_SAMPLE, 1, [Allow pixman to render image sampled scaling])
+  ]
+)
+
+have_tile_rotate="no"
+AC_ARG_ENABLE(tile-rotate,
+  AC_HELP_STRING([--enable-tile-rotate], [Enable tiled rotate algorithm]),
+  [ 
+    have_tile_rotate="yes"
+    AC_DEFINE(TILE_ROTATE, 1, [Enable tiled rotate algorithm])
+  ]
+)
+
 ### Checks for header files
 AC_HEADER_STDC
-AC_CHECK_HEADERS([unistd.h stdint.h sys/param.h netinet/in.h])
-
+AC_CHECK_HEADERS([unistd.h stdint.h sys/param.h netinet/in.h sys/mman.h])
 EFL_CHECK_PATH_MAX
 
-
 ### Checks for types
+AC_CHECK_TYPES([struct sigaction], [], [],
+               [[#include <signal.h>]])
 
 
 ### Checks for structures
@@ -436,33 +524,16 @@ EFL_CHECK_PATH_MAX
 ### Checks for compiler characteristics
 AC_C_CONST
 AC_C_BIGENDIAN
-AC_C___ATTRIBUTE__
-AM_PROG_CC_STDC
-
-WIN32_CPPFLAGS=""
-case "$host_os" in
-   mingw32ce* | cegcc*)
-      WIN32_CPPFLAGS="-D_WIN32_WCE=0x0420"
-      ;;
-   mingw*)
-      WIN32_CPPFLAGS="-D_WIN32_WINNT=0x0500"
-      ;;
-esac
-AC_SUBST(WIN32_CPPFLAGS)
-
-WIN32_CFLAGS=""
-case "${host_os}" in
-   cegcc*)
-      WIN32_CFLAGS="-mwin32"
-   ;;
-esac
-AC_SUBST(WIN32_CFLAGS)
+AC_PROG_CC_STDC
+EFL_ATTRIBUTE_UNUSED
+EFL_ATTRIBUTE_VECTOR
+EFL_ATTRIBUTE_ALWAYS_INLINE
 
 
 ### Checks for linker characteristics
 lt_enable_auto_import=""
 case "${host_os}" in
-   mingw* | cegcc*)
+   mingw*)
       AC_DEFINE(EFL_EVAS_BUILD, 1, [Define to mention that evas is built])
       lt_enable_auto_import="-Wl,--enable-auto-import"
    ;;
@@ -473,6 +544,7 @@ AC_SUBST(lt_enable_auto_import)
 ### Checks for library functions
 
 AC_ISC_POSIX
+AC_CHECK_FUNCS([siglongjmp])
 
 # alloca
 AC_FUNC_ALLOCA
@@ -483,54 +555,40 @@ EFL_CHECK_FNMATCH([], [AC_MSG_ERROR([Cannot find fnmatch()])])
 # dlopen
 dlopen_libs=""
 case "$host_os" in
-  mingw32ce* | cegcc*)
+  mingw32ce*)
 # managed by evil
-    AC_DEFINE(HAVE_DLADDR)
+    AC_DEFINE(HAVE_DLSYM)
   ;;
   mingw*)
 # nothing on mingw platform
   ;;
   *)
-    AC_CHECK_FUNCS(dlopen, res=yes, res=no)
+    AC_CHECK_FUNCS(dlsym, res=yes, res=no)
     if test "x$res" = "xyes"; then
-      AC_CHECK_FUNCS(dladdr, AC_DEFINE(HAVE_DLADDR))
+      AC_DEFINE(HAVE_DLSYM)
     else
-      AC_CHECK_LIB(dl, dlopen, res=yes, res=no)
+      AC_CHECK_LIB(dl, dlsym, res=yes, res=no)
       if test "x$res" = "xyes"; then
-        AC_CHECK_LIB(dl, dladdr, AC_DEFINE(HAVE_DLADDR))
         dlopen_libs=-ldl
+        AC_DEFINE(HAVE_DLSYM)
       else
-        AC_MSG_ERROR(Cannot find dlopen)
+        want_evas_engine_gl_xlib="no"
+        want_evas_engine_gl_xcb="no"
+        want_evas_engine_gl_sdl="no"
       fi
     fi
 esac
 AC_SUBST(dlopen_libs)
 
-SHM_OPEN_LINK=""
-AC_MSG_CHECKING([whether shm_open() is present])
-LIBS_save=${LIBS}
-LIBS="${LIBS} -lrt"
-AC_LINK_IFELSE(
-   [AC_LANG_PROGRAM(
-      [[
-#include <sys/stat.h>
-#include <sys/mman.h>
-#include <fcntl.h>
-      ]],
-      [[
-int fd;
-fd = shm_open("/", O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
-shm_unlink("/");
-      ]])],
-   [
-    have_shm_open="yes"
-    AC_DEFINE(HAVE_SHM_OPEN, 1, [Have shm_open() call])
-    SHM_OPEN_LINK="-lrt"
-   ],
-   [have_shm_open="no"])
-LIBS=${LIBS_save}
-AC_MSG_RESULT([${have_shm_open}])
-AC_SUBST(SHM_OPEN_LINK)
+res=no
+AC_CHECK_LIB(m, lround, res=yes, res=no)
+if test "x$res" = "xyes"; then
+  AC_DEFINE(HAVE_LROUND, 1, C99 lround function exists)
+fi
+
+if test "x${want_evas_image_loader_generic}" = "xyes" ; then
+   EFL_CHECK_SHM_OPEN
+fi
 
 # (shm_open (for cache server)
 AC_ARG_ENABLE([evas-cserve],
@@ -546,34 +604,60 @@ AC_ARG_ENABLE([evas-cserve],
 AC_MSG_CHECKING(whether to build shared cache server and support)
 AC_MSG_RESULT(${want_evas_cserve})
 
-if test "x${want_evas_cserve}" = "xyes" ; then
-   AC_MSG_CHECKING([whether shm_open() is present])
-   LIBS_save=${LIBS}
-   LIBS="${LIBS} -lrt"
-   AC_LINK_IFELSE(
-      [AC_LANG_PROGRAM(
-         [[
-#include <sys/types.h>
-#include <sys/mman.h>
-#include <fcntl.h>
-         ]],
-         [[
-int fd;
-fd = shm_open("/", O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
-shm_unlink("/");
-         ]])],
-      [want_evas_cserve="yes"],
-      [want_evas_cserve="no"])
-   LIBS=${LIBS_save}
-   AC_MSG_RESULT([${want_evas_cserve}])
+# (shm_open (for cache server)
+AC_ARG_ENABLE([evas-cserve2],
+   AC_HELP_STRING([--disable-evas-cserve2],
+      [disable shared cache server 2 support. @<:@default=enabled@:>@]),
+   [
+    if test "x${enableval}" = "xyes" ; then
+       want_evas_cserve2="yes"
+    else
+       want_evas_cserve2="no"
+    fi
+   ])
+AC_MSG_CHECKING(whether to build shared cache server 2 and support)
+AC_MSG_RESULT(${want_evas_cserve2})
+
+# cserve2 only works on Linux so far.
+if test "x${want_evas_cserve2}" = "xyes" ; then
+   AC_CHECK_HEADERS(
+      [sys/epoll.h sys/inotify.h sys/signalfd.h],
+      [],
+      [
+       want_evas_cserve2="no"
+      ]
+   )
 fi
 
+if test "x${want_evas_cserve2}" = "xyes"; then
+   want_evas_cserve="no"
+fi
+
+shm_open_libs=""
+if test "x${want_evas_cserve}" = "xyes" -o "x${want_evas_cserve2}" = "xyes" ; then
+   EFL_CHECK_SHM_OPEN(
+      [
+       shm_open_libs=${EFL_SHM_OPEN_LIBS}
+      ],
+      [
+       want_evas_cserve="no"
+       want_evas_cserve2="no"
+      ])
+fi
+AC_SUBST([shm_open_libs])
+
 if test "x${want_evas_cserve}" = "xyes" ; then
-  AC_DEFINE(EVAS_CSERVE, 1, [Shared caceh server.])
+  AC_DEFINE(EVAS_CSERVE, 1, [Shared cache server.])
 fi
 
 AM_CONDITIONAL([EVAS_CSERVE], [test "x${want_evas_cserve}" = "xyes"])
 
+if test "x${want_evas_cserve2}" = "xyes" ; then
+  AC_DEFINE(EVAS_CSERVE2, 1, [Shared cache server.])
+fi
+
+AM_CONDITIONAL([EVAS_CSERVE2], [test "x${want_evas_cserve2}" = "xyes"])
+
 
 
 #######################################
@@ -581,7 +665,7 @@ AM_CONDITIONAL([EVAS_CSERVE], [test "x${want_evas_cserve}" = "xyes"])
 gl_flavor_gles="no"
 AC_MSG_CHECKING(whether to build GLES flavor of GL)
 AC_ARG_ENABLE(gl-flavor-gles,
-  AC_HELP_STRING([--enable-gl-flavor-gles], [enable gles falvor of gl instead of standard]),
+  AC_HELP_STRING([--enable-gl-flavor-gles], [enable gles flavor of gl instead of standard]),
   [
       if test "x$enableval" = "xyes" ; then
         AC_MSG_RESULT(yes)
@@ -666,10 +750,12 @@ EVAS_CHECK_ENGINE([software-ddraw], [${want_evas_engine_software_ddraw}], [no],
 
 EVAS_CHECK_ENGINE([direct3d], [${want_evas_engine_direct3d}], [no], [Direct3D])
 
-EVAS_CHECK_ENGINE([software-sdl], [${want_evas_engine_software_sdl}], [no], [Software SDL])
+EVAS_CHECK_ENGINE([psl1ght], [${want_evas_engine_psl1ght}], [no], [PSL1GHT])
 
 EVAS_CHECK_ENGINE([gl-sdl], [${want_evas_engine_gl_sdl}], [no], [OpenGL SDL])
 
+EVAS_CHECK_ENGINE([gl-cocoa], [${want_evas_engine_gl_cocoa}], [no], [OpenGL Cocoa])
+
 EVAS_CHECK_ENGINE([fb], [${want_evas_engine_fb}], [no], [Framebuffer])
 
 EVAS_CHECK_ENGINE([directfb], [${want_evas_engine_directfb}], [no], [DirectFB])
@@ -678,12 +764,14 @@ EVAS_CHECK_ENGINE([software-8-x11], [${want_evas_engine_software_8_x11}], [no],
 
 EVAS_CHECK_ENGINE([software-16-x11], [${want_evas_engine_software_16_x11}], [no], [Software X11 16 bits])
 
-EVAS_CHECK_ENGINE([software-16-ddraw], [${want_evas_engine_software_16_ddraw}], [no], [Software DirectDraw 16 bits])
-
 EVAS_CHECK_ENGINE([software-16-wince], [${want_evas_engine_software_16_wince}], [no], [Software Windows CE 16 bits])
 
 EVAS_CHECK_ENGINE([software-16-sdl], [${want_evas_engine_software_16_sdl}], [no], [Software SDL 16 bits])
 
+EVAS_CHECK_ENGINE([wayland-shm], [${want_evas_engine_wayland_shm}], [no], [Wayland Shm])
+
+EVAS_CHECK_ENGINE([wayland-egl], [${want_evas_engine_wayland_egl}], [no], [Wayland Egl])
+
 # SDL primitive
 sdl_primitive="no"
 
@@ -835,12 +923,16 @@ have_evas_engine_gl_common="no"
 have_static_evas_engine_gl_common="no"
 if test "x$have_evas_engine_gl_xlib" = "xyes" \
    || test "x$have_evas_engine_gl_xcb" = "xyes" \
-   || test "x$have_evas_engine_gl_sdl" = "xyes"; then
+   || test "x$have_evas_engine_gl_sdl" = "xyes" \
+   || test "x$have_evas_engine_gl_cocoa" = "xyes" \
+   || test "x$have_evas_engine_wayland_egl" = "xyes"; then
    have_evas_engine_gl_common="yes"
 fi
 if test "x$have_evas_engine_gl_xlib" = "xstatic" \
    || test "x$have_evas_engine_gl_xcb" = "xstatic" \
-   || test "x$have_evas_engine_gl_sdl" = "xstatic"; then
+   || test "x$have_evas_engine_gl_sdl" = "xstatic" \
+   || test "x$have_evas_engine_gl_cocoa" = "xstatic" \
+   || test "x$have_evas_engine_wayland_egl" = "xstatic"; then
    have_evas_engine_gl_common="yes"
    have_static_evas_engine_gl_common="yes"
 fi
@@ -881,9 +973,6 @@ fi
 if test "x$have_evas_engine_software_16_sdl" = "xyes" -o "x$have_evas_engine_software_16_sdl" = "xstatic"; then
    have_evas_engine_software_16="yes"
 fi
-if test "x$have_evas_engine_software_16_ddraw" = "xyes" -o "x$have_evas_engine_software_16_ddraw" = "xstatic"; then
-   have_evas_engine_software_16="yes"
-fi
 if test "x$have_evas_engine_software_16_wince" = "xyes" -o "x$have_evas_engine_software_16_wince" = "xstatic"; then
    have_evas_engine_software_16="yes"
 fi
@@ -942,7 +1031,7 @@ dnl Windows has no sigsetjmp function, nor equivalent.
 dnl So we disable the jpeg saver.
 dnl TODO: must find a workaround
 case "$host_os" in
-   mingw* | cegcc*)
+   mingw*)
       ;;
    *)
       if test "x${have_evas_image_loader_jpeg}" = "xyes" ; then
@@ -996,20 +1085,30 @@ AC_CHECK_HEADER(pthread.h,
 )
 
 # sched_getaffinity pthread_attr_setaffinity_np
-AC_CHECK_HEADERS(pthread.h sched.h,
-  [
-    AC_CHECK_LIB(pthread, pthread_attr_setaffinity_np,
-      [
-        AC_CHECK_LIB(pthread, pthread_barrier_wait,
-          [ build_pthreads="yes" ],
-          [ build_pthreads="no" ]
-        )
-      ],
-      [ build_pthreads="no" ]
-    )
+AC_CHECK_HEADERS([pthread.h sched.h],
+   [
+    CFLAGS_save="${CFLAGS}"
+    CFLAGS="${CFLAGS} -pthread"
+    LIBS_save="${LIBS}"
+    LIBS="${LIBS} -pthread"
+    AC_LINK_IFELSE(
+      [AC_LANG_PROGRAM([[
+#include <pthread.h>
+#include <sched.h>
+                       ]],
+                       [[
+pthread_attr_setaffinity_np(NULL, 0, NULL);
+pthread_barrier_wait(NULL);
+                       ]])],
+      [build_pthreads="yes"],
+      [build_pthreads="no"])
+   CFLAGS=${CFLAGS_save}
+   LIBS=${LIBS_save}
   ],
-  [ build_pthreads="no" ]
-)
+  [build_pthreads="no"])
+
+AC_MSG_CHECKING([whether pthread_attr_setaffinity_np() and pthread_barrier_wait() are supported])
+AC_MSG_RESULT([${build_pthreads}])
 
 #######################################
 ## Pthread
@@ -1048,56 +1147,27 @@ AC_ARG_ENABLE(pthreads,
 ## Pipe Renderer
 build_pipe_render="no"
 
-AC_MSG_CHECKING(whether to build Threaded Pipe Rendering support)
-AC_ARG_ENABLE(pipe-render,
-  AC_HELP_STRING([--enable-pipe-render], [enable threaded pipe rendering support]),
-  [ build_pipe_render=$enableval ]
-)
-AC_MSG_RESULT($build_pipe_render)
-
-AC_MSG_CHECKING(whether we can build Threaded Pipe Rendering support)
-if test \( "x$build_pipe_render" = "xyes" -o "x$build_pipe_render" = "xauto" \); then
-  AC_MSG_RESULT(yes)
-  AC_DEFINE(BUILD_PIPE_RENDER, 1, [Build pipe render support])
-  build_pipe_render="yes"
-  need_pthreads="yes"
-else
-  AC_MSG_RESULT(no)
-  build_pipe_render="no"
-fi
-
-#######################################
-## Async Renderer
-build_async_render="no"
-
-AC_MSG_CHECKING(whether to build Asynchronously Threaded Pipe Rendering support)
-AC_ARG_ENABLE(async-render,
- AC_HELP_STRING([--enable-async-render], [enable asynchronously threaded pipe rendering support]),
- [ build_async_render=$enableval ]
-)
-AC_MSG_RESULT($build_async_render)
-
-AC_MSG_CHECKING(whether we can build Asynchronously Threaded Pipe Rendering support)
-if test \( "x$build_async_render" = "xyes" \); then
-  AC_MSG_RESULT(yes)
-  AC_DEFINE(EVAS_FRAME_QUEUING, 1, [Build async render support])
-  build_async_render="yes"
-  AC_DEFINE(BUILD_PIPE_RENDER, 1, [Build pipe render support])
-  build_pipe_render="yes"
-  need_pthreads="yes"
-
-  PKG_CHECK_MODULES([XEXT],
-    [xext < 1.1.1],
-    [ build_avoid_libXext_bug=yes ],
-    [ build_avoid_libXext_bug=no ]
-  )
-  if test \( "x$build_avoid_libXext_bug" = "xyes" \); then
-    AC_DEFINE(LIBXEXT_VERSION_LOW, 1, [To avoid bug on old libXext version])
-  fi
-else
-  AC_MSG_RESULT(no)
-  build_async_render="no"
-fi
+# Let disable pipe render strongly as it doesn't massively improve performance, but
+# just hammer more watt for a few more percent. The code is kept as the understanding
+# is that with an async pipeline things will be better.
+#
+#AC_MSG_CHECKING(whether to build Threaded Pipe Rendering support)
+#AC_ARG_ENABLE(pipe-render,
+#  AC_HELP_STRING([--enable-pipe-render], [enable threaded pipe rendering support]),
+#  [ build_pipe_render=$enableval ]
+#)
+#AC_MSG_RESULT($build_pipe_render)
+
+#AC_MSG_CHECKING(whether we can build Threaded Pipe Rendering support)
+#if test \( "x$build_pipe_render" = "xyes" -o "x$build_pipe_render" = "xauto" \); then
+#  AC_MSG_RESULT(yes)
+#  AC_DEFINE(BUILD_PIPE_RENDER, 1, [Build pipe render support])
+#  build_pipe_render="yes"
+#  need_pthreads="yes"
+#else
+#  AC_MSG_RESULT(no)
+#  build_pipe_render="no"
+#fi
 
 #######################################
 ## Async events
@@ -1145,8 +1215,8 @@ fi
 AC_MSG_CHECKING(whether we should link with pthread)
 if test "x$need_pthreads" = "xyes"; then
   AC_MSG_RESULT(yes)
-  pthread_cflags=""
-  pthread_libs="-lpthread"
+  pthread_cflags="-pthread"
+  pthread_libs="-pthread"
 else
   AC_MSG_RESULT(no)
 fi
@@ -1222,6 +1292,80 @@ AC_ARG_ENABLE(cpu-sse,
 )
 
 #######################################
+## SSE3
+build_cpu_sse3="no"
+case $host_cpu in
+  i*86)
+    build_cpu_sse3="yes"
+    ;;
+  x86_64)
+    build_cpu_sse3="yes"
+    ;;
+  amd64)
+    build_cpu_sse3="yes"
+    ;;
+esac
+AC_MSG_CHECKING(whether to build sse3 code)
+AC_ARG_ENABLE(cpu-sse3,
+  AS_HELP_STRING([--enable-cpu-sse3], [enable sse3 code]),
+  [
+      if test "x$enableval" = "xyes" ; then
+        AC_CHECK_HEADER(immintrin.h,
+          [
+            AC_MSG_RESULT(yes)
+            AC_DEFINE(BUILD_SSE3, 1, [Build SSE3 Code])
+            build_cpu_sse3="yes"
+           ],
+          [
+            AC_MSG_RESULT(no)
+            build_cpu_sse3="no"
+          ])
+      else
+        AC_MSG_RESULT(no)
+        build_cpu_sse3="no"
+      fi
+  ],
+  [
+    AC_MSG_RESULT($build_cpu_sse3)
+    if test "x$build_cpu_sse3" = "xyes" ; then
+      AC_CHECK_HEADER(immintrin.h,
+        [
+          AC_MSG_RESULT(yes)
+          AC_DEFINE(BUILD_SSE3, 1, [Build SSE3 Code])
+          build_cpu_sse3="yes"
+         ],
+        [
+          AC_MSG_RESULT(no)
+          build_cpu_sse3="no"
+        ])
+    fi
+  ]
+)
+
+
+# as a big warning flag to anyone doing stuff like this...
+# NEVER EVER EVER EVER put **OPTIMIZATION** flags in
+# build flags in makefiles (from configure or anywhere else)
+# EVER as this screws your ability to build 1 binary and
+# cover ALL x86 arch's. This is the HEIGHT of WRONG. If the
+# person building choses to add optimization flags themselves
+# and decide the minimum baseline cpu arch is X then that's
+# their business, but NEVER should it be done here. NEVER.
+# I now have to do this due to the way this sse3 code was done - using
+# intrinsics and "functions" (opcodes) and types that only compile *IF*
+# you compile with -msse3. this ALSO tries to optimize REGULAR c code
+# with sse3 asm.. and this breaks things so badly. so... sse3 will be
+# off until further notice for 32bit x86.
+EVAS_SSE3_CFLAGS=" "
+if test "x$build_cpu_sse3" = "xyes" ; then
+    EVAS_SSE3_CFLAGS="-msse3 "
+#   CFLAGS="${CFLAGS} ${EVAS_SSE3_CFLAGS}"
+fi
+
+AC_SUBST(CFLAGS)
+AC_SUBST(EVAS_SSE3_CFLAGS)
+
+#######################################
 ## ALTIVEC
 build_cpu_altivec="no"
 case $host_cpu in
@@ -1676,8 +1820,8 @@ AM_CONDITIONAL([BUILD_EXAMPLES], [test "x${build_examples}" = "xyes"])
 EFL_CHECK_TESTS([enable_tests="yes"], [enable_tests="no"])
 
 EFL_CHECK_COVERAGE([${enable_tests}], [enable_coverage="yes"], [enable_coverage="no"])
-EVAS_CFLAGS="${EVAS_CFLAGS} ${EFL_COVERAGE_CFLAGS}"
-EVAS_LIBS="${EVAS_LIBS} ${EFL_COVERAGE_LIBS}"
+EVAS_CFLAGS="${EVAS_CFLAGS} ${EFL_COVERAGE_CFLAGS} ${EXOTIC_CFLAGS}"
+EVAS_LIBS="${EVAS_LIBS} ${EFL_COVERAGE_LIBS} ${EXOTIC_LIBS}"
 if test "x$enable_coverage" = "xyes" ; then
    EVAS_CFLAGS="${EVAS_CFLAGS} ${EFL_DEBUG_CFLAGS}"
 fi
@@ -1703,27 +1847,44 @@ evas-directfb.pc
 evas-fb.pc
 evas-opengl-x11.pc
 evas-opengl-sdl.pc
+evas-opengl-cocoa.pc
 evas-software-buffer.pc
 evas-software-x11.pc
 evas-software-8-x11.pc
 evas-software-16-x11.pc
 evas-software-gdi.pc
 evas-software-ddraw.pc
-evas-software-16-ddraw.pc
 evas-direct3d.pc
 evas-software-16-wince.pc
 evas-software-sdl.pc
+evas-psl1ght.pc
+evas-wayland-shm.pc
+evas-wayland-egl.pc
 evas.pc
 doc/evas.dox
 doc/Makefile
 doc/Doxyfile
 src/Makefile
 src/bin/Makefile
+src/bin/loaders/Makefile
+src/bin/loaders/jpeg/Makefile
+src/bin/loaders/png/Makefile
+src/bin/loaders/eet/Makefile
+src/bin/loaders/tiff/Makefile
+src/bin/loaders/xpm/Makefile
+src/bin/loaders/bmp/Makefile
+src/bin/loaders/ico/Makefile
+src/bin/loaders/tga/Makefile
+src/bin/loaders/pmaps/Makefile
+src/bin/loaders/wbmp/Makefile
+src/bin/loaders/psd/Makefile
 src/lib/Makefile
 src/lib/canvas/Makefile
 src/lib/file/Makefile
 src/lib/cache/Makefile
+src/lib/cache2/Makefile
 src/lib/cserve/Makefile
+src/lib/cserve2/Makefile
 src/lib/engines/Makefile
 src/lib/engines/common/Makefile
 src/lib/engines/common/evas_op_add/Makefile
@@ -1748,13 +1909,15 @@ src/modules/engines/directfb/Makefile
 src/modules/engines/gl_common/Makefile
 src/modules/engines/gl_x11/Makefile
 src/modules/engines/gl_sdl/Makefile
-src/modules/engines/software_sdl/Makefile
+src/modules/engines/gl_cocoa/Makefile
+src/modules/engines/psl1ght/Makefile
 src/modules/engines/software_8/Makefile
 src/modules/engines/software_8_x11/Makefile
 src/modules/engines/software_16/Makefile
 src/modules/engines/software_16_x11/Makefile
-src/modules/engines/software_16_ddraw/Makefile
 src/modules/engines/software_16_sdl/Makefile
+src/modules/engines/wayland_shm/Makefile
+src/modules/engines/wayland_egl/Makefile
 src/modules/loaders/Makefile
 src/modules/loaders/edb/Makefile
 src/modules/loaders/eet/Makefile
@@ -1782,7 +1945,6 @@ src/static_deps/liblinebreak/Makefile
 src/lib/include/Makefile
 src/examples/Makefile
 src/tests/Makefile
-README
 evas.spec
 ])
 
@@ -1790,11 +1952,6 @@ evas.spec
 ## Sanity Checks
 
 if test "x$build_pthreads" = "xno" ; then
-  if test "x$build_async_render" = "xyes" ; then
-    echo "ERROR: PThreads off, but async rendering on. Async rendering"
-    echo "  needs thread support."
-    exit 1
-  fi
   if test "x$build_pipe_render" = "xyes" ; then
     echo "ERROR: PThreads off, but pipe rendering on. Pipe rendering"
     echo "  needs thread support."
@@ -1834,22 +1991,24 @@ fi
 echo "  Software GDI...............: $have_evas_engine_software_gdi"
 echo "  Software DirectDraw........: $have_evas_engine_software_ddraw"
 echo "  Direct3d...................: $have_evas_engine_direct3d"
-echo "  Software SDL...............: $have_evas_engine_software_sdl (primitive: $sdl_primitive)"
-echo $ECHO_N "  OpenGL SDL.................: $have_evas_engine_gl_sdl $ECHO_C"
+echo "  OpenGL SDL.................: $have_evas_engine_gl_sdl $ECHO_C"
 if test "x$have_evas_engine_gl_sdl" = "xyes"; then
   echo "(GLES: $gl_flavor_gles) (SGX: $gles_variety_sgx) (s3c6410: $gles_variety_s3c6410)"
 else
   echo
 fi
+echo "  OpenGL Cocoa...............: $have_evas_engine_gl_cocoa"
 echo "  Software Framebuffer.......: $have_evas_engine_fb"
 echo "  DirectFB...................: $have_evas_engine_directfb"
+echo "  PSL1GHT....................: $have_evas_engine_psl1ght"
 echo "  Software 8bit grayscale....: $have_evas_engine_software_8"
 # FIXME: kill software 16bit
 echo "  Software 16bit ............: $have_evas_engine_software_16"
 echo "  Software 16bit X11.........: $have_evas_engine_software_16_x11"
-echo "  Software 16bit Directdraw..: $have_evas_engine_software_16_ddraw"
 echo "  Software 16bit WinCE.......: $have_evas_engine_software_16_wince"
 echo "  Software 16bit SDL.........: $have_evas_engine_software_16_sdl (primitive: $sdl_primitive)"
+echo "  Wayland Shm................: $have_evas_engine_wayland_shm"
+echo "  Wayland Egl................: $have_evas_engine_wayland_egl"
 echo
 echo "Image Loaders:"
 echo "  BMP.....................: $have_evas_image_loader_bmp"
@@ -1885,6 +2044,7 @@ echo "CPU Specific Extensions:"
 echo "  Fallback C Code.........: $build_cpu_c"
 echo "  MMX.....................: $build_cpu_mmx"
 echo "  SSE.....................: $build_cpu_sse"
+echo "  SSE3....................: $build_cpu_sse3"
 echo "  ALTIVEC.................: $build_cpu_altivec"
 echo "  NEON....................: $build_cpu_neon"
 echo "  Thread Support..........: $build_pthreads"
@@ -1892,6 +2052,7 @@ echo
 echo "Features:"
 echo "  MAGIC_DEBUG.............: $want_evas_magic_debug"
 echo "  Cache Server............: $want_evas_cserve"
+echo "  Cache Server 2..........: $want_evas_cserve2"
 echo
 dnl
 dnl ... DISABLED! some testing has shown that this seems to have some
@@ -1899,13 +2060,22 @@ dnl nasty bugs on both x86 and arm (tegra2 dual core tested), so just
 dnl disabling this for now until it can be fixed
 dnl 
 echo "  Threaded Pipe Rendering.: $build_pipe_render"
-echo "  Async Pipe Rendering....: $build_async_render"
 echo "  Async Events............: $build_async_events"
 echo "  Async Image Preload.....: $build_async_preload"
 echo
 echo "  Word Cache..............: $want_word_cache"
 echo "  Metric Cache............: $want_metric_cache"
 echo
+echo "  Pixman..................: $have_pixman"
+echo "  Pixman Fonts............: $have_pixman_font"
+echo "  Pixman Rects............: $have_pixman_rect"
+echo "  Pixman Lines............: $have_pixman_line"
+echo "  Pixman Polygons.........: $have_pixman_poly"
+echo "  Pixman Images...........: $have_pixman_image"
+echo "  Pixman Image ScaleSample: $have_pixman_image_scale_sample"
+echo 
+echo "  Tiled 32BPP rotate......: $have_tile_rotate"
+echo
 echo "ARGB Software Engine Options:"
 echo "  Sampling Scaler.........: $scaler_sample"
 echo "  Smooth Scaler...........: $scaler_smooth"