forked from enlightenment/efl
inotify: revert : i want to keep autotools **modularized**. Instead, use in Eio what has been detected in Ecore_File.
SVN revision: 80298
This commit is contained in:
parent
1a3bb9f009
commit
8e1879ade9
60
configure.ac
60
configure.ac
|
@ -104,8 +104,6 @@ AC_ARG_ENABLE([coverage],
|
||||||
|
|
||||||
#### Default values
|
#### Default values
|
||||||
|
|
||||||
want_inotify="no"
|
|
||||||
|
|
||||||
requirements_pc_crypto=""
|
requirements_pc_crypto=""
|
||||||
requirements_pc_deps_crypto=""
|
requirements_pc_deps_crypto=""
|
||||||
requirements_libs_crypto=""
|
requirements_libs_crypto=""
|
||||||
|
@ -279,11 +277,6 @@ case "$host_os" in
|
||||||
MODULE_ARCH="$host_os-$host_cpu-v_maj.v_min.v_mic"
|
MODULE_ARCH="$host_os-$host_cpu-v_maj.v_min.v_mic"
|
||||||
MODULE_EXT=".dll"
|
MODULE_EXT=".dll"
|
||||||
;;
|
;;
|
||||||
linux*)
|
|
||||||
want_inotify="yes"
|
|
||||||
MODULE_ARCH="$host_os-$host_cpu-v_maj.v_min.v_mic"
|
|
||||||
MODULE_EXT=".so"
|
|
||||||
;;
|
|
||||||
*)
|
*)
|
||||||
MODULE_ARCH="$host_os-$host_cpu-v_maj.v_min.v_mic"
|
MODULE_ARCH="$host_os-$host_cpu-v_maj.v_min.v_mic"
|
||||||
MODULE_EXT=".so"
|
MODULE_EXT=".so"
|
||||||
|
@ -481,17 +474,6 @@ sys/mman.h \
|
||||||
unistd.h \
|
unistd.h \
|
||||||
])
|
])
|
||||||
|
|
||||||
have_inotify="no"
|
|
||||||
if test "x${want_inotify}" = "xyes" ; then
|
|
||||||
AC_CHECK_HEADER([sys/inotify.h],
|
|
||||||
[
|
|
||||||
AC_DEFINE([HAVE_INOTIFY], [1], [File monitoring with Inotify])
|
|
||||||
have_inotify="yes"
|
|
||||||
],
|
|
||||||
[have_inotify="no"])
|
|
||||||
fi
|
|
||||||
AM_CONDITIONAL([HAVE_INOTIFY], [test "x${have_inotify}" = "xyes"])
|
|
||||||
|
|
||||||
EFL_CHECK_PATH_MAX
|
EFL_CHECK_PATH_MAX
|
||||||
|
|
||||||
|
|
||||||
|
@ -1843,13 +1825,19 @@ fi
|
||||||
|
|
||||||
# cserve2 only works on Linux so far.
|
# cserve2 only works on Linux so far.
|
||||||
|
|
||||||
if test "x${efl_func_shm_open}" = "xno" -o "x${have_inotify}" = "xno"; then
|
if test "x${efl_func_shm_open}" = "xno" ; then
|
||||||
want_evas_cserve2="no"
|
want_evas_cserve2="no"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_DEFINE_IF([EVAS_CSERVE2],
|
if test "x${want_evas_cserve2}" = "xyes" ; then
|
||||||
[test "x${want_evas_cserve2}" = "xyes"],
|
AC_CHECK_HEADERS([sys/epoll.h sys/inotify.h sys/signalfd.h],
|
||||||
[1], [Shared cache server.])
|
[],
|
||||||
|
[want_evas_cserve2="no"])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x${want_evas_cserve2}" = "xyes" ; then
|
||||||
|
AC_DEFINE([EVAS_CSERVE2], [1], [Shared cache server.])
|
||||||
|
fi
|
||||||
AM_CONDITIONAL([EVAS_CSERVE2], [test "x${want_evas_cserve2}" = "xyes"])
|
AM_CONDITIONAL([EVAS_CSERVE2], [test "x${want_evas_cserve2}" = "xyes"])
|
||||||
|
|
||||||
### Configuration
|
### Configuration
|
||||||
|
@ -2398,6 +2386,18 @@ AC_ARG_ENABLE([poll],
|
||||||
],
|
],
|
||||||
[want_poll="yes"])
|
[want_poll="yes"])
|
||||||
|
|
||||||
|
AC_ARG_ENABLE([inotify],
|
||||||
|
[AC_HELP_STRING([--disable-inotify],
|
||||||
|
[disable inotify in the ecore_file module. @<:@default=enabled@:>@])],
|
||||||
|
[
|
||||||
|
if test "x${enableval}" = "xyes" ; then
|
||||||
|
want_inotify="yes"
|
||||||
|
else
|
||||||
|
want_inotify="no"
|
||||||
|
fi
|
||||||
|
],
|
||||||
|
[want_inotify="yes"])
|
||||||
|
|
||||||
AC_ARG_ENABLE([atfile-source],
|
AC_ARG_ENABLE([atfile-source],
|
||||||
[AC_HELP_STRING([--disable-atfile-source],
|
[AC_HELP_STRING([--disable-atfile-source],
|
||||||
[disable use of atfile source functions as openat and mkdirat @<:@default=detect@:>@])],
|
[disable use of atfile source functions as openat and mkdirat @<:@default=detect@:>@])],
|
||||||
|
@ -2458,6 +2458,19 @@ requirements_pc_ecore_file="ecore-con >= ${PACKAGE_VERSION} ecore >= ${PACKAGE_V
|
||||||
|
|
||||||
### Checks for header files
|
### Checks for header files
|
||||||
|
|
||||||
|
have_inotify="no"
|
||||||
|
if test "x${want_inotify}" = "xyes" ; then
|
||||||
|
AC_CHECK_HEADER([sys/inotify.h],
|
||||||
|
[
|
||||||
|
AC_DEFINE([HAVE_INOTIFY], [1], [File monitoring with Inotify])
|
||||||
|
have_inotify="yes"
|
||||||
|
],
|
||||||
|
[have_inotify="no"])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([whether inotify is to be used for filemonitoring])
|
||||||
|
AC_MSG_RESULT(${have_inotify})
|
||||||
|
|
||||||
### Checks for types
|
### Checks for types
|
||||||
|
|
||||||
### Checks for structures
|
### Checks for structures
|
||||||
|
@ -3959,9 +3972,12 @@ setxattr("/", "user.ethumb.md5", NULL, 0, 0);
|
||||||
AC_MSG_RESULT([${have_xattr}])
|
AC_MSG_RESULT([${have_xattr}])
|
||||||
|
|
||||||
# Check for inotify specificity
|
# Check for inotify specificity
|
||||||
|
have_inotify="no"
|
||||||
have_notify_win32="no"
|
have_notify_win32="no"
|
||||||
|
EIO_CHECK_INOTIFY([have_inotify="yes"], [have_inotify="no"])
|
||||||
EIO_CHECK_NOTIFY_WIN32([have_notify_win32="yes"], [have_notify_win32="no"])
|
EIO_CHECK_NOTIFY_WIN32([have_notify_win32="yes"], [have_notify_win32="no"])
|
||||||
|
|
||||||
|
AM_CONDITIONAL([EIO_HAVE_INOTIFY], [test "x${have_inotify}" = "xyes"])
|
||||||
AM_CONDITIONAL([EIO_HAVE_WINCHANGE], [test "x${have_notify_win32}" = "xyes"])
|
AM_CONDITIONAL([EIO_HAVE_WINCHANGE], [test "x${have_notify_win32}" = "xyes"])
|
||||||
|
|
||||||
#### End of Eio
|
#### End of Eio
|
||||||
|
|
|
@ -1,3 +1,47 @@
|
||||||
|
dnl use: EIO_CHECK_INOTIFY([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
||||||
|
AC_DEFUN([EIO_CHECK_INOTIFY],
|
||||||
|
[
|
||||||
|
_eio_have_inotify="no"
|
||||||
|
|
||||||
|
dnl We need to check if the right inotify version is accessible
|
||||||
|
|
||||||
|
dnl It is hard to find a good test on how to check the correct
|
||||||
|
dnl inotify version. They changed the headers a lot.
|
||||||
|
dnl in kernel 2.6.13 __NR_inotify_init was added to the defined syscalls
|
||||||
|
dnl in asm/unistd.h and IN_MOVE_SELF was added to linux/inotify.h
|
||||||
|
dnl so with this check you need a very new kernel and kernel-headers!
|
||||||
|
|
||||||
|
if ! test "x${have_windows}" = "xyes" ; then
|
||||||
|
|
||||||
|
AC_CHECK_LIB([c], [inotify_init],
|
||||||
|
[
|
||||||
|
AC_DEFINE([HAVE_INOTIFY], [1], [ File monitoring with Inotify ])
|
||||||
|
AC_DEFINE([HAVE_SYS_INOTIFY], [1], [ File monitoring with Inotify - sys/inotify.h ])
|
||||||
|
_eio_have_inotify="yes"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
AC_TRY_COMPILE(
|
||||||
|
[
|
||||||
|
#include <asm/unistd.h>
|
||||||
|
#include <linux/inotify.h>
|
||||||
|
],
|
||||||
|
[
|
||||||
|
int a = __NR_inotify_init; int b = IN_MOVE_SELF;
|
||||||
|
],
|
||||||
|
[
|
||||||
|
AC_DEFINE([HAVE_INOTIFY], [1], [ File monitoring with Inotify ])
|
||||||
|
_eio_have_inotify="yes"
|
||||||
|
],
|
||||||
|
[_eio_have_inotify="no"])
|
||||||
|
])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([whether inotify is to be used for filemonitoring])
|
||||||
|
AC_MSG_RESULT([${_eio_have_inotify}])
|
||||||
|
|
||||||
|
AS_IF([test "x${_eio_have_inotify}" = "xyes"], [$1], [$2])
|
||||||
|
])
|
||||||
|
|
||||||
dnl use: EIO_CHECK_NOTIFY_WIN32([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
dnl use: EIO_CHECK_NOTIFY_WIN32([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
||||||
AC_DEFUN([EIO_CHECK_NOTIFY_WIN32],
|
AC_DEFUN([EIO_CHECK_NOTIFY_WIN32],
|
||||||
[
|
[
|
||||||
|
|
|
@ -18,7 +18,7 @@ lib/eio/eio_single.c \
|
||||||
lib/eio/eio_xattr.c \
|
lib/eio/eio_xattr.c \
|
||||||
lib/eio/eio_private.h
|
lib/eio/eio_private.h
|
||||||
|
|
||||||
if HAVE_INOTIFY
|
if EIO_HAVE_INOTIFY
|
||||||
lib_eio_libeio_la_SOURCES += lib/eio/eio_monitor_inotify.c
|
lib_eio_libeio_la_SOURCES += lib/eio/eio_monitor_inotify.c
|
||||||
else
|
else
|
||||||
if EIO_HAVE_WINCHANGE
|
if EIO_HAVE_WINCHANGE
|
||||||
|
|
|
@ -20,8 +20,11 @@
|
||||||
#include "eio_private.h"
|
#include "eio_private.h"
|
||||||
#include "Eio.h"
|
#include "Eio.h"
|
||||||
|
|
||||||
#ifdef HAVE_INOTIFY
|
#ifdef HAVE_SYS_INOTIFY
|
||||||
# include <sys/inotify.h>
|
# include <sys/inotify.h>
|
||||||
|
#else
|
||||||
|
# include <asm/unistd.h>
|
||||||
|
# include <linux/inotify.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*============================================================================*
|
/*============================================================================*
|
||||||
|
@ -67,6 +70,26 @@ static const Eio_Inotify_Table match[] = {
|
||||||
EIO_INOTIFY_LINE(IN_UNMOUNT, SELF_DELETED, SELF_DELETED)
|
EIO_INOTIFY_LINE(IN_UNMOUNT, SELF_DELETED, SELF_DELETED)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifndef HAVE_SYS_INOTIFY
|
||||||
|
static inline int
|
||||||
|
inotify_init(void)
|
||||||
|
{
|
||||||
|
return syscall(__NR_inotify_init);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
inotify_add_watch(int fd, const char *name, __u32 mask)
|
||||||
|
{
|
||||||
|
return syscall(__NR_inotify_add_watch, fd, name, mask);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
inotify_rm_watch(int fd, __u32 wd)
|
||||||
|
{
|
||||||
|
return syscall(__NR_inotify_rm_watch, fd, wd);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_eio_inotify_del(void *data)
|
_eio_inotify_del(void *data)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue