Merge branch 'master' of git+ssh://jay@repo.or.cz/srv/git/findutils
[findutils.git] / configure.ac
blob9378ca400742608031e4a8c8f4740d64d78d40cc
1 dnl Process this file with autoconf to produce a configure script.
2 AC_INIT([GNU findutils], 4.3.12, [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)])
64 AC_ARG_VAR([DEFAULT_ARG_SIZE], [Default size of arguments to child processes
65 of find and xargs, 128k if unspecified])
66 if test -n "$DEFAULT_ARG_SIZE"; then
67    AC_DEFINE_UNQUOTED([DEFAULT_ARG_SIZE], [$DEFAULT_ARG_SIZE],
68      [If defined, the default argument size used in child processes])
73 dnl Checks for programs.
74 AC_PROG_CC
75 AC_PROG_CPP
77 dnl for gnulib
78 gl_EARLY
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 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]))
115 AC_SUBST([FINDLIBS])
117 dnl Checks for header files.
118 AC_HEADER_STDC
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)
126 AC_SUBST(XATTR_LDADD)dnl
127 AC_CHECK_HEADERS([attr/attributes.h attr/xattr.h],
128                  [AC_CHECK_LIB(attr, [attr_get],
129                                [AC_SUBST(XATTR_LDADD,[-lattr])])])
131 AC_SUBST(E2P_LDADD)dnl
132 AC_CHECK_HEADERS([e2p/e2p.h],
133                  [AC_CHECK_LIB(e2p, [fgetflags],
134                                [AC_SUBST(E2P_LDADD,[-le2p])])])
136 AC_HEADER_MAJOR
137 AC_HEADER_DIRENT
138 AC_HEADER_STAT
139 AC_HEADER_SYS_WAIT
142 dnl Checks for typedefs, structures, and compiler characteristics.
144 AC_TYPE_UID_T
145 AC_TYPE_SIZE_T
146 AC_CHECK_TYPE(ssize_t, int)
147 AC_TYPE_PID_T
148 AC_CHECK_TYPE(ino_t, unsigned long)
149 AC_CHECK_TYPE(dev_t, unsigned long)
150 AC_TYPE_MODE_T
151 AC_STRUCT_ST_BLOCKS
152 AC_CHECK_MEMBERS([struct stat.st_rdev])
154 AC_MSG_CHECKING([whether we should use struct dirent.d_type, if available])
155 if test x$ac_cv_d_type = xno; then
156    AC_MSG_RESULT([no])
157 else
158    AC_MSG_RESULT([yes])
159    AC_DEFINE(USE_STRUCT_DIRENT_D_TYPE, 1,
160    [Defined if you specify --enable-d_type-optimisation to configure.])
161    AC_CHECK_MEMBERS([struct dirent.d_type],[
162    AC_DEFINE(HAVE_STRUCT_DIRENT_D_TYPE, 1,
163    [Define to 1 if your 'struct dirent' has a d_type member])],
164    [],[
165 #include <sys/types.h>
166 #include <dirent.h>])
170 AC_STRUCT_TM
171 AC_STRUCT_TIMEZONE
173 dnl Checks for library functions that are provided by gnulib.
174 AC_FUNC_STRFTIME
175 AC_REPLACE_FUNCS(memcmp memset stpcpy strdup strstr strtol strtoul)
176 AC_CHECK_FUNCS(fchdir getcwd strerror endgrent endpwent setlocale)
177 AC_FUNC_VPRINTF
178 AC_FUNC_ALLOCA
179 AC_FUNC_CLOSEDIR_VOID
181 dnl We don't just use AC_FUNC_GETMNTENT directly because it
182 dnl will try to use -lsun on platforms which have getmntent() in the
183 dnl C library, for example UNICOS.
184 AC_CHECK_FUNC(getmntent, [], [AC_FUNC_GETMNTENT])
185 AC_CHECK_FUNCS(getmntent)
186 AC_CHECK_FUNCS(setmntent endmntent)
189 dnl Checks for library functions that are provided by findlib.
190 FINDLIB_REPLACE_FUNCS(waitpid strspn)
191 FINDLIB_REPLACE_FUNCS(forcefindlib)
194 # Check for common but not-POSIX functions.
195 AC_CHECK_FUNCS(setgroups)
198 dnl gl_XALLOC
199 gl_FUNC_ALLOCA
201 dnl Use gl_INCLUDED_REGEX so that findutils will build on systems like
202 dnl Solaris, which lacks those functions in libc (see GNU Savannah bug
203 dnl #11710) (Sun Sep  4 20:15:11 2005: gl_INCLUDED_REGEX no longer seems
204 dnl to be available in gnulib CVS)
205 gl_REGEX
207 AC_PREREQ(2.59)
209 jy_SORTZ
212 AC_CHECK_MEMBER(struct dirent.d_type,,,[
213 #include <sys/types.h>
214 #include <dirent.h>])
216 jy_AC_ATTRIBUTE_NORETURN
218 dnl internationalization macros
219 AM_GNU_GETTEXT([external])
220 AM_GNU_GETTEXT_VERSION(0.14.5)
222 dnl regextype.c and regexprops.c are designed to be usable outside findutils,
223 dnl but findutils doesn't want to support all the regex types in gnulib,
224 dnl and wants to support an additional one (RE_SYNTAX_EMACS|RE_DOT_NEWLINE).
225 dnl Hence they need to know if they are being compiled into findutils or not.
226 AC_DEFINE([FINDUTILS], 1, [Define if we are compiling GNU findutils])
227 AC_DEFINE([ALREADY_INCLUDED_CONFIG_H], 1, [Define so that source code can verify that config.h was already included])
229 # This is necessary so that .o files in LIBOBJS are also built via
230 # the ANSI2KNR-filtering rules.
231 #LIBOBJS=`echo $LIBOBJS|sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'`
232 ##AC_CONFIG_SUBDIRS(gnulib)
233 AC_CONFIG_FILES(gnulib/Makefile gnulib/lib/Makefile)
234 AC_CONFIG_FILES(m4/Makefile)
235 AC_CONFIG_FILES([Makefile
236          tests/Makefile build-aux/Makefile
237         find/Makefile find/testsuite/Makefile
238         xargs/Makefile xargs/testsuite/Makefile
239         locate/Makefile locate/testsuite/Makefile
240          po/Makefile.in po/Makefile
241         doc/Makefile lib/Makefile
242         ])
243 AC_OUTPUT
244 dnl intl/Makefile