From ee3422dd10e33e683e14c799452ef8e7cd57e60e Mon Sep 17 00:00:00 2001 From: Christophe CURIS Date: Sun, 17 Nov 2013 18:51:18 +0100 Subject: [PATCH] configure: Moved configure's detection of XRandR to a dedicated macro The original check was not compliant with autoconf's syntax, did not have a very good behaviour for user and was not easy to make evolve. The new macro: - uses as much as possible autoconf macros for portability and code consistency; - checks also for header usability with the compiler; - provides a consistent behaviour on yes/no/auto (if user explicitly enables support, do not silently disable if not found; if library is found but not the header, complain to let user install it or explicitly disable support) Signed-off-by: Christophe CURIS --- configure.ac | 21 +++++++-------------- m4/wm_xext_check.m4 | 24 ++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/configure.ac b/configure.ac index 4f9cf6a9..e463eced 100644 --- a/configure.ac +++ b/configure.ac @@ -511,19 +511,13 @@ WM_XEXT_CHECK_XINERAMA dnl XRandR support dnl ============== -xrandr=no -AC_ARG_ENABLE(xrandr, AS_HELP_STRING([--enable-xrandr], [enable XRandR window extension support (NOT recommended, buggy)]), - xrandr=$enableval, xrandr=no) -added_xext=no - -LIBXRANDR= -if test "$xrandr" = yes; then - AC_CHECK_LIB(Xrandr, XRRQueryExtension, [LIBXRANDR=-lXrandr - added_xext=yes - AC_DEFINE(USE_XRANDR, 1, [define if you want support for XRandR (set by configure)])], - xrandr=no, $XLFLAGS $XLIBS) -fi -AC_SUBST(LIBXRANDR) +AC_ARG_ENABLE([xrandr], + [AS_HELP_STRING([--enable-xrandr], [enable XRandR extension support (NOT recommended, buggy)])], + [AS_CASE(["$enableval"], + [yes|no], [], + [AC_MSG_ERROR([bad value $enableval for --enable-xrandr]) ]) ], + [enable_xrandr=no]) +WM_XEXT_CHECK_XRANDR dnl dnl libWINGS uses math functions, check whether usage requires linking @@ -830,7 +824,6 @@ echo "Supported X extensions: :$supported_xext" echo "Supported graphic format libraries :$supported_gfx" echo "Unsupported features :$unsupported" echo "Antialiased text support in WINGs : $xft" -echo "XRandR extension support : $xrandr" echo "Translated message files to install : $mof" dnl echo "Supported languages beside English : $languages" if test "x$MOFILES" != "x"; then diff --git a/m4/wm_xext_check.m4 b/m4/wm_xext_check.m4 index 8ba1f79b..a8c45f4a 100644 --- a/m4/wm_xext_check.m4 +++ b/m4/wm_xext_check.m4 @@ -98,3 +98,27 @@ sed -e 's,^[[^%]]*% *,,' | sed -e 's, *%.*$,,' `" dnl ]) AC_SUBST(LIBXINERAMA)dnl ]) + + +# WM_XEXT_CHECK_XRANDR +# -------------------- +# +# Check for the X RandR (Resize-and-Rotate) extension +# The check depends on variable 'enable_xrandr' being either: +# yes - detect, fail if not found +# no - do not detect, disable support +# auto - detect, disable if not found +# +# When found, append appropriate stuff in LIBXRANDR, and append info to +# the variable 'supported_xext' +# When not found, append info to variable 'unsupported' +AC_DEFUN_ONCE([WM_XEXT_CHECK_XRANDR], +[WM_LIB_CHECK([XRandR], [-lXrandr], [XRRQueryExtension], [$XLIBS], + [wm_save_CFLAGS="$CFLAGS" + AS_IF([wm_fn_lib_try_compile "X11/extensions/Xrandr.h" "Display *dpy;" "XRRQueryExtension(dpy, NULL, NULL)" ""], + [], + [AC_MSG_ERROR([found $CACHEVAR but cannot compile using XRandR header])]) + CFLAGS="$wm_save_CFLAGS"], + [supported_xext], [LIBXRANDR], [], [-])dnl +AC_SUBST([LIBXRANDR])dnl +]) dnl AC_DEFUN -- 2.11.4.GIT