diff --git a/Makefile.am b/Makefile.am index 480acdc91..cf8fd64d4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -294,7 +294,7 @@ src_mpd_SOURCES = \ src/stored_playlist.c \ src/timer.c -if HAVE_INOTIFY +if ENABLE_INOTIFY src_mpd_SOURCES += \ src/inotify_source.c \ src/inotify_queue.c \ diff --git a/configure.ac b/configure.ac index 3ffe89b03..792fcd675 100644 --- a/configure.ac +++ b/configure.ac @@ -121,8 +121,19 @@ AC_CHECK_HEADERS(locale.h) AC_CHECK_HEADERS(valgrind/memcheck.h) AC_CHECK_FUNCS(inotify_init) -AM_CONDITIONAL(HAVE_INOTIFY, test x$ac_cv_func_inotify_init = xyes) +AC_ARG_ENABLE(inotify, + AS_HELP_STRING([--disable-inotify], + [disable support Inotify automatic database update (default: enabled) ]),, + [enable_inotify=yes]) +if test x$ac_cv_func_inotify_init = xno; then + enable_inotify=no +fi + +if test x$enable_inotify = xyes; then + AC_DEFINE([ENABLE_INOTIFY], 1, [Define to enable inotify support]) +fi +AM_CONDITIONAL(ENABLE_INOTIFY, test x$enable_inotify = xyes) dnl dnl mandatory libraries @@ -273,6 +284,7 @@ fi AM_CONDITIONAL(ENABLE_SQLITE, test x$enable_sqlite = xyes) + dnl dnl input plugins dnl @@ -1624,6 +1636,12 @@ else echo " libcue support ................disabled" fi +if test x$enable_inotify = xyes; then + echo " Inotify support (autoupdate) ..enabled" +else + echo " Inotify support (autoupdate) ..disabled" +fi + echo "" echo "##########################################" echo "" diff --git a/src/main.c b/src/main.c index dfd5d49d8..49190af71 100644 --- a/src/main.c +++ b/src/main.c @@ -56,7 +56,10 @@ #include "dirvec.h" #include "songvec.h" #include "tag_pool.h" + +#ifdef ENABLE_INOTIFY #include "inotify_update.h" +#endif #ifdef ENABLE_SQLITE #include "sticker.h" @@ -369,8 +372,10 @@ int main(int argc, char *argv[]) glue_state_file_init(); +#ifdef ENABLE_INOTIFY if (mapper_has_music_directory()) mpd_inotify_init(); +#endif config_global_check(); @@ -386,7 +391,9 @@ int main(int argc, char *argv[]) g_main_loop_unref(main_loop); +#ifdef ENABLE_INOTIFY mpd_inotify_finish(); +#endif state_file_finish(); pc_kill();