Ecore: better check of ecore_evas_extn. This also fixes its compilation on Windows
authorcaro <caro@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 18 Feb 2012 12:56:53 +0000 (12:56 +0000)
committercaro <caro@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 18 Feb 2012 12:56:53 +0000 (12:56 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@68105 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

configure.ac
m4/ecore_check_module.m4
src/lib/ecore_evas/ecore_evas_extn.c

index 21393dd..0c39401 100644 (file)
@@ -174,6 +174,7 @@ want_ecore_evas_directfb="no"
 want_ecore_evas_fb="no"
 want_ecore_evas_software_16_wince="no"
 want_ecore_evas_ews="yes"
+want_ecore_evas_extn="yes"
 want_ecore_evas_wayland_shm="no"
 want_ecore_evas_wayland_egl="no"
 
@@ -182,11 +183,12 @@ want_ecore_imf_xim="no"
 want_ecore_imf_scim="no"
 
 case "$host_os" in
-   mingw32ce* | cegcc*)
+   mingw32ce*)
       want_ecore_con="no"
       want_ecore_ipc="no"
       want_ecore_wince="yes"
       want_ecore_evas_software_16_wince="yes"
+      want_ecore_evas_extn="no"
       ;;
    mingw*)
       want_notify_win32="yes"
@@ -1390,6 +1392,20 @@ if ! test "x${have_atfile_source}" = "xno" ; then
       ])
 fi
 
