[Libva] [PATCH v2 3/7] Allow build without VA/X11 API.

Gwenole Beauchesne gb.devel at gmail.com
Mon Jul 16 02:04:25 PDT 2012


From: Dmitry Ermilov <dmitry.ermilov at intel.com>

In this case, VA/GLX API is disabled and another backend shall be
built instead.

Signed-off-by: Dmitry Ermilov <dmitry.ermilov at intel.com>
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne at intel.com>
---
 configure.ac             |   34 ++++++++++++++++++++++++++++------
 pkgconfig/Makefile.am    |    2 ++
 test/Makefile.am         |    5 ++++-
 test/common/Makefile.am  |    2 ++
 test/common/va_display.c |    2 ++
 test/encode/Makefile.am  |    5 ++++-
 va/Makefile.am           |    4 +++-
 7 files changed, 45 insertions(+), 9 deletions(-)

diff --git a/configure.ac b/configure.ac
index efacc2d..7f7f9af 100644
--- a/configure.ac
+++ b/configure.ac
@@ -121,6 +121,11 @@ AC_ARG_ENABLE(drm,
                     [build with VA/DRM API support @<:@default=yes@:>@])],
     [], [enable_drm="yes"])
 
+AC_ARG_ENABLE(x11,
+    [AC_HELP_STRING([--enable-x11],
+                    [build with VA/X11 API support @<:@default=yes@:>@])],
+    [], [enable_x11="yes"])
+
 AC_ARG_ENABLE(glx,
     [AC_HELP_STRING([--enable-glx],
                     [build with GLX support @<:@default=yes@:>@])],
@@ -155,20 +160,28 @@ AC_PROG_LIBTOOL
 AC_PROG_CC
 AC_PROG_CXX
 AM_PROG_CC_C_O
+PKG_PROG_PKG_CONFIG
 
 AC_HEADER_STDC
 AC_SYS_LARGEFILE
 
-PKG_CHECK_MODULES([X11], [x11])
-PKG_CHECK_MODULES([XEXT],[xext])
-PKG_CHECK_MODULES([XFIXES], [xfixes])
-
 # Check for Doxygen
 if test "$enable_docs" = "yes"; then
     AC_CHECK_TOOL([DOXYGEN], [doxygen], [enable_docs="no"])
 fi
 AM_CONDITIONAL(ENABLE_DOCS, test "$enable_docs" = "yes")
 
+# 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])
@@ -193,7 +206,7 @@ AM_CONDITIONAL(USE_DRM, test "$USE_DRM" = "yes")
 USE_GLX="no"
 GL_DEPS_CFLAGS=""
 GL_DEPS_LIBS=""
-if test "$enable_glx" = "yes"; then
+if test "$USE_X11:$enable_glx" = "yes:yes"; then
     saved_CFLAGS="$CFLAGS"
     saved_LIBS="$LIBS"
     PKG_CHECK_MODULES([GL_DEPS], [gl], [], [GL_DEPS_LIBS="-lX11 -lGL"])
@@ -240,7 +253,15 @@ AC_SUBST(LIBVA_LIBS)
 pkgconfigdir=${libdir}/pkgconfig
 AC_SUBST(pkgconfigdir)
 
-LIBVA_DISPLAY=x11
+# 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])
+fi
+
+LIBVA_DISPLAY="drm"
+if test "$USE_X11" = "yes"; then
+    LIBVA_DISPLAY="x11"
+fi
 libvacorelib=libva.la
 libvabackendlib=libva-$LIBVA_DISPLAY.la
 AC_SUBST([libvacorelib])
@@ -277,6 +298,7 @@ AC_OUTPUT([
 
 # Print a small summary
 AS_IF([test x$USE_DRM = xyes], [BACKENDS="drm $BACKENDS"])
+AS_IF([test x$USE_X11 = xyes], [BACKENDS="x11 $BACKENDS"])
 AS_IF([test x$USE_GLX = xyes], [BACKENDS="glx $BACKENDS"])
 AS_IF([test x$USE_EGL = xyes], [BACKENDS="egl $BACKENDS"])
 
diff --git a/pkgconfig/Makefile.am b/pkgconfig/Makefile.am
index 2298c84..df5672c 100644
--- a/pkgconfig/Makefile.am
+++ b/pkgconfig/Makefile.am
@@ -25,7 +25,9 @@ pcfiles		+= libva-tpi.pc
 if USE_DRM
 pcfiles		+= libva-drm.pc
 endif
+if USE_X11
 pcfiles		+= libva-x11.pc
+endif
 if USE_GLX
 pcfiles		+= libva-glx.pc
 endif
diff --git a/test/Makefile.am b/test/Makefile.am
index ae3805f..478cdc0 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -23,6 +23,9 @@
 
 AM_CFLAGS = -I$(top_srcdir)/va -I$(top_srcdir)/test/basic -I$(top_srcdir)/src/x11
 
-SUBDIRS = common basic decode encode putsurface vainfo transcode
+SUBDIRS = common decode encode vainfo
+if USE_X11
+SUBDIRS += basic putsurface transcode
+endif
 
 EXTRA_DIST = loadsurface.h loadsurface_yuv.h
diff --git a/test/common/Makefile.am b/test/common/Makefile.am
index 57cd3f0..f48ede6 100644
--- a/test/common/Makefile.am
+++ b/test/common/Makefile.am
@@ -36,9 +36,11 @@ libva_display_libs = \
 source_c		= va_display.c
 source_h		= va_display.h
 
+if USE_X11
 source_c		+= va_display_x11.c
 libva_display_cflags	+= $(X11_CFLAGS)
 libva_display_libs	+= $(X11_LIBS)
+endif
 
 if USE_DRM
 source_c		+= va_display_drm.c
diff --git a/test/common/va_display.c b/test/common/va_display.c
index d356f7d..a195d98 100644
--- a/test/common/va_display.c
+++ b/test/common/va_display.c
@@ -41,7 +41,9 @@ static const VADisplayHooks *g_display_hooks_available[] = {
 #ifdef ANDROID
     &va_display_hooks_android,
 #else
+#ifdef HAVE_VA_X11
     &va_display_hooks_x11,
+#endif
 #ifdef HAVE_VA_DRM
     &va_display_hooks_drm,
 #endif
diff --git a/test/encode/Makefile.am b/test/encode/Makefile.am
index b3e4056..942c068 100644
--- a/test/encode/Makefile.am
+++ b/test/encode/Makefile.am
@@ -20,7 +20,10 @@
 # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-bin_PROGRAMS = h264encode avcenc
+bin_PROGRAMS = avcenc
+if USE_X11
+bin_PROGRAMS += h264encode
+endif
 
 libva_helpers = \
 	$(top_builddir)/test/common/libva-display.la	\
diff --git a/va/Makefile.am b/va/Makefile.am
index 295d0ad..bf3e538 100644
--- a/va/Makefile.am
+++ b/va/Makefile.am
@@ -54,7 +54,6 @@ libva_source_h = \
 	va_tpi.h		\
 	va_version.h		\
 	va_vpp.h		\
-	va_x11.h		\
 	$(NULL)
 
 libva_source_h_priv = \
@@ -83,13 +82,16 @@ libva_tpi_la_LDFLAGS		= $(LDADD) -no-undefined
 libva_tpi_la_DEPENDENCIES	= $(libvacorelib) 
 libva_tpi_la_LIBADD		= $(libvacorelib) -ldl
 
+if USE_X11
 SUBDIRS				+= x11
 lib_LTLIBRARIES			+= libva-x11.la
+libva_source_h			+= va_x11.h
 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
-- 
1.7.9.5



More information about the Libva mailing list