From f33cbef975da707d0d3e1dbb208073980f1d1fd4 Mon Sep 17 00:00:00 2001 From: Brice Goglin Date: Wed, 6 Nov 2013 09:49:00 +0100 Subject: [PATCH] Remove Cairo dependency on X11 and factorize X11 tests Per discussion on the mailing list, it doesn't look like Cairo needs X11 any more (it doesn't on OS X to generate PDFs and PNGs). So remove the dependency in configure.ac. Also, move the X11 tests from outside of the Cairo tests (and outside of the GL tests) to be in the main configure logic. By the way, rename HWLOC_HAVE_X11 into HWLOC_HAVE_X11_KEYSYM to avoid confusion between Xlib.h/XOpenDisplay being available (what GL needs) and Xutil.h+keysym.h being available too (what lstopo/X11 needs). Based on a patch from Jeff, tweaked by me. --- config/hwloc.m4 | 36 ++++++++++++++++++++++++++++++------ config/hwloc_internal.m4 | 25 ------------------------- utils/lstopo-cairo.c | 2 +- utils/lstopo.c | 2 +- 4 files changed, 32 insertions(+), 33 deletions(-) diff --git a/config/hwloc.m4 b/config/hwloc.m4 index f957af37..38069335 100644 --- a/config/hwloc.m4 +++ b/config/hwloc.m4 @@ -914,15 +914,39 @@ EOF]) fi # don't add LIBS/CFLAGS/REQUIRES yet, depends on plugins + # X11 support + AC_PATH_XTRA + + CPPFLAGS_save=$CPPFLAGS + LIBS_save=$LIBS + + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + LIBS="$LIBS $X_PRE_LIBS $X_LIBS $X_EXTRA_LIBS" + AC_CHECK_HEADERS([X11/Xlib.h], + [AC_CHECK_LIB([X11], [XOpenDisplay], + [ + # the GL backend just needs XOpenDisplay + hwloc_enable_X11=yes + # lstopo needs more + AC_CHECK_HEADERS([X11/Xutil.h], + [AC_CHECK_HEADERS([X11/keysym.h], + [AC_DEFINE([HWLOC_HAVE_X11_KEYSYM], [1], [Define to 1 if X11 headers including Xutil.h and keysym.h are available.])]) + AC_SUBST([HWLOC_X11_LIBS], ["-lX11"]) + ]) + ]) + ]) + CPPFLAGS=$CPPFLAGS_save + LIBS=$LIBS_save + # GL Support hwloc_gl_happy=no if test "x$enable_gl" != "xno"; then - hwloc_gl_happy=yes + hwloc_gl_happy=yes + + AS_IF([test "$hwloc_enable_X11" != "yes"], + [AC_MSG_WARN([X11 not found; GL disabled]) + hwloc_gl_happy=no]) - AC_CHECK_HEADERS([X11/Xlib.h], [ - AC_CHECK_LIB([X11], [XOpenDisplay], [:], [hwloc_gl_happy=no]) - ], [hwloc_gl_happy=no]) - AC_CHECK_HEADERS([NVCtrl/NVCtrl.h], [ AC_CHECK_LIB([XNVCtrl], [XNVCTRLQueryTargetAttribute], [:], [hwloc_gl_happy=no], [-lXext]) ], [hwloc_gl_happy=no]) @@ -1358,4 +1382,4 @@ AC_DEFUN([HWLOC_CHECK_LTDL_DEPS], [ lt_cv_dlopen="$save_lt_cv_dlopen" lt_cv_dlopen_libs="$save_lt_cv_dlopen_libs" lt_cv_dlopen_self="$save_lt_cv_dlopen_self" -]) \ No newline at end of file +]) diff --git a/config/hwloc_internal.m4 b/config/hwloc_internal.m4 index b0ac0414..bfc3f362 100644 --- a/config/hwloc_internal.m4 +++ b/config/hwloc_internal.m4 @@ -255,31 +255,6 @@ EOF HWLOC_PKG_CHECK_MODULES([CAIRO], [cairo], [cairo_fill], [hwloc_cairo_happy=yes], [hwloc_cairo_happy=no]) - if test "x$hwloc_cairo_happy" = "xyes"; then - AC_PATH_XTRA - CFLAGS_save=$CFLAGS - LIBS_save=$LIBS - - CFLAGS="$CFLAGS $X_CFLAGS" - LIBS="$LIBS $X_PRE_LIBS $X_LIBS $X_EXTRA_LIBS" - AC_CHECK_HEADERS([X11/Xlib.h], [ - AC_CHECK_HEADERS([X11/Xutil.h X11/keysym.h], [ - AC_CHECK_LIB([X11], [XOpenDisplay], [ - enable_X11=yes - AC_SUBST([HWLOC_X11_LIBS], ["-lX11"]) - AC_DEFINE([HWLOC_HAVE_X11], [1], [Define to 1 if X11 libraries are available.]) - ])] - )],, - [[#include ]] - ) - if test "x$enable_X11" != "xyes"; then - AC_MSG_WARN([X11 headers not found, Cairo/X11 back-end disabled]) - hwloc_cairo_happy=no - fi - - CFLAGS=$CFLAGS_save - LIBS=$LIBS_save - fi fi if test "x$hwloc_cairo_happy" = "xyes"; then diff --git a/utils/lstopo-cairo.c b/utils/lstopo-cairo.c index 3b28710d..a4a68ada 100644 --- a/utils/lstopo-cairo.c +++ b/utils/lstopo-cairo.c @@ -22,7 +22,7 @@ #include #endif /* CAIRO_HAS_SVG_SURFACE */ -#ifndef HWLOC_HAVE_X11 +#ifndef HWLOC_HAVE_X11_KEYSYM /* In case X11 headers aren't availble, forcefully disable Cairo/Xlib. */ # undef CAIRO_HAS_XLIB_SURFACE # define CAIRO_HAS_XLIB_SURFACE 0 diff --git a/utils/lstopo.c b/utils/lstopo.c index 5b8df2e5..8dd3501b 100644 --- a/utils/lstopo.c +++ b/utils/lstopo.c @@ -632,7 +632,7 @@ main (int argc, char *argv[]) switch (output_format) { case LSTOPO_OUTPUT_DEFAULT: #ifdef LSTOPO_HAVE_GRAPHICS -#if CAIRO_HAS_XLIB_SURFACE && defined HWLOC_HAVE_X11 +#if CAIRO_HAS_XLIB_SURFACE && defined HWLOC_HAVE_X11_KEYSYM if (getenv("DISPLAY")) { if (logical == -1) logical = 0; -- 2.39.5