Added find.gnu./perm-slash.{exp,xo}.
[findutils.git] / configure.in
blob52ffb087f93d7dbdee0e8c0f5e33c30fc65f4a17
1 dnl Process this file with autoconf to produce a configure script.
2 AC_INIT([GNU findutils], 4.2.25-CVS, [bug-findutils@gnu.org])
3 AM_INIT_AUTOMAKE
5 AC_CONFIG_SRCDIR([find/pred.c])
6 AC_CONFIG_HEADERS([config.h])
7 AC_CANONICAL_HOST
8 AC_CONFIG_MACRO_DIR(gnulib/m4)
10 dnl Set of available languages.
11 ALL_LINGUAS="be 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 rw"
13 AC_SUBST(INCLUDES)dnl
14 AC_ARG_ENABLE(id-cache,
15 [  --enable-id-cache       cache all UIDs & GIDs; avoid if using NIS or Hesiod],
16   AC_DEFINE(CACHE_IDS, 1, [Define if you want find -nouser and -nogroup to make tables of
17    used UIDs and GIDs at startup instead of using getpwuid or
18    getgrgid when needed.  Speeds up -nouser and -nogroup unless you
19    are running NIS or Hesiod, which make password and group calls
20    very expensive.]))
22 AC_ARG_ENABLE(debug,
23         AS_HELP_STRING(--enable-debug,Enable debugging output which is likely to be interesting to people debugging findutils),
24         [ac_cv_debug=$enableval],[ac_cv_debug=no])
26 AC_ARG_ENABLE(leaf-optimisation,
27         AS_HELP_STRING(--enable-leaf-optimisation,Enable an optimisation which saves lstat calls to identify subdirectories on filesystems having traditional Unix semantics),
28         [ac_cv_leaf_optimisation=$enableval],[ac_cv_leaf_optimisation=yes])
30 AC_ARG_ENABLE(d_type-optimization,
31         AS_HELP_STRING(--enable-d_type-optimization,Make use of the file type data returned in struct dirent.d_type by readdir()),
32         [ac_cv_d_type=$enableval],[ac_cv_d_type=yes])
34 dnl This one has no default, because otherwise we would have to say 
35 dnl both --enable-d_type-optimisation=no and --enable-d_type-optimization=no
36 dnl to turn it off.
37 AC_ARG_ENABLE(d_type-optimisation,
38         AS_HELP_STRING(--enable-d_type-optimisation,Synonym for --enable-d_type-optimization),
39         [ac_cv_d_type=$enableval],[])
42 AC_MSG_CHECKING([whether debug output should be produced])
43 if test x$ac_cv_debug = xno; then
44    AC_MSG_RESULT([no])
45 else
46    AC_MSG_RESULT([yes])
47    AC_DEFINE(DEBUG, 1, [Define if you want to see find's innards])
48    AC_DEFINE(DEBUG_STAT, 1, [Define if you want to see a message every time find calls the stat() system call])
51 AC_MSG_CHECKING([for leaf optimisation])
52 if test x$ac_cv_leaf_optimisation = xno; then
53    AC_MSG_RESULT([no])
54 else
55    AC_MSG_RESULT([yes])
56    AC_DEFINE(LEAF_OPTIMISATION, 1, [Define if you want to use the leaf optimisation (this can still be turned off with -noleaf)])
61 dnl Checks for programs.
62 AC_PROG_CC
63 AC_PROG_CPP
65 AC_AIX
68 dnl AC_MINIX
69 dnl for gnulib
70 gl_EARLY
71 dnl gl_EARLY calls AC_GNU_SOURCE anyway.
74 AC_ISC_POSIX
75 AM_C_PROTOTYPES
77 AC_PROG_INSTALL
78 AC_PROG_RANLIB
79 dnl AC_PROG_LIBTOOL
80 AC_PROG_MAKE_SET
81 AC_SYS_LARGEFILE
84 gl_INIT
86 dnl lib/regexprops needs to be a native program, because we need to 
87 dnl run it in order to generate the documentation about the properties
88 dnl of regular expressions.  See lib/Makefile.am.
89 AM_CONDITIONAL(CROSS_COMPILING, [[test "x$cross_compiling" = xyes]])
91 dnl Try to get a POSIX.1 environment.
93 dnl Checks for libraries.  If getpwnam() isn't present in the 
94 dnl C library, try -lsun.
95 AC_CHECK_FUNC(getpwnam, [],
96 [AC_CHECK_LIB(sun, getpwnam)])
98 dnl Checks for header files.
99 AC_HEADER_STDC
100 dnl Assume unistd.h is present - coreutils does too.
101 AC_CHECK_HEADERS(fcntl.h string.h limits.h errno.h stdlib.h stddef.h)
102 AC_CHECK_HEADERS(unistd.h sys/types.h inttypes.h fcntl.h locale.h stdint.h)
103 AC_CHECK_HEADERS(sys/param.h mntent.h sys/mnttab.h sys/mntio.h sys/mkdev.h)
104 dnl find.c needs sys/utsname.h because it calls uname(2).
105 AC_CHECK_HEADERS(sys/utsname.h)
106 AC_HEADER_MAJOR
107 AC_HEADER_DIRENT
108 AC_HEADER_STAT
109 AC_HEADER_SYS_WAIT
112 dnl Checks for typedefs, structures, and compiler characteristics.
114 AC_TYPE_UID_T
115 AC_TYPE_SIZE_T
116 AC_CHECK_TYPE(ssize_t, int)
117 AC_TYPE_PID_T
118 AC_CHECK_TYPE(ino_t, unsigned long)
119 AC_CHECK_TYPE(dev_t, unsigned long)
120 AC_TYPE_MODE_T
121 AC_STRUCT_ST_BLOCKS
122 AC_CHECK_MEMBERS([struct stat.st_rdev])
124 AC_MSG_CHECKING([whether we should use struct dirent.d_type, if available])
125 if test x$ac_cv_d_type = xno; then
126    AC_MSG_RESULT([no])
127 else
128    AC_MSG_RESULT([yes])
129    AC_DEFINE(USE_STRUCT_DIRENT_D_TYPE, 1,
130    [Defined if you specify --enable-d_type-optimisation to configure.])
131    AC_CHECK_MEMBERS([struct dirent.d_type],[
132    AC_DEFINE(HAVE_STRUCT_DIRENT_D_TYPE, 1,
133    [Define to 1 if your 'struct dirent' has a d_type member])],
134    [],[
135 #include <sys/types.h>
136 #include <dirent.h>])
140 AC_STRUCT_TM
141 AC_STRUCT_TIMEZONE
143 dnl Checks for library functions that are provided by gnulib.
144 AC_FUNC_STRFTIME
145 AC_REPLACE_FUNCS(memcmp memset stpcpy strdup strstr strtol strtoul)
146 AC_CHECK_FUNCS(fchdir getcwd strerror endgrent endpwent setlocale)
147 AC_FUNC_VPRINTF
148 AC_FUNC_ALLOCA
149 AC_FUNC_CLOSEDIR_VOID
151 dnl We don't just use AC_FUNC_GETMNTENT directly because it 
152 dnl will try to use -lsun on platforms which have getmntent() in the 
153 dnl C library, for example UNICOS.
154 AC_CHECK_FUNC(getmntent, [], [AC_FUNC_GETMNTENT])
155 AC_CHECK_FUNCS(getmntent)
156 AC_CHECK_FUNCS(setmntent endmntent)
159 dnl Checks for library functions that are provided by findlib.
160 FINDLIB_REPLACE_FUNCS(waitpid strspn)
161 FINDLIB_REPLACE_FUNCS(forcefindlib)
163 dnl gl_XALLOC
164 gl_FUNC_ALLOCA
166 dnl Use gl_INCLUDED_REGEX so that findutils will build on systems like
167 dnl Solaris, which lacks those functions in libc (see GNU Savannah bug
168 dnl #11710)
169 gl_INCLUDED_REGEX([gnulib/lib/regex.c]) 
171 AC_PREREQ(2.59)
173 # Define intmax_t to 'signed long' or 'signed long long'
174 # if it is not already defined in <stdint.h> or <inttypes.h>.
175 dnl Derived from gnulib's uintmax_t which was from Paul Eggert.
176 AC_DEFUN([jy_AC_TYPE_INTMAX_T],
178   if test $ac_cv_header_inttypes_h = no && test $ac_cv_header_stdint_h = no; then
179     AC_REQUIRE([gl_AC_TYPE_LONG_LONG])
180     test $ac_cv_type_long_long = yes \
181       && ac_type='long long' \
182       || ac_type='long'
183     AC_DEFINE_UNQUOTED(intmax_t, $ac_type,
184       [Define to signed long or signed long long
185        if <stdint.h> and <inttypes.h> don't define.])
186   else
187     AC_DEFINE(HAVE_INTMAX_T, 1,
188       [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
189   fi
192 jy_AC_TYPE_INTMAX_T
193 jy_SORTZ
196 AC_CHECK_MEMBER(struct dirent.d_type,,,[                   
197 #include <sys/types.h>
198 #include <dirent.h>])
201 dnl internationalization macros
202 AM_GNU_GETTEXT([external])
205 dnl regextype.c and regexprops.c are designed to be usable outside findutils,
206 dnl but findutils doesn't want to support all the regex types in gnulib,
207 dnl and wants to support an additional one (RE_SYNTAX_EMACS|RE_DOT_NEWLINE).
208 dnl Hence they need to know if they are being compiled into findutils or not.
209 AC_DEFINE([FINDUTILS], 1, [Define if we are compiling GNU findutils])
212 # This is necessary so that .o files in LIBOBJS are also built via
213 # the ANSI2KNR-filtering rules.
214 #LIBOBJS=`echo $LIBOBJS|sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'`
215 ##AC_CONFIG_SUBDIRS(gnulib)
216 AC_CONFIG_FILES(gnulib/Makefile gnulib/lib/Makefile)
217 AC_CONFIG_FILES(m4/Makefile)
218 AC_CONFIG_FILES([Makefile 
219         find/Makefile find/testsuite/Makefile
220         xargs/Makefile xargs/testsuite/Makefile
221         locate/Makefile locate/testsuite/Makefile
222          po/Makefile.in po/Makefile
223         doc/Makefile lib/Makefile
224         ])
225 AC_OUTPUT
226 dnl intl/Makefile