glx: More hacking around versions of XCB that lack GLX_ARB_create_context support
Detect whether a new enough version of XCB is installed at configure
time. If it is not, don't enable the extension and don't build the
unit tests.
v2: Move the AM_CONDIATION outside the case-statement so that it is
invoked even for non-GLX builds. This prevents build failures with
osmesa, for example.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Tested-by: Robert Hooker <robert.hooker@canonical.com>
diff --git a/configure.ac b/configure.ac
index 2d31273..dfffdf9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1030,12 +1030,34 @@
GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
fi
+ # Check to see if the xcb-glx library is new enough to support
+ # GLX_ARB_create_context. This bit of hackery is necessary until XCB 1.8
+ # is released.
+ save_CPPFLAGS="$CPPFLAGS"
+ save_LDFLAGS="$LDFLAGS"
+ CPPFLAGS="$CPPFLAGS $X11_INCLUDES"
+ LDFLAGS="$LDFLAGS $GL_LIB_DEPS"
+ AC_CHECK_LIB(xcb-glx, xcb_glx_create_context_attribs_arb_checked,
+ [HAVE_XCB_GLX_CREATE_CONTEXT=yes],
+ [HAVE_XCB_GLX_CREATE_CONTEXT=no])
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+
+ if test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes; then
+ X11_INCLUDES="$X11_INCLUDES -DHAVE_XCB_GLX_CREATE_CONTEXT"
+ fi
+
# need DRM libs, -lpthread, etc.
GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
;;
esac
+# This is outside the case (above) so that it is invoked even for non-GLX
+# builds.
+AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT,
+ test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes)
+
GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"