1 dnl Process this file with autoconf to produce a configure script.
2 AC_INIT([GNU findutils], 4.3.2-CVS, [bug-findutils@gnu.org])
5 AC_CONFIG_SRCDIR([find/pred.c])
6 AC_CONFIG_HEADERS([config.h])
8 AC_CONFIG_MACRO_DIR(gnulib/m4)
10 dnl Set of available languages.
11 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 sk sl sr sv tr vi zh_CN zh_TW rw"
15 dnl check for --with-fts
18 AC_ARG_ENABLE(id-cache,
19 [ --enable-id-cache cache all UIDs & GIDs; avoid if using NIS or Hesiod],
20 AC_DEFINE(CACHE_IDS, 1, [Define if you want find -nouser and -nogroup to make tables of
21 used UIDs and GIDs at startup instead of using getpwuid or
22 getgrgid when needed. Speeds up -nouser and -nogroup unless you
23 are running NIS or Hesiod, which make password and group calls
27 AS_HELP_STRING(--enable-debug,Enable debugging output which is likely to be interesting to people debugging findutils),
28 [ac_cv_debug=$enableval],[ac_cv_debug=no])
30 AC_ARG_ENABLE(leaf-optimisation,
31 AS_HELP_STRING(--enable-leaf-optimisation,Enable an optimisation which saves lstat calls to identify subdirectories on filesystems having traditional Unix semantics),
32 [ac_cv_leaf_optimisation=$enableval],[ac_cv_leaf_optimisation=yes])
34 AC_ARG_ENABLE(d_type-optimization,
35 AS_HELP_STRING(--enable-d_type-optimization,Make use of the file type data returned in struct dirent.d_type by readdir()),
36 [ac_cv_d_type=$enableval],[ac_cv_d_type=yes])
38 dnl This one has no default, because otherwise we would have to say
39 dnl both --enable-d_type-optimisation=no and --enable-d_type-optimization=no
41 AC_ARG_ENABLE(d_type-optimisation,
42 AS_HELP_STRING(--enable-d_type-optimisation,Synonym for --enable-d_type-optimization),
43 [ac_cv_d_type=$enableval],[])
46 AC_MSG_CHECKING([whether debug output should be produced])
47 if test x$ac_cv_debug = xno; then
51 AC_DEFINE(DEBUG, 1, [Define if you want to see find's innards])
52 AC_DEFINE(DEBUG_STAT, 1, [Define if you want to see a message every time find calls the stat() system call])
55 AC_MSG_CHECKING([for leaf optimisation])
56 if test x$ac_cv_leaf_optimisation = xno; then
60 AC_DEFINE(LEAF_OPTIMISATION, 1, [Define if you want to use the leaf optimisation (this can still be turned off with -noleaf)])
65 dnl Checks for programs.
75 dnl gl_EARLY calls AC_GNU_SOURCE anyway.
90 dnl lib/regexprops needs to be a native program, because we need to
91 dnl run it in order to generate the documentation about the properties
92 dnl of regular expressions. See lib/Makefile.am.
93 AM_CONDITIONAL(CROSS_COMPILING, [[test "x$cross_compiling" = xyes]])
95 dnl Try to get a POSIX.1 environment.
97 dnl Checks for libraries. If getpwnam() isn't present in the
98 dnl C library, try -lsun.
99 AC_CHECK_FUNC(getpwnam, [],
100 [AC_CHECK_LIB(sun, getpwnam)])
102 dnl Checks for header files.
104 dnl Assume unistd.h is present - coreutils does too.
105 AC_CHECK_HEADERS(fcntl.h string.h limits.h errno.h stdlib.h stddef.h)
106 AC_CHECK_HEADERS(unistd.h sys/types.h inttypes.h fcntl.h locale.h stdint.h)
107 AC_CHECK_HEADERS(sys/param.h mntent.h sys/mnttab.h sys/mntio.h sys/mkdev.h)
108 dnl find.c needs sys/utsname.h because it calls uname(2).
109 AC_CHECK_HEADERS(sys/utsname.h)
116 dnl Checks for typedefs, structures, and compiler characteristics.
120 AC_CHECK_TYPE(ssize_t, int)
122 AC_CHECK_TYPE(ino_t, unsigned long)
123 AC_CHECK_TYPE(dev_t, unsigned long)
126 AC_CHECK_MEMBERS([struct stat.st_rdev])
128 AC_MSG_CHECKING([whether we should use struct dirent.d_type, if available])
129 if test x$ac_cv_d_type = xno; then
133 AC_DEFINE(USE_STRUCT_DIRENT_D_TYPE, 1,
134 [Defined if you specify --enable-d_type-optimisation to configure.])
135 AC_CHECK_MEMBERS([struct dirent.d_type],[
136 AC_DEFINE(HAVE_STRUCT_DIRENT_D_TYPE, 1,
137 [Define to 1 if your 'struct dirent' has a d_type member])],
139 #include <sys/types.h>
140 #include <dirent.h>])
147 dnl Checks for library functions that are provided by gnulib.
149 AC_REPLACE_FUNCS(memcmp memset stpcpy strdup strstr strtol strtoul)
150 AC_CHECK_FUNCS(fchdir getcwd strerror endgrent endpwent setlocale)
153 AC_FUNC_CLOSEDIR_VOID
155 dnl We don't just use AC_FUNC_GETMNTENT directly because it
156 dnl will try to use -lsun on platforms which have getmntent() in the
157 dnl C library, for example UNICOS.
158 AC_CHECK_FUNC(getmntent, [], [AC_FUNC_GETMNTENT])
159 AC_CHECK_FUNCS(getmntent)
160 AC_CHECK_FUNCS(setmntent endmntent)
163 dnl Checks for library functions that are provided by findlib.
164 FINDLIB_REPLACE_FUNCS(waitpid strspn)
165 FINDLIB_REPLACE_FUNCS(forcefindlib)
170 dnl Use gl_INCLUDED_REGEX so that findutils will build on systems like
171 dnl Solaris, which lacks those functions in libc (see GNU Savannah bug
172 dnl #11710) (Sun Sep 4 20:15:11 2005: gl_INCLUDED_REGEX no longer seems
173 dnl to be available in gnulib CVS)
178 # Define intmax_t to 'signed long' or 'signed long long'
179 # if it is not already defined in <stdint.h> or <inttypes.h>.
180 dnl Derived from gnulib's uintmax_t which was from Paul Eggert.
181 AC_DEFUN([jy_AC_TYPE_INTMAX_T],
183 if test $ac_cv_header_inttypes_h = no && test $ac_cv_header_stdint_h = no; then
184 AC_REQUIRE([gl_AC_TYPE_LONG_LONG])
185 test $ac_cv_type_long_long = yes \
186 && ac_type='long long' \
188 AC_DEFINE_UNQUOTED(intmax_t, $ac_type,
189 [Define to signed long or signed long long
190 if <stdint.h> and <inttypes.h> don't define.])
192 AC_DEFINE(HAVE_INTMAX_T, 1,
193 [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
201 AC_CHECK_MEMBER(struct dirent.d_type,,,[
202 #include <sys/types.h>
203 #include <dirent.h>])
206 dnl internationalization macros
207 AM_GNU_GETTEXT([external])
208 AM_GNU_GETTEXT_VERSION(0.14.5)
210 dnl regextype.c and regexprops.c are designed to be usable outside findutils,
211 dnl but findutils doesn't want to support all the regex types in gnulib,
212 dnl and wants to support an additional one (RE_SYNTAX_EMACS|RE_DOT_NEWLINE).
213 dnl Hence they need to know if they are being compiled into findutils or not.
214 AC_DEFINE([FINDUTILS], 1, [Define if we are compiling GNU findutils])
217 # This is necessary so that .o files in LIBOBJS are also built via
218 # the ANSI2KNR-filtering rules.
219 #LIBOBJS=`echo $LIBOBJS|sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'`
220 ##AC_CONFIG_SUBDIRS(gnulib)
221 AC_CONFIG_FILES(gnulib/Makefile gnulib/lib/Makefile)
222 AC_CONFIG_FILES(m4/Makefile)
223 AC_CONFIG_FILES([Makefile
224 find/Makefile find/testsuite/Makefile
225 xargs/Makefile xargs/testsuite/Makefile
226 locate/Makefile locate/testsuite/Makefile
227 po/Makefile.in po/Makefile
228 doc/Makefile lib/Makefile