[Xcb] [PATCH libxcb] config: default option for enable-dri3 is not implemented
Gaetan Nadon
memsize at videotron.ca
Mon Mar 24 06:34:07 PDT 2014
The first symptom is the help text:
--enable-dri3 Build XCB DRI3 Extension (default: "$sendfds")
The implementation variable $sendfds leaked into the user interface.
Testing the various user inputs:
<nothing> DRI3 is enabled PASS
--enable-dri3 DRI3 is enabled PASS
--enable-dri3=yes DRI3 is enabled PASS
--enable-dri3=no DRI3 is disabled PASS
--disable-dri3 DRI3 is disabled PASS
--enable-dri3=$sendfds DRI3 is disabled FAIL
This patch implements the usual idiom for features that are enabled by
default if the various conditions are met (sendfds is available).
New help text:
--enable-dri3 Build XCB DRI3 Extension (default: auto)
With the additional user input:
--enable-dri3=auto
which is equivalent to providing no input at all.
Note that this patch does not change the following behaviours:
Except for DRI3, any user input other than yes or no is undefined
For DRI3, if user input is yes but sendfds says no, DRI3 is disabled
and the user is not informed.
Signed-off-by: Gaetan Nadon <memsize at videotron.ca>
---
configure.ac | 52 ++++++++++++++++++++++++++--------------------------
m4/xcb.m4 | 18 +++++++++++++++---
2 files changed, 41 insertions(+), 29 deletions(-)
diff --git a/configure.ac b/configure.ac
index 68c3b2f..61941d7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -212,32 +212,32 @@ case $host_os in
;;
esac
-XCB_EXTENSION(Composite, "yes")
-XCB_EXTENSION(Damage, "yes")
-XCB_EXTENSION(DPMS, "yes")
-XCB_EXTENSION(DRI2, "yes")
-XCB_EXTENSION(DRI3, "$sendfds")
-XCB_EXTENSION(GLX, "yes")
-XCB_EXTENSION(Present, "yes")
-XCB_EXTENSION(RandR, "yes")
-XCB_EXTENSION(Record, "yes")
-XCB_EXTENSION(Render, "yes")
-XCB_EXTENSION(Resource, "yes")
-XCB_EXTENSION(Screensaver, "yes")
-XCB_EXTENSION(Shape, "yes")
-XCB_EXTENSION(Shm, "yes")
-XCB_EXTENSION(Sync, "yes")
-XCB_EXTENSION(Xevie, "yes")
-XCB_EXTENSION(XFixes, "yes")
-XCB_EXTENSION(XFree86-DRI, "yes")
-XCB_EXTENSION(Xinerama, "yes")
-XCB_EXTENSION(XInput, "no")
-XCB_EXTENSION(XKB, "yes")
-XCB_EXTENSION(Xprint, "yes")
-XCB_EXTENSION(SELinux, "no")
-XCB_EXTENSION(XTest, "yes")
-XCB_EXTENSION(Xv, "yes")
-XCB_EXTENSION(XvMC, "yes")
+XCB_EXTENSION(Composite, yes)
+XCB_EXTENSION(Damage, yes)
+XCB_EXTENSION(DPMS, yes)
+XCB_EXTENSION(DRI2, yes)
+XCB_EXTENSION(DRI3, $sendfds)
+XCB_EXTENSION(GLX, yes)
+XCB_EXTENSION(Present, yes)
+XCB_EXTENSION(RandR, yes)
+XCB_EXTENSION(Record, yes)
+XCB_EXTENSION(Render, yes)
+XCB_EXTENSION(Resource, yes)
+XCB_EXTENSION(Screensaver, yes)
+XCB_EXTENSION(Shape, yes)
+XCB_EXTENSION(Shm, yes)
+XCB_EXTENSION(Sync, yes)
+XCB_EXTENSION(Xevie, yes)
+XCB_EXTENSION(XFixes, yes)
+XCB_EXTENSION(XFree86-DRI, yes)
+XCB_EXTENSION(Xinerama, yes)
+XCB_EXTENSION(XInput, no)
+XCB_EXTENSION(XKB, yes)
+XCB_EXTENSION(Xprint, yes)
+XCB_EXTENSION(SELinux, no)
+XCB_EXTENSION(XTest, yes)
+XCB_EXTENSION(Xv, yes)
+XCB_EXTENSION(XvMC, yes)
AC_ARG_WITH(launchd, AS_HELP_STRING([--with-launchd], [Build with support for Apple's launchd (default: auto)]), [LAUNCHD=$withval], [LAUNCHD=auto])
if test "x$LAUNCHD" = xauto; then
diff --git a/m4/xcb.m4 b/m4/xcb.m4
index 32e852d..cf525c0 100644
--- a/m4/xcb.m4
+++ b/m4/xcb.m4
@@ -38,15 +38,27 @@ dnl XCB_EXTENSION(name, default)
dnl set the X extension
dnl
AC_DEFUN([XCB_EXTENSION],
-[
+[dnl
pushdef([UP], translit([$1], [-a-z], [_A-Z]))dnl
pushdef([DOWN], translit([$1], [A-Z], [a-z]))dnl
+dnl
+m4_if([$2], [yes], [m4_define([xcb_defopt], [yes])],
+ [$2], [no], [m4_define([xcb_defopt], [no])],
+ m4_define([xcb_defopt], [auto]))dnl
AC_ARG_ENABLE(DOWN,
- [AS_HELP_STRING([--enable-[]DOWN], [Build XCB $1 Extension (default: $2)])],
+ [AS_HELP_STRING([--enable-[]DOWN],
+ [Build XCB $1 Extension (default: ]xcb_defopt[)])],
[BUILD_[]UP=$enableval],
- [BUILD_[]UP=$2])
+ [BUILD_[]UP=xcb_defopt])
+dnl
+m4_if(xcb_defopt, [auto], [
+# This extension has a default value of "auto" and depends on the value of $2
+if test "x$BUILD_[]UP" = "xauto" ; then
+ BUILD_[]UP=$2
+fi])
+m4_undefine([xcb_defopt])dnl
AM_CONDITIONAL(BUILD_[]UP, [test "x$BUILD_[]UP" = "xyes"])
])
--
1.7.9.5
More information about the Xcb
mailing list