1 dnl Process this file with autoconf to produce a configure script.
2 AC_INIT([GNU findutils], 4.3.9-CVS, [bug-findutils@gnu.org])
3 AC_CONFIG_AUX_DIR(build-aux)
6 AC_CONFIG_SRCDIR([find/pred.c])
7 AC_CONFIG_HEADERS([config.h])
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"
15 AC_SUBST(AUXDIR,$ac_aux_dir)
16 dnl check for --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
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
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
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
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.
76 dnl gl_EARLY calls AC_GNU_SOURCE anyway.
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.
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 AC_CHECK_LIB([m],[modf],[FINDLIBS="-lm $FINDLIBS"]
112 AC_DEFINE_UNQUOTED(HAVE_MODF_IN_LIBM,1,[modf is defined in -lm]))
113 AC_CHECK_LIB([m],[fabs],[FINDLIBS="-lm $FINDLIBS"]
114 AC_DEFINE_UNQUOTED(HAVE_FABS_IN_LIBM,1,[fabs is defined in -lm]))
117 dnl Checks for header files.
119 dnl Assume unistd.h is present - coreutils does too.
120 AC_CHECK_HEADERS(fcntl.h string.h limits.h errno.h stdlib.h stddef.h)
121 AC_CHECK_HEADERS(unistd.h sys/types.h inttypes.h fcntl.h locale.h stdint.h)
122 AC_CHECK_HEADERS(sys/param.h mntent.h sys/mnttab.h sys/mntio.h sys/mkdev.h)
123 dnl find.c needs sys/utsname.h because it calls uname(2).
124 AC_CHECK_HEADERS(sys/utsname.h)
131 dnl Checks for typedefs, structures, and compiler characteristics.
135 AC_CHECK_TYPE(ssize_t, int)
137 AC_CHECK_TYPE(ino_t, unsigned long)
138 AC_CHECK_TYPE(dev_t, unsigned long)
141 AC_CHECK_MEMBERS([struct stat.st_rdev])
143 AC_MSG_CHECKING([whether we should use struct dirent.d_type, if available])
144 if test x$ac_cv_d_type = xno; then
148 AC_DEFINE(USE_STRUCT_DIRENT_D_TYPE, 1,
149 [Defined if you specify --enable-d_type-optimisation to configure.])
150 AC_CHECK_MEMBERS([struct dirent.d_type],[
151 AC_DEFINE(HAVE_STRUCT_DIRENT_D_TYPE, 1,
152 [Define to 1 if your 'struct dirent' has a d_type member])],
154 #include <sys/types.h>
155 #include <dirent.h>])
162 dnl Checks for library functions that are provided by gnulib.
164 AC_REPLACE_FUNCS(memcmp memset stpcpy strdup strstr strtol strtoul)
165 AC_CHECK_FUNCS(fchdir getcwd strerror endgrent endpwent setlocale)
168 AC_FUNC_CLOSEDIR_VOID
170 dnl We don't just use AC_FUNC_GETMNTENT directly because it
171 dnl will try to use -lsun on platforms which have getmntent() in the
172 dnl C library, for example UNICOS.
173 AC_CHECK_FUNC(getmntent, [], [AC_FUNC_GETMNTENT])
174 AC_CHECK_FUNCS(getmntent)
175 AC_CHECK_FUNCS(setmntent endmntent)
178 dnl Checks for library functions that are provided by findlib.
179 FINDLIB_REPLACE_FUNCS(waitpid strspn)
180 FINDLIB_REPLACE_FUNCS(forcefindlib)
183 # Check for common but not-POSIX functions.
184 AC_CHECK_FUNCS(setgroups)
190 dnl Use gl_INCLUDED_REGEX so that findutils will build on systems like
191 dnl Solaris, which lacks those functions in libc (see GNU Savannah bug
192 dnl #11710) (Sun Sep 4 20:15:11 2005: gl_INCLUDED_REGEX no longer seems
193 dnl to be available in gnulib CVS)
198 # Define intmax_t to 'signed long' or 'signed long long'
199 # if it is not already defined in <stdint.h> or <inttypes.h>.
200 dnl Derived from gnulib's uintmax_t which was from Paul Eggert.
201 AC_DEFUN([jy_AC_TYPE_INTMAX_T],
203 if test $ac_cv_header_inttypes_h = no && test $ac_cv_header_stdint_h = no; then
204 AC_REQUIRE([gl_AC_TYPE_LONG_LONG])
205 test $ac_cv_type_long_long = yes \
206 && ac_type='long long' \
208 AC_DEFINE_UNQUOTED(intmax_t, $ac_type,
209 [Define to signed long or signed long long
210 if <stdint.h> and <inttypes.h> don't define.])
212 AC_DEFINE(HAVE_INTMAX_T, 1,
213 [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
221 AC_CHECK_MEMBER(struct dirent.d_type,,,[
222 #include <sys/types.h>
223 #include <dirent.h>])
225 jy_AC_ATTRIBUTE_NORETURN
227 dnl internationalization macros
228 AM_GNU_GETTEXT([external])
229 AM_GNU_GETTEXT_VERSION(0.14.5)
231 dnl regextype.c and regexprops.c are designed to be usable outside findutils,
232 dnl but findutils doesn't want to support all the regex types in gnulib,
233 dnl and wants to support an additional one (RE_SYNTAX_EMACS|RE_DOT_NEWLINE).
234 dnl Hence they need to know if they are being compiled into findutils or not.
235 AC_DEFINE([FINDUTILS], 1, [Define if we are compiling GNU findutils])
236 AC_DEFINE([ALREADY_INCLUDED_CONFIG_H], 1, [Define so that source code can verify that config.h was already included])
238 # This is necessary so that .o files in LIBOBJS are also built via
239 # the ANSI2KNR-filtering rules.
240 #LIBOBJS=`echo $LIBOBJS|sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'`
241 ##AC_CONFIG_SUBDIRS(gnulib)
242 AC_CONFIG_FILES(gnulib/Makefile gnulib/lib/Makefile)
243 AC_CONFIG_FILES(m4/Makefile)
244 AC_CONFIG_FILES([Makefile
245 tests/Makefile build-aux/Makefile
246 find/Makefile find/testsuite/Makefile
247 xargs/Makefile xargs/testsuite/Makefile
248 locate/Makefile locate/testsuite/Makefile
249 po/Makefile.in po/Makefile
250 doc/Makefile lib/Makefile