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
This commit is contained in:
Gwanglim Lee 2014-08-28 13:36:59 -04:00 committed by Chris Michael
parent 80c0a33267
commit 00382bb6a6
4 changed files with 22 additions and 9 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)
{