<div dir="ltr">OK I used macro instead inline function. It's the same for the compiler (in this case).<br>evdev: add --disable-mtdev option to configure and bypass the mtdev functions when the library is not available.<br>
<br>---<br> <a href="http://configure.ac">configure.ac</a> |   17 ++++++++++++++---<br> src/evdev.c  |    9 ++++++++-<br> 2 files changed, 22 insertions(+), 4 deletions(-)<br><br>diff --git a/<a href="http://configure.ac">configure.ac</a> b/<a href="http://configure.ac">configure.ac</a><br>
index b625221..2bdff35 100644<br>--- a/<a href="http://configure.ac">configure.ac</a><br>+++ b/<a href="http://configure.ac">configure.ac</a><br>@@ -132,7 +132,7 @@ AC_ARG_ENABLE(drm-compositor, [  --enable-drm-compositor],,<br>
 AM_CONDITIONAL(ENABLE_DRM_COMPOSITOR, test x$enable_drm_compositor = xyes -a x$enable_egl = xyes)<br> if test x$enable_drm_compositor = xyes -a x$enable_egl = xyes; then<br>   AC_DEFINE([BUILD_DRM_COMPOSITOR], [1], [Build the DRM compositor])<br>
-  PKG_CHECK_MODULES(DRM_COMPOSITOR, [libudev >= 136 libdrm >= 2.4.30 gbm mtdev >= 1.1.0])<br>+  PKG_CHECK_MODULES(DRM_COMPOSITOR, [libudev >= 136 libdrm >= 2.4.30 gbm])<br> fi<br> <br> <br>@@ -161,7 +161,7 @@ AM_CONDITIONAL(ENABLE_RPI_COMPOSITOR, test "x$enable_rpi_compositor" = "xyes")<br>
 have_bcm_host="no"<br> if test "x$enable_rpi_compositor" = "xyes"; then<br>   AC_DEFINE([BUILD_RPI_COMPOSITOR], [1], [Build the compositor for Raspberry Pi])<br>-  PKG_CHECK_MODULES(RPI_COMPOSITOR, [libudev >= 136 mtdev >= 1.1.0])<br>
+  PKG_CHECK_MODULES(RPI_COMPOSITOR, [libudev >= 136])<br>   PKG_CHECK_MODULES(RPI_BCM_HOST, [bcm_host],<br>                     [have_bcm_host="yes"<br>                      AC_DEFINE([HAVE_BCM_HOST], [1], [have Raspberry Pi BCM headers])],<br>
@@ -176,7 +176,7 @@ AM_CONDITIONAL([ENABLE_FBDEV_COMPOSITOR],<br>                [test x$enable_fbdev_compositor = xyes])<br> AS_IF([test x$enable_fbdev_compositor = xyes], [<br>   AC_DEFINE([BUILD_FBDEV_COMPOSITOR], [1], [Build the fbdev compositor])<br>
-  PKG_CHECK_MODULES([FBDEV_COMPOSITOR], [libudev >= 136 mtdev >= 1.1.0])<br>+  PKG_CHECK_MODULES([FBDEV_COMPOSITOR], [libudev >= 136 ])<br> ])<br> <br> AC_ARG_ENABLE([rdp-compositor], [  --enable-rdp-compositor],,<br>
@@ -203,6 +203,17 @@ PKG_CHECK_MODULES(WEBP, [libwebp], [have_webp=yes], [have_webp=no])<br> AS_IF([test "x$have_webp" = "xyes"],<br>       [AC_DEFINE([HAVE_WEBP], [1], [Have webp])])<br> <br>+AC_ARG_ENABLE(mtdev,<br>
+              AS_HELP_STRING([--disable-mtdev],<br>+                             [do not support multitouch library libmtdev]),,<br>+    Â Â Â Â Â  enable_mtdev=auto)<br>+AM_CONDITIONAL(ENABLE_MTDEV, test "x$enable_mtdev" = "xyes")<br>
+if test "x$enable_mtdev" != "xno"; then<br>+    PKG_CHECK_MODULES(MTDEV, [mtdev >= 1.1.0], [have_mtdev=yes], [have_mtdev=no])<br>+    AS_IF([test "x$have_mtdev" = "xyes"],<br>+    Â Â Â  Â  [AC_DEFINE([HAVE_MTDEV], [1], [Have Multitouch device support])])<br>
+fi<br>+<br> AC_CHECK_LIB([jpeg], [jpeg_CreateDecompress], have_jpeglib=yes)<br> if test x$have_jpeglib = xyes; then<br>   JPEG_LIBS="-ljpeg"<br>diff --git a/src/evdev.c b/src/evdev.c<br>index 122a2d9..b2a5eba 100644<br>
--- a/src/evdev.c<br>+++ b/src/evdev.c<br>@@ -27,7 +27,15 @@<br> #include <linux/input.h><br> #include <unistd.h><br> #include <fcntl.h><br>+#ifdef HAVE_MTDEV<br> #include <mtdev.h><br>+#else<br>+struct mtdev<br>
+{ int none;};<br>+#define mtdev_close_delete(...) do{}while(0)<br>+#define mtdev_get(...) 0<br>+#define mtdev_new_open(...) NULL<br>+#endif<br> <br> #include "compositor.h"<br> #include "evdev.h"<br>@@ -565,7 +573,6 @@ evdev_device_create(struct weston_seat *seat, const char *path, int device_fd)<br>
     if (device->dispatch == NULL)<br>     Â Â Â  goto err1;<br> <br>-<br>     if (device->is_mt) {<br>     Â Â Â  device->mtdev = mtdev_new_open(device->fd);<br>     Â Â Â  if (!device->mtdev)<br>-- <br>1.7.9.5<br>
<br><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/6/11 Pekka Paalanen <span dir="ltr"><<a href="mailto:ppaalanen@gmail.com" target="_blank">ppaalanen@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Tue, 11 Jun 2013 14:41:18 +0200<br>
Marc Chalain <<a href="mailto:marc.chalain@gmail.com">marc.chalain@gmail.com</a>> wrote:<br>
<br>
> Hello<br>
> The detection of the library is automatically done during the<br>
> configuration. The option is not useful.<br>
><br>
> And the use #ifdef HAVE_MTDEV seems to be simpler, if in the future this<br>
> feature will disappear.<br>
><br>
> What I do ? I send again or I increase the complexity.<br>
<br>
</div>Send again. I think distro packagers would like a ./configure switch<br>
with yes/no/auto, defaulting to auto.<br>
<br>
I didn't even realize the --disable-mtdev was not actually a configure<br>
option.<br>
<br>
Here's what I meant earlier (pseudo code):<br>
<br>
#ifdef HAVE_MTDEV<br>
#include <mtdev.h><br>
#else<br>
struct mtdev<br>
{<br>
  Â  Â  Â  int dummy;<br>
};<br>
<br>
static inline int<br>
mtdev_get(struct mtdev *, int, blah*, int)<br>
{<br>
  Â  Â  Â  return -1;<br>
}<br>
<br>
static inline void<br>
mtdev_close_delete(struct mtdev *)<br>
{<br>
}<br>
#endif<br>
<br>
That way the significant code will have only one #ifdef after the above<br>
in the top of the file.<br>
<br>
device->mtdev will always be NULL, anyway, so these stubs will never be<br>
called, and the compiler is still happy.<br>
<br>
<br>
Thanks,<br>
pq<br>
</blockquote></div><br></div>