Bugfixes to fractional-argument support and nanosecond timestamp support
[findutils.git] / configure.in
blob4429e145fa075806cfbf1dfbd0fd963dc9ed3b58
1 dnl Process this file with autoconf to produce a configure script.
2 AC_INIT([GNU findutils], 4.3.3-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 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 vi zh_CN zh_TW"
13 AC_SUBST(INCLUDES)dnl
15 dnl check for --with-fts
16 FIND_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
24    very expensive.]))
26 AC_ARG_ENABLE(debug,
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
40 dnl to turn it off.
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
48    AC_MSG_RESULT([no])
49 else
50    AC_MSG_RESULT([yes])
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
57    AC_MSG_RESULT([no])
58 else
59    AC_MSG_RESULT([yes])
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.
66 AC_PROG_CC
67 AC_PROG_CPP
69 AC_AIX
72 dnl AC_MINIX
73 dnl for gnulib
74 gl_EARLY
75 dnl gl_EARLY calls AC_GNU_SOURCE anyway.
78 AC_ISC_POSIX
79 AM_C_PROTOTYPES
81 AC_PROG_INSTALL
82 AC_PROG_RANLIB
83 dnl AC_PROG_LIBTOOL
84 AC_PROG_MAKE_SET
85 AC_SYS_LARGEFILE
88 gl_INIT
92 dnl Older versions of gnulib/m4/nls.m4 provide AM_MKINSTALLDIRS.
93 dnl The current version of gnulib does not, but the version of 
94 dnl po/Makefile.in.in that comes with gettext-0.14.6 expects
95 dnl that @MKINSTALLDIRS@ will be expanded.
96 AM_MKINSTALLDIRS
98 dnl lib/regexprops needs to be a native program, because we need to 
99 dnl run it in order to generate the documentation about the properties
100 dnl of regular expressions.  See lib/Makefile.am.
101 AM_CONDITIONAL(CROSS_COMPILING, [[test "x$cross_compiling" = xyes]])
103 dnl Try to get a POSIX.1 environment.
105 dnl Checks for libraries.  If getpwnam() isn't present in the 
106 dnl C library, try -lsun.
107 AC_CHECK_FUNC(getpwnam, [],
108 [AC_CHECK_LIB(sun, getpwnam)])
110 dnl Checks for header files.
111 AC_HEADER_STDC
112 dnl Assume unistd.h is present - coreutils does too.
113 AC_CHECK_HEADERS(fcntl.h string.h limits.h errno.h stdlib.h stddef.h)
114 AC_CHECK_HEADERS(unistd.h sys/types.h inttypes.h fcntl.h locale.h stdint.h)
115 AC_CHECK_HEADERS(sys/param.h mntent.h sys/mnttab.h sys/mntio.h sys/mkdev.h)
116 dnl find.c needs sys/utsname.h because it calls uname(2).
117 AC_CHECK_HEADERS(sys/utsname.h)
118 AC_HEADER_MAJOR
119 AC_HEADER_DIRENT
120 AC_HEADER_STAT
121 AC_HEADER_SYS_WAIT
124 dnl Checks for typedefs, structures, and compiler characteristics.
126 AC_TYPE_UID_T
127 AC_TYPE_SIZE_T
128 AC_CHECK_TYPE(ssize_t, int)
129 AC_TYPE_PID_T
130 AC_CHECK_TYPE(ino_t, unsigned long)
131 AC_CHECK_TYPE(dev_t, unsigned long)
132 AC_TYPE_MODE_T
133 AC_STRUCT_ST_BLOCKS
134 AC_CHECK_MEMBERS([struct stat.st_rdev])
136 AC_MSG_CHECKING([whether we should use struct dirent.d_type, if available])
137 if test x$ac_cv_d_type = xno; then
138    AC_MSG_RESULT([no])
139 else
140    AC_MSG_RESULT([yes])
141    AC_DEFINE(USE_STRUCT_DIRENT_D_TYPE, 1,
142    [Defined if you specify --enable-d_type-optimisation to configure.])
143    AC_CHECK_MEMBERS([struct dirent.d_type],[
144    AC_DEFINE(HAVE_STRUCT_DIRENT_D_TYPE, 1,
145    [Define to 1 if your 'struct dirent' has a d_type member])],
146    [],[
147 #include <sys/types.h>
148 #include <dirent.h>])
152 AC_STRUCT_TM
153 AC_STRUCT_TIMEZONE
155 dnl Checks for library functions that are provided by gnulib.
156 AC_FUNC_STRFTIME
157 AC_REPLACE_FUNCS(memcmp memset stpcpy strdup strstr strtol strtoul)
158 AC_CHECK_FUNCS(fchdir getcwd strerror endgrent endpwent setlocale)
159 AC_FUNC_VPRINTF
160 AC_FUNC_ALLOCA
161 AC_FUNC_CLOSEDIR_VOID
163 dnl We don't just use AC_FUNC_GETMNTENT directly because it 
164 dnl will try to use -lsun on platforms which have getmntent() in the 
165 dnl C library, for example UNICOS.
166 AC_CHECK_FUNC(getmntent, [], [AC_FUNC_GETMNTENT])
167 AC_CHECK_FUNCS(getmntent)
168 AC_CHECK_FUNCS(setmntent endmntent)
171 dnl Checks for library functions that are provided by findlib.
172 FINDLIB_REPLACE_FUNCS(waitpid strspn)
173 FINDLIB_REPLACE_FUNCS(forcefindlib)
175 dnl gl_XALLOC
176 gl_FUNC_ALLOCA
178 dnl Use gl_INCLUDED_REGEX so that findutils will build on systems like
179 dnl Solaris, which lacks those functions in libc (see GNU Savannah bug
180 dnl #11710) (Sun Sep  4 20:15:11 2005: gl_INCLUDED_REGEX no longer seems
181 dnl to be available in gnulib CVS)
182 gl_REGEX
184 AC_PREREQ(2.59)
186 # Define intmax_t to 'signed long' or 'signed long long'
187 # if it is not already defined in <stdint.h> or <inttypes.h>.
188 dnl Derived from gnulib's uintmax_t which was from Paul Eggert.
189 AC_DEFUN([jy_AC_TYPE_INTMAX_T],
191   if test $ac_cv_header_inttypes_h = no && test $ac_cv_header_stdint_h = no; then
192     AC_REQUIRE([gl_AC_TYPE_LONG_LONG])
193     test $ac_cv_type_long_long = yes \
194       && ac_type='long long' \
195       || ac_type='long'
196     AC_DEFINE_UNQUOTED(intmax_t, $ac_type,
197       [Define to signed long or signed long long
198        if <stdint.h> and <inttypes.h> don't define.])
199   else
200     AC_DEFINE(HAVE_INTMAX_T, 1,
201       [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
202   fi
205 jy_AC_TYPE_INTMAX_T
206 jy_SORTZ
209 AC_CHECK_MEMBER(struct dirent.d_type,,,[                   
210 #include <sys/types.h>
211 #include <dirent.h>])
214 dnl internationalization macros
215 AM_GNU_GETTEXT([external])
216 AM_GNU_GETTEXT_VERSION(0.14.5)
218 dnl regextype.c and regexprops.c are designed to be usable outside findutils,
219 dnl but findutils doesn't want to support all the regex types in gnulib,
220 dnl and wants to support an additional one (RE_SYNTAX_EMACS|RE_DOT_NEWLINE).
221 dnl Hence they need to know if they are being compiled into findutils or not.
222 AC_DEFINE([FINDUTILS], 1, [Define if we are compiling GNU findutils])
225 # This is necessary so that .o files in LIBOBJS are also built via
226 # the ANSI2KNR-filtering rules.
227 #LIBOBJS=`echo $LIBOBJS|sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'`
228 ##AC_CONFIG_SUBDIRS(gnulib)
229 AC_CONFIG_FILES(gnulib/Makefile gnulib/lib/Makefile)
230 AC_CONFIG_FILES(m4/Makefile)
231 AC_CONFIG_FILES([Makefile 
232         find/Makefile find/testsuite/Makefile
233         xargs/Makefile xargs/testsuite/Makefile
234         locate/Makefile locate/testsuite/Makefile
235          po/Makefile.in po/Makefile
236         doc/Makefile lib/Makefile
237         ])
238 AC_OUTPUT
239 dnl intl/Makefile