+AC_COMPILE_IFELSE(
+   [AC_LANG_PROGRAM(
+       [[
+#include <mman.h>
+       ]],
+       [[
+int i = shm_open(NULL, 0, 0);
+       ]])],
+   [have_shm_open="yes"],
+   [have_shm_open="no"])
+
+AC_MSG_CHECKING([shm_open])
+AC_MSG_RESULT([${have_shm_open}])
+
 ### Checks for optionnal feature
 AC_CHECK_FUNC([mallinfo],
    [
@@ -1648,7 +1664,7 @@ ECORE_CHECK_MODULE([wince], [${want_ecore_wince}], [WinCE], [${have_ecore_input}
 # ecore_evas
 
 ecore_evas_deps="no"
-if test "x${have_evas}" = "xyes" -a "x${have_ecore_input}" = "xyes" -a "x${have_ecore_input_evas}" = "xyes" ; then
+if test "x${have_evas}" = "xyes" && test "x${have_ecore_input}" = "xyes" && test "x${have_ecore_input_evas}" = "xyes" ; then
    ecore_evas_deps="yes"
 fi
 
@@ -1837,6 +1853,21 @@ ECORE_EVAS_CHECK_MODULE_FULL([ews], [software-buffer],
    [Ecore Evas Single Process Windowing System],
    [yes], [])
 
+# ecore_evas_extn
+
+have_extn="yes"
+if test "x${have_ecore_ipc}" = "xno" || \
+   test "x${have_ecore_evas_software_buffer}" = "xno" || \
+   test "x${have_shm_open}" = "xno" ; then
+   have_extn="no"
+fi
+
+ECORE_EVAS_CHECK_MODULE([extn],
+   [${want_ecore_evas_extn}],
+   [Extension],
+   [${have_extn}],
+   [requirements_ecore_evas="ecore-evas-software-buffer >= 1.1.99 ecore-ipc >= 1.1.99 ${requirements_ecore_evas}"])
+
 # ecore_evas_psl1ght
 
 ECORE_EVAS_CHECK_MODULE([psl1ght],
index 658b42e..01c4e0e 100644 (file)
@@ -73,9 +73,9 @@ AC_ARG_ENABLE(ecore-evas-$1,
 AC_MSG_CHECKING([whether ecore_evas $4 support is to be built])
 AC_MSG_RESULT([${want_module}])
 
-if test "x$5" = "xyes" -a \
-        "x$have_ecore_evas" = "xyes" -a \
-        "x$want_module" = "xyes" ; then
+if test "x$5" = "xyes" && \
+   test "x$have_ecore_evas" = "xyes" && \
+   test "x$want_module" = "xyes" ; then
    PKG_CHECK_EXISTS([evas-$2],
       [
        AC_DEFINE([BUILD_ECORE_EVAS_]m4_defn([UP]), [1], [Support for $4 Engine in Ecore_Evas])
index e46ab4a..a9ec1e6 100644 (file)
@@ -2,35 +2,35 @@
 # include <config.h>
 #endif
 
+#include <stdio.h>
 #include <stdlib.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <math.h>
+#include <time.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <string.h>
+#include <sys/file.h>
 #include <unistd.h>
 
 #include <Ecore.h>
 #include "ecore_private.h"
 #include <Ecore_Input.h>
 
-#ifdef BUILD_ECORE_IPC
-# ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER
-#  define EXTN_ENABLED 1
-# endif
+#ifdef BUILD_ECORE_EVAS_EXTN
+
+#include <Ecore_Ipc.h>
+
 #endif
 
 #include "ecore_evas_private.h"
 #include "Ecore_Evas.h"
-#ifdef EXTN_ENABLED
-#include "Ecore_Ipc.h"
 
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <math.h>
-#include <time.h>
-#include <sys/mman.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <string.h>
-#include <sys/file.h>
+
+#ifdef BUILD_ECORE_EVAS_EXTN
+
 
 typedef struct _Shmfile Shmfile;
 
@@ -1286,12 +1286,13 @@ void
 _ecore_evas_extn_shutdown(void)
 {
 }
-#endif
+
+#endif /* BUILD_ECORE_EVAS_EXTN */
 
 EAPI Evas_Object *
 ecore_evas_extn_plug_new(Ecore_Evas *ee_target)
 {
-#ifdef EXTN_ENABLED
+#ifdef BUILD_ECORE_EVAS_EXTN
    Evas_Object *o;
    Ecore_Evas *ee;
    int w = 1, h = 1;
@@ -1408,7 +1409,7 @@ ecore_evas_extn_plug_new(Ecore_Evas *ee_target)
 EAPI Eina_Bool
 ecore_evas_extn_plug_connect(Evas_Object *obj, const char *svcname, int svcnum, Eina_Bool svcsys)
 {
-#ifdef EXTN_ENABLED
+#ifdef BUILD_ECORE_EVAS_EXTN
    Extn *extn;
    Ecore_Evas *ee = NULL;
 
@@ -1459,7 +1460,7 @@ ecore_evas_extn_plug_connect(Evas_Object *obj, const char *svcname, int svcnum,
 EAPI void
 ecore_evas_extn_plug_object_data_lock(Evas_Object *obj)
 {
-#ifdef EXTN_ENABLED
+#ifdef BUILD_ECORE_EVAS_EXTN
    Ecore_Evas *ee;
 
    ee = ecore_evas_object_ecore_evas_get(obj);
@@ -1471,7 +1472,7 @@ ecore_evas_extn_plug_object_data_lock(Evas_Object *obj)
 EAPI void
 ecore_evas_extn_plug_object_data_unlock(Evas_Object *obj)
 {
-#ifdef EXTN_ENABLED
+#ifdef BUILD_ECORE_EVAS_EXTN
    Ecore_Evas *ee;
 
    ee = ecore_evas_object_ecore_evas_get(obj);
@@ -1480,7 +1481,7 @@ ecore_evas_extn_plug_object_data_unlock(Evas_Object *obj)
 #endif
 }
 
-#ifdef EXTN_ENABLED
+#ifdef BUILD_ECORE_EVAS_EXTN
 static void
 _ecore_evas_socket_resize(Ecore_Evas *ee, int w, int h)
 {
@@ -1987,7 +1988,7 @@ static const Ecore_Evas_Engine_Func _ecore_extn_socket_engine_func =
 EAPI Ecore_Evas *
 ecore_evas_extn_socket_new(int w, int h)
 {
-#ifdef EXTN_ENABLED
+#ifdef BUILD_ECORE_EVAS_EXTN
    Evas_Engine_Info_Buffer *einfo;
    Ecore_Evas *ee;
    int rmethod;
@@ -2077,7 +2078,7 @@ ecore_evas_extn_socket_new(int w, int h)
 EAPI Eina_Bool
 ecore_evas_extn_socket_listen(Ecore_Evas *ee, const char *svcname, int svcnum, Eina_Bool svcsys)
 {
-#ifdef EXTN_ENABLED
+#ifdef BUILD_ECORE_EVAS_EXTN
    Extn *extn;
 
    extn = calloc(1, sizeof(Extn));