Document the slocate database format
[findutils.git] / configure.in
blobee7e798cfd9e9b8fafc9bc96ffbbde2efc6d237e
1 dnl Process this file with autoconf to produce a configure script.
2 AC_INIT([GNU findutils], 4.3.5-CVS, [bug-findutils@gnu.org])
3 AC_CONFIG_AUX_DIR(build-aux)
4 AM_INIT_AUTOMAKE
6 AC_CONFIG_SRCDIR([find/pred.c])
7 AC_CONFIG_HEADERS([config.h])
8 AC_CANONICAL_HOST
9 AC_CONFIG_MACRO_DIR(gnulib/m4)
11 dnl Set of available languages.
12 ALL_LINGUAS="be bg ca da de el eo es et fi fr ga gl hr hu id it ja ko lg ms nl pl pt pt_BR ro ru rw sk sl sr sv tr uk vi zh_CN zh_TW"
14 AC_SUBST(INCLUDES)dnl
15 AC_SUBST(AUXDIR,$ac_aux_dir)
16 dnl check for --with-fts
17 FIND_WITH_FTS
19 AC_ARG_ENABLE(id-cache,
20 [  --enable-id-cache       cache all UIDs & GIDs; avoid if using NIS or Hesiod],
21   AC_DEFINE(CACHE_IDS, 1, [Define if you want find -nouser and -nogroup to make tables of
22    used UIDs and GIDs at startup instead of using getpwuid or
23    getgrgid when needed.  Speeds up -nouser and -nogroup unless you
24    are running NIS or Hesiod, which make password and group calls
25    very expensive.]))
27 AC_ARG_ENABLE(debug,
28         AS_HELP_STRING(--enable-debug,Enable debugging output which is likely to be interesting to people debugging findutils),
29         [ac_cv_debug=$enableval],[ac_cv_debug=no])
31 AC_ARG_ENABLE(leaf-optimisation,
32         AS_HELP_STRING(--enable-leaf-optimisation,Enable an optimisation which saves lstat calls to identify subdirectories on filesystems having traditional Unix semantics),
33         [ac_cv_leaf_optimisation=$enableval],[ac_cv_leaf_optimisation=yes])
35 AC_ARG_ENABLE(d_type-optimization,
36         AS_HELP_STRING(--enable-d_type-optimization,Make use of the file type data returned in struct dirent.d_type by readdir()),
37         [ac_cv_d_type=$enableval],[ac_cv_d_type=yes])
39 dnl This one has no default, because otherwise we would have to say 
40 dnl both --enable-d_type-optimisation=no and --enable-d_type-optimization=no
41 dnl to turn it off.
42 AC_ARG_ENABLE(d_type-optimisation,
43         AS_HELP_STRING(--enable-d_type-optimisation,Synonym for --enable-d_type-optimization),
44         [ac_cv_d_type=$enableval],[])
47 AC_MSG_CHECKING([whether debug output should be produced])
48 if test x$ac_cv_debug = xno; then
49    AC_MSG_RESULT([no])
50 else
51    AC_MSG_RESULT([yes])
52    AC_DEFINE(DEBUG, 1, [Define if you want to see find's innards])
53    AC_DEFINE(DEBUG_STAT, 1, [Define if you want to see a message every time find calls the stat() system call])
56 AC_MSG_CHECKING([for leaf optimisation])
57 if test x$ac_cv_leaf_optimisation = xno; then
58    AC_MSG_RESULT([no])
59 else
60    AC_MSG_RESULT([yes])
61    AC_DEFINE(LEAF_OPTIMISATION, 1, [Define if you want to use the leaf optimisation (this can still be turned off with -noleaf)])
66 dnl Checks for programs.
67 AC_PROG_CC
68 AC_PROG_CPP
70 AC_AIX
73 dnl AC_MINIX
74 dnl for gnulib
75 gl_EARLY
76 dnl gl_EARLY calls AC_GNU_SOURCE anyway.
79 AC_ISC_POSIX
80 AM_C_PROTOTYPES
82 AC_PROG_INSTALL
83 AC_PROG_RANLIB
84 dnl AC_PROG_LIBTOOL
85 AC_PROG_MAKE_SET
86 AC_SYS_LARGEFILE
89 gl_INIT
93 dnl Older versions of gnulib/m4/nls.m4 provide AM_MKINSTALLDIRS.
94 dnl The current version of gnulib does not, but the version of 
95 dnl po/Makefile.in.in that comes with gettext-0.14.6 expects
96 dnl that @MKINSTALLDIRS@ will be expanded.
97 AM_MKINSTALLDIRS
99 dnl lib/regexprops needs to be a native program, because we need to 
100 dnl run it in order to generate the documentation about the properties
101 dnl of regular expressions.  See lib/Makefile.am.
102 AM_CONDITIONAL(CROSS_COMPILING, [[test "x$cross_compiling" = xyes]])
104 dnl Try to get a POSIX.1 environment.
106 dnl Checks for libraries.  If getpwnam() isn't present in the 
107 dnl C library, try -lsun.
108 AC_CHECK_FUNC(getpwnam, [],
109 [AC_CHECK_LIB(sun, getpwnam)])
111 dnl Checks for header files.
112 AC_HEADER_STDC
113 dnl Assume unistd.h is present - coreutils does too.
114 AC_CHECK_HEADERS(fcntl.h string.h limits.h errno.h stdlib.h stddef.h)
115 AC_CHECK_HEADERS(unistd.h sys/types.h inttypes.h fcntl.h locale.h stdint.h)
116 AC_CHECK_HEADERS(sys/param.h mntent.h sys/mnttab.h sys/mntio.h sys/mkdev.h)
117 dnl find.c needs sys/utsname.h because it calls uname(2).
118 AC_CHECK_HEADERS(sys/utsname.h)
119 AC_HEADER_MAJOR
120 AC_HEADER_DIRENT
121 AC_HEADER_STAT
122 AC_HEADER_SYS_WAIT
125 dnl Checks for typedefs, structures, and compiler characteristics.
127 AC_TYPE_UID_T
128 AC_TYPE_SIZE_T
129 AC_CHECK_TYPE(ssize_t, int)
130 AC_TYPE_PID_T
131 AC_CHECK_TYPE(ino_t, unsigned long)
132 AC_CHECK_TYPE(dev_t, unsigned long)
133 AC_TYPE_MODE_T
134 AC_STRUCT_ST_BLOCKS
135 AC_CHECK_MEMBERS([struct stat.st_rdev])
137 AC_MSG_CHECKING([whether we should use struct dirent.d_type, if available])
138 if test x$ac_cv_d_type = xno; then
139    AC_MSG_RESULT([no])
140 else
141    AC_MSG_RESULT([yes])
142    AC_DEFINE(USE_STRUCT_DIRENT_D_TYPE, 1,
143    [Defined if you specify --enable-d_type-optimisation to configure.])
144    AC_CHECK_MEMBERS([struct dirent.d_type],[
145    AC_DEFINE(HAVE_STRUCT_DIRENT_D_TYPE, 1,
146    [Define to 1 if your 'struct dirent' has a d_type member])],
147    [],[
148 #include <sys/types.h>
149 #include <dirent.h>])
153 AC_STRUCT_TM
154 AC_STRUCT_TIMEZONE
156 dnl Checks for library functions that are provided by gnulib.
157 AC_FUNC_STRFTIME
158 AC_REPLACE_FUNCS(memcmp memset stpcpy strdup strstr strtol strtoul)
159 AC_CHECK_FUNCS(fchdir getcwd strerror endgrent endpwent setlocale)
160 AC_FUNC_VPRINTF
161 AC_FUNC_ALLOCA
162 AC_FUNC_CLOSEDIR_VOID
164 dnl We don't just use AC_FUNC_GETMNTENT directly because it 
165 dnl will try to use -lsun on platforms which have getmntent() in the 
166 dnl C library, for example UNICOS.
167 AC_CHECK_FUNC(getmntent, [], [AC_FUNC_GETMNTENT])
168 AC_CHECK_FUNCS(getmntent)
169 AC_CHECK_FUNCS(setmntent endmntent)
172 dnl Checks for library functions that are provided by findlib.
173 FINDLIB_REPLACE_FUNCS(waitpid strspn)
174 FINDLIB_REPLACE_FUNCS(forcefindlib)
176 dnl gl_XALLOC
177 gl_FUNC_ALLOCA
179 dnl Use gl_INCLUDED_REGEX so that findutils will build on systems like
180 dnl Solaris, which lacks those functions in libc (see GNU Savannah bug
181 dnl #11710) (Sun Sep  4 20:15:11 2005: gl_INCLUDED_REGEX no longer seems
182 dnl to be available in gnulib CVS)
183 gl_REGEX
185 AC_PREREQ(2.59)
187 # Define intmax_t to 'signed long' or 'signed long long'
188 # if it is not already defined in <stdint.h> or <inttypes.h>.
189 dnl Derived from gnulib's uintmax_t which was from Paul Eggert.
190 AC_DEFUN([jy_AC_TYPE_INTMAX_T],
192   if test $ac_cv_header_inttypes_h = no && test $ac_cv_header_stdint_h = no; then
193     AC_REQUIRE([gl_AC_TYPE_LONG_LONG])
194     test $ac_cv_type_long_long = yes \
195       && ac_type='long long' \
196       || ac_type='long'
197     AC_DEFINE_UNQUOTED(intmax_t, $ac_type,
198       [Define to signed long or signed long long
199        if <stdint.h> and <inttypes.h> don't define.])
200   else
201     AC_DEFINE(HAVE_INTMAX_T, 1,
202       [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
203   fi
206 jy_AC_TYPE_INTMAX_T
207 jy_SORTZ
210 AC_CHECK_MEMBER(struct dirent.d_type,,,[                   
211 #include <sys/types.h>
212 #include <dirent.h>])
215 dnl internationalization macros
216 AM_GNU_GETTEXT([external])
217 AM_GNU_GETTEXT_VERSION(0.14.5)
219 dnl regextype.c and regexprops.c are designed to be usable outside findutils,
220 dnl but findutils doesn't want to support all the regex types in gnulib,
221 dnl and wants to support an additional one (RE_SYNTAX_EMACS|RE_DOT_NEWLINE).
222 dnl Hence they need to know if they are being compiled into findutils or not.
223 AC_DEFINE([FINDUTILS], 1, [Define if we are compiling GNU findutils])
226 # This is necessary so that .o files in LIBOBJS are also built via
227 # the ANSI2KNR-filtering rules.
228 #LIBOBJS=`echo $LIBOBJS|sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'`
229 ##AC_CONFIG_SUBDIRS(gnulib)
230 AC_CONFIG_FILES(gnulib/Makefile gnulib/lib/Makefile)
231 AC_CONFIG_FILES(m4/Makefile)
232 AC_CONFIG_FILES([Makefile 
233          tests/Makefile build-aux/Makefile
234         find/Makefile find/testsuite/Makefile
235         xargs/Makefile xargs/testsuite/Makefile
236         locate/Makefile locate/testsuite/Makefile
237          po/Makefile.in po/Makefile
238         doc/Makefile lib/Makefile
239         ])
240 AC_OUTPUT
241 dnl intl/Makefile