-fi
-AC_SUBST(X_LIBS)
-AC_SUBST(HAVE_X11)
-
-save_LIBS="$LIBS"
-LIBS=""
-CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-AC_CHECK_LIB(Xtst, XTestFakeKeyEvent, XTST_LIBS=-lXtst,[
- AC_MSG_ERROR([Couldn't find the Xtst library. Check config.log])],
- $X_LIBS)
-AC_SUBST(XTST_LIBS)
-LIBS="$LIBS $save_LIBS"
-
-save_LIBS="$LIBS"
-LIBS=""
-AC_CHECK_LIB(X11, XkbQueryExtension, have_xkb="maybe", have_xkb="no", $X_LIBS)
-if test "x$have_xkb" = "xmaybe"; then
- AC_CHECK_HEADER([X11/XKBlib.h], have_xkb=yes)
-fi
-if test "x$have_xkb" = "xyes"; then
- AC_DEFINE([HAVE_XKB], [], [Xkb is present])
-fi
-LIBS="$LIBS $save_LIBS"
-
-save_LIBS="$LIBS"
-LIBS=""
-AC_CHECK_LIB(Xi, XOpenDevice, have_xinput="maybe", have_xinput="no", $X_LIBS)
-if test "x$have_xinput" = "xmaybe"; then
- save_LIBS="$LIBS"
- LIBS="$LIBS $X_LIBS"
- AC_CHECK_HEADER([X11/extensions/XInput.h], [have_xinput="yes"])
- LIBS="$save_LIBS"
-fi
-if test "x$have_xinput" != "xyes"; then
- AC_MSG_ERROR([Couldn't find the XInput library. Check config.log for details])
-fi
-XINPUT_LIBS="-lXi"
-AC_SUBST(XINPUT_LIBS)
-LIBS="$LIBS $save_LIBS"
-
-save_LIBS="$LIBS"
-LIBS=""
-AC_ARG_ENABLE(xevie,
- [AS_HELP_STRING([--enable-xevie],
- [Build with XEViE support [default=no]])],
- enable_xevie="$enableval", enable_xevie=no)
-
-if test -z "$backend_set"; then
- enable_x11_backend=yes
-fi
-
-if test x$enable_xevie = xyes ; then
- have_xevie=
- AC_CHECK_LIB(Xext, XevieStart, have_xevie="yes", have_xevie="no", $X_LIBS)
-
- if test "x$have_xevie" = "xyes"; then
- XEVIE_LIBS="-lXext"
- AC_DEFINE([HAVE_XEVIE], [], [Xevie is present])
- else
- AC_CHECK_LIB(Xevie, XevieQueryVersion, have_xevie="maybe",,$X_LIBS)
- if test "x$have_xevie" = "xmaybe"; then
- AC_CHECK_HEADER(X11/extensions/Xevie.h, have_xevie=yes, [],
- [[#include <X11/Xlib.h>
-]])
- if test "x$have_xevie" = "xyes"; then
- XEVIE_LIBS="-lXext -lXevie"
- AC_DEFINE([HAVE_XEVIE], [], [Xevie is present])
- fi
- fi
- fi
- AC_SUBST(XEVIE_LIBS)
-fi
-LIBS="$LIBS $save_LIBS"
+], [
+ PKG_CHECK_MODULES(X11, [x11], [
+ AC_DEFINE(HAVE_X11, 1, [Define to use X11])
+ AC_SUBST(HAVE_X11)
+ have_x11=yes
+ ], [
+ AS_IF([test "x$enable_x11" = xyes], [
+ AC_MSG_ERROR([Unable to find X11 development files])
+ ])
+ have_x11=no
+ ])
+
+ # Check for additional X11 extensions
+ AS_IF([test "x$have_x11" = xyes], [
+ # XTest (mandatory)
+ PKG_CHECK_MODULES(XTST, [xtst])
+ X11_CFLAGS="$X11_CFLAGS $XTST_CFLAGS"
+ X11_LIBS="$X11_LIBS $XTST_LIBS"
+
+ # XInput (mandatory)
+ PKG_CHECK_MODULES(XINPUT, [xi])
+ X11_CFLAGS="$X11_CFLAGS $XINPUT_CFLAGS"
+ X11_LIBS="$X11_LIBS $XINPUT_LIBS"
+
+ # XKB (optional)
+ PKG_CHECK_MODULES(XKB, [xkbcommon-x11], [
+ AC_DEFINE(HAVE_XKB, 1, [Define to use XKB])
+ X11_CFLAGS="$X11_CFLAGS $XKB_CFLAGS"
+ X11_LIBS="$X11_LIBS $XKB_LIBS"
+ ], [:])
+ ])
+
+ AC_SUBST(X11_CFLAGS)
+ AC_SUBST(X11_LIBS)
+
+ AM_CONDITIONAL(USE_X11, test "x$have_x11" = xyes)
+])