devilhorns pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=00382bb6a6e73c021ecfda3c90598777d7f7b084

commit 00382bb6a6e73c021ecfda3c90598777d7f7b084
Author: Gwanglim Lee <[email protected]>
Date:   Thu Aug 28 13:36:59 2014 -0400

    gl-drm: Fix missing link to gbm for ecore_evas_drm and clean up build script
    
    @fix
    
    Summary:
    This fixes following build script problems for ecore_evas_drm engine module.
    
    1. Missing link to gbm for ecore_evas_drm if '--enable-gl-drm' option is 
given.
    ecore_evas_drm engine is using gbm function if it builds with that config 
option.
    To be more exact, ecore_evas_gl_drm_new_internal function needs gbm.
    Thus we need to add gbm library linking '-lgbm' to ecore_evas_drm engine 
module
    if '--enable-gl-drm' option is given. I've added this build script to
    m4/ecore_check_module.m4 file.
    
    2. Wrong gbm dependency check code in configure.ac
    EFL_OPTIONAL_INTERNAL_DEPEND_PKG m4 macro function is designed for checking
    dependency of efl internal libraries. Thus we should remove gbm pkg name 
when
    configuring ecore_evas_drm engine module. It would be better to move 
dependency
    check for gbm to m4/ecore_check_module.m4 file. And one more thing want_drm
    value has to be changed to want_gl_drm in ECORE_EVAS_MODULE([gl-drm]...).
    
    3. BUILD_ECORE_EVAS_OPENGL_DRM macro is always defined in configure.ac.
    This kind of macro, BUILD_EFL_MODULE_NAME, has to be defined only if given 
module
    is enabled. But this macro value was just defined with no test.
    And it is even useless, we can use BUILD_ECORE_EVAS_GL_DRM macro which is 
defined
    by ECORE_EVAS_MODULE([gl-drm], [${want_gl_drm}],...) function.
    So I've removed that from configure.ac.
    
    Test Plan:
    1. Configure with --enable-gl-drm:
      $ ./autogen.sh --enable-drm --enable-gl-drm
    2. Build:
      $ make && make install
    3. Check module.so of ecore_evas_drm engine whether it has a library 
dependency with gbm:
      $ readelf -a $EFL_GIT/src/modules/ecore_evas/engines/drm/.libs/module.so 
| grep NEEDED
    
    Reviewers: raster, stefan_schmidt, devilhorns
    
    Reviewed By: devilhorns
    
    Subscribers: cedric
    
    Differential Revision: https://phab.enlightenment.org/D1379
---
 configure.ac                                        |  6 ++----
 m4/ecore_check_module.m4                            | 13 +++++++++++++
 src/Makefile_Ecore_Evas.am                          |  6 ++++--
 src/modules/ecore_evas/engines/drm/ecore_evas_drm.c |  6 +++---
 4 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/configure.ac b/configure.ac
index efbefc2..55e403c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3693,9 +3693,9 @@ ECORE_EVAS_MODULE([extn], [${want_ecore_evas_extn}])
 ECORE_EVAS_MODULE([ews], [yes])
 ECORE_EVAS_MODULE([fb], [${want_fb}])
 ECORE_EVAS_MODULE([drm], [${want_drm}], 
-  [EFL_OPTIONAL_INTERNAL_DEPEND_PKG([ECORE_EVAS], [${want_drm}], 
[ecore-drm],[gbm])])
+  [EFL_OPTIONAL_INTERNAL_DEPEND_PKG([ECORE_EVAS], [${want_drm}], [ecore-drm])])
 ECORE_EVAS_MODULE([gl-drm], [${want_gl_drm}],
-  [EFL_OPTIONAL_INTERNAL_DEPEND_PKG([ECORE_EVAS], [${want_drm}], 
[ecore-drm],[gbm])])
+  [EFL_OPTIONAL_INTERNAL_DEPEND_PKG([ECORE_EVAS], [${want_gl_drm}], 
[ecore-drm])])
 ECORE_EVAS_MODULE([psl1ght], [${have_ps3}])
 
 ECORE_EVAS_MODULE([opengl-cocoa], [${want_ecore_evas_gl_cocoa}])
@@ -3802,8 +3802,6 @@ if test "x$have_ecore_evas_software_x11" = "xyes" || \
 fi
 AM_CONDITIONAL([BUILD_ECORE_EVAS_X11], [test "${build_ecore_evas_x11}" = 
"yes"])
 
-AC_DEFINE([BUILD_ECORE_EVAS_OPENGL_DRM], [1], [Build support for DRM based 
OpenGL])
-
 EFL_EVAL_PKGS([ECORE_EVAS])
 
 ### Checks for header files
