PKG_PROG_PKG_CONFIG()
PKG_CHECK_MODULES(MTDEV, [mtdev >= 1.1.0])
-PKG_CHECK_MODULES(LIBUDEV, [libudev])
+PKG_CHECK_MODULES(LIBUDEV, [libudev], [HAVE_UDEV="yes"], [HAVE_UDEV="no"])
PKG_CHECK_MODULES(LIBEVDEV, [libevdev >= 0.4])
AC_CHECK_LIB([m], [atan2])
AC_CHECK_LIB([rt], [clock_gettime])
AC_DEFINE(ENABLE_TTRACE, 1, [ttrace available])
fi
+# Check for udev property
+if test "x$HAVE_UDEV" = "xyes"; then
+ AC_SEARCH_LIBS([input_set_default_property], [udev],
+ [have_udev_property="yes"],
+ [have_udev_property="no"])
+
+ if test "x$have_udev_property" = "xyes"; then
+ AC_DEFINE(HAVE_INPUT_SET_DEFAULT_PROPERTY, 1,
+ [have input_set_default_property function])
+ fi
+fi
+
AM_CONDITIONAL(HAVE_VALGRIND, [test "x$VALGRIND" != "x"])
AM_CONDITIONAL(BUILD_TESTS, [test "x$build_tests" = "xyes"])
AM_CONDITIONAL(BUILD_DOCS, [test "x$build_documentation" = "xyes"])
int rc;
int fd;
int unhandled_device = 0;
- const char *devnode = udev_device_get_devnode(udev_device);
+ const char *devnode;
char buf[STRERR_BUFSIZE] = {0, };
+#ifdef HAVE_INPUT_SET_DEFAULT_PROPERTY
+ if (input_set_default_property(udev_device) < 0)
+ return NULL;
+#endif
+ devnode = udev_device_get_devnode(udev_device);
+
/* Use non-blocking mode so that we can loop on read on
* evdev_device_data() until all events on the fd are
* read. mtdev_get() also expects this. */