From 08d010b329d37dd9ea9ec7690f110e7f62a2a8f8 Mon Sep 17 00:00:00 2001 From: Gwenole Beauchesne Date: Thu, 27 Sep 2012 14:26:03 +0200 Subject: [PATCH] Sanitize build dependencies. Fix build dependencies for all backends (DRM, X11, GLX, EGL, Wayland), especially when they don't live in standard locations. Signed-off-by: Gwenole Beauchesne --- configure.ac | 76 ++++++++++++++++++++++++++++-------------------------- va/Makefile.am | 26 +++++++++---------- va/egl/Makefile.am | 3 +-- va/glx/Makefile.am | 2 +- va/x11/Makefile.am | 2 ++ 5 files changed, 57 insertions(+), 52 deletions(-) diff --git a/configure.ac b/configure.ac index 9c282b2..f25f3d9 100644 --- a/configure.ac +++ b/configure.ac @@ -128,17 +128,17 @@ AC_ARG_ENABLE(x11, AC_ARG_ENABLE(glx, [AC_HELP_STRING([--enable-glx], - [build with GLX support @<:@default=yes@:>@])], + [build with VA/GLX API support @<:@default=yes@:>@])], [], [enable_glx="yes"]) AC_ARG_ENABLE(egl, [AC_HELP_STRING([--enable-egl], - [build with EGL support @<:@default=yes@:>@])], + [build with VA/EGL API support @<:@default=yes@:>@])], [], [enable_egl="yes"]) AC_ARG_ENABLE([wayland], [AC_HELP_STRING([--enable-wayland], - [build with Wayland support @<:@default=yes@:>@])], + [build with VA/Wayland API support @<:@default=yes@:>@])], [], [enable_wayland="yes"]) AC_ARG_ENABLE(dummy-driver, @@ -198,22 +198,7 @@ if test "$ac_cv_have_gnuc_visibility_attribute" = "yes"; then [Defined to 1 if GCC visibility attribute is supported]) fi -# Check for X11 -USE_X11="no" -if test "$enable_x11" = "yes"; then - PKG_CHECK_MODULES([X11], [x11]) - PKG_CHECK_MODULES([XEXT], [xext]) - PKG_CHECK_MODULES([XFIXES], [xfixes]) - USE_X11="yes" - AC_DEFINE([HAVE_VA_X11], [1], [Defined to 1 if VA/X11 API is built]) -fi -AM_CONDITIONAL(USE_X11, test "$USE_X11" = "yes") - -# Check for DRM -LIBDRM_VERSION=libdrm_version -PKG_CHECK_MODULES([DRM], [libdrm >= $LIBDRM_VERSION]) -AC_SUBST(LIBDRM_VERSION) - +# Dummy backend if test x$enable_dummy_backend = xyes; then PKG_CHECK_MODULES([UDEV], [libudev], [libudev=yes], [libudev=no]) fi @@ -222,6 +207,11 @@ if test x$libudev = xno; then fi AM_CONDITIONAL(BUILD_DUMMY_BACKEND, test x$enable_dummy_backend = xyes) +# Check for DRM (mandatory) +LIBDRM_VERSION=libdrm_version +PKG_CHECK_MODULES([DRM], [libdrm >= $LIBDRM_VERSION]) +AC_SUBST(LIBDRM_VERSION) + USE_DRM="no" if test "$enable_drm" = "yes"; then USE_DRM="yes" @@ -229,38 +219,52 @@ if test "$enable_drm" = "yes"; then fi AM_CONDITIONAL(USE_DRM, test "$USE_DRM" = "yes") +# Check for X11 +USE_X11="no" +if test "$enable_x11" = "yes"; then + USE_X11="yes" + PKG_CHECK_MODULES([X11], [x11], [:], [USE_X11="no"]) + PKG_CHECK_MODULES([XEXT], [xext], [:], [USE_X11="no"]) + PKG_CHECK_MODULES([XFIXES], [xfixes], [:], [USE_X11="no"]) + if test "$USE_X11" = "yes"; then + AC_DEFINE([HAVE_VA_X11], [1], [Defined to 1 if VA/X11 API is built]) + fi +fi +AM_CONDITIONAL(USE_X11, test "$USE_X11" = "yes") + # Check for GLX USE_GLX="no" -GL_DEPS_CFLAGS="" -GL_DEPS_LIBS="" if test "$USE_X11:$enable_glx" = "yes:yes"; then - saved_CFLAGS="$CFLAGS" + PKG_CHECK_MODULES([GLX], [gl x11], [USE_GLX="yes"], [:]) + saved_CPPFLAGS="$CPPFLAGS" saved_LIBS="$LIBS" - PKG_CHECK_MODULES([GL_DEPS], [gl], [], [GL_DEPS_LIBS="-lX11 -lGL"]) - CFLAGS="$CFLAGS $GL_DEPS_CFLAGS" - LIBS="$LIBS $GL_DEPS_LIBS" - AC_CHECK_HEADERS([GL/gl.h]) - AC_CHECK_HEADERS([GL/glx.h]) - AC_CHECK_LIB(GL, glXCreateContext, [USE_GLX="yes"]) - CFLAGS="$saved_CFLAGS" + CPPFLAGS="$CPPFLAGS $GLX_CFLAGS" + LIBS="$LIBS $GLX_LIBS" + AC_CHECK_HEADERS([GL/gl.h GL/glx.h], [:], [USE_GLX="no"]) + AC_CHECK_LIB([GL], [glXCreateContext], [:] [USE_GLX="no"]) + CPPFLAGS="$saved_CPPFLAGS" LIBS="$saved_LIBS" + if test "$USE_GLX" = "yes"; then + AC_DEFINE([HAVE_VA_GLX], [1], [Defined to 1 if VA/GLX API is built]) + fi fi -AC_SUBST(GL_DEPS_CFLAGS) -AC_SUBST(GL_DEPS_LIBS) AM_CONDITIONAL(USE_GLX, test "$USE_GLX" = "yes") # Check for EGL USE_EGL="no" if test "$enable_egl" = "yes"; then + PKG_CHECK_MODULES([EGL], [egl], [USE_EGL="yes"], [:]) saved_CPPFLAGS="$CPPFLAGS" saved_LIBS="$LIBS" - PKG_CHECK_MODULES([EGL_DEPS], [egl], [USE_EGL="yes"], [USE_EGL="no"]) - CPPFLAGS="$CPPFLAGS $EGL_DEPS_CFLAGS" - LIBS="$LIBS $EGL_DEPS_LIBS" + CPPFLAGS="$CPPFLAGS $EGL_CFLAGS" + LIBS="$LIBS $EGL_LIBS" AC_CHECK_HEADERS([EGL/egl.h], [:], [USE_EGL="no"]) AC_CHECK_LIB([EGL], [eglGetDisplay], [:], [USE_EGL="no"]) CPPFLAGS="$saved_CPPFLAGS" LIBS="$saved_LIBS" + if test "$USE_EGL" = "yes"; then + AC_DEFINE([HAVE_VA_EGL], [1], [Defined to 1 if VA/EGL API is built]) + fi fi AM_CONDITIONAL(USE_EGL, test "$USE_EGL" = "yes") @@ -288,8 +292,8 @@ pkgconfigdir=${libdir}/pkgconfig AC_SUBST(pkgconfigdir) # Check for builds without backend -if test "$USE_X11:$USE_DRM" = "no:no"; then - AC_MSG_ERROR([Please select at least VA/X11 or VA/DRM backend]) +if test "$USE_DRM:$USE_X11:$USE_WAYLAND" = "no:no:no"; then + AC_MSG_ERROR([Please select at least one backend (DRM, X11, Wayland)]) fi LIBVA_DISPLAY="drm" diff --git a/va/Makefile.am b/va/Makefile.am index 968474f..6a89b21 100644 --- a/va/Makefile.am +++ b/va/Makefile.am @@ -82,6 +82,16 @@ libva_tpi_la_LDFLAGS = $(LDADD) -no-undefined libva_tpi_la_DEPENDENCIES = $(libvacorelib) libva_tpi_la_LIBADD = $(libvacorelib) -ldl +if USE_DRM +SUBDIRS += drm +lib_LTLIBRARIES += libva-drm.la +libva_drm_la_SOURCES = +libva_drm_la_LDFLAGS = $(LDADD) +libva_drm_la_DEPENDENCIES = $(libvacorelib) drm/libva_drm.la +libva_drm_la_LIBADD = $(libvacorelib) drm/libva_drm.la \ + $(LIBVA_LIBS) $(DRM_LIBS) -ldl +endif + if USE_X11 SUBDIRS += x11 lib_LTLIBRARIES += libva-x11.la @@ -90,17 +100,7 @@ libva_x11_la_SOURCES = libva_x11_la_LDFLAGS = $(LDADD) libva_x11_la_DEPENDENCIES = $(libvacorelib) x11/libva_x11.la libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la \ - $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(DRM_LIBS) $(XFIXES_LIBS) -ldl -endif - -if USE_DRM -SUBDIRS += drm -lib_LTLIBRARIES += libva-drm.la -libva_drm_la_SOURCES = -libva_drm_la_LDFLAGS = $(LDADD) -libva_drm_la_DEPENDENCIES = $(libvacorelib) drm/libva_drm.la -libva_drm_la_LIBADD = $(libvacorelib) drm/libva_drm.la \ - $(LIBVA_LIBS) $(DRM_LIBS) -ldl + $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(XFIXES_LIBS) $(DRM_LIBS) -ldl endif if USE_GLX @@ -110,7 +110,7 @@ libva_glx_la_SOURCES = libva_glx_la_LDFLAGS = $(LDADD) libva_glx_la_DEPENDENCIES = $(libvacorelib) glx/libva_glx.la libva-x11.la libva_glx_la_LIBADD = $(libvacorelib) glx/libva_glx.la libva-x11.la \ - $(GL_DEPS_LIBS) -ldl + $(GLX_LIBS) -ldl endif if USE_EGL @@ -120,7 +120,7 @@ libva_egl_la_SOURCES = libva_egl_la_LDFLAGS = $(LDADD) libva_egl_la_DEPENDENCIES = $(libvacorelib) egl/libva_egl.la libva-x11.la libva_egl_la_LIBADD = $(libvacorelib) egl/libva_egl.la libva-x11.la \ - $(EGL_DEPS_LIBS) -ldl + $(EGL_LIBS) -ldl endif if USE_WAYLAND diff --git a/va/egl/Makefile.am b/va/egl/Makefile.am index e507897..7f3f954 100644 --- a/va/egl/Makefile.am +++ b/va/egl/Makefile.am @@ -24,8 +24,7 @@ INCLUDES = \ -DLINUX \ -I$(top_srcdir) \ -I$(top_srcdir)/va \ - -I$(top_srcdir)/va/x11 \ - $(EGL_DEPS_CFLAGS) \ + $(EGL_CFLAGS) \ $(NULL) source_c = \ diff --git a/va/glx/Makefile.am b/va/glx/Makefile.am index 19f2cf5..79d8594 100644 --- a/va/glx/Makefile.am +++ b/va/glx/Makefile.am @@ -26,7 +26,7 @@ INCLUDES = \ -I$(top_srcdir)/va \ -I$(top_srcdir)/va/x11 \ $(X11_CFLAGS) \ - $(GL_DEPS_CFLAGS) \ + $(GLX_CFLAGS) \ $(NULL) source_c = \ diff --git a/va/x11/Makefile.am b/va/x11/Makefile.am index f6b3e9f..508506e 100644 --- a/va/x11/Makefile.am +++ b/va/x11/Makefile.am @@ -25,6 +25,8 @@ INCLUDES = \ -I$(top_srcdir) \ -I$(top_srcdir)/va \ $(X11_CFLAGS) \ + $(XEXT_CFLAGS) \ + $(XFIXES_CFLAGS) \ $(DRM_CFLAGS) \ $(NULL) -- 2.7.4