1# -*- Autoconf -*-
2# Process this file with autoconf to produce a configure script.
3
4AC_PREREQ(2.59)
5AC_INIT([inotify-tools], [3.21.9.6])
6AC_CONFIG_AUX_DIR([config])
7AC_CONFIG_SRCDIR([src/inotifywait.c])
8AC_CONFIG_HEADERS([config.h])
9AC_CONFIG_HEADERS([libinotifytools/src/inotifytools/inotify.h])
10AC_CONFIG_HEADERS([libinotifytools/src/inotifytools/fanotify.h])
11AC_CONFIG_MACRO_DIR([m4])
12AC_DEFINE([_GNU_SOURCE], [], [For a few GNU-specific functions])
13AC_PROG_MAKE_SET
14
15# Checks for programs.
16AC_PROG_CC
17AM_INIT_AUTOMAKE
18LT_INIT
19
20AC_PATH_PROG(DOXYGEN, doxygen, NO_DOXYGEN)
21
22AC_ARG_ENABLE(doxygen,
23    AS_HELP_STRING([--enable-doxygen],[enable libinotifytools API docs generation]),
24    DOXYGEN_ENABLE=$enableval,
25   [if test "$DOXYGEN" != NO_DOXYGEN; then
26        DOXYGEN_ENABLE=yes
27    else
28        DOXYGEN_ENABLE=no
29    fi]
30)
31
32if test "$DOXYGEN_ENABLE" = "yes" && test "$DOXYGEN" = "NO_DOXYGEN"; then
33	AC_MSG_ERROR([Cannot find doxygen!  Make sure it is in PATH.])
34fi
35
36if test "$DOXYGEN_ENABLE" = "no"; then
37	DOXYGEN=NO_DOXYGEN
38fi
39AM_CONDITIONAL([DOXYGEN_ENABLE], test x$DOXYGEN != xNO_DOXYGEN )
40
41AC_ARG_ENABLE(static-binary,
42    AS_HELP_STRING([--enable-static-binary],[enable static linking of binaries]),
43    STATIC_BINARY_ENABLE=$enableval, STATIC_BINARY_ENABLE=no)
44AM_CONDITIONAL([STATIC_BINARY_ENABLE], test "$STATIC_BINARY_ENABLE" = "yes")
45
46
47# Checks for libraries.
48AC_SEARCH_LIBS(inotify_init, inotify)
49
50# Checks for header files.
51AC_CHECK_HEADERS([sys/inotify.h sys/fanotify.h mcheck.h])
52AC_LANG(C)
53AC_MSG_CHECKING([whether sys/inotify.h actually works])
54AC_COMPILE_IFELSE(
55  [AC_LANG_PROGRAM([[#include <sys/inotify.h>]],
56                  [[return (-1 == inotify_init());]]
57  )],
58  [AC_MSG_RESULT([yup]); AC_DEFINE([SYS_INOTIFY_H_EXISTS_AND_WORKS],[1],[sys/inotify.h exists and works correctly])],
59  [AC_MSG_RESULT([nope, using own inotify headers])]
60)
61
62# Checks for fanotify support.
63AC_MSG_CHECKING([whether sys/fanotify.h actually works])
64AC_COMPILE_IFELSE(
65  [AC_LANG_PROGRAM([[#include <sys/fanotify.h>]],
66                  [[return (-1 == fanotify_init(FAN_REPORT_DFID_NAME, 0));]]
67  )],
68  [AC_MSG_RESULT([yup]); DEFAULT_FANOTIFY=yes; AC_DEFINE([SYS_FANOTIFY_H_EXISTS_AND_WORKS],[1],[sys/fanotify.h exists and works correctly])],
69  [AC_MSG_RESULT([nope, using own fanotify headers]); DEFAULT_FANOTIFY=no]
70)
71
72AC_ARG_ENABLE(fanotify,
73    AS_HELP_STRING([--enable-fanotify],[enable fanotify support]),
74    ENABLE_FANOTIFY=$enableval, DOXYGEN_ENABLE="$DEFAULT_FANOTIFY"
75)
76AM_CONDITIONAL([ENABLE_FANOTIFY], test "$ENABLE_FANOTIFY" = "yes")
77
78# Checks for typedefs, structures, and compiler characteristics.
79AC_C_CONST
80AC_C_INLINE
81
82# Checks for library functions.
83AC_CHECK_FUNCS([daemon])
84
85# Set variables used in man page templates
86MAN_DATE=$(date -u -r ChangeLog +'%Y-%m-%d')
87MAN_PACKAGE_VERSION=$PACKAGE_VERSION
88AC_SUBST([MAN_DATE])
89AC_SUBST([MAN_PACKAGE_VERSION])
90
91# Output...
92AC_CONFIG_FILES([
93  Makefile
94  src/Makefile
95  man/Makefile
96  man/inotifywait.1
97  man/inotifywatch.1
98  man/fsnotifywait.1
99  man/fsnotifywatch.1
100  libinotifytools/Makefile
101  libinotifytools/src/Makefile
102  libinotifytools/src/inotifytools/Makefile
103])
104AC_OUTPUT
105