[at-spi2-core/wip/meson: 8/15] build: Clean up X11 detection and build



commit 0f31a62543a7b2aced4c041bc3514ed62d6a74e1
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Wed May 24 12:18:13 2017 +0100

    build: Clean up X11 detection and build
    
    Use pkg-config, and take the build into the early XXI century.

 atspi/Makefile.am     |    2 +-
 bus/Makefile.am       |    2 +-
 configure.ac          |   95 ++++++++++++++++++++-----------------------------
 registryd/Makefile.am |   14 +++----
 4 files changed, 47 insertions(+), 66 deletions(-)
---
diff --git a/atspi/Makefile.am b/atspi/Makefile.am
index a860fcc..ab6c448 100644
--- a/atspi/Makefile.am
+++ b/atspi/Makefile.am
@@ -12,7 +12,7 @@ libatspi_la_CFLAGS = $(DBUS_CFLAGS) \
 
 libatspi_la_LIBADD = $(DBUS_LIBS) \
        $(GOBJ_LIBS) \
-       $(X_LIBS) \
+       $(X11_LIBS) \
        $(top_builddir)/dbind/libdbind.la
 
 libatspiincludedir = $(includedir)/at-spi-2.0/atspi
diff --git a/bus/Makefile.am b/bus/Makefile.am
index b189e02..cacf551 100644
--- a/bus/Makefile.am
+++ b/bus/Makefile.am
@@ -9,7 +9,7 @@ at_spi_bus_launcher_CPPFLAGS = -DSYSCONFDIR=\"$(sysconfdir)\" \
                                -DDATADIR=\"$(datadir)\" \
                                -DDBUS_DAEMON=\"$(DBUS_DAEMON)\"
 at_spi_bus_launcher_CFLAGS = $(GIO_CFLAGS)
-at_spi_bus_launcher_LDADD = $(GIO_LIBS) $(X_LIBS)
+at_spi_bus_launcher_LDADD = $(GIO_LIBS) $(X11_LIBS)
 
 default_sessiondir = $(sysconfdir)/xdg/autostart
 default_session_DATA = at-spi-dbus-bus.desktop
diff --git a/configure.ac b/configure.ac
index 007cc2a..d041655 100644
--- a/configure.ac
+++ b/configure.ac
@@ -68,67 +68,50 @@ AC_CHECK_LIB(c, dlopen, DL_LIBS="",
 
 AC_SUBST(DL_LIBS)
 
-AC_PATH_XTRA
-
 AC_ARG_ENABLE(x11,
               [AS_HELP_STRING([--disable-x11],
                               [disable the X11 backend])],,
                              [enable_x11=auto])
 
-if test x$enable_x11 = xno; then
-       AM_CONDITIONAL(USE_X11, false)
-elif test x$no_x = xyes ; then
-       AC_MSG_ERROR([X development libraries not found])
-else
-       AM_CONDITIONAL(USE_X11, true)
-       X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
-       AC_SUBST(X_LIBS)
-       AC_DEFINE(HAVE_X11, 1, [Define to use X11])
-       AC_SUBST(HAVE_X11)
-
-       dnl Check for Xtst
-       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"
-
-       dnl Check for XkbQueryExtension
-       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"
-
-       dnl Check for Xi
-       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"
-fi
-
-if test -z "$backend_set"; then
-  enable_x11_backend=yes
-fi
+AS_IF([test "x$enable_x11" = xno], [
+  AM_CONDITIONAL(USE_X11, false)
+], [
+  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)
+])
 
 AC_ARG_WITH([dbus_daemondir],
        [AS_HELP_STRING([--with-dbus-daemondir=<directory>],
diff --git a/registryd/Makefile.am b/registryd/Makefile.am
index 1ea3fd0..2c93281 100644
--- a/registryd/Makefile.am
+++ b/registryd/Makefile.am
@@ -1,11 +1,14 @@
+EXTRA_DIST =
+
 libexec_PROGRAMS = at-spi2-registryd
 
 at_spi2_registryd_CFLAGS =     \
        $(GLIB_CFLAGS)          \
        $(GIO_CFLAGS)           \
-       $(DBUS_CFLAGS)  \
+       $(DBUS_CFLAGS)          \
        $(GOBJ_CFLAGS)          \
        $(ATK_CFLAGS)           \
+       $(X11_CFLAGS)           \
        -I$(top_srcdir)         \
        -I$(top_builddir)       \
        -I$(top_builddir)/atspi \
@@ -18,10 +21,7 @@ at_spi2_registryd_LDADD =    \
        $(DBUS_LIBS)    \
        $(GOBJ_CFLAGS)          \
        $(ATK_LIBS)             \
-       $(X_LIBS)               \
-       $(SM_LIBS)              \
-       $(XTST_LIBS)            \
-       $(XEVIE_LIBS)           \
+       $(X11_LIBS)             \
        $(DL_LIBS)
 
 at_spi2_registryd_SOURCES =    \
@@ -50,9 +50,8 @@ X11_SOURCES = \
 
 if USE_X11
 at_spi2_registryd_SOURCES += $(X11_SOURCES)
-EXTRA_DIST = 
 else
-EXTRA_DIST = $(X11_SOURCES)
+EXTRA_DIST += $(X11_SOURCES)
 endif
 
 servicedir=$(datadir)/dbus-1/accessibility-services
@@ -62,7 +61,6 @@ service_DATA     = $(service_in_files:.service.in=.service)
 $(service_DATA): $(service_in_files) Makefile
        sed -e "s|[@]LIBEXECDIR[@]|$(libexecdir)|" $(srcdir)/$@.in > $@
 
-
 DISTCLEANFILES = org.a11y.atspi.Registry.service
 EXTRA_DIST += org.a11y.atspi.Registry.service.in
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]