diff --git a/m4/ecore_check_module.m4 b/m4/ecore_check_module.m4
index 5981fd7..c34a342 100644
--- a/m4/ecore_check_module.m4
+++ b/m4/ecore_check_module.m4
@@ -7,12 +7,25 @@ m4_pushdef([DOWN], m4_translit([[$1]], [-A-Z], [_a-z]))dnl
 have_ecore_evas_[]m4_defn([DOWN])="no"
 want_module="$2"
 
+ecore_evas_engines_[]m4_defn([DOWN])[]_cflags=""
+ecore_evas_engines_[]m4_defn([DOWN])[]_libs=""
+
 if test "x$want_module" = "xyes" || test "x$want_module" = "xstatic"; then
    $3
 
    AC_DEFINE([BUILD_ECORE_EVAS_]m4_defn([UP]), [1], [Support for $1 Engine in 
Ecore_Evas])
    have_ecore_evas_[]m4_defn([DOWN])="yes"
+
+   if test "x$1" = "xgl-drm"; then
+      PKG_CHECK_MODULES([GBM], [gbm])
+      ecore_evas_engines_[]m4_defn([DOWN])[]_cflags="${GBM_CFLAGS}"
+      ecore_evas_engines_[]m4_defn([DOWN])[]_libs="${GBM_LIBS}"
+   fi
 fi
+
+AC_SUBST([ecore_evas_engines_]m4_defn([DOWN])[_cflags])
+AC_SUBST([ecore_evas_engines_]m4_defn([DOWN])[_libs])
+
 EFL_ADD_FEATURE([ECORE_EVAS], [$1], [${want_module}])dnl
 AM_CONDITIONAL([BUILD_ECORE_EVAS_]UP, [test 
"x$have_ecore_evas_]m4_defn([DOWN])[" = "xyes"])dnl
 m4_popdef([UP])dnl
diff --git a/src/Makefile_Ecore_Evas.am b/src/Makefile_Ecore_Evas.am
index b1c8cd0..a6cf704 100644
--- a/src/Makefile_Ecore_Evas.am
+++ b/src/Makefile_Ecore_Evas.am
@@ -215,8 +215,10 @@ modules_ecore_evas_engines_drm_module_la_CPPFLAGS = 
-I$(top_builddir)/src/lib/ef
 @ECORE_EVAS_CFLAGS@ \
 @ECORE_DRM_CFLAGS@ \
 -I$(top_srcdir)/src/modules/evas/engines/drm \
--I$(top_srcdir)/src/modules/evas/engines/gl_drm
-modules_ecore_evas_engines_drm_module_la_LIBADD = @USE_ECORE_EVAS_LIBS@
+-I$(top_srcdir)/src/modules/evas/engines/gl_drm \
+@ecore_evas_engines_gl_drm_cflags@
+modules_ecore_evas_engines_drm_module_la_LIBADD = @USE_ECORE_EVAS_LIBS@ \
+@ecore_evas_engines_gl_drm_libs@
 modules_ecore_evas_engines_drm_module_la_DEPENDENCIES = 
@USE_ECORE_EVAS_INTERNAL_LIBS@
 modules_ecore_evas_engines_drm_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@
 modules_ecore_evas_engines_drm_module_la_LIBTOOLFLAGS = --tag=disable-static
diff --git a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c 
b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
index cb7fb61..13e4069 100644
--- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
+++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
@@ -15,7 +15,7 @@
 #include <Ecore_Drm.h>
 #include <Evas_Engine_Drm.h>
 
-#ifdef BUILD_ECORE_EVAS_OPENGL_DRM
+#ifdef BUILD_ECORE_EVAS_GL_DRM
 # include <Evas_Engine_GL_Drm.h>
 # include <gbm.h>
 # include <dlfcn.h>
@@ -276,7 +276,7 @@ ee_err:
    return NULL;
 }
 
-#ifdef BUILD_ECORE_EVAS_OPENGL_DRM
+#ifdef BUILD_ECORE_EVAS_GL_DRM
 EAPI Ecore_Evas *
 ecore_evas_gl_drm_new_internal(const char *device, unsigned int parent 
EINA_UNUSED, int x, int y, int w, int h)
 {
@@ -531,7 +531,7 @@ _ecore_evas_drm_shutdown(void)
    return _ecore_evas_init_count;
 }
 
-#ifdef BUILD_ECORE_EVAS_OPENGL_DRM
+#ifdef BUILD_ECORE_EVAS_GL_DRM
 static Ecore_Evas_Interface_Drm *
 _ecore_evas_drm_interface_new(void)
 {

-- 


Reply via email to