[PATCH 03/18] evdev: automatic configuration of mtdev library support
sardemff7+wayland at sardemff7.net
sardemff7+wayland at sardemff7.net
Fri Jun 21 02:08:40 PDT 2013
On 21/06/2013 10:39, mchalain [marc.chalain at gmail.com] wrote:
> From: mchalain <marc.chalain at gmail.com>
>
> it allows the --disable-mtdev option at configuration.
> evdev.c creates empty macros for mtdev functions not availlables
>
> ---
> weston/configure.ac | 17 ++++++++++++++---
> weston/src/evdev.c | 11 ++++++++---
> 2 files changed, 22 insertions(+), 6 deletions(-)
>
> diff --git a/weston/configure.ac b/weston/configure.ac
> index b625221..2bdff35 100644
> --- a/weston/configure.ac
> +++ b/weston/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)
> +AM_CONDITIONAL(ENABLE_MTDEV, test "x$enable_mtdev" = "xyes")
If you do not use this, you should probably not set it.
> +if test "x$enable_mtdev" != "xno"; then
> + PKG_CHECK_MODULES(MTDEV, [mtdev >= 1.1.0], [have_mtdev=yes], [have_mtdev=no])
Where do you use MTDEV_{CFLAGS,LIBS}?
> + AS_IF([test "x$have_mtdev" = "xyes"],
> + [AC_DEFINE([HAVE_MTDEV], [1], [Have Multitouch device support])])
What if the user specified --enable-mtdev but the package is not
available? It should be an error, not a silent ignore. :-)
> +fi
> +
> AC_CHECK_LIB([jpeg], [jpeg_CreateDecompress], have_jpeglib=yes)
> if test x$have_jpeglib = xyes; then
> JPEG_LIBS="-ljpeg"
> diff --git a/weston/src/evdev.c b/weston/src/evdev.c
> index 122a2d9..59af038 100644
> --- a/weston/src/evdev.c
> +++ b/weston/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);
IMO, it should still log it if mtdev support is enabled.
> }
>
> device->source = wl_event_loop_add_fd(ec->input_loop, device->fd,
>
--
Quentin “Sardem FF7” Glidic
More information about the wayland-devel
mailing list