[PATCH] build: disabling the mtdev library support
mchalain [marc.chalain@gmail.com]
marc.chalain at gmail.com
Tue Jun 25 09:26:10 PDT 2013
From: mchalain <marc.chalain at gmail.com>
This patch creates the --enable-mtdev configure's option with
"auto" as default value.
If mtdv library is not available the mtdev functions are replaced
by empty macros.
To simplify the Makefile.am evdev source files are placed inside
a static library. The other reason of this modification is to
see the link between evdev code and mtdev library from the Makefile
---
configure.ac | 17 ++++++++++++++---
src/Makefile.am | 29 +++++++++++++++--------------
src/evdev.c | 11 ++++++++---
3 files changed, 37 insertions(+), 20 deletions(-)
diff --git a/configure.ac b/configure.ac
index b625221..b967a54 100644
--- a/configure.ac
+++ b/configure.ac
@@ -132,7 +132,7 @@ AC_ARG_ENABLE(drm-compositor, [ --enable-drm-compositor],,
AM_CONDITIONAL(ENABLE_DRM_COMPOSITOR, test x$enable_drm_compositor = xyes -a x$enable_egl = xyes)
if test x$enable_drm_compositor = xyes -a x$enable_egl = xyes; then
AC_DEFINE([BUILD_DRM_COMPOSITOR], [1], [Build the DRM compositor])
- PKG_CHECK_MODULES(DRM_COMPOSITOR, [libudev >= 136 libdrm >= 2.4.30 gbm mtdev >= 1.1.0])
+ PKG_CHECK_MODULES(DRM_COMPOSITOR, [libudev >= 136 libdrm >= 2.4.30 gbm])
fi
@@ -161,7 +161,7 @@ AM_CONDITIONAL(ENABLE_RPI_COMPOSITOR, test "x$enable_rpi_compositor" = "xyes")
have_bcm_host="no"
if test "x$enable_rpi_compositor" = "xyes"; then
AC_DEFINE([BUILD_RPI_COMPOSITOR], [1], [Build the compositor for Raspberry Pi])
- PKG_CHECK_MODULES(RPI_COMPOSITOR, [libudev >= 136 mtdev >= 1.1.0])
+ PKG_CHECK_MODULES(RPI_COMPOSITOR, [libudev >= 136])
PKG_CHECK_MODULES(RPI_BCM_HOST, [bcm_host],
[have_bcm_host="yes"
AC_DEFINE([HAVE_BCM_HOST], [1], [have Raspberry Pi BCM headers])],
@@ -176,7 +176,7 @@ AM_CONDITIONAL([ENABLE_FBDEV_COMPOSITOR],
[test x$enable_fbdev_compositor = xyes])
AS_IF([test x$enable_fbdev_compositor = xyes], [
AC_DEFINE([BUILD_FBDEV_COMPOSITOR], [1], [Build the fbdev compositor])
- PKG_CHECK_MODULES([FBDEV_COMPOSITOR], [libudev >= 136 mtdev >= 1.1.0])
+ PKG_CHECK_MODULES([FBDEV_COMPOSITOR], [libudev >= 136 ])
])
AC_ARG_ENABLE([rdp-compositor], [ --enable-rdp-compositor],,
@@ -203,6 +203,17 @@ PKG_CHECK_MODULES(WEBP, [libwebp], [have_webp=yes], [have_webp=no])
AS_IF([test "x$have_webp" = "xyes"],
[AC_DEFINE([HAVE_WEBP], [1], [Have webp])])
+AC_ARG_ENABLE(mtdev,
+ AS_HELP_STRING([--disable-mtdev],
+ [do not support multitouch library libmtdev]),,
+ enable_mtdev=auto)
+if test "x$enable_mtdev" != "xno"; then
+ PKG_CHECK_MODULES(MTDEV, [mtdev >= 1.1.0], [have_mtdev=yes], [have_mtdev=no])
+ AS_IF([test "x$have_mtdev" = "xyes"],
+ [AC_DEFINE([HAVE_MTDEV], [1], [Have Multitouch device support])],
+ [AC_MSG_ERROR("--enable-mtdev but mtdev library not found")])
+fi
+
AC_CHECK_LIB([jpeg], [jpeg_CreateDecompress], have_jpeglib=yes)
if test x$have_jpeglib = xyes; then
JPEG_LIBS="-ljpeg"
diff --git a/src/Makefile.am b/src/Makefile.am
index d06e773..82c183a 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -107,7 +107,8 @@ module_LTLIBRARIES = \
$(fbdev_backend) \
$(rdp_backend)
-noinst_LTLIBRARIES =
+noinst_LTLIBRARIES = \
+ $(libevdev)
if INSTALL_RPI_COMPOSITOR
module_LTLIBRARIES += $(rpi_backend)
@@ -129,11 +130,20 @@ x11_backend_la_CFLAGS = \
x11_backend_la_SOURCES = compositor-x11.c
endif
+libevdev = libevdev.la
+libevdev_la_LIBADD = $(MTDEV_LIBS)
+evdev_la_CFLAGS = \
+ $(MTDEV_CFLAGS)
+libevdev_la_SOURCES = \
+ evdev.c \
+ evdev.h \
+ evdev-touchpad.c
+
if ENABLE_DRM_COMPOSITOR
drm_backend = drm-backend.la
drm_backend_la_LDFLAGS = -module -avoid-version
drm_backend_la_LIBADD = $(COMPOSITOR_LIBS) $(DRM_COMPOSITOR_LIBS) \
- ../shared/libshared.la -lrt
+ libevdev.la ../shared/libshared.la -lrt
drm_backend_la_CFLAGS = \
$(COMPOSITOR_CFLAGS) \
$(DRM_COMPOSITOR_CFLAGS) \
@@ -143,9 +153,6 @@ drm_backend_la_SOURCES = \
tty.c \
udev-seat.c \
udev-seat.h \
- evdev.c \
- evdev.h \
- evdev-touchpad.c \
launcher-util.c \
launcher-util.h \
libbacklight.c \
@@ -172,7 +179,7 @@ rpi_backend_la_LDFLAGS = -module -avoid-version
rpi_backend_la_LIBADD = $(COMPOSITOR_LIBS) \
$(RPI_COMPOSITOR_LIBS) \
$(RPI_BCM_HOST_LIBS) \
- ../shared/libshared.la
+ libevdev.la ../shared/libshared.la
rpi_backend_la_CFLAGS = \
$(GCC_CFLAGS) \
$(COMPOSITOR_CFLAGS) \
@@ -183,10 +190,7 @@ rpi_backend_la_SOURCES = \
rpi-renderer.c \
rpi-renderer.h \
rpi-bcm-stubs.h \
- tty.c \
- evdev.c \
- evdev.h \
- evdev-touchpad.c
+ tty.c
endif
if ENABLE_HEADLESS_COMPOSITOR
@@ -206,7 +210,7 @@ fbdev_backend_la_LDFLAGS = -module -avoid-version
fbdev_backend_la_LIBADD = \
$(COMPOSITOR_LIBS) \
$(FBDEV_COMPOSITOR_LIBS) \
- ../shared/libshared.la
+ libevdev.la ../shared/libshared.la
fbdev_backend_la_CFLAGS = \
$(COMPOSITOR_CFLAGS) \
$(FBDEV_COMPOSITOR_CFLAGS) \
@@ -217,9 +221,6 @@ fbdev_backend_la_SOURCES = \
tty.c \
udev-seat.c \
udev-seat.h \
- evdev.c \
- evdev.h \
- evdev-touchpad.c \
launcher-util.c
endif
diff --git a/src/evdev.c b/src/evdev.c
index 122a2d9..59af038 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -27,7 +27,15 @@
#include <linux/input.h>
#include <unistd.h>
#include <fcntl.h>
+#ifdef HAVE_MTDEV
#include <mtdev.h>
+#else
+struct mtdev
+{ int none;};
+#define mtdev_close_delete(...) do{}while(0)
+#define mtdev_get(...) 0
+#define mtdev_new_open(...) NULL
+#endif
#include "compositor.h"
#include "evdev.h"
@@ -565,11 +573,8 @@ evdev_device_create(struct weston_seat *seat, const char *path, int device_fd)
if (device->dispatch == NULL)
goto err1;
-
if (device->is_mt) {
device->mtdev = mtdev_new_open(device->fd);
- if (!device->mtdev)
- weston_log("mtdev failed to open for %s\n", path);
}
device->source = wl_event_loop_add_fd(ec->input_loop, device->fd,
--
1.7.9.5
More information about the wayland-devel
mailing list