[PATCH] build: disabling the mtdev library support

sardemff7+wayland at sardemff7.net sardemff7+wayland at sardemff7.net
Tue Jun 25 08:37:52 PDT 2013


On 25/06/2013 17:28, mchalain [marc.chalain at gmail.com] wrote:
> 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    |   20 +++++++++++++++-----
>   src/Makefile.am |   27 ++++++++++++++-------------
>   src/evdev.c     |   11 ++++++++---
>   3 files changed, 37 insertions(+), 21 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index b625221..4bfce58 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,16 @@ 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])])
> +fi
> +

Again, please put an AC_MSG_ERROR if it is explicitly enabled and the 
library is not found.


>   AC_CHECK_LIB([jpeg], [jpeg_CreateDecompress], have_jpeglib=yes)
>   if test x$have_jpeglib = xyes; then
>     JPEG_LIBS="-ljpeg"
> @@ -259,8 +269,8 @@ AS_IF([test "x$enable_resize_optimization" = "xyes"],
>         [AC_DEFINE([USE_RESIZE_POOL], [1], [Use resize memory pool as a performance optimization])])
>
>   AC_ARG_ENABLE(weston-launch, [  --enable-weston-launch],, enable_weston_launch=yes)
> -AM_CONDITIONAL(BUILD_WESTON_LAUNCH, test x$enable_weston_launch == xyes)
> -if test x$enable_weston_launch == xyes; then
> +AM_CONDITIONAL(BUILD_WESTON_LAUNCH, test x$enable_weston_launch = xyes)
> +if test x$enable_weston_launch = xyes; then
>     PKG_CHECK_MODULES(WESTON_LAUNCH, [libdrm])
>     PKG_CHECK_MODULES(SYSTEMD_LOGIN, [libsystemd-login],
>   		    [have_systemd_login=yes], [have_systemd_login=no])

You should remove that hunk (git checkout -p).


> diff --git a/src/Makefile.am b/src/Makefile.am
> index d06e773..b16bc80 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -100,6 +100,7 @@ module_LTLIBRARIES =				\
>   	$(tablet_shell)				\
>   	$(cms_static)				\
>   	$(cms_colord)				\
> +	$(libevdev)					\
>   	$(x11_backend)				\
>   	$(drm_backend)				\
>   	$(wayland_backend)			\

No, it is not a module, you must use noinst_LTLIBRARIES here, see below.


> @@ -129,11 +130,20 @@ x11_backend_la_CFLAGS =				\
>   x11_backend_la_SOURCES = compositor-x11.c
>   endif
>
> +libevdev = libevdev.la

noinst_LTLIBRARIES += 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

Just "libevdev.la" is fine.


>   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

Same here.


>   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

Same thing here.


>   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,
>


-- 

Quentin “Sardem FF7” Glidic


More information about the wayland-devel mailing list