[from gnulib]
[coreutils.git] / aclocal.m4
blobf599137943a00ae80aeb00671ad139cef8a10018
1 # generated automatically by aclocal 1.7.3 -*- Autoconf -*-
3 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
4 # Free Software Foundation, Inc.
5 # This file is free software; the Free Software Foundation
6 # gives unlimited permission to copy and/or distribute it,
7 # with or without modifications, as long as this notice is preserved.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12 # PARTICULAR PURPOSE.
14 # Do all the work for Automake.                            -*- Autoconf -*-
16 # This macro actually does too much some checks are only needed if
17 # your package does certain things.  But this isn't really a big deal.
19 # Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
20 # Free Software Foundation, Inc.
22 # This program is free software; you can redistribute it and/or modify
23 # it under the terms of the GNU General Public License as published by
24 # the Free Software Foundation; either version 2, or (at your option)
25 # any later version.
27 # This program is distributed in the hope that it will be useful,
28 # but WITHOUT ANY WARRANTY; without even the implied warranty of
29 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
30 # GNU General Public License for more details.
32 # You should have received a copy of the GNU General Public License
33 # along with this program; if not, write to the Free Software
34 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
35 # 02111-1307, USA.
37 # serial 9
39 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
40 # written in clear, in which case automake, when reading aclocal.m4,
41 # will think it sees a *use*, and therefore will trigger all it's
42 # C support machinery.  Also note that it means that autoscan, seeing
43 # CC etc. in the Makefile, will ask for an AC_PROG_CC use...
46 AC_PREREQ([2.54])
48 # Autoconf 2.50 wants to disallow AM_ names.  We explicitly allow
49 # the ones we care about.
50 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
52 # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
53 # AM_INIT_AUTOMAKE([OPTIONS])
54 # -----------------------------------------------
55 # The call with PACKAGE and VERSION arguments is the old style
56 # call (pre autoconf-2.50), which is being phased out.  PACKAGE
57 # and VERSION should now be passed to AC_INIT and removed from
58 # the call to AM_INIT_AUTOMAKE.
59 # We support both call styles for the transition.  After
60 # the next Automake release, Autoconf can make the AC_INIT
61 # arguments mandatory, and then we can depend on a new Autoconf
62 # release and drop the old call support.
63 AC_DEFUN([AM_INIT_AUTOMAKE],
64 [AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
65  AC_REQUIRE([AC_PROG_INSTALL])dnl
66 # test to see if srcdir already configured
67 if test "`cd $srcdir && pwd`" != "`pwd`" &&
68    test -f $srcdir/config.status; then
69   AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
72 # test whether we have cygpath
73 if test -z "$CYGPATH_W"; then
74   if (cygpath --version) >/dev/null 2>/dev/null; then
75     CYGPATH_W='cygpath -w'
76   else
77     CYGPATH_W=echo
78   fi
80 AC_SUBST([CYGPATH_W])
82 # Define the identity of the package.
83 dnl Distinguish between old-style and new-style calls.
84 m4_ifval([$2],
85 [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
86  AC_SUBST([PACKAGE], [$1])dnl
87  AC_SUBST([VERSION], [$2])],
88 [_AM_SET_OPTIONS([$1])dnl
89  AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
90  AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
92 _AM_IF_OPTION([no-define],,
93 [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
94  AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
96 # Some tools Automake needs.
97 AC_REQUIRE([AM_SANITY_CHECK])dnl
98 AC_REQUIRE([AC_ARG_PROGRAM])dnl
99 AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
100 AM_MISSING_PROG(AUTOCONF, autoconf)
101 AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
102 AM_MISSING_PROG(AUTOHEADER, autoheader)
103 AM_MISSING_PROG(MAKEINFO, makeinfo)
104 AM_MISSING_PROG(AMTAR, tar)
105 AM_PROG_INSTALL_SH
106 AM_PROG_INSTALL_STRIP
107 # We need awk for the "check" target.  The system "awk" is bad on
108 # some platforms.
109 AC_REQUIRE([AC_PROG_AWK])dnl
110 AC_REQUIRE([AC_PROG_MAKE_SET])dnl
111 AC_REQUIRE([AM_SET_LEADING_DOT])dnl
113 _AM_IF_OPTION([no-dependencies],,
114 [AC_PROVIDE_IFELSE([AC_PROG_CC],
115                   [_AM_DEPENDENCIES(CC)],
116                   [define([AC_PROG_CC],
117                           defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
118 AC_PROVIDE_IFELSE([AC_PROG_CXX],
119                   [_AM_DEPENDENCIES(CXX)],
120                   [define([AC_PROG_CXX],
121                           defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
126 # When config.status generates a header, we must update the stamp-h file.
127 # This file resides in the same directory as the config header
128 # that is generated.  The stamp files are numbered to have different names.
130 # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
131 # loop where config.status creates the headers, so we can generate
132 # our stamp files there.
133 AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
134 [# Compute $1's index in $config_headers.
135 _am_stamp_count=1
136 for _am_header in $config_headers :; do
137   case $_am_header in
138     $1 | $1:* )
139       break ;;
140     * )
141       _am_stamp_count=`expr $_am_stamp_count + 1` ;;
142   esac
143 done
144 echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
146 # Copyright 2002  Free Software Foundation, Inc.
148 # This program is free software; you can redistribute it and/or modify
149 # it under the terms of the GNU General Public License as published by
150 # the Free Software Foundation; either version 2, or (at your option)
151 # any later version.
153 # This program is distributed in the hope that it will be useful,
154 # but WITHOUT ANY WARRANTY; without even the implied warranty of
155 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
156 # GNU General Public License for more details.
158 # You should have received a copy of the GNU General Public License
159 # along with this program; if not, write to the Free Software
160 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
162 # AM_AUTOMAKE_VERSION(VERSION)
163 # ----------------------------
164 # Automake X.Y traces this macro to ensure aclocal.m4 has been
165 # generated from the m4 files accompanying Automake X.Y.
166 AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.7"])
168 # AM_SET_CURRENT_AUTOMAKE_VERSION
169 # -------------------------------
170 # Call AM_AUTOMAKE_VERSION so it can be traced.
171 # This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
172 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
173          [AM_AUTOMAKE_VERSION([1.7.3])])
175 # Helper functions for option handling.                    -*- Autoconf -*-
177 # Copyright 2001, 2002  Free Software Foundation, Inc.
179 # This program is free software; you can redistribute it and/or modify
180 # it under the terms of the GNU General Public License as published by
181 # the Free Software Foundation; either version 2, or (at your option)
182 # any later version.
184 # This program is distributed in the hope that it will be useful,
185 # but WITHOUT ANY WARRANTY; without even the implied warranty of
186 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
187 # GNU General Public License for more details.
189 # You should have received a copy of the GNU General Public License
190 # along with this program; if not, write to the Free Software
191 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
192 # 02111-1307, USA.
194 # serial 2
196 # _AM_MANGLE_OPTION(NAME)
197 # -----------------------
198 AC_DEFUN([_AM_MANGLE_OPTION],
199 [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
201 # _AM_SET_OPTION(NAME)
202 # ------------------------------
203 # Set option NAME.  Presently that only means defining a flag for this option.
204 AC_DEFUN([_AM_SET_OPTION],
205 [m4_define(_AM_MANGLE_OPTION([$1]), 1)])
207 # _AM_SET_OPTIONS(OPTIONS)
208 # ----------------------------------
209 # OPTIONS is a space-separated list of Automake options.
210 AC_DEFUN([_AM_SET_OPTIONS],
211 [AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
213 # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
214 # -------------------------------------------
215 # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
216 AC_DEFUN([_AM_IF_OPTION],
217 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
220 # Check to make sure that the build environment is sane.
223 # Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc.
225 # This program is free software; you can redistribute it and/or modify
226 # it under the terms of the GNU General Public License as published by
227 # the Free Software Foundation; either version 2, or (at your option)
228 # any later version.
230 # This program is distributed in the hope that it will be useful,
231 # but WITHOUT ANY WARRANTY; without even the implied warranty of
232 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
233 # GNU General Public License for more details.
235 # You should have received a copy of the GNU General Public License
236 # along with this program; if not, write to the Free Software
237 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
238 # 02111-1307, USA.
240 # serial 3
242 # AM_SANITY_CHECK
243 # ---------------
244 AC_DEFUN([AM_SANITY_CHECK],
245 [AC_MSG_CHECKING([whether build environment is sane])
246 # Just in case
247 sleep 1
248 echo timestamp > conftest.file
249 # Do `set' in a subshell so we don't clobber the current shell's
250 # arguments.  Must try -L first in case configure is actually a
251 # symlink; some systems play weird games with the mod time of symlinks
252 # (eg FreeBSD returns the mod time of the symlink's containing
253 # directory).
254 if (
255    set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
256    if test "$[*]" = "X"; then
257       # -L didn't work.
258       set X `ls -t $srcdir/configure conftest.file`
259    fi
260    rm -f conftest.file
261    if test "$[*]" != "X $srcdir/configure conftest.file" \
262       && test "$[*]" != "X conftest.file $srcdir/configure"; then
264       # If neither matched, then we have a broken ls.  This can happen
265       # if, for instance, CONFIG_SHELL is bash and it inherits a
266       # broken ls alias from the environment.  This has actually
267       # happened.  Such a system could not be considered "sane".
268       AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
269 alias in your environment])
270    fi
272    test "$[2]" = conftest.file
273    )
274 then
275    # Ok.
276    :
277 else
278    AC_MSG_ERROR([newly created file is older than distributed files!
279 Check your system clock])
281 AC_MSG_RESULT(yes)])
283 #  -*- Autoconf -*-
286 # Copyright 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
288 # This program is free software; you can redistribute it and/or modify
289 # it under the terms of the GNU General Public License as published by
290 # the Free Software Foundation; either version 2, or (at your option)
291 # any later version.
293 # This program is distributed in the hope that it will be useful,
294 # but WITHOUT ANY WARRANTY; without even the implied warranty of
295 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
296 # GNU General Public License for more details.
298 # You should have received a copy of the GNU General Public License
299 # along with this program; if not, write to the Free Software
300 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
301 # 02111-1307, USA.
303 # serial 3
305 # AM_MISSING_PROG(NAME, PROGRAM)
306 # ------------------------------
307 AC_DEFUN([AM_MISSING_PROG],
308 [AC_REQUIRE([AM_MISSING_HAS_RUN])
309 $1=${$1-"${am_missing_run}$2"}
310 AC_SUBST($1)])
313 # AM_MISSING_HAS_RUN
314 # ------------------
315 # Define MISSING if not defined so far and test if it supports --run.
316 # If it does, set am_missing_run to use it, otherwise, to nothing.
317 AC_DEFUN([AM_MISSING_HAS_RUN],
318 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
319 test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
320 # Use eval to expand $SHELL
321 if eval "$MISSING --run true"; then
322   am_missing_run="$MISSING --run "
323 else
324   am_missing_run=
325   AC_MSG_WARN([`missing' script is too old or missing])
329 # AM_AUX_DIR_EXPAND
331 # Copyright 2001 Free Software Foundation, Inc.
333 # This program is free software; you can redistribute it and/or modify
334 # it under the terms of the GNU General Public License as published by
335 # the Free Software Foundation; either version 2, or (at your option)
336 # any later version.
338 # This program is distributed in the hope that it will be useful,
339 # but WITHOUT ANY WARRANTY; without even the implied warranty of
340 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
341 # GNU General Public License for more details.
343 # You should have received a copy of the GNU General Public License
344 # along with this program; if not, write to the Free Software
345 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
346 # 02111-1307, USA.
348 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
349 # $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
350 # `$srcdir', `$srcdir/..', or `$srcdir/../..'.
352 # Of course, Automake must honor this variable whenever it calls a
353 # tool from the auxiliary directory.  The problem is that $srcdir (and
354 # therefore $ac_aux_dir as well) can be either absolute or relative,
355 # depending on how configure is run.  This is pretty annoying, since
356 # it makes $ac_aux_dir quite unusable in subdirectories: in the top
357 # source directory, any form will work fine, but in subdirectories a
358 # relative path needs to be adjusted first.
360 # $ac_aux_dir/missing
361 #    fails when called from a subdirectory if $ac_aux_dir is relative
362 # $top_srcdir/$ac_aux_dir/missing
363 #    fails if $ac_aux_dir is absolute,
364 #    fails when called from a subdirectory in a VPATH build with
365 #          a relative $ac_aux_dir
367 # The reason of the latter failure is that $top_srcdir and $ac_aux_dir
368 # are both prefixed by $srcdir.  In an in-source build this is usually
369 # harmless because $srcdir is `.', but things will broke when you
370 # start a VPATH build or use an absolute $srcdir.
372 # So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
373 # iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
374 #   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
375 # and then we would define $MISSING as
376 #   MISSING="\${SHELL} $am_aux_dir/missing"
377 # This will work as long as MISSING is not called from configure, because
378 # unfortunately $(top_srcdir) has no meaning in configure.
379 # However there are other variables, like CC, which are often used in
380 # configure, and could therefore not use this "fixed" $ac_aux_dir.
382 # Another solution, used here, is to always expand $ac_aux_dir to an
383 # absolute PATH.  The drawback is that using absolute paths prevent a
384 # configured tree to be moved without reconfiguration.
386 # Rely on autoconf to set up CDPATH properly.
387 AC_PREREQ([2.50])
389 AC_DEFUN([AM_AUX_DIR_EXPAND], [
390 # expand $ac_aux_dir to an absolute path
391 am_aux_dir=`cd $ac_aux_dir && pwd`
394 # AM_PROG_INSTALL_SH
395 # ------------------
396 # Define $install_sh.
398 # Copyright 2001 Free Software Foundation, Inc.
400 # This program is free software; you can redistribute it and/or modify
401 # it under the terms of the GNU General Public License as published by
402 # the Free Software Foundation; either version 2, or (at your option)
403 # any later version.
405 # This program is distributed in the hope that it will be useful,
406 # but WITHOUT ANY WARRANTY; without even the implied warranty of
407 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
408 # GNU General Public License for more details.
410 # You should have received a copy of the GNU General Public License
411 # along with this program; if not, write to the Free Software
412 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
413 # 02111-1307, USA.
415 AC_DEFUN([AM_PROG_INSTALL_SH],
416 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
417 install_sh=${install_sh-"$am_aux_dir/install-sh"}
418 AC_SUBST(install_sh)])
420 # AM_PROG_INSTALL_STRIP
422 # Copyright 2001 Free Software Foundation, Inc.
424 # This program is free software; you can redistribute it and/or modify
425 # it under the terms of the GNU General Public License as published by
426 # the Free Software Foundation; either version 2, or (at your option)
427 # any later version.
429 # This program is distributed in the hope that it will be useful,
430 # but WITHOUT ANY WARRANTY; without even the implied warranty of
431 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
432 # GNU General Public License for more details.
434 # You should have received a copy of the GNU General Public License
435 # along with this program; if not, write to the Free Software
436 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
437 # 02111-1307, USA.
439 # One issue with vendor `install' (even GNU) is that you can't
440 # specify the program used to strip binaries.  This is especially
441 # annoying in cross-compiling environments, where the build's strip
442 # is unlikely to handle the host's binaries.
443 # Fortunately install-sh will honor a STRIPPROG variable, so we
444 # always use install-sh in `make install-strip', and initialize
445 # STRIPPROG with the value of the STRIP variable (set by the user).
446 AC_DEFUN([AM_PROG_INSTALL_STRIP],
447 [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
448 # Installed binaries are usually stripped using `strip' when the user
449 # run `make install-strip'.  However `strip' might not be the right
450 # tool to use in cross-compilation environments, therefore Automake
451 # will honor the `STRIP' environment variable to overrule this program.
452 dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
453 if test "$cross_compiling" != no; then
454   AC_CHECK_TOOL([STRIP], [strip], :)
456 INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
457 AC_SUBST([INSTALL_STRIP_PROGRAM])])
459 #                                                          -*- Autoconf -*-
460 # Copyright (C) 2003  Free Software Foundation, Inc.
462 # This program is free software; you can redistribute it and/or modify
463 # it under the terms of the GNU General Public License as published by
464 # the Free Software Foundation; either version 2, or (at your option)
465 # any later version.
467 # This program is distributed in the hope that it will be useful,
468 # but WITHOUT ANY WARRANTY; without even the implied warranty of
469 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
470 # GNU General Public License for more details.
472 # You should have received a copy of the GNU General Public License
473 # along with this program; if not, write to the Free Software
474 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
475 # 02111-1307, USA.
477 # serial 1
479 # Check whether the underlying file-system supports filenames
480 # with a leading dot.  For instance MS-DOS doesn't.
481 AC_DEFUN([AM_SET_LEADING_DOT],
482 [rm -rf .tst 2>/dev/null
483 mkdir .tst 2>/dev/null
484 if test -d .tst; then
485   am__leading_dot=.
486 else
487   am__leading_dot=_
489 rmdir .tst 2>/dev/null
490 AC_SUBST([am__leading_dot])])
492 # serial 5                                              -*- Autoconf -*-
494 # Copyright (C) 1999, 2000, 2001, 2002, 2003  Free Software Foundation, Inc.
496 # This program is free software; you can redistribute it and/or modify
497 # it under the terms of the GNU General Public License as published by
498 # the Free Software Foundation; either version 2, or (at your option)
499 # any later version.
501 # This program is distributed in the hope that it will be useful,
502 # but WITHOUT ANY WARRANTY; without even the implied warranty of
503 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
504 # GNU General Public License for more details.
506 # You should have received a copy of the GNU General Public License
507 # along with this program; if not, write to the Free Software
508 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
509 # 02111-1307, USA.
512 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
513 # written in clear, in which case automake, when reading aclocal.m4,
514 # will think it sees a *use*, and therefore will trigger all it's
515 # C support machinery.  Also note that it means that autoscan, seeing
516 # CC etc. in the Makefile, will ask for an AC_PROG_CC use...
520 # _AM_DEPENDENCIES(NAME)
521 # ----------------------
522 # See how the compiler implements dependency checking.
523 # NAME is "CC", "CXX", "GCJ", or "OBJC".
524 # We try a few techniques and use that to set a single cache variable.
526 # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
527 # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
528 # dependency, and given that the user is not expected to run this macro,
529 # just rely on AC_PROG_CC.
530 AC_DEFUN([_AM_DEPENDENCIES],
531 [AC_REQUIRE([AM_SET_DEPDIR])dnl
532 AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
533 AC_REQUIRE([AM_MAKE_INCLUDE])dnl
534 AC_REQUIRE([AM_DEP_TRACK])dnl
536 ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
537        [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
538        [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
539        [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
540                    [depcc="$$1"   am_compiler_list=])
542 AC_CACHE_CHECK([dependency style of $depcc],
543                [am_cv_$1_dependencies_compiler_type],
544 [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
545   # We make a subdir and do the tests there.  Otherwise we can end up
546   # making bogus files that we don't know about and never remove.  For
547   # instance it was reported that on HP-UX the gcc test will end up
548   # making a dummy file named `D' -- because `-MD' means `put the output
549   # in D'.
550   mkdir conftest.dir
551   # Copy depcomp to subdir because otherwise we won't find it if we're
552   # using a relative directory.
553   cp "$am_depcomp" conftest.dir
554   cd conftest.dir
556   am_cv_$1_dependencies_compiler_type=none
557   if test "$am_compiler_list" = ""; then
558      am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
559   fi
560   for depmode in $am_compiler_list; do
561     # We need to recreate these files for each test, as the compiler may
562     # overwrite some of them when testing with obscure command lines.
563     # This happens at least with the AIX C compiler.
564     echo '#include "conftest.h"' > conftest.c
565     echo 'int i;' > conftest.h
566     echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
568     case $depmode in
569     nosideeffect)
570       # after this tag, mechanisms are not by side-effect, so they'll
571       # only be used when explicitly requested
572       if test "x$enable_dependency_tracking" = xyes; then
573         continue
574       else
575         break
576       fi
577       ;;
578     none) break ;;
579     esac
580     # We check with `-c' and `-o' for the sake of the "dashmstdout"
581     # mode.  It turns out that the SunPro C++ compiler does not properly
582     # handle `-M -o', and we need to detect this.
583     if depmode=$depmode \
584        source=conftest.c object=conftest.o \
585        depfile=conftest.Po tmpdepfile=conftest.TPo \
586        $SHELL ./depcomp $depcc -c -o conftest.o conftest.c \
587          >/dev/null 2>conftest.err &&
588        grep conftest.h conftest.Po > /dev/null 2>&1 &&
589        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
590       # icc doesn't choke on unknown options, it will just issue warnings
591       # (even with -Werror).  So we grep stderr for any message
592       # that says an option was ignored.
593       if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else
594         am_cv_$1_dependencies_compiler_type=$depmode
595         break
596       fi
597     fi
598   done
600   cd ..
601   rm -rf conftest.dir
602 else
603   am_cv_$1_dependencies_compiler_type=none
606 AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
607 AM_CONDITIONAL([am__fastdep$1], [
608   test "x$enable_dependency_tracking" != xno \
609   && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
613 # AM_SET_DEPDIR
614 # -------------
615 # Choose a directory name for dependency files.
616 # This macro is AC_REQUIREd in _AM_DEPENDENCIES
617 AC_DEFUN([AM_SET_DEPDIR],
618 [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
619 AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
623 # AM_DEP_TRACK
624 # ------------
625 AC_DEFUN([AM_DEP_TRACK],
626 [AC_ARG_ENABLE(dependency-tracking,
627 [  --disable-dependency-tracking Speeds up one-time builds
628   --enable-dependency-tracking  Do not reject slow dependency extractors])
629 if test "x$enable_dependency_tracking" != xno; then
630   am_depcomp="$ac_aux_dir/depcomp"
631   AMDEPBACKSLASH='\'
633 AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
634 AC_SUBST([AMDEPBACKSLASH])
637 # Generate code to set up dependency tracking.   -*- Autoconf -*-
639 # Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
641 # This program is free software; you can redistribute it and/or modify
642 # it under the terms of the GNU General Public License as published by
643 # the Free Software Foundation; either version 2, or (at your option)
644 # any later version.
646 # This program is distributed in the hope that it will be useful,
647 # but WITHOUT ANY WARRANTY; without even the implied warranty of
648 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
649 # GNU General Public License for more details.
651 # You should have received a copy of the GNU General Public License
652 # along with this program; if not, write to the Free Software
653 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
654 # 02111-1307, USA.
656 #serial 2
658 # _AM_OUTPUT_DEPENDENCY_COMMANDS
659 # ------------------------------
660 AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
661 [for mf in $CONFIG_FILES; do
662   # Strip MF so we end up with the name of the file.
663   mf=`echo "$mf" | sed -e 's/:.*$//'`
664   # Check whether this is an Automake generated Makefile or not.
665   # We used to match only the files named `Makefile.in', but
666   # some people rename them; so instead we look at the file content.
667   # Grep'ing the first line is not enough: some people post-process
668   # each Makefile.in and add a new line on top of each file to say so.
669   # So let's grep whole file.
670   if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
671     dirpart=`AS_DIRNAME("$mf")`
672   else
673     continue
674   fi
675   grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue
676   # Extract the definition of DEP_FILES from the Makefile without
677   # running `make'.
678   DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
679   test -z "$DEPDIR" && continue
680   # When using ansi2knr, U may be empty or an underscore; expand it
681   U=`sed -n -e '/^U = / s///p' < "$mf"`
682   test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
683   # We invoke sed twice because it is the simplest approach to
684   # changing $(DEPDIR) to its actual value in the expansion.
685   for file in `sed -n -e '
686     /^DEP_FILES = .*\\\\$/ {
687       s/^DEP_FILES = //
688       :loop
689         s/\\\\$//
690         p
691         n
692         /\\\\$/ b loop
693       p
694     }
695     /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
696        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
697     # Make sure the directory exists.
698     test -f "$dirpart/$file" && continue
699     fdir=`AS_DIRNAME(["$file"])`
700     AS_MKDIR_P([$dirpart/$fdir])
701     # echo "creating $dirpart/$file"
702     echo '# dummy' > "$dirpart/$file"
703   done
704 done
705 ])# _AM_OUTPUT_DEPENDENCY_COMMANDS
708 # AM_OUTPUT_DEPENDENCY_COMMANDS
709 # -----------------------------
710 # This macro should only be invoked once -- use via AC_REQUIRE.
712 # This code is only required when automatic dependency tracking
713 # is enabled.  FIXME.  This creates each `.P' file that we will
714 # need in order to bootstrap the dependency handling code.
715 AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
716 [AC_CONFIG_COMMANDS([depfiles],
717      [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
718      [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
721 # Check to see how 'make' treats includes.      -*- Autoconf -*-
723 # Copyright (C) 2001, 2002 Free Software Foundation, Inc.
725 # This program is free software; you can redistribute it and/or modify
726 # it under the terms of the GNU General Public License as published by
727 # the Free Software Foundation; either version 2, or (at your option)
728 # any later version.
730 # This program is distributed in the hope that it will be useful,
731 # but WITHOUT ANY WARRANTY; without even the implied warranty of
732 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
733 # GNU General Public License for more details.
735 # You should have received a copy of the GNU General Public License
736 # along with this program; if not, write to the Free Software
737 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
738 # 02111-1307, USA.
740 # serial 2
742 # AM_MAKE_INCLUDE()
743 # -----------------
744 # Check to see how make treats includes.
745 AC_DEFUN([AM_MAKE_INCLUDE],
746 [am_make=${MAKE-make}
747 cat > confinc << 'END'
748 doit:
749         @echo done
751 # If we don't find an include directive, just comment out the code.
752 AC_MSG_CHECKING([for style of include used by $am_make])
753 am__include="#"
754 am__quote=
755 _am_result=none
756 # First try GNU make style include.
757 echo "include confinc" > confmf
758 # We grep out `Entering directory' and `Leaving directory'
759 # messages which can occur if `w' ends up in MAKEFLAGS.
760 # In particular we don't look at `^make:' because GNU make might
761 # be invoked under some other name (usually "gmake"), in which
762 # case it prints its new name instead of `make'.
763 if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
764    am__include=include
765    am__quote=
766    _am_result=GNU
768 # Now try BSD make style include.
769 if test "$am__include" = "#"; then
770    echo '.include "confinc"' > confmf
771    if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
772       am__include=.include
773       am__quote="\""
774       _am_result=BSD
775    fi
777 AC_SUBST(am__include)
778 AC_SUBST(am__quote)
779 AC_MSG_RESULT($_am_result)
780 rm -f confinc confmf
783 # AM_CONDITIONAL                                              -*- Autoconf -*-
785 # Copyright 1997, 2000, 2001 Free Software Foundation, Inc.
787 # This program is free software; you can redistribute it and/or modify
788 # it under the terms of the GNU General Public License as published by
789 # the Free Software Foundation; either version 2, or (at your option)
790 # any later version.
792 # This program is distributed in the hope that it will be useful,
793 # but WITHOUT ANY WARRANTY; without even the implied warranty of
794 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
795 # GNU General Public License for more details.
797 # You should have received a copy of the GNU General Public License
798 # along with this program; if not, write to the Free Software
799 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
800 # 02111-1307, USA.
802 # serial 5
804 AC_PREREQ(2.52)
806 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
807 # -------------------------------------
808 # Define a conditional.
809 AC_DEFUN([AM_CONDITIONAL],
810 [ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
811         [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
812 AC_SUBST([$1_TRUE])
813 AC_SUBST([$1_FALSE])
814 if $2; then
815   $1_TRUE=
816   $1_FALSE='#'
817 else
818   $1_TRUE='#'
819   $1_FALSE=
821 AC_CONFIG_COMMANDS_PRE(
822 [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
823   AC_MSG_ERROR([conditional "$1" was never defined.
824 Usually this means the macro was only invoked conditionally.])
825 fi])])
827 #serial 4
829 dnl From Jim Meyering.
830 dnl Find a new-enough version of Perl.
833 AC_DEFUN([jm_PERL],
835   dnl FIXME: don't hard-code 5.003
836   dnl FIXME: should we cache the result?
837   AC_MSG_CHECKING([for perl5.003 or newer])
838   if test "${PERL+set}" = set; then
839     # `PERL' is set in the user's environment.
840     candidate_perl_names="$PERL"
841     perl_specified=yes
842   else
843     candidate_perl_names='perl perl5'
844     perl_specified=no
845   fi
847   found=no
848   AC_SUBST(PERL)
849   PERL="$missing_dir/missing perl"
850   for perl in $candidate_perl_names; do
851     # Run test in a subshell; some versions of sh will print an error if
852     # an executable is not found, even if stderr is redirected.
853     if ( $perl -e 'require 5.003; use File::Compare' ) > /dev/null 2>&1; then
854       PERL=$perl
855       found=yes
856       break
857     fi
858   done
860   AC_MSG_RESULT($found)
861   test $found = no && AC_MSG_WARN([
862 WARNING: You don't seem to have perl5.003 or newer installed, or you lack
863          a usable version of the Perl File::Compare module.  As a result,
864          you may be unable to run a few tests or to regenerate certain
865          files if you modify the sources from which they are derived.
866 ] )
869 #serial 60   -*- autoconf -*-
871 m4_undefine([AC_LANG_SOURCE(C)])
872 dnl The following is identical to the definition in c.m4
873 dnl from the autoconf cvs repository on 2003-03-07.
874 dnl FIXME: remove this code once we upgrade to autoconf-2.58.
876 # We can't use '#line $LINENO "configure"' here, since
877 # Sun c89 (Sun WorkShop 6 update 2 C 5.3 Patch 111679-08 2002/05/09)
878 # rejects $LINENO greater than 32767, and some configure scripts
879 # are longer than 32767 lines.
880 m4_define([AC_LANG_SOURCE(C)],
881 [/* confdefs.h.  */
882 _ACEOF
883 cat confdefs.h >>conftest.$ac_ext
884 cat >>conftest.$ac_ext <<_ACEOF
885 /* end confdefs.h.  */
886 $1])
889 dnl Misc type-related macros for fileutils, sh-utils, textutils.
891 AC_DEFUN([jm_MACROS],
893   AC_PREREQ(2.56)
895   GNU_PACKAGE="GNU $PACKAGE"
896   AC_DEFINE_UNQUOTED(GNU_PACKAGE, "$GNU_PACKAGE",
897     [The concatenation of the strings `GNU ', and PACKAGE.])
898   AC_SUBST(GNU_PACKAGE)
900   AM_MISSING_PROG(HELP2MAN, help2man)
901   AC_SUBST(OPTIONAL_BIN_PROGS)
902   AC_SUBST(OPTIONAL_BIN_ZCRIPTS)
903   AC_SUBST(MAN)
904   AC_SUBST(DF_PROG)
906   dnl This macro actually runs replacement code.  See isc-posix.m4.
907   AC_REQUIRE([AC_ISC_POSIX])dnl
909   jm_CHECK_ALL_TYPES
910   jm_INCLUDED_REGEX([lib/regex.c])
912   AC_REQUIRE([UTILS_HOST_OS])
913   AC_REQUIRE([UTILS_FUNC_MKDIR_TRAILING_SLASH])
914   AC_REQUIRE([jm_BISON])
915   AC_REQUIRE([jm_ASSERT])
916   AC_REQUIRE([jm_CHECK_TYPE_STRUCT_UTIMBUF])
917   AC_REQUIRE([jm_CHECK_TYPE_STRUCT_DIRENT_D_TYPE])
918   AC_REQUIRE([jm_CHECK_TYPE_STRUCT_DIRENT_D_INO])
919   AC_REQUIRE([jm_CHECK_DECLS])
921   AC_REQUIRE([jm_PREREQ])
923   AC_REQUIRE([UTILS_FUNC_DIRFD])
924   AC_REQUIRE([AC_FUNC_ACL])
925   AC_REQUIRE([AC_FUNC_FTW])
926   AC_REQUIRE([jm_FUNC_LCHOWN])
927   AC_REQUIRE([fetish_FUNC_RMDIR_NOTEMPTY])
928   AC_REQUIRE([jm_FUNC_CHOWN])
929   AC_REQUIRE([jm_FUNC_MKTIME])
930   AC_REQUIRE([jm_FUNC_LSTAT])
931   AC_REQUIRE([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
932   AC_REQUIRE([jm_FUNC_STAT])
933   AC_REQUIRE([AC_FUNC_REALLOC])
934   AC_REQUIRE([AC_FUNC_MALLOC])
935   AC_REQUIRE([AC_FUNC_STRERROR_R])
936   AC_REQUIRE([jm_FUNC_NANOSLEEP])
937   AC_REQUIRE([jm_FUNC_MEMCMP])
938   AC_REQUIRE([jm_FUNC_GLIBC_UNLOCKED_IO])
939   AC_REQUIRE([AC_FUNC_FNMATCH_GNU])
940   AC_REQUIRE([jm_FUNC_GROUP_MEMBER])
941   AC_REQUIRE([jm_FUNC_PUTENV])
942   AC_REQUIRE([jm_AFS])
943   AC_REQUIRE([jm_AC_PREREQ_XSTRTOUMAX])
944   AC_REQUIRE([jm_AC_PREREQ_XSTRTOIMAX])
945   AC_REQUIRE([jm_AC_FUNC_LINK_FOLLOWS_SYMLINK])
946   AC_REQUIRE([AC_FUNC_ERROR_AT_LINE])
947   AC_REQUIRE([jm_FUNC_GNU_STRFTIME])
948   AC_REQUIRE([jm_FUNC_MKTIME])
949   AC_REQUIRE([jm_FUNC_FPENDING])
951   # This is for od and stat, and any other program that
952   # uses the PRI.MAX macros from inttypes.h.
953   AC_REQUIRE([gt_INTTYPES_PRI])
955   AC_REQUIRE([jm_FUNC_GETGROUPS])
957   AC_REQUIRE([AC_FUNC_FSEEKO])
958   AC_REQUIRE([AC_FUNC_VPRINTF])
959   AC_REQUIRE([AC_FUNC_ALLOCA])
961   AC_CONFIG_LIBOBJ_DIR([lib])
962   AC_FUNC_GETLOADAVG
964   AC_REQUIRE([jm_SYS_PROC_UPTIME])
965   AC_REQUIRE([jm_FUNC_FTRUNCATE])
966   AC_REQUIRE([vb_FUNC_RENAME])
968   AC_REPLACE_FUNCS(strcasecmp strncasecmp)
969   AC_REPLACE_FUNCS(dup2)
970   AC_REPLACE_FUNCS(gethostname getusershell)
971   AC_REPLACE_FUNCS(sig2str)
972   AC_REPLACE_FUNCS(strcspn stpcpy strstr strtol strtoul)
973   AC_REPLACE_FUNCS(strpbrk)
974   AC_REPLACE_FUNCS(euidaccess memcmp rmdir rpmatch strndup strverscmp)
975   AC_REPLACE_FUNCS(atexit)
976   AC_REPLACE_FUNCS(getpass)
978   # raise is used by at least sort and ls.
979   AC_REPLACE_FUNCS(raise)
981   dnl used by e.g. intl/*domain.c and lib/canon-host.c
982   AC_REPLACE_FUNCS(strdup)
984   AC_REPLACE_FUNCS(memchr memcpy memmove memrchr memset)
985   AC_CHECK_FUNCS(getpagesize)
987   AC_REQUIRE([UTILS_FUNC_MKSTEMP])
989   # By default, argmatch should fail calling usage (1).
990   AC_DEFINE(ARGMATCH_DIE, [usage (1)],
991             [Define to the function xargmatch calls on failures.])
992   AC_DEFINE(ARGMATCH_DIE_DECL, [extern void usage ()],
993             [Define to the declaration of the xargmatch failure function.])
995   dnl Used to define SETVBUF in sys2.h.
996   dnl This evokes the following warning from autoconf:
997   dnl ...: warning: AC_TRY_RUN called without default to allow cross compiling
998   AC_FUNC_SETVBUF_REVERSED
1000   # used by sleep and shred
1001   # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
1002   # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
1004   # Save and restore LIBS so e.g., -lrt, isn't added to it.  Otherwise, *all*
1005   # programs in the package would end up linked with that potentially-shared
1006   # library, inducing unnecessary run-time overhead.
1007   fetish_saved_libs=$LIBS
1008     AC_SEARCH_LIBS(clock_gettime, [rt posix4],
1009                    [LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
1010     AC_SUBST(LIB_CLOCK_GETTIME)
1011     AC_CHECK_FUNCS(clock_gettime clock_settime)
1012   LIBS=$fetish_saved_libs
1013   AC_CHECK_FUNCS(gettimeofday)
1014   AC_FUNC_GETTIMEOFDAY_CLOBBER
1016   AC_REQUIRE([AC_FUNC_CLOSEDIR_VOID])
1017   AC_REQUIRE([jm_FUNC_UTIME])
1019   AC_CHECK_FUNCS( \
1020     bcopy \
1021     endgrent \
1022     endpwent \
1023     fchdir \
1024     fdatasync \
1025     ftime \
1026     ftruncate \
1027     getcwd \
1028     gethrtime \
1029     getmntinfo \
1030     hasmntopt \
1031     isascii \
1032     iswspace \
1033     lchown \
1034     listmntent \
1035     localeconv \
1036     memcpy \
1037     mempcpy \
1038     mkfifo \
1039     realpath \
1040     sethostname \
1041     strchr \
1042     strerror \
1043     strrchr \
1044     sysctl \
1045     sysinfo \
1046     wcrtomb \
1047     tzset \
1048   )
1050   # for test.c
1051   AC_CHECK_FUNCS(setreuid setregid)
1053   AM_FUNC_GETLINE
1054   if test $am_cv_func_working_getline != yes; then
1055     AC_CHECK_FUNCS(getdelim)
1056   fi
1057   AC_FUNC_OBSTACK
1059   AC_FUNC_STRTOD
1060   AC_REQUIRE([UTILS_SYS_OPEN_MAX])
1061   AC_REQUIRE([GL_FUNC_GETCWD_PATH_MAX])
1063   # See if linking `seq' requires -lm.
1064   # It does on nearly every system.  The single exception (so far) is
1065   # BeOS which has all the math functions in the normal runtime library
1066   # and doesn't have a separate math library.
1068   AC_SUBST(SEQ_LIBM)
1069   ac_seq_body='
1070      static double x, y;
1071      x = floor (x);
1072      x = rint (x);
1073      x = modf (x, &y);'
1074   AC_TRY_LINK([#include <math.h>], $ac_seq_body, ,
1075     [ac_seq_save_LIBS="$LIBS"
1076      LIBS="$LIBS -lm"
1077      AC_TRY_LINK([#include <math.h>], $ac_seq_body, SEQ_LIBM=-lm)
1078      LIBS="$ac_seq_save_LIBS"
1079     ])
1081   AM_LANGINFO_CODESET
1082   jm_GLIBC21
1083   AM_ICONV
1084   jm_FUNC_UNLINK_BUSY_TEXT
1086   # These tests are for df.
1087   jm_LIST_MOUNTED_FILESYSTEMS([list_mounted_fs=yes], [list_mounted_fs=no])
1088   jm_FSTYPENAME
1089   jm_FILE_SYSTEM_USAGE([space=yes], [space=no])
1090   if test $list_mounted_fs = yes && test $space = yes; then
1091     DF_PROG=df
1092     AC_LIBOBJ(fsusage)
1093     AC_LIBOBJ(mountlist)
1094   fi
1095   AC_REQUIRE([jm_AC_DOS])
1096   AC_REQUIRE([AC_FUNC_CANONICALIZE_FILE_NAME])
1098   # If any of these functions don't exist (e.g. DJGPP 2.03),
1099   # use the corresponding stub.
1100   AC_CHECK_FUNC([fchown], , [AC_LIBOBJ(fchown-stub)])
1101   AC_CHECK_FUNC([lstat], , [AC_LIBOBJ(lstat-stub)])
1102   AC_CHECK_FUNC([readlink], , [AC_LIBOBJ(readlink-stub)])
1106 # These tests must be run before any use of AC_CHECK_TYPE,
1107 # because that macro compiles code that tests e.g., HAVE_UNISTD_H.
1108 # See the definition of ac_includes_default in `configure'.
1109 AC_DEFUN([jm_CHECK_ALL_HEADERS],
1111   AC_CHECK_HEADERS( \
1112     errno.h  \
1113     fcntl.h \
1114     float.h \
1115     hurd.h \
1116     limits.h \
1117     memory.h \
1118     mntent.h \
1119     mnttab.h \
1120     netdb.h \
1121     paths.h \
1122     stdlib.h \
1123     stddef.h \
1124     stdint.h \
1125     string.h \
1126     sys/filsys.h \
1127     sys/fs/s5param.h \
1128     sys/fs_types.h \
1129     sys/fstyp.h \
1130     sys/ioctl.h \
1131     sys/mntent.h \
1132     sys/mount.h \
1133     sys/param.h \
1134     sys/resource.h \
1135     sys/socket.h \
1136     sys/statfs.h \
1137     sys/statvfs.h \
1138     sys/sysctl.h \
1139     sys/systeminfo.h \
1140     sys/time.h \
1141     sys/timeb.h \
1142     sys/vfs.h \
1143     sys/wait.h \
1144     syslog.h \
1145     termios.h \
1146     unistd.h \
1147     utime.h \
1148     values.h \
1149   )
1152 # This macro must be invoked before any tests that run the compiler.
1153 AC_DEFUN([jm_CHECK_ALL_TYPES],
1155   dnl This test must come as early as possible after the compiler configuration
1156   dnl tests, because the choice of the file model can (in principle) affect
1157   dnl whether functions and headers are available, whether they work, etc.
1158   AC_REQUIRE([AC_SYS_LARGEFILE])
1160   dnl This test must precede tests of compiler characteristics like
1161   dnl that for the inline keyword, since it may change the degree to
1162   dnl which the compiler supports such features.
1163   AC_REQUIRE([AM_C_PROTOTYPES])
1165   dnl Checks for typedefs, structures, and compiler characteristics.
1166   AC_REQUIRE([AC_C_BIGENDIAN])
1167   AC_REQUIRE([AC_C_CONST])
1168   AC_REQUIRE([AC_C_VOLATILE])
1169   AC_REQUIRE([AC_C_INLINE])
1170   AC_REQUIRE([AC_C_LONG_DOUBLE])
1172   AC_REQUIRE([jm_CHECK_ALL_HEADERS])
1173   AC_REQUIRE([AC_HEADER_DIRENT])
1174   AC_REQUIRE([AC_HEADER_STDC])
1175   AC_CHECK_MEMBERS(
1176     [struct stat.st_author,
1177      struct stat.st_blksize],,,
1178     [$ac_includes_default
1179 #include <sys/stat.h>
1180   ])
1181   AC_REQUIRE([AC_STRUCT_ST_BLOCKS])
1183   AC_REQUIRE([AC_STRUCT_TM])
1184   AC_REQUIRE([AC_STRUCT_TIMEZONE])
1185   AC_REQUIRE([AC_HEADER_STAT])
1186   AC_REQUIRE([AC_STRUCT_ST_MTIM_NSEC])
1187   AC_REQUIRE([AC_STRUCT_ST_DM_MODE])
1188   AC_REQUIRE([jm_CHECK_TYPE_STRUCT_TIMESPEC])
1190   AC_REQUIRE([AC_TYPE_GETGROUPS])
1191   AC_REQUIRE([AC_TYPE_MODE_T])
1192   AC_REQUIRE([AC_TYPE_OFF_T])
1193   AC_REQUIRE([AC_TYPE_PID_T])
1194   AC_REQUIRE([AC_TYPE_SIGNAL])
1195   AC_REQUIRE([AC_TYPE_SIZE_T])
1196   AC_REQUIRE([AC_TYPE_UID_T])
1197   AC_CHECK_TYPE(ino_t, unsigned long)
1199   dnl This relies on the fact that autoconf 2.14a's implementation of
1200   dnl AC_CHECK_TYPE checks includes unistd.h.
1201   AC_CHECK_TYPE(ssize_t, int)
1202   AC_CHECK_TYPE(major_t, unsigned int)
1203   AC_CHECK_TYPE(minor_t, unsigned int)
1205   AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])
1206   AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
1208   AC_REQUIRE([AC_HEADER_MAJOR])
1209   AC_REQUIRE([AC_HEADER_DIRENT])
1213 # isc-posix.m4 serial 2 (gettext-0.11.2)
1214 dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
1215 dnl This file is free software, distributed under the terms of the GNU
1216 dnl General Public License.  As a special exception to the GNU General
1217 dnl Public License, this file may be distributed as part of a program
1218 dnl that contains a configuration script generated by Autoconf, under
1219 dnl the same distribution terms as the rest of that program.
1221 # This file is not needed with autoconf-2.53 and newer.  Remove it in 2005.
1223 # This test replaces the one in autoconf.
1224 # Currently this macro should have the same name as the autoconf macro
1225 # because gettext's gettext.m4 (distributed in the automake package)
1226 # still uses it.  Otherwise, the use in gettext.m4 makes autoheader
1227 # give these diagnostics:
1228 #   configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
1229 #   configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
1231 undefine([AC_ISC_POSIX])
1233 AC_DEFUN([AC_ISC_POSIX],
1234   [
1235     dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
1236     AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
1237   ]
1240 #serial 15
1242 dnl Initially derived from code in GNU grep.
1243 dnl Mostly written by Jim Meyering.
1245 dnl Usage: jm_INCLUDED_REGEX([lib/regex.c])
1247 AC_DEFUN([jm_INCLUDED_REGEX],
1248   [
1249     dnl Even packages that don't use regex.c can use this macro.
1250     dnl Of course, for them it doesn't do anything.
1252     # Assume we'll default to using the included regex.c.
1253     ac_use_included_regex=yes
1255     # However, if the system regex support is good enough that it passes the
1256     # the following run test, then default to *not* using the included regex.c.
1257     # If cross compiling, assume the test would fail and use the included
1258     # regex.c.  The first failing regular expression is from `Spencer ere
1259     # test #75' in grep-2.3.
1260     AC_CACHE_CHECK([for working re_compile_pattern],
1261                    jm_cv_func_working_re_compile_pattern,
1262       AC_TRY_RUN(
1263 [#include <stdio.h>
1264 #include <string.h>
1265 #include <regex.h>
1266           int
1267           main ()
1268           {
1269             static struct re_pattern_buffer regex;
1270             const char *s;
1271             struct re_registers regs;
1272             re_set_syntax (RE_SYNTAX_POSIX_EGREP);
1273             memset (&regex, 0, sizeof (regex));
1274             [s = re_compile_pattern ("a[[:@:>@:]]b\n", 9, &regex);]
1275             /* This should fail with _Invalid character class name_ error.  */
1276             if (!s)
1277               exit (1);
1279             /* This should succeed, but doesn't for e.g. glibc-2.1.3.  */
1280             memset (&regex, 0, sizeof (regex));
1281             s = re_compile_pattern ("{1", 2, &regex);
1283             if (s)
1284               exit (1);
1286             /* The following example is derived from a problem report
1287                against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>.  */
1288             memset (&regex, 0, sizeof (regex));
1289             s = re_compile_pattern ("[[anù]]*n", 7, &regex);
1290             if (s)
1291               exit (1);
1293             /* This should match, but doesn't for e.g. glibc-2.2.1.  */
1294             if (re_match (&regex, "an", 2, 0, &regs) != 2)
1295               exit (1);
1297             memset (&regex, 0, sizeof (regex));
1298             s = re_compile_pattern ("x", 1, &regex);
1299             if (s)
1300               exit (1);
1302             /* The version of regex.c in e.g. GNU libc-2.2.93 didn't
1303                work with a negative RANGE argument.  */
1304             if (re_search (&regex, "wxy", 3, 2, -2, &regs) != 1)
1305               exit (1);
1307             exit (0);
1308           }
1309         ],
1310                jm_cv_func_working_re_compile_pattern=yes,
1311                jm_cv_func_working_re_compile_pattern=no,
1312                dnl When crosscompiling, assume it's broken.
1313                jm_cv_func_working_re_compile_pattern=no))
1314     if test $jm_cv_func_working_re_compile_pattern = yes; then
1315       ac_use_included_regex=no
1316     fi
1318     test -n "$1" || AC_MSG_ERROR([missing argument])
1319     m4_syscmd([test -f $1])
1320     ifelse(m4_sysval, 0,
1321       [
1322         AC_ARG_WITH(included-regex,
1323         [  --without-included-regex don't compile regex; this is the default on
1324                           systems with version 2 of the GNU C library
1325                           (use with caution on other system)],
1326                     jm_with_regex=$withval,
1327                     jm_with_regex=$ac_use_included_regex)
1328         if test "$jm_with_regex" = yes; then
1329           AC_LIBOBJ(regex)
1330           jm_PREREQ_REGEX
1331         fi
1332       ],
1333     )
1334   ]
1337 # Prerequisites of lib/regex.c.
1338 AC_DEFUN([jm_PREREQ_REGEX],
1340   dnl FIXME: Maybe provide a btowc replacement someday: solaris-2.5.1 lacks it.
1341   dnl FIXME: Check for wctype and iswctype, and and add -lw if necessary
1342   dnl to get them.
1344   dnl Persuade glibc <string.h> to declare mempcpy().
1345   AC_REQUIRE([AC_GNU_SOURCE])
1347   AC_REQUIRE([ACX_C_RESTRICT])
1348   AC_REQUIRE([AC_FUNC_ALLOCA])
1349   AC_REQUIRE([AC_HEADER_STDC])
1350   AC_CHECK_HEADERS_ONCE(limits.h string.h wchar.h wctype.h)
1351   AC_CHECK_FUNCS_ONCE(isascii mempcpy)
1352   AC_CHECK_FUNCS(btowc)
1355 #serial 1001
1356 dnl based on acx_restrict.m4, from the GNU Autoconf Macro Archive at:
1357 dnl http://www.gnu.org/software/ac-archive/htmldoc/acx_restrict.html
1359 # Determine whether the C/C++ compiler supports the "restrict" keyword
1360 # introduced in ANSI C99, or an equivalent.  Do nothing if the compiler
1361 # accepts it.  Otherwise, if the compiler supports an equivalent (like
1362 # gcc's __restrict__) define "restrict" to be that.  Otherwise, define
1363 # "restrict" to be empty.
1365 AC_DEFUN([ACX_C_RESTRICT],
1366 [AC_CACHE_CHECK([for C/C++ restrict keyword], acx_cv_c_restrict,
1367   [acx_cv_c_restrict=no
1368    # Try the official restrict keyword, then gcc's __restrict__.
1369    for acx_kw in restrict __restrict__; do
1370      AC_COMPILE_IFELSE([AC_LANG_SOURCE(
1371       [float * $acx_kw x;])],
1372       [acx_cv_c_restrict=$acx_kw; break])
1373    done
1374   ])
1375  case $acx_cv_c_restrict in
1376    restrict) ;;
1377    no) AC_DEFINE(restrict,,
1378         [Define to equivalent of C99 restrict keyword, or to nothing if this
1379         is not supported.  Do not define if restrict is supported directly.]) ;;
1380    *)  AC_DEFINE_UNQUOTED(restrict, $acx_cv_c_restrict) ;;
1381  esac
1384 # onceonly.m4 serial 1
1385 dnl Copyright (C) 2002 Free Software Foundation, Inc.
1386 dnl This file is free software, distributed under the terms of the GNU
1387 dnl General Public License.  As a special exception to the GNU General
1388 dnl Public License, this file may be distributed as part of a program
1389 dnl that contains a configuration script generated by Autoconf, under
1390 dnl the same distribution terms as the rest of that program.
1392 dnl This file defines some "once only" variants of standard autoconf macros.
1393 dnl   AC_CHECK_HEADERS_ONCE         like  AC_CHECK_HEADERS
1394 dnl   AC_CHECK_FUNCS_ONCE           like  AC_CHECK_FUNCS
1395 dnl   AC_CHECK_DECLS_ONCE           like  AC_CHECK_DECLS
1396 dnl   AC_REQUIRE([AC_HEADER_STDC])  like  AC_HEADER_STDC
1397 dnl The advantage is that the check for each of the headers/functions/decls
1398 dnl will be put only once into the 'configure' file. It keeps the size of
1399 dnl the 'configure' file down, and avoids redundant output when 'configure'
1400 dnl is run.
1401 dnl The drawback is that the checks cannot be conditionalized. If you write
1402 dnl   if some_condition; then gl_CHECK_HEADERS(stdlib.h); fi
1403 dnl inside an AC_DEFUNed function, the gl_CHECK_HEADERS macro call expands to
1404 dnl empty, and the check will be inserted before the body of the AC_DEFUNed
1405 dnl function.
1407 # AC_CHECK_HEADERS_ONCE(HEADER1 HEADER2 ...) is a once-only variant of
1408 # AC_CHECK_HEADERS(HEADER1 HEADER2 ...).
1409 AC_DEFUN([AC_CHECK_HEADERS_ONCE], [
1410   :
1411   AC_FOREACH([gl_HEADER_NAME], [$1], [
1412     AC_DEFUN([gl_CHECK_HEADER_]translit(gl_HEADER_NAME,[./-], [___]), [
1413       AC_CHECK_HEADERS(gl_HEADER_NAME)
1414     ])
1415     AC_REQUIRE([gl_CHECK_HEADER_]translit(gl_HEADER_NAME,[./-], [___]))
1416   ])
1419 # AC_CHECK_FUNCS_ONCE(FUNC1 FUNC2 ...) is a once-only variant of
1420 # AC_CHECK_FUNCS(FUNC1 FUNC2 ...).
1421 AC_DEFUN([AC_CHECK_FUNCS_ONCE], [
1422   :
1423   AC_FOREACH([gl_FUNC_NAME], [$1], [
1424     AC_DEFUN([gl_CHECK_FUNC_]gl_FUNC_NAME, [
1425       AC_CHECK_FUNCS(gl_FUNC_NAME)
1426     ])
1427     AC_REQUIRE([gl_CHECK_FUNC_]gl_FUNC_NAME)
1428   ])
1431 # AC_CHECK_DECLS_ONCE(DECL1 DECL2 ...) is a once-only variant of
1432 # AC_CHECK_DECLS(DECL1, DECL2, ...).
1433 AC_DEFUN([AC_CHECK_DECLS_ONCE], [
1434   :
1435   AC_FOREACH([gl_DECL_NAME], [$1], [
1436     AC_DEFUN([gl_CHECK_DECL_]gl_DECL_NAME, [
1437       AC_CHECK_DECLS(gl_DECL_NAME)
1438     ])
1439     AC_REQUIRE([gl_CHECK_DECL_]gl_DECL_NAME)
1440   ])
1443 #serial 2
1445 dnl From Paul Eggert.
1447 # Define HOST_OPERATING_SYSTEM to a name for the host operating system.
1448 AC_DEFUN([UTILS_HOST_OS],
1450   AC_CACHE_CHECK([host operating system],
1451     utils_cv_host_operating_system,
1453     [[case $host_os in
1455        # These operating system names do not use the default heuristic below.
1456        # They are in reverse order, so that more-specific prefixes come first.
1457        winnt*)          os='Windows NT';;
1458        vos*)            os='VOS';;
1459        sysv*)           os='Unix System V';;
1460        superux*)        os='SUPER-UX';;
1461        sunos*)          os='SunOS';;
1462        stop*)           os='STOP';;
1463        sco*)            os='SCO Unix';;
1464        riscos*)         os='RISC OS';;
1465        riscix*)         os='RISCiX';;
1466        qnx*)            os='QNX';;
1467        pw32*)           os='PW32';;
1468        ptx*)            os='ptx';;
1469        plan9*)          os='Plan 9';;
1470        osf*)            os='Tru64';;
1471        os2*)            os='OS/2';;
1472        openbsd*)        os='OpenBSD';;
1473        nsk*)            os='NonStop Kernel';;
1474        nonstopux*)      os='NonStop-UX';;
1475        netbsd*)         os='NetBSD';;
1476        msdosdjgpp*)     os='DJGPP';;
1477        mpeix*)          os='MPE/iX';;
1478        mint*)           os='MiNT';;
1479        mingw*)          os='MinGW';;
1480        lynxos*)         os='LynxOS';;
1481        linux*)          os='GNU/Linux';;
1482        hpux*)           os='HP-UX';;
1483        hiux*)           os='HI-UX';;
1484        gnu*)            os='GNU';;
1485        freebsd*-gnu*)   os='GNU/FreeBSD';;
1486        freebsd*)        os='FreeBSD';;
1487        dgux*)           os='DG/UX';;
1488        bsdi*)           os='BSD/OS';;
1489        bsd*)            os='BSD';;
1490        beos*)           os='BeOS';;
1491        aux*)            os='A/UX';;
1492        atheos*)         os='AtheOS';;
1493        amigaos*)        os='Amiga OS';;
1494        aix*)            os='AIX';;
1496        # The default heuristic takes the initial alphabetic string
1497        # from $host_os, but capitalizes its first letter.
1498        [A-Za-z]*)
1499          os=`
1500            expr "X$host_os" : 'X\([A-Za-z]\)' | tr '[a-z]' '[A-Z]'
1501          ``
1502            expr "X$host_os" : 'X.\([A-Za-z]*\)'
1503          `
1504          ;;
1506        # If $host_os does not start with an alphabetic string, use it unchanged.
1507        *)
1508          os=$host_os;;
1509      esac
1510      utils_cv_host_operating_system=$os]])
1511   AC_DEFINE_UNQUOTED(HOST_OPERATING_SYSTEM,
1512     "$utils_cv_host_operating_system",
1513     [The host operating system.])
1516 #serial 1
1518 # On some systems, mkdir ("foo/", 0700) fails because of the trailing slash.
1519 # On such systems, arrange to use a wrapper function that removes any
1520 # trailing slashes.
1521 AC_DEFUN([UTILS_FUNC_MKDIR_TRAILING_SLASH],
1522 [dnl
1523   AC_CACHE_CHECK([whether mkdir fails due to a trailing slash],
1524     utils_cv_func_mkdir_trailing_slash_bug,
1525     [
1526       # Arrange for deletion of the temporary directory this test might create.
1527       ac_clean_files="$ac_clean_files confdir-slash"
1528       AC_TRY_RUN([
1529 #       include <sys/types.h>
1530 #       include <sys/stat.h>
1531 #       include <stdlib.h>
1532         int main ()
1533         {
1534           rmdir ("confdir-slash");
1535           exit (mkdir ("confdir-slash/", 0700));
1536         }
1537         ],
1538       utils_cv_func_mkdir_trailing_slash_bug=no,
1539       utils_cv_func_mkdir_trailing_slash_bug=yes,
1540       utils_cv_func_mkdir_trailing_slash_bug=yes
1541       )
1542     ]
1543   )
1545   if test $utils_cv_func_mkdir_trailing_slash_bug = yes; then
1546     AC_LIBOBJ(mkdir)
1547     AC_DEFINE(mkdir, rpl_mkdir,
1548       [Define to rpl_mkdir if the replacement function should be used.])
1549   fi
1552 #serial 2
1554 AC_DEFUN([jm_BISON],
1556   # getdate.y works with bison only.
1557   : ${YACC='bison -y'}
1558   AC_SUBST(YACC)
1561 #serial 3
1562 dnl based on code from Eleftherios Gkioulekas
1564 AC_DEFUN([jm_ASSERT],
1566   AC_MSG_CHECKING(whether to enable assertions)
1567   AC_ARG_ENABLE(assert,
1568         [  --disable-assert        turn off assertions],
1569         [ AC_MSG_RESULT(no)
1570           AC_DEFINE(NDEBUG,1,[Define to 1 if assertions should be disabled.]) ],
1571         [ AC_MSG_RESULT(yes) ]
1572                )
1575 #serial 4
1577 dnl From Jim Meyering
1579 dnl Define HAVE_STRUCT_UTIMBUF if `struct utimbuf' is declared --
1580 dnl usually in <utime.h>.
1581 dnl Some systems have utime.h but don't declare the struct anywhere.
1583 AC_DEFUN([jm_CHECK_TYPE_STRUCT_UTIMBUF],
1585   AC_CHECK_HEADERS(utime.h)
1586   AC_REQUIRE([AC_HEADER_TIME])
1587   AC_CACHE_CHECK([for struct utimbuf], fu_cv_sys_struct_utimbuf,
1588     [AC_TRY_COMPILE(
1589       [
1590 #ifdef TIME_WITH_SYS_TIME
1591 # include <sys/time.h>
1592 # include <time.h>
1593 #else
1594 # ifdef HAVE_SYS_TIME_H
1595 #  include <sys/time.h>
1596 # else
1597 #  include <time.h>
1598 # endif
1599 #endif
1600 #ifdef HAVE_UTIME_H
1601 # include <utime.h>
1602 #endif
1603       ],
1604       [static struct utimbuf x; x.actime = x.modtime;],
1605       fu_cv_sys_struct_utimbuf=yes,
1606       fu_cv_sys_struct_utimbuf=no)
1607     ])
1609   if test $fu_cv_sys_struct_utimbuf = yes; then
1610     AC_DEFINE(HAVE_STRUCT_UTIMBUF, 1,
1611 [Define if struct utimbuf is declared -- usually in <utime.h>.
1612    Some systems have utime.h but don't declare the struct anywhere. ])
1613   fi
1616 #serial 5
1618 dnl From Jim Meyering.
1620 dnl Check whether struct dirent has a member named d_type.
1623 AC_DEFUN([jm_CHECK_TYPE_STRUCT_DIRENT_D_TYPE],
1624   [AC_REQUIRE([AC_HEADER_DIRENT])dnl
1625    AC_CACHE_CHECK([for d_type member in directory struct],
1626                   jm_cv_struct_dirent_d_type,
1627      [AC_TRY_LINK(dnl
1628        [
1629 #include <sys/types.h>
1630 #ifdef HAVE_DIRENT_H
1631 # include <dirent.h>
1632 #else /* not HAVE_DIRENT_H */
1633 # define dirent direct
1634 # ifdef HAVE_SYS_NDIR_H
1635 #  include <sys/ndir.h>
1636 # endif /* HAVE_SYS_NDIR_H */
1637 # ifdef HAVE_SYS_DIR_H
1638 #  include <sys/dir.h>
1639 # endif /* HAVE_SYS_DIR_H */
1640 # ifdef HAVE_NDIR_H
1641 #  include <ndir.h>
1642 # endif /* HAVE_NDIR_H */
1643 #endif /* HAVE_DIRENT_H */
1644        ],
1645        [struct dirent dp; dp.d_type = 0;],
1647        jm_cv_struct_dirent_d_type=yes,
1648        jm_cv_struct_dirent_d_type=no)
1649      ]
1650    )
1651    if test $jm_cv_struct_dirent_d_type = yes; then
1652      AC_DEFINE(HAVE_STRUCT_DIRENT_D_TYPE, 1,
1653   [Define if there is a member named d_type in the struct describing
1654    directory headers.])
1655    fi
1656   ]
1659 #serial 4
1661 dnl From Jim Meyering.
1663 dnl Check whether struct dirent has a member named d_ino.
1666 AC_DEFUN([jm_CHECK_TYPE_STRUCT_DIRENT_D_INO],
1667   [AC_REQUIRE([AC_HEADER_DIRENT])dnl
1668    AC_CACHE_CHECK([for d_ino member in directory struct],
1669                   jm_cv_struct_dirent_d_ino,
1670      [AC_TRY_LINK(dnl
1671        [
1672 #include <sys/types.h>
1673 #ifdef HAVE_DIRENT_H
1674 # include <dirent.h>
1675 #else /* not HAVE_DIRENT_H */
1676 # define dirent direct
1677 # ifdef HAVE_SYS_NDIR_H
1678 #  include <sys/ndir.h>
1679 # endif /* HAVE_SYS_NDIR_H */
1680 # ifdef HAVE_SYS_DIR_H
1681 #  include <sys/dir.h>
1682 # endif /* HAVE_SYS_DIR_H */
1683 # ifdef HAVE_NDIR_H
1684 #  include <ndir.h>
1685 # endif /* HAVE_NDIR_H */
1686 #endif /* HAVE_DIRENT_H */
1687        ],
1688        [struct dirent dp; dp.d_ino = 0;],
1690        jm_cv_struct_dirent_d_ino=yes,
1691        jm_cv_struct_dirent_d_ino=no)
1692      ]
1693    )
1694    if test $jm_cv_struct_dirent_d_ino = yes; then
1695      AC_DEFINE(D_INO_IN_DIRENT, 1,
1696   [Define if there is a member named d_ino in the struct describing
1697    directory headers.])
1698    fi
1699   ]
1702 #serial 19
1704 dnl This is just a wrapper function to encapsulate this kludge.
1705 dnl Putting it in a separate file like this helps share it between
1706 dnl different packages.
1707 AC_DEFUN([jm_CHECK_DECLS],
1709   AC_REQUIRE([_jm_DECL_HEADERS])
1710   AC_REQUIRE([AC_HEADER_TIME])
1711   headers='
1712 #include <stdio.h>
1713 #if HAVE_STRING_H
1714 # if !STDC_HEADERS && HAVE_MEMORY_H
1715 #  include <memory.h>
1716 # endif
1717 # include <string.h>
1718 #else
1719 # if HAVE_STRINGS_H
1720 #  include <strings.h>
1721 # endif
1722 #endif
1723 #if HAVE_STDLIB_H
1724 # include <stdlib.h>
1725 #endif
1726 #if HAVE_UNISTD_H
1727 # include <unistd.h>
1728 #endif
1730 #include <sys/types.h>
1731 #if TIME_WITH_SYS_TIME
1732 # include <sys/time.h>
1733 # include <time.h>
1734 #else
1735 # if HAVE_SYS_TIME_H
1736 #  include <sys/time.h>
1737 # else
1738 #  include <time.h>
1739 # endif
1740 #endif
1742 #if HAVE_UTMP_H
1743 # include <utmp.h>
1744 #endif
1746 #if HAVE_GRP_H
1747 # include <grp.h>
1748 #endif
1750 #if HAVE_PWD_H
1751 # include <pwd.h>
1752 #endif
1755   AC_CHECK_DECLS([
1756     euidaccess,
1757     free,
1758     getenv,
1759     geteuid,
1760     getgrgid,
1761     getlogin,
1762     getpwuid,
1763     getuid,
1764     getutent,
1765     lseek,
1766     malloc,
1767     memchr,
1768     memrchr,
1769     nanosleep,
1770     realloc,
1771     stpcpy,
1772     strndup,
1773     strnlen,
1774     strstr,
1775     strtoul,
1776     strtoull,
1777     ttyname], , , $headers)
1780 dnl FIXME: when autoconf has support for it.
1781 dnl This is a little helper so we can require these header checks.
1782 AC_DEFUN([_jm_DECL_HEADERS],
1784   AC_REQUIRE([AC_HEADER_STDC])
1785   AC_CHECK_HEADERS(grp.h memory.h pwd.h string.h strings.h stdlib.h \
1786                    unistd.h sys/time.h utmp.h utmpx.h)
1789 #serial 30
1791 dnl We use jm_ for non Autoconf macros.
1792 m4_pattern_forbid([^jm_[ABCDEFGHIJKLMNOPQRSTUVXYZ]])dnl
1794 # These are the prerequisite macros for files in the lib/
1795 # directory of the coreutils package.
1797 AC_DEFUN([jm_PREREQ],
1799   AC_REQUIRE([jm_PREREQ_ADDEXT])
1800   AC_REQUIRE([jm_PREREQ_C_STACK])
1801   AC_REQUIRE([jm_PREREQ_CANON_HOST])
1802   AC_REQUIRE([jm_PREREQ_DIRNAME])
1803   AC_REQUIRE([jm_PREREQ_ERROR])
1804   AC_REQUIRE([jm_PREREQ_EXCLUDE])
1805   AC_REQUIRE([jm_PREREQ_GETPAGESIZE])
1806   AC_REQUIRE([jm_PREREQ_HARD_LOCALE])
1807   AC_REQUIRE([jm_PREREQ_HASH])
1808   AC_REQUIRE([jm_PREREQ_HUMAN])
1809   AC_REQUIRE([jm_PREREQ_MBSWIDTH])
1810   AC_REQUIRE([jm_PREREQ_MEMCHR])
1811   AC_REQUIRE([jm_PREREQ_PHYSMEM])
1812   AC_REQUIRE([jm_PREREQ_POSIXVER])
1813   AC_REQUIRE([jm_PREREQ_QUOTEARG])
1814   AC_REQUIRE([jm_PREREQ_READUTMP])
1815   AC_REQUIRE([jm_PREREQ_STAT])
1816   AC_REQUIRE([jm_PREREQ_STRNLEN])
1817   AC_REQUIRE([jm_PREREQ_TEMPNAME]) # called by mkstemp
1818   AC_REQUIRE([jm_PREREQ_XGETCWD])
1819   AC_REQUIRE([jm_PREREQ_XREADLINK])
1822 AC_DEFUN([jm_PREREQ_ADDEXT],
1824   dnl For addext.c.
1825   AC_REQUIRE([AC_SYS_LONG_FILE_NAMES])
1826   AC_CHECK_FUNCS(pathconf)
1827   AC_CHECK_HEADERS(limits.h string.h unistd.h)
1830 AC_DEFUN([jm_PREREQ_CANON_HOST],
1832   dnl Add any libraries as early as possible.
1833   dnl In particular, inet_ntoa needs -lnsl at least on Solaris5.5.1,
1834   dnl so we have to add -lnsl to LIBS before checking for that function.
1835   AC_SEARCH_LIBS(gethostbyname, [inet nsl])
1837   dnl These come from -lnsl on Solaris5.5.1.
1838   AC_CHECK_FUNCS(gethostbyname gethostbyaddr inet_ntoa)
1840   AC_CHECK_HEADERS(unistd.h string.h netdb.h sys/socket.h \
1841                    netinet/in.h arpa/inet.h)
1844 AC_DEFUN([jm_PREREQ_DIRNAME],
1846   AC_REQUIRE([AC_HEADER_STDC])
1847   AC_CHECK_HEADERS(string.h)
1850 AC_DEFUN([jm_PREREQ_EXCLUDE],
1852   AC_REQUIRE([AC_FUNC_FNMATCH_GNU])
1853   AC_REQUIRE([AC_HEADER_STDBOOL])
1856 AC_DEFUN([jm_PREREQ_GETPAGESIZE],
1858   AC_CHECK_FUNCS(getpagesize)
1859   AC_CHECK_HEADERS(OS.h unistd.h)
1862 AC_DEFUN([jm_PREREQ_HARD_LOCALE],
1864   AC_CHECK_HEADERS(locale.h stdlib.h string.h)
1865   AC_CHECK_FUNCS(setlocale)
1866   AC_REQUIRE([AM_C_PROTOTYPES])
1869 AC_DEFUN([jm_PREREQ_HASH],
1871   AC_CHECK_HEADERS(stdlib.h)
1872   AC_REQUIRE([AC_HEADER_STDBOOL])
1873   AC_REQUIRE([jm_CHECK_DECLS])
1876 # If you use human.c, you need the following files:
1877 # inttypes.m4 longlong.m4
1878 AC_DEFUN([jm_PREREQ_HUMAN],
1880   AC_CHECK_HEADERS(locale.h)
1881   AC_CHECK_DECLS([getenv])
1882   AC_CHECK_FUNCS(localeconv)
1883   AC_REQUIRE([AC_HEADER_STDBOOL])
1884   AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])
1887 AC_DEFUN([jm_PREREQ_MEMCHR],
1889   AC_CHECK_HEADERS(limits.h stdlib.h bp-sym.h)
1892 # Check for the external symbol, _system_configuration,
1893 # a struct with member `physmem'.
1894 AC_DEFUN([gl_SYS__SYSTEM_CONFIGURATION],
1895   [AC_CACHE_CHECK(for external symbol _system_configuration,
1896                   gl_cv_var__system_configuration,
1897     [AC_LINK_IFELSE([AC_LANG_PROGRAM(
1898                       [[#include <sys/systemcfg.h>
1899                       ]],
1900                       [double x = _system_configuration.physmem;])],
1901       [gl_cv_var__system_configuration=yes],
1902       [gl_cv_var__system_configuration=no])])
1904     if test $gl_cv_var__system_configuration = yes; then
1905       AC_DEFINE(HAVE__SYSTEM_CONFIGURATION, 1,
1906                 [Define to 1 if you have the external variable,
1907                 _system_configuration with a member named physmem.])
1908     fi
1909   ]
1912 AC_DEFUN([jm_PREREQ_PHYSMEM],
1914   AC_CHECK_HEADERS([unistd.h sys/pstat.h sys/sysmp.h sys/sysinfo.h \
1915     machine/hal_sysinfo.h sys/table.h sys/param.h sys/sysctl.h \
1916     sys/systemcfg.h])
1917   AC_CHECK_FUNCS(pstat_getstatic pstat_getdynamic sysmp getsysinfo sysctl table)
1919   AC_REQUIRE([gl_SYS__SYSTEM_CONFIGURATION])
1922 AC_DEFUN([jm_PREREQ_POSIXVER],
1924   AC_CHECK_HEADERS(unistd.h)
1925   AC_CHECK_DECLS([getenv])
1928 AC_DEFUN([jm_PREREQ_QUOTEARG],
1930   AC_CHECK_FUNCS(isascii iswprint)
1931   AC_REQUIRE([jm_FUNC_MBRTOWC])
1932   AC_REQUIRE([jm_FUNC_MEMCMP])
1933   AC_CHECK_HEADERS(limits.h stddef.h stdlib.h string.h wchar.h wctype.h)
1934   AC_REQUIRE([AC_HEADER_STDC])
1935   AC_REQUIRE([AC_C_BACKSLASH_A])
1936   AC_REQUIRE([AC_TYPE_MBSTATE_T])
1937   AC_REQUIRE([AM_C_PROTOTYPES])
1940 AC_DEFUN([jm_PREREQ_READUTMP],
1942   AC_REQUIRE([AC_HEADER_STDC])
1943   AC_CHECK_HEADERS(string.h utmp.h utmpx.h sys/param.h)
1944   AC_CHECK_FUNCS(utmpname)
1945   AC_CHECK_FUNCS(utmpxname)
1946   AC_REQUIRE([AM_C_PROTOTYPES])
1948   if test $ac_cv_header_utmp_h = yes || test $ac_cv_header_utmpx_h = yes; then
1949     utmp_includes="\
1950 $ac_includes_default
1951 #ifdef HAVE_UTMPX_H
1952 # include <utmpx.h>
1953 #endif
1954 #ifdef HAVE_UTMP_H
1955 # include <utmp.h>
1956 #endif
1958     AC_CHECK_MEMBERS([struct utmpx.ut_user],,,[$utmp_includes])
1959     AC_CHECK_MEMBERS([struct utmp.ut_user],,,[$utmp_includes])
1960     AC_CHECK_MEMBERS([struct utmpx.ut_name],,,[$utmp_includes])
1961     AC_CHECK_MEMBERS([struct utmp.ut_name],,,[$utmp_includes])
1962     AC_CHECK_MEMBERS([struct utmpx.ut_type],,,[$utmp_includes])
1963     AC_CHECK_MEMBERS([struct utmp.ut_type],,,[$utmp_includes])
1964     AC_CHECK_MEMBERS([struct utmpx.ut_pid],,,[$utmp_includes])
1965     AC_CHECK_MEMBERS([struct utmp.ut_pid],,,[$utmp_includes])
1966     AC_CHECK_MEMBERS([struct utmpx.ut_id],,,[$utmp_includes])
1967     AC_CHECK_MEMBERS([struct utmp.ut_id],,,[$utmp_includes])
1969     AC_CHECK_MEMBERS([struct utmpx.ut_exit.ut_exit],,,[$utmp_includes])
1970     AC_CHECK_MEMBERS([struct utmp.ut_exit.ut_exit],,,[$utmp_includes])
1971     AC_CHECK_MEMBERS([struct utmpx.ut_exit.e_exit],,,[$utmp_includes])
1972     AC_CHECK_MEMBERS([struct utmp.ut_exit.e_exit],,,[$utmp_includes])
1974     AC_CHECK_MEMBERS([struct utmpx.ut_exit.ut_termination],,,[$utmp_includes])
1975     AC_CHECK_MEMBERS([struct utmp.ut_exit.ut_termination],,,[$utmp_includes])
1976     AC_CHECK_MEMBERS([struct utmpx.ut_exit.e_termination],,,[$utmp_includes])
1977     AC_CHECK_MEMBERS([struct utmp.ut_exit.e_termination],,,[$utmp_includes])
1978     AC_LIBOBJ(readutmp)
1979   fi
1982 AC_DEFUN([jm_PREREQ_STAT],
1984   AC_CHECK_HEADERS(sys/sysmacros.h sys/statvfs.h sys/vfs.h inttypes.h)
1985   AC_CHECK_HEADERS(sys/param.h sys/mount.h)
1986   AC_CHECK_FUNCS(statvfs)
1987   AC_REQUIRE([jm_AC_TYPE_LONG_LONG])
1989   statxfs_includes="\
1990 $ac_includes_default
1991 #if HAVE_SYS_STATVFS_H
1992 # include <sys/statvfs.h>
1993 #endif
1994 #if HAVE_SYS_VFS_H
1995 # include <sys/vfs.h>
1996 #endif
1997 #if ( ! HAVE_SYS_STATVFS_H && ! HAVE_SYS_VFS_H && HAVE_SYS_MOUNT_H && HAVE_SYS_PARAM_H )
1998 /* NetBSD 1.5.2 needs these, for the declaration of struct statfs. */
1999 # include <sys/param.h>
2000 # include <sys/mount.h>
2001 #endif
2003   AC_CHECK_MEMBERS([struct statfs.f_basetype],,,[$statxfs_includes])
2004   AC_CHECK_MEMBERS([struct statvfs.f_basetype],,,[$statxfs_includes])
2005   AC_CHECK_MEMBERS([struct statfs.f_fstypename],,,[$statxfs_includes])
2006   AC_CHECK_MEMBERS([struct statfs.f_type],,,[$statxfs_includes])
2007   AC_CHECK_MEMBERS([struct statvfs.f_type],,,[$statxfs_includes])
2008   AC_CHECK_MEMBERS([struct statfs.f_fsid.__val],,,[$statxfs_includes])
2009   AC_CHECK_MEMBERS([struct statvfs.f_fsid.__val],,,[$statxfs_includes])
2010   AC_CHECK_MEMBERS([struct statfs.f_namemax],,,[$statxfs_includes])
2011   AC_CHECK_MEMBERS([struct statvfs.f_namemax],,,[$statxfs_includes])
2012   AC_CHECK_MEMBERS([struct statfs.f_namelen],,,[$statxfs_includes])
2013   AC_CHECK_MEMBERS([struct statvfs.f_namelen],,,[$statxfs_includes])
2016 AC_DEFUN([jm_PREREQ_STRNLEN],
2018   AC_REQUIRE([AC_FUNC_STRNLEN])
2019   AC_REQUIRE([AC_HEADER_STDC])
2020   AC_CHECK_HEADERS(memory.h)
2021   AC_CHECK_DECLS([memchr])
2023   # This is necessary because automake-1.6.1 doesn't understand
2024   # that the above use of AC_FUNC_STRNLEN means we may have to use
2025   # lib/strnlen.c.
2026   test $ac_cv_func_strnlen_working = yes \
2027     && AC_LIBOBJ(strnlen)
2030 AC_DEFUN([jm_PREREQ_TEMPNAME],
2032   AC_REQUIRE([AC_HEADER_STDC])
2033   AC_REQUIRE([AC_HEADER_STAT])
2034   AC_CHECK_HEADERS(fcntl.h sys/time.h stdint.h unistd.h)
2035   AC_CHECK_FUNCS(__secure_getenv gettimeofday)
2036   AC_CHECK_DECLS([getenv])
2037   AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])
2040 AC_DEFUN([jm_PREREQ_XGETCWD],
2042   AC_REQUIRE([AC_C_PROTOTYPES])
2043   AC_CHECK_HEADERS(limits.h stdlib.h sys/param.h unistd.h)
2044   AC_CHECK_FUNCS(getcwd)
2045   AC_REQUIRE([AC_FUNC_GETCWD_NULL])
2048 AC_DEFUN([jm_PREREQ_XREADLINK],
2050   AC_REQUIRE([AC_C_PROTOTYPES])
2051   AC_CHECK_HEADERS(limits.h stdlib.h sys/types.h unistd.h)
2054 # Check prerequisites for compiling lib/c-stack.c.
2056 # Copyright (C) 2002, 2003 Free Software Foundation, Inc.
2058 # This program is free software; you can redistribute it and/or modify
2059 # it under the terms of the GNU General Public License as published by
2060 # the Free Software Foundation; either version 2, or (at your option)
2061 # any later version.
2063 # This program is distributed in the hope that it will be useful,
2064 # but WITHOUT ANY WARRANTY; without even the implied warranty of
2065 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2066 # GNU General Public License for more details.
2068 # You should have received a copy of the GNU General Public License
2069 # along with this program; if not, write to the Free Software
2070 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
2071 # 02111-1307, USA.
2073 # Written by Paul Eggert.
2075 AC_DEFUN([AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC],
2076   [# for STACK_DIRECTION
2077    AC_REQUIRE([AC_FUNC_ALLOCA])
2078    AC_CHECK_FUNCS(setrlimit)
2080    AC_CACHE_CHECK([for working C stack overflow detection],
2081      ac_cv_sys_xsi_stack_overflow_heuristic,
2082      [AC_TRY_RUN(
2083         [
2084          #include <unistd.h>
2085          #include <signal.h>
2086          #include <ucontext.h>
2087          #if HAVE_SETRLIMIT
2088          # include <sys/types.h>
2089          # include <sys/time.h>
2090          # include <sys/resource.h>
2091          #endif
2093          static union
2094          {
2095            char buffer[SIGSTKSZ];
2096            long double ld;
2097            long u;
2098            void *p;
2099          } alternate_signal_stack;
2101          #if STACK_DIRECTION
2102          # define find_stack_direction(ptr) STACK_DIRECTION
2103          #else
2104          static int
2105          find_stack_direction (char const *addr)
2106          {
2107            char dummy;
2108            return (! addr ? find_stack_direction (&dummy)
2109                    : addr < &dummy ? 1 : -1);
2110          }
2111          #endif
2113          static void
2114          segv_handler (int signo, siginfo_t *info, void *context)
2115          {
2116            if (0 < info->si_code)
2117              {
2118                ucontext_t const *user_context = context;
2119                char const *stack_min = user_context->uc_stack.ss_sp;
2120                size_t stack_size = user_context->uc_stack.ss_size;
2121                char const *faulting_address = info->si_addr;
2122                size_t s = faulting_address - stack_min;
2123                size_t page_size = sysconf (_SC_PAGESIZE);
2124                if (find_stack_direction (0) < 0)
2125                  s += page_size;
2126                if (s < stack_size + page_size)
2127                  _exit (0);
2128              }
2130            _exit (1);
2131          }
2133          static int
2134          c_stack_action (void)
2135          {
2136            stack_t st;
2137            struct sigaction act;
2138            int r;
2140            st.ss_flags = 0;
2141            st.ss_sp = alternate_signal_stack.buffer;
2142            st.ss_size = sizeof alternate_signal_stack.buffer;
2143            r = sigaltstack (&st, 0);
2144            if (r != 0)
2145              return r;
2147            sigemptyset (&act.sa_mask);
2148            act.sa_flags = SA_NODEFER | SA_ONSTACK | SA_RESETHAND | SA_SIGINFO;
2149            act.sa_sigaction = segv_handler;
2150            return sigaction (SIGSEGV, &act, 0);
2151          }
2153          static int
2154          recurse (char *p)
2155          {
2156            char array[500];
2157            array[0] = 1;
2158            return *p + recurse (array);
2159          }
2161          int
2162          main (void)
2163          {
2164            #if HAVE_SETRLIMIT && defined RLIMIT_STACK
2165            /* Before starting the endless recursion, try to be friendly
2166               to the user's machine.  On some Linux 2.2.x systems, there
2167               is no stack limit for user processes at all.  We don't want
2168               to kill such systems.  */
2169            struct rlimit rl;
2170            rl.rlim_cur = rl.rlim_max = 0x100000; /* 1 MB */
2171            setrlimit (RLIMIT_STACK, &rl);
2172            #endif
2174            c_stack_action ();
2175            return recurse ("\1");
2176          }
2177         ],
2178         [ac_cv_sys_xsi_stack_overflow_heuristic=yes],
2179         [ac_cv_sys_xsi_stack_overflow_heuristic=no],
2180         [ac_cv_sys_xsi_stack_overflow_heuristic=cross-compiling])])
2182    if test $ac_cv_sys_xsi_stack_overflow_heuristic = yes; then
2183      AC_DEFINE(HAVE_XSI_STACK_OVERFLOW_HEURISTIC, 1,
2184        [Define to 1 if extending the stack slightly past the limit causes
2185         a SIGSEGV, and an alternate stack can be established with sigaltstack,
2186         and the signal handler is passed a context that specifies the
2187         run time stack.  This behavior is defined by POSIX 1003.1-2001
2188         with the X/Open System Interface (XSI) option
2189         and is a standardized way to implement a SEGV-based stack
2190         overflow detection heuristic.])
2191    fi])
2194 AC_DEFUN([jm_PREREQ_C_STACK],
2195   [AC_REQUIRE([AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC])
2197    # for STACK_DIRECTION
2198    AC_REQUIRE([AC_FUNC_ALLOCA])
2200    AC_CHECK_FUNCS(getcontext sigaltstack)
2201    AC_CHECK_DECLS([getcontext], , , [#include <ucontext.h>])
2202    AC_CHECK_DECLS([sigaltstack], , , [#include <signal.h>])
2204    AC_CHECK_HEADERS(sys/resource.h ucontext.h unistd.h)
2206    AC_CHECK_TYPES([stack_t], , , [#include <signal.h>])])
2208 #serial 5
2210 dnl FIXME: put these prerequisite-only *.m4 files in a separate
2211 dnl directory -- otherwise, they'll conflict with existing files.
2213 dnl These are the prerequisite macros for GNU's error.c file.
2214 AC_DEFUN([jm_PREREQ_ERROR],
2216   AC_CHECK_FUNCS(strerror vprintf doprnt)
2217   AC_CHECK_DECLS([strerror])
2218   AC_CHECK_HEADERS([libintl.h])
2219   AC_FUNC_STRERROR_R
2220   AC_HEADER_STDC
2223 #serial 7
2225 dnl autoconf tests required for use of mbswidth.c
2226 dnl From Bruno Haible.
2228 AC_DEFUN([jm_PREREQ_MBSWIDTH],
2230   AC_REQUIRE([AC_HEADER_STDC])
2231   AC_CHECK_HEADERS(limits.h stdlib.h string.h wchar.h wctype.h)
2232   AC_CHECK_FUNCS(isascii iswcntrl iswprint mbsinit wcwidth)
2233   jm_FUNC_MBRTOWC
2235   AC_CACHE_CHECK([whether wcwidth is declared], ac_cv_have_decl_wcwidth,
2236     [AC_TRY_COMPILE([
2237 /* AIX 3.2.5 declares wcwidth in <string.h>. */
2238 #if HAVE_STRING_H
2239 # include <string.h>
2240 #endif
2241 #if HAVE_WCHAR_H
2242 # include <wchar.h>
2243 #endif
2244 ], [
2245 #ifndef wcwidth
2246   char *p = (char *) wcwidth;
2247 #endif
2248 ], ac_cv_have_decl_wcwidth=yes, ac_cv_have_decl_wcwidth=no)])
2249   if test $ac_cv_have_decl_wcwidth = yes; then
2250     ac_val=1
2251   else
2252     ac_val=0
2253   fi
2254   AC_DEFINE_UNQUOTED(HAVE_DECL_WCWIDTH, $ac_val,
2255     [Define to 1 if you have the declaration of wcwidth(), and to 0 otherwise.])
2257   AC_TYPE_MBSTATE_T
2260 # mbrtowc.m4 serial 4 (fileutils-4.1.3)
2261 dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
2262 dnl This file is free software, distributed under the terms of the GNU
2263 dnl General Public License.  As a special exception to the GNU General
2264 dnl Public License, this file may be distributed as part of a program
2265 dnl that contains a configuration script generated by Autoconf, under
2266 dnl the same distribution terms as the rest of that program.
2268 dnl From Paul Eggert
2270 AC_DEFUN([jm_FUNC_MBRTOWC],
2272   AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared],
2273     jm_cv_func_mbrtowc,
2274     [AC_TRY_LINK(
2275        [#include <wchar.h>],
2276        [mbstate_t state; return ! (sizeof state && mbrtowc);],
2277        jm_cv_func_mbrtowc=yes,
2278        jm_cv_func_mbrtowc=no)])
2279   if test $jm_cv_func_mbrtowc = yes; then
2280     AC_DEFINE(HAVE_MBRTOWC, 1,
2281       [Define to 1 if mbrtowc and mbstate_t are properly declared.])
2282   fi
2285 #serial 5
2287 dnl A replacement for autoconf's macro by the same name.  This version
2288 dnl uses `ac_lib' rather than `i' for the loop variable, but more importantly
2289 dnl moves the ACTION-IF-FOUND ([$]3) into the inner `if'-block so that it is
2290 dnl run only if one of the listed libraries ends up being used (and not in
2291 dnl the `none required' case.
2292 dnl I hope it's only temporary while we wait for that version to be fixed.
2293 undefine([AC_SEARCH_LIBS])
2295 # AC_SEARCH_LIBS(FUNCTION, SEARCH-LIBS,
2296 #                [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],
2297 #                [OTHER-LIBRARIES])
2298 # --------------------------------------------------------
2299 # Search for a library defining FUNC, if it's not already available.
2300 AC_DEFUN([AC_SEARCH_LIBS],
2302   AC_CACHE_CHECK([for library containing $1], [ac_cv_search_$1],
2303   [
2304     ac_func_search_save_LIBS=$LIBS
2305     ac_cv_search_$1=no
2306     AC_TRY_LINK_FUNC([$1], [ac_cv_search_$1='none required'])
2307     if test "$ac_cv_search_$1" = no; then
2308       for ac_lib in $2; do
2309         LIBS="-l$ac_lib $5 $ac_func_search_save_LIBS"
2310         AC_TRY_LINK_FUNC([$1], [ac_cv_search_$1="-l$ac_lib"; break])
2311       done
2312     fi
2313     LIBS=$ac_func_search_save_LIBS
2314   ])
2316   if test "$ac_cv_search_$1" = no; then :
2317     $4
2318   else
2319     if test "$ac_cv_search_$1" = 'none required'; then :
2320       $4
2321     else
2322       LIBS="$ac_cv_search_$1 $LIBS"
2323       $3
2324     fi
2325   fi
2328 # Check for stdbool.h that conforms to C99.
2330 # Copyright (C) 2002 Free Software Foundation, Inc.
2332 # This program is free software; you can redistribute it and/or modify
2333 # it under the terms of the GNU General Public License as published by
2334 # the Free Software Foundation; either version 2, or (at your option)
2335 # any later version.
2337 # This program is distributed in the hope that it will be useful,
2338 # but WITHOUT ANY WARRANTY; without even the implied warranty of
2339 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2340 # GNU General Public License for more details.
2342 # You should have received a copy of the GNU General Public License
2343 # along with this program; if not, write to the Free Software
2344 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
2345 # 02111-1307, USA.
2347 AC_DEFUN([AC_HEADER_STDBOOL],
2348   [AC_CACHE_CHECK([for stdbool.h that conforms to C99],
2349      [ac_cv_header_stdbool_h],
2350      [AC_TRY_COMPILE(
2351         [
2352           #include <stdbool.h>
2353           #ifndef bool
2354            "error: bool is not defined"
2355           #endif
2356           #ifndef false
2357            "error: false is not defined"
2358           #endif
2359           #if false
2360            "error: false is not 0"
2361           #endif
2362           #ifndef true
2363            "error: false is not defined"
2364           #endif
2365           #if true != 1
2366            "error: true is not 1"
2367           #endif
2368           #ifndef __bool_true_false_are_defined
2369            "error: __bool_true_false_are_defined is not defined"
2370           #endif
2372           struct s { _Bool s: 1; _Bool t; } s;
2374           char a[true == 1 ? 1 : -1];
2375           char b[false == 0 ? 1 : -1];
2376           char c[__bool_true_false_are_defined == 1 ? 1 : -1];
2377           char d[(bool) -0.5 == true ? 1 : -1];
2378           bool e = &s;
2379           char f[(_Bool) -0.0 == false ? 1 : -1];
2380           char g[true];
2381           char h[sizeof (_Bool)];
2382           char i[sizeof s.t];
2383         ],
2384         [ return !a + !b + !c + !d + !e + !f + !g + !h + !i; ],
2385         [ac_cv_header_stdbool_h=yes],
2386         [ac_cv_header_stdbool_h=no])])
2387    if test $ac_cv_header_stdbool_h = yes; then
2388      AC_DEFINE(HAVE_STDBOOL_H, 1, [Define to 1 if stdbool.h conforms to C99.])
2389    fi])
2392 # Copyright 1996, 1997, 1998, 2000, 2001, 2002  Free Software Foundation, Inc.
2394 # This program is free software; you can redistribute it and/or modify
2395 # it under the terms of the GNU General Public License as published by
2396 # the Free Software Foundation; either version 2, or (at your option)
2397 # any later version.
2399 # This program is distributed in the hope that it will be useful,
2400 # but WITHOUT ANY WARRANTY; without even the implied warranty of
2401 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2402 # GNU General Public License for more details.
2404 # You should have received a copy of the GNU General Public License
2405 # along with this program; if not, write to the Free Software
2406 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
2407 # 02111-1307, USA.
2409 # serial 2
2411 AC_DEFUN([AM_C_PROTOTYPES],
2412 [AC_REQUIRE([AM_PROG_CC_STDC])
2413 AC_REQUIRE([AC_PROG_CPP])
2414 AC_MSG_CHECKING([for function prototypes])
2415 if test "$am_cv_prog_cc_stdc" != no; then
2416   AC_MSG_RESULT(yes)
2417   AC_DEFINE(PROTOTYPES,1,[Define if compiler has function prototypes])
2418   U= ANSI2KNR=
2419 else
2420   AC_MSG_RESULT(no)
2421   U=_ ANSI2KNR=./ansi2knr
2423 # Ensure some checks needed by ansi2knr itself.
2424 AC_HEADER_STDC
2425 AC_CHECK_HEADERS(string.h)
2426 AC_SUBST(U)dnl
2427 AC_SUBST(ANSI2KNR)dnl
2430 AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES])
2433 # Copyright 1996, 1997, 1999, 2000, 2001, 2002  Free Software Foundation, Inc.
2435 # This program is free software; you can redistribute it and/or modify
2436 # it under the terms of the GNU General Public License as published by
2437 # the Free Software Foundation; either version 2, or (at your option)
2438 # any later version.
2440 # This program is distributed in the hope that it will be useful,
2441 # but WITHOUT ANY WARRANTY; without even the implied warranty of
2442 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2443 # GNU General Public License for more details.
2445 # You should have received a copy of the GNU General Public License
2446 # along with this program; if not, write to the Free Software
2447 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
2448 # 02111-1307, USA.
2450 # serial 2
2452 # @defmac AC_PROG_CC_STDC
2453 # @maindex PROG_CC_STDC
2454 # @ovindex CC
2455 # If the C compiler in not in ANSI C mode by default, try to add an option
2456 # to output variable @code{CC} to make it so.  This macro tries various
2457 # options that select ANSI C on some system or another.  It considers the
2458 # compiler to be in ANSI C mode if it handles function prototypes correctly.
2460 # If you use this macro, you should check after calling it whether the C
2461 # compiler has been set to accept ANSI C; if not, the shell variable
2462 # @code{am_cv_prog_cc_stdc} is set to @samp{no}.  If you wrote your source
2463 # code in ANSI C, you can make an un-ANSIfied copy of it by using the
2464 # program @code{ansi2knr}, which comes with Ghostscript.
2465 # @end defmac
2467 AC_DEFUN([AM_PROG_CC_STDC],
2468 [AC_REQUIRE([AC_PROG_CC])
2469 AC_BEFORE([$0], [AC_C_INLINE])
2470 AC_BEFORE([$0], [AC_C_CONST])
2471 dnl Force this before AC_PROG_CPP.  Some cpp's, eg on HPUX, require
2472 dnl a magic option to avoid problems with ANSI preprocessor commands
2473 dnl like #elif.
2474 dnl FIXME: can't do this because then AC_AIX won't work due to a
2475 dnl circular dependency.
2476 dnl AC_BEFORE([$0], [AC_PROG_CPP])
2477 AC_MSG_CHECKING([for ${CC-cc} option to accept ANSI C])
2478 AC_CACHE_VAL(am_cv_prog_cc_stdc,
2479 [am_cv_prog_cc_stdc=no
2480 ac_save_CC="$CC"
2481 # Don't try gcc -ansi; that turns off useful extensions and
2482 # breaks some systems' header files.
2483 # AIX                   -qlanglvl=ansi
2484 # Ultrix and OSF/1      -std1
2485 # HP-UX 10.20 and later -Ae
2486 # HP-UX older versions  -Aa -D_HPUX_SOURCE
2487 # SVR4                  -Xc -D__EXTENSIONS__
2488 for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
2490   CC="$ac_save_CC $ac_arg"
2491   AC_TRY_COMPILE(
2492 [#include <stdarg.h>
2493 #include <stdio.h>
2494 #include <sys/types.h>
2495 #include <sys/stat.h>
2496 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
2497 struct buf { int x; };
2498 FILE * (*rcsopen) (struct buf *, struct stat *, int);
2499 static char *e (p, i)
2500      char **p;
2501      int i;
2503   return p[i];
2505 static char *f (char * (*g) (char **, int), char **p, ...)
2507   char *s;
2508   va_list v;
2509   va_start (v,p);
2510   s = g (p, va_arg (v,int));
2511   va_end (v);
2512   return s;
2514 int test (int i, double x);
2515 struct s1 {int (*f) (int a);};
2516 struct s2 {int (*f) (double a);};
2517 int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
2518 int argc;
2519 char **argv;
2520 ], [
2521 return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
2523 [am_cv_prog_cc_stdc="$ac_arg"; break])
2524 done
2525 CC="$ac_save_CC"
2527 if test -z "$am_cv_prog_cc_stdc"; then
2528   AC_MSG_RESULT([none needed])
2529 else
2530   AC_MSG_RESULT([$am_cv_prog_cc_stdc])
2532 case "x$am_cv_prog_cc_stdc" in
2533   x|xno) ;;
2534   *) CC="$CC $am_cv_prog_cc_stdc" ;;
2535 esac
2538 AU_DEFUN([fp_PROG_CC_STDC], [AM_PROG_CC_STDC])
2540 #serial 6
2542 dnl From Paul Eggert.
2544 AC_PREREQ(2.52)
2546 # Define intmax_t to long or long long if <inttypes.h> doesn't define.
2548 AC_DEFUN([jm_AC_TYPE_INTMAX_T],
2550   AC_REQUIRE([jm_AC_TYPE_LONG_LONG])
2551   AC_CHECK_TYPE(intmax_t, ,
2552     [test $ac_cv_type_long_long = yes \
2553        && ac_type='long long' \
2554        || ac_type='long'
2555      AC_DEFINE_UNQUOTED(intmax_t, $ac_type,
2556        [Define to widest signed type if <inttypes.h> doesn't define.])])
2559 # Define uintmax_t to unsigned long or unsigned long long
2560 # if <inttypes.h> doesn't define.
2562 AC_DEFUN([jm_AC_TYPE_UINTMAX_T],
2564   AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
2565   AC_CHECK_TYPE(uintmax_t, ,
2566     [test $ac_cv_type_unsigned_long_long = yes \
2567        && ac_type='unsigned long long' \
2568        || ac_type='unsigned long'
2569      AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
2570        [Define to widest unsigned type if <inttypes.h> doesn't define.])])
2573 #serial 2
2575 dnl From Paul Eggert.
2577 # Define HAVE_LONG_LONG if 'long long' works.
2579 AC_DEFUN([jm_AC_TYPE_LONG_LONG],
2581   AC_CACHE_CHECK([for long long], ac_cv_type_long_long,
2582   [AC_TRY_LINK([long long ll = 1; int i = 63;],
2583     [long long llmax = (long long) -1;
2584      return ll << i | ll >> i | llmax / ll | llmax % ll;],
2585     ac_cv_type_long_long=yes,
2586     ac_cv_type_long_long=no)])
2587   if test $ac_cv_type_long_long = yes; then
2588     AC_DEFINE(HAVE_LONG_LONG, 1,
2589       [Define if you have the long long type.])
2590   fi
2593 # Define HAVE_UNSIGNED_LONG_LONG if 'unsigned long long' works.
2595 AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG],
2597   AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long,
2598   [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;],
2599     [unsigned long long ullmax = (unsigned long long) -1;
2600      return ull << i | ull >> i | ullmax / ull | ullmax % ull;],
2601     ac_cv_type_unsigned_long_long=yes,
2602     ac_cv_type_unsigned_long_long=no)])
2603   if test $ac_cv_type_unsigned_long_long = yes; then
2604     AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
2605       [Define if you have the unsigned long long type.])
2606   fi
2609 #serial 7
2611 AC_DEFUN([jm_FUNC_MEMCMP],
2612 [AC_REQUIRE([AC_FUNC_MEMCMP])dnl
2613  if test $ac_cv_func_memcmp_working = no; then
2614    AC_DEFINE(memcmp, rpl_memcmp,
2615      [Define to rpl_memcmp if the replacement function should be used.])
2616  fi
2619 # getcwd.m4 - check whether getcwd (NULL, 0) allocates memory for result
2621 # Copyright 2001 Free Software Foundation, Inc.
2623 # This program is free software; you can redistribute it and/or modify
2624 # it under the terms of the GNU General Public License as published by
2625 # the Free Software Foundation; either version 2, or (at your option)
2626 # any later version.
2628 # This program is distributed in the hope that it will be useful,
2629 # but WITHOUT ANY WARRANTY; without even the implied warranty of
2630 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2631 # GNU General Public License for more details.
2633 # You should have received a copy of the GNU General Public License
2634 # along with this program; if not, write to the Free Software Foundation,
2635 # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
2637 # Written by Paul Eggert.
2639 AC_DEFUN([AC_FUNC_GETCWD_NULL],
2640   [AC_CHECK_HEADERS(stdlib.h unistd.h)
2641    AC_CACHE_CHECK([whether getcwd (NULL, 0) allocates memory for result],
2642      [ac_cv_func_getcwd_null],
2643      [AC_TRY_RUN(
2644         [
2645 #        ifdef HAVE_STDLIB_H
2646 #         include <stdlib.h>
2647 #        endif
2648 #        ifdef HAVE_UNISTD_H
2649 #         include <unistd.h>
2650 #        endif
2651 #        ifndef getcwd
2652          char *getcwd ();
2653 #        endif
2654          int
2655          main ()
2656          {
2657            if (chdir ("/") != 0)
2658              exit (1);
2659            else
2660              {
2661                char *f = getcwd (NULL, 0);
2662                exit (! (f && f[0] == '/' && !f[1]));
2663              }
2664          }],
2665         [ac_cv_func_getcwd_null=yes],
2666         [ac_cv_func_getcwd_null=no],
2667         [ac_cv_func_getcwd_null=no])])
2668    if test $ac_cv_func_getcwd_null = yes; then
2669      AC_DEFINE(HAVE_GETCWD_NULL, 1,
2670                [Define if getcwd (NULL, 0) allocates memory for result.])
2671    fi])
2673 #serial 4
2675 dnl Find out how to get the file descriptor associated with an open DIR*.
2676 dnl From Jim Meyering
2678 AC_DEFUN([UTILS_FUNC_DIRFD],
2680   dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57.
2681   AC_REQUIRE([AC_PROG_CPP])
2682   AC_REQUIRE([AC_PROG_EGREP])
2684   AC_HEADER_DIRENT
2685   dirfd_headers='
2686 #if HAVE_DIRENT_H
2687 # include <dirent.h>
2688 #else /* not HAVE_DIRENT_H */
2689 # define dirent direct
2690 # if HAVE_SYS_NDIR_H
2691 #  include <sys/ndir.h>
2692 # endif /* HAVE_SYS_NDIR_H */
2693 # if HAVE_SYS_DIR_H
2694 #  include <sys/dir.h>
2695 # endif /* HAVE_SYS_DIR_H */
2696 # if HAVE_NDIR_H
2697 #  include <ndir.h>
2698 # endif /* HAVE_NDIR_H */
2699 #endif /* HAVE_DIRENT_H */
2701   AC_CHECK_FUNCS(dirfd)
2702   AC_CHECK_DECLS([dirfd], , , $dirfd_headers)
2704   AC_CACHE_CHECK([whether dirfd is a macro],
2705     jm_cv_func_dirfd_macro,
2706     AC_EGREP_CPP([dirent_header_defines_dirfd], [$dirfd_headers
2707 #ifdef dirfd
2708  dirent_header_defines_dirfd
2709 #endif],
2710       jm_cv_func_dirfd_macro=yes,
2711       jm_cv_func_dirfd_macro=no))
2713   # Use the replacement only if we have no function, macro,
2714   # or declaration with that name.
2715   if test $ac_cv_func_dirfd,$ac_cv_have_decl_dirfd,$jm_cv_func_dirfd_macro \
2716       = no,no,no; then
2717     AC_REPLACE_FUNCS([dirfd])
2718     AC_CACHE_CHECK(
2719               [how to get the file descriptor associated with an open DIR*],
2720                    ac_cv_sys_dir_fd_member_name,
2721       [
2722         dirfd_save_CFLAGS=$CFLAGS
2723         for ac_expr in d_fd dd_fd; do
2725           CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr"
2726           AC_TRY_COMPILE(
2727             [$dirfd_headers
2728             ],
2729             [DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME;],
2730             dir_fd_found=yes
2731           )
2732           CFLAGS=$dirfd_save_CFLAGS
2733           test "$dir_fd_found" = yes && break
2734         done
2735         test "$dir_fd_found" = yes || ac_expr=-1
2737         ac_cv_sys_dir_fd_member_name=$ac_expr
2738       ]
2739     )
2740     if test $ac_cv_have_decl_dirfd = no; then
2741       AC_DEFINE_UNQUOTED(DIR_FD_MEMBER_NAME,
2742         $ac_cv_sys_dir_fd_member_name,
2743         [the name of the file descriptor member of DIR])
2744     fi
2745     AH_VERBATIM(DIR_TO_FD,
2746                 [#ifdef DIR_FD_MEMBER_NAME
2747 # define DIR_TO_FD(Dir_p) ((Dir_p)->DIR_FD_MEMBER_NAME)
2748 #else
2749 # define DIR_TO_FD(Dir_p) -1
2750 #endif
2752     )
2753   fi
2756 # acl.m4 - check for access control list (ACL) primitives
2758 # Copyright (C) 2002 Free Software Foundation, Inc.
2760 # This program is free software; you can redistribute it and/or modify
2761 # it under the terms of the GNU General Public License as published by
2762 # the Free Software Foundation; either version 2, or (at your option)
2763 # any later version.
2765 # This program is distributed in the hope that it will be useful,
2766 # but WITHOUT ANY WARRANTY; without even the implied warranty of
2767 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2768 # GNU General Public License for more details.
2770 # You should have received a copy of the GNU General Public License
2771 # along with this program; if not, write to the Free Software Foundation,
2772 # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
2774 # Written by Paul Eggert.
2776 AC_DEFUN([AC_FUNC_ACL],
2777   [AC_CHECK_HEADERS(sys/acl.h)
2778    AC_CHECK_FUNCS(acl)])
2780 #serial 1
2781 # Use the replacement ftw.c if the one in the C library is inadequate or buggy.
2782 # For now, we always use the code in lib/ because libc doesn't have the FTW_DCH
2783 # or FTW_DCHP that we need.  Arrange to use lib/ftw.h.  And since that
2784 # implementation uses tsearch.c/tdestroy, add tsearch.o to the list of
2785 # objects and arrange to use lib/search.h if necessary.
2786 # From Jim Meyering
2788 AC_DEFUN([AC_FUNC_FTW],
2790   # prerequisites
2791   AC_REQUIRE([jm_FUNC_LSTAT])
2792   AC_REQUIRE([AC_HEADER_DIRENT])
2793   AC_CHECK_HEADERS(sys/param.h)
2794   AC_CHECK_DECLS([stpcpy])
2796   # In the event that we have to use the replacement ftw.c,
2797   # see if we'll also need the replacement tsearch.c.
2798   AC_CHECK_FUNC([tdestroy], , [need_tdestroy=1])
2800   AC_CACHE_CHECK([for ftw/FTW_CHDIR that informs callback of failed chdir],
2801                  ac_cv_func_ftw_working,
2802   [
2803   # The following test would fail prior to glibc-2.3.2, because `depth'
2804   # would be 2 rather than 4.  Of course, now that we require FTW_DCH
2805   # and FTW_DCHP, this test fails even with GNU libc's fixed ftw.
2806   mkdir -p conftest.dir/a/b/c
2807   AC_RUN_IFELSE([AC_LANG_SOURCE([[
2808 #include <string.h>
2809 #include <stdlib.h>
2810 #include <ftw.h>
2812 static char *_f[] = { "conftest.dir", "conftest.dir/a",
2813                       "conftest.dir/a/b", "conftest.dir/a/b/c" };
2814 static char **p = _f;
2815 static int depth;
2817 static int
2818 cb (const char *file, const struct stat *sb, int file_type, struct FTW *info)
2820   if (strcmp (file, *p++) != 0)
2821     exit (1);
2822   ++depth;
2823   return 0;
2827 main ()
2829   /* Require these symbols, too.  */
2830   int d1 = FTW_DCH;
2831   int d2 = FTW_DCHP;
2833   int err = nftw ("conftest.dir", cb, 30, FTW_PHYS | FTW_MOUNT | FTW_CHDIR);
2834   exit ((err == 0 && depth == 4) ? 0 : 1);
2836 ]])],
2837                [ac_cv_func_ftw_working=yes],
2838                [ac_cv_func_ftw_working=no],
2839                [ac_cv_func_ftw_working=no])])
2840   rm -rf conftest.dir
2841   if test $ac_cv_func_ftw_working = no; then
2842     AC_LIBOBJ([ftw])
2843     AC_CONFIG_LINKS([$ac_config_libobj_dir/ftw.h:$ac_config_libobj_dir/ftw_.h])
2844     # Add tsearch.o IFF we have to use the replacement ftw.c.
2845     if test -n "$need_tdestroy"; then
2846       AC_LIBOBJ([tsearch])
2847       # Link search.h to search_.h if we use the replacement tsearch.c.
2848       AC_CONFIG_LINKS(
2849         [$ac_config_libobj_dir/search.h:$ac_config_libobj_dir/search_.h])
2850     fi
2851   fi
2852 ])# AC_FUNC_FTW
2854 #serial 7
2856 dnl From Jim Meyering.
2857 dnl Determine whether lstat has the bug that it succeeds when given the
2858 dnl zero-length file name argument.  The lstat from SunOS4.1.4 and the Hurd
2859 dnl (as of 1998-11-01) do this.
2861 dnl If it does, then define HAVE_LSTAT_EMPTY_STRING_BUG and arrange to
2862 dnl compile the wrapper function.
2865 AC_DEFUN([jm_FUNC_LSTAT],
2867  AC_REQUIRE([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
2868  AC_CACHE_CHECK([whether lstat accepts an empty string],
2869   jm_cv_func_lstat_empty_string_bug,
2870   [AC_TRY_RUN([
2871 #   include <sys/types.h>
2872 #   include <sys/stat.h>
2874     int
2875     main ()
2876     {
2877       struct stat sbuf;
2878       exit (lstat ("", &sbuf) ? 1 : 0);
2879     }
2880           ],
2881          jm_cv_func_lstat_empty_string_bug=yes,
2882          jm_cv_func_lstat_empty_string_bug=no,
2883          dnl When crosscompiling, assume lstat is broken.
2884          jm_cv_func_lstat_empty_string_bug=yes)
2885   ])
2886   if test $jm_cv_func_lstat_empty_string_bug = yes; then
2887     AC_LIBOBJ(lstat)
2888     AC_DEFINE(HAVE_LSTAT_EMPTY_STRING_BUG, 1,
2889 [Define if lstat has the bug that it succeeds when given the zero-length
2890    file name argument.  The lstat from SunOS4.1.4 and the Hurd as of 1998-11-01)
2891    do this. ])
2892   fi
2895 #serial 2
2897 dnl From Jim Meyering.
2898 dnl Provide lchown on systems that lack it.
2900 AC_DEFUN([jm_FUNC_LCHOWN],
2902   AC_REQUIRE([AC_TYPE_UID_T])
2903   AC_REPLACE_FUNCS(lchown)
2906 #serial 3
2908 # When rmdir fails because the specified directory is not empty, it sets
2909 # errno to some value, usually ENOTEMPTY.  However, on some AIX systems,
2910 # ENOTEMPTY is mistakenly defined to be EEXIST.  To work around this, and
2911 # in general, to avoid depending on the use of any particular symbol, this
2912 # test runs a test to determine the actual numeric value.
2913 AC_DEFUN([fetish_FUNC_RMDIR_NOTEMPTY],
2914 [dnl
2915   AC_CACHE_CHECK([for rmdir-not-empty errno value],
2916     fetish_cv_func_rmdir_errno_not_empty,
2917     [
2918       # Arrange for deletion of the temporary directory this test creates.
2919       ac_clean_files="$ac_clean_files confdir2"
2920       mkdir confdir2; : > confdir2/file
2921       AC_TRY_RUN([
2922 #include <stdio.h>
2923 #include <errno.h>
2924 #ifndef errno
2925 extern int errno;
2926 #endif
2927         int main ()
2928         {
2929           FILE *s;
2930           int val;
2931           rmdir ("confdir2");
2932           val = errno;
2933           s = fopen ("confdir2/errno", "w");
2934           fprintf (s, "%d\n", val);
2935           exit (0);
2936         }
2937         ],
2938       fetish_cv_func_rmdir_errno_not_empty=`cat confdir2/errno`,
2939       fetish_cv_func_rmdir_errno_not_empty='configure error in rmdir-errno.m4',
2940       fetish_cv_func_rmdir_errno_not_empty=ENOTEMPTY
2941       )
2942     ]
2943   )
2945   AC_DEFINE_UNQUOTED([RMDIR_ERRNO_NOT_EMPTY],
2946     $fetish_cv_func_rmdir_errno_not_empty,
2947     [the value to which errno is set when rmdir fails on a nonempty directory])
2950 #serial 7
2952 dnl From Jim Meyering.
2953 dnl Determine whether chown accepts arguments of -1 for uid and gid.
2954 dnl If it doesn't, arrange to use the replacement function.
2957 AC_DEFUN([jm_FUNC_CHOWN],
2958 [AC_REQUIRE([AC_TYPE_UID_T])dnl
2959  test -z "$ac_cv_header_unistd_h" \
2960    && AC_CHECK_HEADERS(unistd.h)
2961  AC_CACHE_CHECK([for working chown], jm_cv_func_working_chown,
2962   [AC_TRY_RUN([
2963 #   include <sys/types.h>
2964 #   include <sys/stat.h>
2965 #   include <fcntl.h>
2966 #   ifdef HAVE_UNISTD_H
2967 #    include <unistd.h>
2968 #   endif
2970     int
2971     main ()
2972     {
2973       char *f = "conftest.chown";
2974       struct stat before, after;
2976       if (creat (f, 0600) < 0)
2977         exit (1);
2978       if (stat (f, &before) < 0)
2979         exit (1);
2980       if (chown (f, (uid_t) -1, (gid_t) -1) == -1)
2981         exit (1);
2982       if (stat (f, &after) < 0)
2983         exit (1);
2984       exit ((before.st_uid == after.st_uid
2985              && before.st_gid == after.st_gid) ? 0 : 1);
2986     }
2987               ],
2988              jm_cv_func_working_chown=yes,
2989              jm_cv_func_working_chown=no,
2990              dnl When crosscompiling, assume chown is broken.
2991              jm_cv_func_working_chown=no)
2992   ])
2993   if test $jm_cv_func_working_chown = no; then
2994     AC_LIBOBJ(chown)
2995     AC_DEFINE(chown, rpl_chown,
2996       [Define to rpl_chown if the replacement function should be used.])
2997   fi
3000 #serial 8
3002 dnl From Jim Meyering.
3003 dnl A wrapper around AC_FUNC_MKTIME.
3005 AC_DEFUN([jm_FUNC_MKTIME],
3006 [AC_REQUIRE([AC_FUNC_MKTIME])dnl
3008  dnl mktime.c uses localtime_r if it exists.  Check for it.
3009  AC_CHECK_FUNCS(localtime_r)
3011  if test $ac_cv_func_working_mktime = no; then
3012    AC_DEFINE(mktime, rpl_mktime,
3013     [Define to rpl_mktime if the replacement function should be used.])
3014  fi
3017 #serial 7
3019 dnl From Jim Meyering.
3020 dnl Determine whether stat has the bug that it succeeds when given the
3021 dnl zero-length file name argument.  The stat from SunOS4.1.4 and the Hurd
3022 dnl (as of 1998-11-01) do this.
3024 dnl If it does, then define HAVE_STAT_EMPTY_STRING_BUG and arrange to
3025 dnl compile the wrapper function.
3028 AC_DEFUN([jm_FUNC_STAT],
3030  AC_REQUIRE([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
3031  AC_CACHE_CHECK([whether stat accepts an empty string],
3032   jm_cv_func_stat_empty_string_bug,
3033   [AC_TRY_RUN([
3034 #   include <sys/types.h>
3035 #   include <sys/stat.h>
3037     int
3038     main ()
3039     {
3040       struct stat sbuf;
3041       exit (stat ("", &sbuf) ? 1 : 0);
3042     }
3043           ],
3044          jm_cv_func_stat_empty_string_bug=yes,
3045          jm_cv_func_stat_empty_string_bug=no,
3046          dnl When crosscompiling, assume stat is broken.
3047          jm_cv_func_stat_empty_string_bug=yes)
3048   ])
3049   if test $jm_cv_func_stat_empty_string_bug = yes; then
3050     AC_LIBOBJ(stat)
3051     AC_DEFINE(HAVE_STAT_EMPTY_STRING_BUG, 1,
3052 [Define if stat has the bug that it succeeds when given the zero-length
3053    file name argument.  The stat from SunOS4.1.4 and the Hurd as of 1998-11-01)
3054    do this. ])
3055   fi
3058 #serial 8
3060 dnl From Jim Meyering.
3061 dnl Check for the nanosleep function.
3062 dnl If not found, use the supplied replacement.
3065 AC_DEFUN([jm_FUNC_NANOSLEEP],
3067  nanosleep_save_libs=$LIBS
3069  # Solaris 2.5.1 needs -lposix4 to get the nanosleep function.
3070  # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
3071  AC_SEARCH_LIBS(nanosleep, [rt posix4], [LIB_NANOSLEEP=$ac_cv_search_nanosleep])
3072  AC_SUBST(LIB_NANOSLEEP)
3074  AC_CACHE_CHECK([whether nanosleep works],
3075   jm_cv_func_nanosleep_works,
3076   [
3077    AC_REQUIRE([AC_HEADER_TIME])
3078    AC_TRY_RUN([
3079 #   if TIME_WITH_SYS_TIME
3080 #    include <sys/time.h>
3081 #    include <time.h>
3082 #   else
3083 #    if HAVE_SYS_TIME_H
3084 #     include <sys/time.h>
3085 #    else
3086 #     include <time.h>
3087 #    endif
3088 #   endif
3090     int
3091     main ()
3092     {
3093       struct timespec ts_sleep, ts_remaining;
3094       ts_sleep.tv_sec = 0;
3095       ts_sleep.tv_nsec = 1;
3096       exit (nanosleep (&ts_sleep, &ts_remaining) == 0 ? 0 : 1);
3097     }
3098           ],
3099          jm_cv_func_nanosleep_works=yes,
3100          jm_cv_func_nanosleep_works=no,
3101          dnl When crosscompiling, assume the worst.
3102          jm_cv_func_nanosleep_works=no)
3103   ])
3104   if test $jm_cv_func_nanosleep_works = no; then
3105     AC_LIBOBJ(nanosleep)
3106     AC_DEFINE(nanosleep, rpl_nanosleep,
3107       [Define to rpl_nanosleep if the replacement function should be used.])
3108   fi
3110  LIBS=$nanosleep_save_libs
3113 #serial 7 -*- autoconf -*-
3115 dnl From Jim Meyering.
3117 dnl See if the glibc *_unlocked I/O macros are available.
3118 dnl Use only those *_unlocked macros that are declared.
3121 AC_DEFUN([jm_FUNC_GLIBC_UNLOCKED_IO],
3122   [AC_CHECK_DECLS(
3123      [clearerr_unlocked, feof_unlocked, ferror_unlocked,
3124       fflush_unlocked, fgets_unlocked, fputc_unlocked, fputs_unlocked,
3125       fread_unlocked, fwrite_unlocked, getc_unlocked,
3126       getchar_unlocked, putc_unlocked, putchar_unlocked])])
3128 #serial 3
3130 dnl Written by Jim Meyering
3132 AC_DEFUN([jm_FUNC_GROUP_MEMBER],
3133   [
3134     dnl Do this replacement check manually because I want the hyphen
3135     dnl (not the underscore) in the filename.
3136     AC_CHECK_FUNC(group_member, , [AC_LIBOBJ(group-member)])
3137   ]
3140 #serial 5
3142 dnl From Jim Meyering.
3144 dnl Check whether putenv ("FOO") removes FOO from the environment.
3145 dnl The putenv in libc on at least SunOS 4.1.4 does *not* do that.
3148 AC_DEFUN([jm_FUNC_PUTENV],
3149 [AC_CACHE_CHECK([for SVID conformant putenv], jm_cv_func_svid_putenv,
3150   [AC_TRY_RUN([
3151     int
3152     main ()
3153     {
3154       /* Put it in env.  */
3155       if (putenv ("CONFTEST_putenv=val"))
3156         exit (1);
3158       /* Try to remove it.  */
3159       if (putenv ("CONFTEST_putenv"))
3160         exit (1);
3162       /* Make sure it was deleted.  */
3163       if (getenv ("CONFTEST_putenv") != 0)
3164         exit (1);
3166       exit (0);
3167     }
3168               ],
3169              jm_cv_func_svid_putenv=yes,
3170              jm_cv_func_svid_putenv=no,
3171              dnl When crosscompiling, assume putenv is broken.
3172              jm_cv_func_svid_putenv=no)
3173   ])
3174   if test $jm_cv_func_svid_putenv = no; then
3175     AC_LIBOBJ(putenv)
3176     AC_DEFINE(putenv, rpl_putenv,
3177       [Define to rpl_putenv if the replacement function should be used.])
3178   fi
3181 #serial 5
3183 AC_DEFUN([jm_AFS],
3184   [
3185     AC_MSG_CHECKING(for AFS)
3186     if test -d /afs; then
3187       AC_DEFINE(AFS, 1, [Define if you have the Andrew File System.])
3188       ac_result=yes
3189     else
3190       ac_result=no
3191     fi
3192     AC_MSG_RESULT($ac_result)
3193   ])
3195 #serial 4
3197 # autoconf tests required for use of xstrtoumax.c
3199 AC_DEFUN([jm_AC_PREREQ_XSTRTOUMAX],
3201   AC_REQUIRE([jm_AC_TYPE_INTMAX_T])
3202   AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])
3203   AC_REQUIRE([jm_AC_TYPE_LONG_LONG])
3204   AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
3205   AC_CHECK_DECLS([strtol, strtoul, strtoull, strtoimax, strtoumax])
3206   AC_CHECK_HEADERS(limits.h stdlib.h inttypes.h)
3208   AC_CACHE_CHECK([whether <inttypes.h> defines strtoumax as a macro],
3209     jm_cv_func_strtoumax_macro,
3210     AC_EGREP_CPP([inttypes_h_defines_strtoumax], [#include <inttypes.h>
3211 #ifdef strtoumax
3212  inttypes_h_defines_strtoumax
3213 #endif],
3214       jm_cv_func_strtoumax_macro=yes,
3215       jm_cv_func_strtoumax_macro=no))
3217   if test "$jm_cv_func_strtoumax_macro" != yes; then
3218     AC_REPLACE_FUNCS(strtoumax)
3219   fi
3221   dnl Only the replacement strtoumax invokes strtoul and strtoull,
3222   dnl so we need the replacements only if strtoumax does not exist.
3223   case "$jm_cv_func_strtoumax_macro,$ac_cv_func_strtoumax" in
3224     no,no)
3225       AC_REPLACE_FUNCS(strtoul)
3227       dnl We don't need (and can't compile) the replacement strtoull
3228       dnl unless the type `unsigned long long' exists.
3229       if test "$ac_cv_type_unsigned_long_long" = yes; then
3230         AC_REPLACE_FUNCS(strtoull)
3231       fi
3232       ;;
3233   esac
3236 #serial 2
3237 dnl Cloned from xstrtoumax.m4.  Keep these files in sync.
3239 # autoconf tests required for use of xstrtoimax.c
3241 AC_DEFUN([jm_AC_PREREQ_XSTRTOIMAX],
3243   AC_REQUIRE([jm_AC_TYPE_INTMAX_T])
3244   AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])
3245   AC_REQUIRE([jm_AC_TYPE_LONG_LONG])
3246   AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
3247   AC_CHECK_DECLS([strtol, strtoul, strtoll, strtoimax, strtoumax])
3248   AC_CHECK_HEADERS(limits.h stdlib.h inttypes.h)
3250   AC_CACHE_CHECK([whether <inttypes.h> defines strtoimax as a macro],
3251     jm_cv_func_strtoimax_macro,
3252     AC_EGREP_CPP([inttypes_h_defines_strtoimax], [#include <inttypes.h>
3253 #ifdef strtoimax
3254  inttypes_h_defines_strtoimax
3255 #endif],
3256       jm_cv_func_strtoimax_macro=yes,
3257       jm_cv_func_strtoimax_macro=no))
3259   if test "$jm_cv_func_strtoimax_macro" != yes; then
3260     AC_REPLACE_FUNCS(strtoimax)
3261   fi
3263   dnl Only the replacement strtoimax invokes strtol and strtoll,
3264   dnl so we need the replacements only if strtoimax does not exist.
3265   case "$jm_cv_func_strtoimax_macro,$ac_cv_func_strtoimax" in
3266     no,no)
3267       AC_REPLACE_FUNCS(strtol)
3269       dnl We don't need (and can't compile) the replacement strtoll
3270       dnl unless the type `long long' exists.
3271       if test "$ac_cv_type_long_long" = yes; then
3272         AC_REPLACE_FUNCS(strtoll)
3273       fi
3274       ;;
3275   esac
3278 #serial 3
3279 dnl Run a program to determine whether whether link(2) follows symlinks.
3280 dnl Set LINK_FOLLOWS_SYMLINKS accordingly.
3282 AC_DEFUN([jm_AC_FUNC_LINK_FOLLOWS_SYMLINK],
3283 [dnl
3284   AC_CACHE_CHECK(
3285     [whether link(2) dereferences a symlink specified with a trailing slash],
3286                  jm_ac_cv_func_link_follows_symlink,
3287   [
3288     dnl poor-man's AC_REQUIRE: FIXME: repair this once autoconf-3 provides
3289     dnl the appropriate framework.
3290     test -z "$ac_cv_header_unistd_h" \
3291       && AC_CHECK_HEADERS(unistd.h)
3293     # Create a regular file.
3294     echo > conftest.file
3295     AC_TRY_RUN(
3296       [
3297 #       include <sys/types.h>
3298 #       include <sys/stat.h>
3299 #       ifdef HAVE_UNISTD_H
3300 #        include <unistd.h>
3301 #       endif
3303 #       define SAME_INODE(Stat_buf_1, Stat_buf_2) \
3304           ((Stat_buf_1).st_ino == (Stat_buf_2).st_ino \
3305            && (Stat_buf_1).st_dev == (Stat_buf_2).st_dev)
3307         int
3308         main ()
3309         {
3310           const char *file = "conftest.file";
3311           const char *sym = "conftest.sym";
3312           const char *hard = "conftest.hard";
3313           struct stat sb_file, sb_hard;
3315           /* Create a symlink to the regular file. */
3316           if (symlink (file, sym))
3317             abort ();
3319           /* Create a hard link to that symlink.  */
3320           if (link (sym, hard))
3321             abort ();
3323           if (lstat (hard, &sb_hard))
3324             abort ();
3325           if (lstat (file, &sb_file))
3326             abort ();
3328           /* If the dev/inode of hard and file are the same, then
3329              the link call followed the symlink.  */
3330           return SAME_INODE (sb_hard, sb_file) ? 0 : 1;
3331         }
3332       ],
3333       jm_ac_cv_func_link_follows_symlink=yes,
3334       jm_ac_cv_func_link_follows_symlink=no,
3335       jm_ac_cv_func_link_follows_symlink=yes dnl We're cross compiling.
3336     )
3337   ])
3338   if test $jm_ac_cv_func_link_follows_symlink = yes; then
3339     AC_DEFINE(LINK_FOLLOWS_SYMLINKS, 1,
3340       [Define if `link(2)' dereferences symbolic links.])
3341   fi
3344 #serial 17
3346 dnl This macro is intended to be used solely in this file.
3347 dnl These are the prerequisite macros for GNU's strftime.c replacement.
3348 AC_DEFUN([_jm_STRFTIME_PREREQS],
3350  dnl strftime.c uses localtime_r and the underyling system strftime
3351  dnl if they exist.
3352  AC_CHECK_FUNCS(localtime_r strftime)
3354  AC_CHECK_HEADERS(limits.h)
3355  AC_CHECK_FUNCS(bcopy tzset mempcpy memcpy memset)
3357  # This defines (or not) HAVE_TZNAME and HAVE_TM_ZONE.
3358  AC_STRUCT_TIMEZONE
3360  AC_CHECK_FUNCS(mblen mbrlen)
3362  AC_CHECK_MEMBER([struct tm.tm_gmtoff],
3363                  [AC_DEFINE(HAVE_TM_GMTOFF, 1,
3364                             [Define if struct tm has the tm_gmtoff member.])],
3365                  ,
3366                  [#include <time.h>])
3369 dnl From Jim Meyering.
3371 AC_DEFUN([jm_FUNC_GNU_STRFTIME],
3372 [AC_REQUIRE([AC_HEADER_TIME])dnl
3374  _jm_STRFTIME_PREREQS
3376  AC_REQUIRE([AC_C_CONST])dnl
3377  AC_REQUIRE([AC_HEADER_STDC])dnl
3378  AC_CHECK_HEADERS(sys/time.h)
3379  AC_DEFINE([my_strftime], [nstrftime],
3380    [Define to the name of the strftime replacement function.])
3383 AC_DEFUN([jm_FUNC_STRFTIME],
3385   _jm_STRFTIME_PREREQS
3388 #serial 3
3390 dnl From Jim Meyering
3391 dnl Using code from emacs, based on suggestions from Paul Eggert
3392 dnl and Ulrich Drepper.
3394 dnl Find out how to determine the number of pending output bytes on a stream.
3395 dnl glibc (2.1.93 and newer) and Solaris provide __fpending.  On other systems,
3396 dnl we have to grub around in the FILE struct.
3398 AC_DEFUN([jm_FUNC_FPENDING],
3400   AC_CHECK_HEADERS(stdio_ext.h)
3401   AC_REPLACE_FUNCS([__fpending])
3402   fp_headers='
3403 #     if HAVE_STDIO_EXT_H
3404 #      include <stdio_ext.h>
3405 #     endif
3407   AC_CHECK_DECLS([__fpending], , , $fp_headers)
3408   if test $ac_cv_func___fpending = no; then
3409     AC_CACHE_CHECK(
3410               [how to determine the number of pending output bytes on a stream],
3411                    ac_cv_sys_pending_output_n_bytes,
3412       [
3413         for ac_expr in                                          \
3414                                                                 \
3415             '# glibc2'                                          \
3416             'fp->_IO_write_ptr - fp->_IO_write_base'            \
3417                                                                 \
3418             '# traditional Unix'                                \
3419             'fp->_ptr - fp->_base'                              \
3420                                                                 \
3421             '# BSD'                                             \
3422             'fp->_p - fp->_bf._base'                            \
3423                                                                 \
3424             '# SCO, Unixware'                                   \
3425             'fp->__ptr - fp->__base'                            \
3426                                                                 \
3427             '# old glibc?'                                      \
3428             'fp->__bufp - fp->__buffer'                         \
3429                                                                 \
3430             '# old glibc iostream?'                             \
3431             'fp->_pptr - fp->_pbase'                            \
3432                                                                 \
3433             '# VMS'                                             \
3434             '(*fp)->_ptr - (*fp)->_base'                        \
3435                                                                 \
3436             '# e.g., DGUX R4.11; the info is not available'     \
3437             1                                                   \
3438             ; do
3440           # Skip each embedded comment.
3441           case "$ac_expr" in '#'*) continue;; esac
3443           AC_TRY_COMPILE(
3444             [#include <stdio.h>
3445             ],
3446             [FILE *fp = stdin; (void) ($ac_expr);],
3447             fp_done=yes
3448           )
3449           test "$fp_done" = yes && break
3450         done
3452         ac_cv_sys_pending_output_n_bytes=$ac_expr
3453       ]
3454     )
3455     AC_DEFINE_UNQUOTED(PENDING_OUTPUT_N_BYTES,
3456       $ac_cv_sys_pending_output_n_bytes,
3457       [the number of pending output bytes on stream `fp'])
3458   fi
3461 # inttypes-pri.m4 serial 1001 (based on gettext-0.11.4's `serial 1')
3462 dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
3463 dnl This file is free software, distributed under the terms of the GNU
3464 dnl General Public License.  As a special exception to the GNU General
3465 dnl Public License, this file may be distributed as part of a program
3466 dnl that contains a configuration script generated by Autoconf, under
3467 dnl the same distribution terms as the rest of that program.
3469 dnl From Bruno Haible.
3471 # Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
3472 # macros to non-string values.  This is the case on AIX 4.3.3.
3474 AC_DEFUN([gt_INTTYPES_PRI],
3476   # autoconf-2.52 has a proper check for inttypes.h.
3477   AC_PREREQ(2.52)
3479   if test $ac_cv_header_inttypes_h = yes; then
3480     AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
3481       gt_cv_inttypes_pri_broken,
3482       [
3483         AC_TRY_COMPILE([#include <inttypes.h>
3484 #ifdef PRId32
3485 char *p = PRId32;
3486 #endif
3487 ], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes)
3488       ])
3489   fi
3490   if test "$gt_cv_inttypes_pri_broken" = yes; then
3491     AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1,
3492       [Define if <inttypes.h> exists and defines unusable PRI* macros.])
3493   fi
3496 #serial 7
3498 dnl From Jim Meyering.
3499 dnl A wrapper around AC_FUNC_GETGROUPS.
3501 AC_DEFUN([jm_FUNC_GETGROUPS],
3502 [AC_REQUIRE([AC_FUNC_GETGROUPS])dnl
3503   if test $ac_cv_func_getgroups_works = no; then
3504     AC_LIBOBJ(getgroups)
3505     AC_DEFINE(getgroups, rpl_getgroups,
3506       [Define as rpl_getgroups if getgroups doesn't work right.])
3507   fi
3508   test -n "$GETGROUPS_LIB" && LIBS="$GETGROUPS_LIB $LIBS"
3511 #serial 5
3513 AC_PREREQ(2.13)
3515 AC_DEFUN([jm_SYS_PROC_UPTIME],
3516 [ dnl Require AC_PROG_CC to see if we're cross compiling.
3517   AC_REQUIRE([AC_PROG_CC])
3518   AC_CACHE_CHECK([for /proc/uptime], jm_cv_have_proc_uptime,
3519   [jm_cv_have_proc_uptime=no
3520     test -f /proc/uptime \
3521       && test "$cross_compiling" = no \
3522       && cat < /proc/uptime >/dev/null 2>/dev/null \
3523       && jm_cv_have_proc_uptime=yes])
3524   if test $jm_cv_have_proc_uptime = yes; then
3525     AC_DEFINE(HAVE_PROC_UPTIME, 1,
3526               [  Define if your system has the /proc/uptime special file.])
3527   fi
3530 #serial 4
3532 # See if we need to emulate a missing ftruncate function using fcntl or chsize.
3534 AC_DEFUN([jm_FUNC_FTRUNCATE],
3536   AC_CHECK_FUNCS(ftruncate, , [ftruncate_missing=yes])
3538   if test "$ftruncate_missing" = yes; then
3539     AC_CHECK_HEADERS([unistd.h])
3540     AC_CHECK_FUNCS([chsize])
3541     AC_LIBOBJ(ftruncate)
3542   fi
3545 #serial 3
3547 dnl From Volker Borchert.
3548 dnl Determine whether rename works for source paths with a trailing slash.
3549 dnl The rename from SunOS 4.1.1_U1 doesn't.
3551 dnl If it doesn't, then define RENAME_TRAILING_SLASH_BUG and arrange
3552 dnl to compile the wrapper function.
3555 AC_DEFUN([vb_FUNC_RENAME],
3557  AC_CACHE_CHECK([whether rename is broken],
3558   vb_cv_func_rename_trailing_slash_bug,
3559   [
3560     rm -rf conftest.d1 conftest.d2
3561     mkdir conftest.d1 ||
3562       AC_MSG_ERROR([cannot create temporary directory])
3563     AC_TRY_RUN([
3564 #       include <stdio.h>
3565         int
3566         main ()
3567         {
3568           exit (rename ("conftest.d1/", "conftest.d2") ? 1 : 0);
3569         }
3570       ],
3571       vb_cv_func_rename_trailing_slash_bug=no,
3572       vb_cv_func_rename_trailing_slash_bug=yes,
3573       dnl When crosscompiling, assume rename is broken.
3574       vb_cv_func_rename_trailing_slash_bug=yes)
3576       rm -rf conftest.d1 conftest.d2
3577   ])
3578   if test $vb_cv_func_rename_trailing_slash_bug = yes; then
3579     AC_LIBOBJ(rename)
3580     AC_DEFINE(RENAME_TRAILING_SLASH_BUG, 1,
3581 [Define if rename does not work for source paths with a trailing slash,
3582    like the one from SunOS 4.1.1_U1.])
3583   fi
3586 #serial 1
3588 # On some systems (e.g., HPUX-10.20, SunOS4.1.4, solaris2.5.1), mkstemp has the
3589 # silly limit that it can create no more than 26 files from a given template.
3590 # Other systems lack mkstemp altogether.  On either type of system, arrange
3591 # to use the replacement function.
3592 AC_DEFUN([UTILS_FUNC_MKSTEMP],
3593 [dnl
3594   AC_REPLACE_FUNCS(mkstemp)
3595   if test $ac_cv_func_mkstemp = no; then
3596     utils_cv_func_mkstemp_limitations=yes
3597   else
3598     AC_CACHE_CHECK([for mkstemp limitations],
3599       utils_cv_func_mkstemp_limitations,
3600       [
3601         AC_TRY_RUN([
3602 #         include <stdlib.h>
3603           int main ()
3604           {
3605             int i;
3606             for (i = 0; i < 30; i++)
3607               {
3608                 char template[] = "conftestXXXXXX";
3609                 int fd = mkstemp (template);
3610                 if (fd == -1)
3611                   exit (1);
3612                 close (fd);
3613               }
3614             exit (0);
3615           }
3616           ],
3617         utils_cv_func_mkstemp_limitations=no,
3618         utils_cv_func_mkstemp_limitations=yes,
3619         utils_cv_func_mkstemp_limitations=yes
3620         )
3621       ]
3622     )
3623   fi
3625   if test $utils_cv_func_mkstemp_limitations = yes; then
3626     AC_LIBOBJ(mkstemp)
3627     AC_LIBOBJ(tempname)
3628     AC_DEFINE(mkstemp, rpl_mkstemp,
3629       [Define to rpl_mkstemp if the replacement function should be used.])
3630   fi
3633 #serial 2
3635 dnl From Jim Meyering.
3637 dnl See if gettimeofday clobbers the static buffer that localtime uses
3638 dnl for it's return value.  The gettimeofday function from Mac OS X 10.0.4,
3639 dnl i.e. Darwin 1.3.7 has this problem.
3641 dnl If it does, then arrange to use gettimeofday and localtime only via
3642 dnl the wrapper functions that work around the problem.
3644 AC_DEFUN([AC_FUNC_GETTIMEOFDAY_CLOBBER],
3646  AC_REQUIRE([AC_HEADER_TIME])
3647  AC_CHECK_HEADERS(string.h stdlib.h)
3648  AC_CACHE_CHECK([whether gettimeofday clobbers localtime buffer],
3649   jm_cv_func_gettimeofday_clobber,
3650   [AC_TRY_RUN([
3651 #include <stdio.h>
3652 #if HAVE_STRING_H
3653 # include <string.h>
3654 #endif
3656 #if TIME_WITH_SYS_TIME
3657 # include <sys/time.h>
3658 # include <time.h>
3659 #else
3660 # if HAVE_SYS_TIME_H
3661 #  include <sys/time.h>
3662 # else
3663 #  include <time.h>
3664 # endif
3665 #endif
3667 #if HAVE_STDLIB_H
3668 # include <stdlib.h>
3669 #endif
3672 main ()
3674   time_t t = 0;
3675   struct tm *lt;
3676   struct tm saved_lt;
3677   struct timeval tv;
3678   lt = localtime (&t);
3679   saved_lt = *lt;
3680   gettimeofday (&tv, NULL);
3681   if (memcmp (lt, &saved_lt, sizeof (struct tm)) != 0)
3682     exit (1);
3684   exit (0);
3686           ],
3687          jm_cv_func_gettimeofday_clobber=no,
3688          jm_cv_func_gettimeofday_clobber=yes,
3689          dnl When crosscompiling, assume it is broken.
3690          jm_cv_func_gettimeofday_clobber=yes)
3691   ])
3692   if test $jm_cv_func_gettimeofday_clobber = yes; then
3693     AC_LIBOBJ(gettimeofday)
3694     AC_DEFINE(localtime, rpl_localtime,
3695       [Define to rpl_localtime if the replacement function should be used.])
3696     AC_DEFINE(gettimeofday, rpl_gettimeofday,
3697       [Define to rpl_gettimeofday if the replacement function should be used.])
3698     AC_DEFINE(GETTIMEOFDAY_CLOBBERS_LOCALTIME_BUFFER, 1,
3699       [Define if gettimeofday clobbers localtime's static buffer.])
3700   fi
3703 #serial 3
3705 dnl From Jim Meyering
3706 dnl Replace the utime function on systems that need it.
3708 dnl FIXME
3710 AC_DEFUN([jm_FUNC_UTIME],
3712   AC_CHECK_HEADERS(utime.h)
3713   AC_REQUIRE([jm_CHECK_TYPE_STRUCT_UTIMBUF])
3714   AC_REQUIRE([AC_FUNC_UTIME_NULL])
3716   if test $ac_cv_func_utime_null = no; then
3717     jm_FUNC_UTIMES_NULL
3718     AC_REPLACE_FUNCS(utime)
3719   fi
3722 #serial 4
3724 dnl Shamelessly cloned from acspecific.m4's AC_FUNC_UTIME_NULL,
3725 dnl then do case-insensitive s/utime/utimes/.
3727 AC_DEFUN([jm_FUNC_UTIMES_NULL],
3728 [AC_CACHE_CHECK(whether utimes accepts a null argument, ac_cv_func_utimes_null,
3729 [rm -f conftest.data; > conftest.data
3730 AC_TRY_RUN([
3731 /* In case stat has been defined to rpl_stat, undef it here.  */
3732 #undef stat
3733 #include <sys/types.h>
3734 #include <sys/stat.h>
3735 main() {
3736 struct stat s, t;
3737 exit(!(stat ("conftest.data", &s) == 0
3738        && utimes("conftest.data", (long *)0) == 0
3739        && stat("conftest.data", &t) == 0
3740        && t.st_mtime >= s.st_mtime
3741        && t.st_mtime - s.st_mtime < 120));
3743   ac_cv_func_utimes_null=yes,
3744   ac_cv_func_utimes_null=no,
3745   ac_cv_func_utimes_null=no)
3746 rm -f core core.* *.core])
3748     if test $ac_cv_func_utimes_null = yes; then
3749       AC_DEFINE(HAVE_UTIMES_NULL, 1,
3750                 [Define if utimes accepts a null argument])
3751     fi
3752   ]
3755 #serial 5
3757 dnl See if there's a working, system-supplied version of the getline function.
3758 dnl We can't just do AC_REPLACE_FUNCS(getline) because some systems
3759 dnl have a function by that name in -linet that doesn't have anything
3760 dnl to do with the function we need.
3761 AC_DEFUN([AM_FUNC_GETLINE],
3762 [dnl
3763   am_getline_needs_run_time_check=no
3764   AC_CHECK_FUNC(getline,
3765                 dnl Found it in some library.  Verify that it works.
3766                 am_getline_needs_run_time_check=yes,
3767                 am_cv_func_working_getline=no)
3768   if test $am_getline_needs_run_time_check = yes; then
3769     AC_CACHE_CHECK([for working getline function], am_cv_func_working_getline,
3770     [echo fooN |tr -d '\012'|tr N '\012' > conftest.data
3771     AC_TRY_RUN([
3772 #    include <stdio.h>
3773 #    include <sys/types.h>
3774 #    include <string.h>
3775     int main ()
3776     { /* Based on a test program from Karl Heuer.  */
3777       char *line = NULL;
3778       size_t siz = 0;
3779       int len;
3780       FILE *in = fopen ("./conftest.data", "r");
3781       if (!in)
3782         return 1;
3783       len = getline (&line, &siz, in);
3784       exit ((len == 4 && line && strcmp (line, "foo\n") == 0) ? 0 : 1);
3785     }
3786     ], am_cv_func_working_getline=yes dnl The library version works.
3787     , am_cv_func_working_getline=no dnl The library version does NOT work.
3788     , am_cv_func_working_getline=no dnl We're cross compiling.
3789     )])
3790   fi
3792   if test $am_cv_func_working_getline = no; then
3793     AC_LIBOBJ(getline)
3794   fi
3797 #serial 1
3798 # Determine approximately how many files may be open simultaneously
3799 # in one process.  This is approximate, since while running this test,
3800 # the configure script already has a few files open.
3801 # From Jim Meyering
3803 AC_DEFUN([UTILS_SYS_OPEN_MAX],
3805   AC_CACHE_CHECK([determine how many files may be open simultaneously],
3806                  utils_cv_sys_open_max,
3807   [
3808   AC_RUN_IFELSE([AC_LANG_SOURCE([[
3809 #include <stdio.h>
3810 #include <stdlib.h>
3811 #include <unistd.h>
3812     int
3813     main ()
3814     {
3815       FILE *result = fopen ("conftest.omax", "w");
3816       int i = 1;
3817       /* Impose an arbitrary limit, in case some system has no
3818          effective limit on the number of simultaneously open files.  */
3819       while (i < 30000)
3820         {
3821           FILE *s = fopen ("conftest.op", "w");
3822           if (!s)
3823             break;
3824           ++i;
3825         }
3826       fprintf (result, "%d\n", i);
3827       exit (fclose (result) == EOF);
3828     }
3829   ]])],
3830        [utils_cv_sys_open_max=`cat conftest.omax`],
3831        [utils_cv_sys_open_max='internal error in open-max.m4'],
3832        [utils_cv_sys_open_max='cross compiling run-test in open-max.m4'])])
3834   AC_DEFINE_UNQUOTED([UTILS_OPEN_MAX],
3835     $utils_cv_sys_open_max,
3836     [the maximum number of simultaneously open files per process])
3839 #serial 2
3840 # Check whether getcwd has the bug that it succeeds for a working directory
3841 # longer than PATH_MAX, yet returns a truncated directory name.
3842 # If so, arrange to compile the wrapper function.
3844 # This is necessary for at least GNU libc on linux-2.4.19 and 2.4.20.
3845 # I've heard that this is due to a Linux kernel bug, and that it has
3846 # been fixed between 2.4.21-pre3 and 2.4.21-pre4.  */
3848 # From Jim Meyering
3850 AC_DEFUN([GL_FUNC_GETCWD_PATH_MAX],
3852   AC_CACHE_CHECK([whether getcwd properly handles paths longer than PATH_MAX],
3853                  gl_cv_func_getcwd_vs_path_max,
3854   [
3855   AC_CHECK_DECLS([getcwd])
3856   # Arrange for deletion of the temporary directory this test creates.
3857   ac_clean_files="$ac_clean_files confdir3"
3858   AC_RUN_IFELSE([AC_LANG_SOURCE([[
3859 #include <stdlib.h>
3860 #include <unistd.h>
3861 #include <string.h>
3862 #include <limits.h>
3863 #include <sys/stat.h>
3864 #include <sys/types.h>
3866 /* Don't get link errors because mkdir is redefined to rpl_mkdir.  */
3867 #undef mkdir
3869 #ifndef CHAR_BIT
3870 # define CHAR_BIT 8
3871 #endif
3873 /* The extra casts work around common compiler bugs.  */
3874 #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
3875 /* The outer cast is needed to work around a bug in Cray C 5.0.3.0.
3876    It is necessary at least when t == time_t.  */
3877 #define TYPE_MINIMUM(t) ((t) (TYPE_SIGNED (t) \
3878                               ? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) : (t) 0))
3879 #define TYPE_MAXIMUM(t) ((t) (~ (t) 0 - TYPE_MINIMUM (t)))
3881 #ifndef INT_MAX
3882 # define INT_MAX TYPE_MAXIMUM (int)
3883 #endif
3885 #ifndef PATH_MAX
3886 /* There might be a better way to handle this case, but note:
3887    - the value shouldn't be anywhere near INT_MAX, and
3888    - the value shouldn't be so big that the local declaration, below,
3889    blows the stack.  */
3890 # define PATH_MAX 40000
3891 #endif
3893 /* The length of this name must be 8.  */
3894 #define DIR_NAME "confdir3"
3897 main ()
3899   /* The '9' comes from strlen (DIR_NAME) + 1.  */
3900 #if INT_MAX - 9 <= PATH_MAX
3901   /* FIXME: Assuming there's a system for which this is true -- Hurd?,
3902      this should be done in a compile test.  */
3903   exit (0);
3904 #else
3905   char buf[PATH_MAX + 20];
3906   char *cwd = getcwd (buf, PATH_MAX);
3907   size_t cwd_len;
3908   int fail = 0;
3909   size_t n_chdirs = 0;
3911   if (cwd == NULL)
3912     exit (1);
3914   cwd_len = strlen (cwd);
3916   while (1)
3917     {
3918       char *c;
3919       size_t len;
3921       cwd_len += 1 + strlen (DIR_NAME);
3922       /* If mkdir or chdir fails, be pessimistic and consider that
3923          as a failure, too.  */
3924       if (mkdir (DIR_NAME, 0700) < 0 || chdir (DIR_NAME) < 0)
3925         {
3926           fail = 1;
3927           break;
3928         }
3929       if ((c = getcwd (buf, PATH_MAX)) == NULL)
3930         {
3931           /* This allows any failure to indicate there is no bug.
3932              FIXME: check errno?  */
3933           break;
3934         }
3935       if ((len = strlen (c)) != cwd_len)
3936         {
3937           fail = 1;
3938           break;
3939         }
3940       ++n_chdirs;
3941       if (PATH_MAX < len)
3942         break;
3943     }
3945   /* Leaving behind such a deep directory is not polite.
3946      So clean up here, right away, even though the driving
3947      shell script would also clean up.  */
3948   {
3949     size_t i;
3951     /* Unlink first, in case the chdir failed.  */
3952     unlink (DIR_NAME);
3953     for (i = 0; i <= n_chdirs; i++)
3954       {
3955         if (chdir ("..") < 0)
3956           break;
3957         rmdir (DIR_NAME);
3958       }
3959   }
3961   exit (fail);
3962 #endif
3964   ]])],
3965        [gl_cv_func_getcwd_vs_path_max=yes],
3966        [gl_cv_func_getcwd_vs_path_max=no],
3967        [gl_cv_func_getcwd_vs_path_max=no])])
3969   if test $gl_cv_func_getcwd_vs_path_max = yes; then
3970     AC_LIBOBJ(getcwd)
3971     AC_DEFINE(getcwd, rpl_getcwd,
3972       [Define to rpl_getcwd if the wrapper function should be used.])
3973   fi
3976 # codeset.m4 serial AM1 (gettext-0.10.40)
3977 dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
3978 dnl This file is free software, distributed under the terms of the GNU
3979 dnl General Public License.  As a special exception to the GNU General
3980 dnl Public License, this file may be distributed as part of a program
3981 dnl that contains a configuration script generated by Autoconf, under
3982 dnl the same distribution terms as the rest of that program.
3984 dnl From Bruno Haible.
3986 AC_DEFUN([AM_LANGINFO_CODESET],
3988   AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
3989     [AC_TRY_LINK([#include <langinfo.h>],
3990       [char* cs = nl_langinfo(CODESET);],
3991       am_cv_langinfo_codeset=yes,
3992       am_cv_langinfo_codeset=no)
3993     ])
3994   if test $am_cv_langinfo_codeset = yes; then
3995     AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
3996       [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
3997   fi
4000 # glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40)
4001 dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
4002 dnl This file is free software, distributed under the terms of the GNU
4003 dnl General Public License.  As a special exception to the GNU General
4004 dnl Public License, this file may be distributed as part of a program
4005 dnl that contains a configuration script generated by Autoconf, under
4006 dnl the same distribution terms as the rest of that program.
4008 # Test for the GNU C Library, version 2.1 or newer.
4009 # From Bruno Haible.
4011 AC_DEFUN([jm_GLIBC21],
4012   [
4013     AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
4014       ac_cv_gnu_library_2_1,
4015       [AC_EGREP_CPP([Lucky GNU user],
4016         [
4017 #include <features.h>
4018 #ifdef __GNU_LIBRARY__
4019  #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
4020   Lucky GNU user
4021  #endif
4022 #endif
4023         ],
4024         ac_cv_gnu_library_2_1=yes,
4025         ac_cv_gnu_library_2_1=no)
4026       ]
4027     )
4028     AC_SUBST(GLIBC21)
4029     GLIBC21="$ac_cv_gnu_library_2_1"
4030   ]
4033 # iconv.m4 serial AM4 (gettext-0.11.3)
4034 dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
4035 dnl This file is free software, distributed under the terms of the GNU
4036 dnl General Public License.  As a special exception to the GNU General
4037 dnl Public License, this file may be distributed as part of a program
4038 dnl that contains a configuration script generated by Autoconf, under
4039 dnl the same distribution terms as the rest of that program.
4041 dnl From Bruno Haible.
4043 AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
4045   dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
4046   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
4047   AC_REQUIRE([AC_LIB_RPATH])
4049   dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
4050   dnl accordingly.
4051   AC_LIB_LINKFLAGS_BODY([iconv])
4054 AC_DEFUN([AM_ICONV_LINK],
4056   dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
4057   dnl those with the standalone portable GNU libiconv installed).
4059   dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
4060   dnl accordingly.
4061   AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
4063   dnl Add $INCICONV to CPPFLAGS before performing the following checks,
4064   dnl because if the user has installed libiconv and not disabled its use
4065   dnl via --without-libiconv-prefix, he wants to use it. The first
4066   dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
4067   am_save_CPPFLAGS="$CPPFLAGS"
4068   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
4070   AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
4071     am_cv_func_iconv="no, consider installing GNU libiconv"
4072     am_cv_lib_iconv=no
4073     AC_TRY_LINK([#include <stdlib.h>
4074 #include <iconv.h>],
4075       [iconv_t cd = iconv_open("","");
4076        iconv(cd,NULL,NULL,NULL,NULL);
4077        iconv_close(cd);],
4078       am_cv_func_iconv=yes)
4079     if test "$am_cv_func_iconv" != yes; then
4080       am_save_LIBS="$LIBS"
4081       LIBS="$LIBS $LIBICONV"
4082       AC_TRY_LINK([#include <stdlib.h>
4083 #include <iconv.h>],
4084         [iconv_t cd = iconv_open("","");
4085          iconv(cd,NULL,NULL,NULL,NULL);
4086          iconv_close(cd);],
4087         am_cv_lib_iconv=yes
4088         am_cv_func_iconv=yes)
4089       LIBS="$am_save_LIBS"
4090     fi
4091   ])
4092   if test "$am_cv_func_iconv" = yes; then
4093     AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
4094   fi
4095   if test "$am_cv_lib_iconv" = yes; then
4096     AC_MSG_CHECKING([how to link with libiconv])
4097     AC_MSG_RESULT([$LIBICONV])
4098   else
4099     dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
4100     dnl either.
4101     CPPFLAGS="$am_save_CPPFLAGS"
4102     LIBICONV=
4103     LTLIBICONV=
4104   fi
4105   AC_SUBST(LIBICONV)
4106   AC_SUBST(LTLIBICONV)
4109 AC_DEFUN([AM_ICONV],
4111   AM_ICONV_LINK
4112   if test "$am_cv_func_iconv" = yes; then
4113     AC_MSG_CHECKING([for iconv declaration])
4114     AC_CACHE_VAL(am_cv_proto_iconv, [
4115       AC_TRY_COMPILE([
4116 #include <stdlib.h>
4117 #include <iconv.h>
4118 extern
4119 #ifdef __cplusplus
4121 #endif
4122 #if defined(__STDC__) || defined(__cplusplus)
4123 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
4124 #else
4125 size_t iconv();
4126 #endif
4127 ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
4128       am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
4129     am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
4130     AC_MSG_RESULT([$]{ac_t:-
4131          }[$]am_cv_proto_iconv)
4132     AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
4133       [Define as const if the declaration of iconv() needs const.])
4134   fi
4137 # lib-prefix.m4 serial 1 (gettext-0.11)
4138 dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
4139 dnl This file is free software, distributed under the terms of the GNU
4140 dnl General Public License.  As a special exception to the GNU General
4141 dnl Public License, this file may be distributed as part of a program
4142 dnl that contains a configuration script generated by Autoconf, under
4143 dnl the same distribution terms as the rest of that program.
4145 dnl From Bruno Haible.
4147 dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
4148 dnl to access previously installed libraries. The basic assumption is that
4149 dnl a user will want packages to use other packages he previously installed
4150 dnl with the same --prefix option.
4151 dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
4152 dnl libraries, but is otherwise very convenient.
4153 AC_DEFUN([AC_LIB_PREFIX],
4155   AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
4156   AC_REQUIRE([AC_PROG_CC])
4157   AC_REQUIRE([AC_CANONICAL_HOST])
4158   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
4159   dnl By default, look in $includedir and $libdir.
4160   use_additional=yes
4161   AC_LIB_WITH_FINAL_PREFIX([
4162     eval additional_includedir=\"$includedir\"
4163     eval additional_libdir=\"$libdir\"
4164   ])
4165   AC_ARG_WITH([lib-prefix],
4166 [  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
4167   --without-lib-prefix    don't search for libraries in includedir and libdir],
4169     if test "X$withval" = "Xno"; then
4170       use_additional=no
4171     else
4172       if test "X$withval" = "X"; then
4173         AC_LIB_WITH_FINAL_PREFIX([
4174           eval additional_includedir=\"$includedir\"
4175           eval additional_libdir=\"$libdir\"
4176         ])
4177       else
4178         additional_includedir="$withval/include"
4179         additional_libdir="$withval/lib"
4180       fi
4181     fi
4183   if test $use_additional = yes; then
4184     dnl Potentially add $additional_includedir to $CPPFLAGS.
4185     dnl But don't add it
4186     dnl   1. if it's the standard /usr/include,
4187     dnl   2. if it's already present in $CPPFLAGS,
4188     dnl   3. if it's /usr/local/include and we are using GCC on Linux,
4189     dnl   4. if it doesn't exist as a directory.
4190     if test "X$additional_includedir" != "X/usr/include"; then
4191       haveit=
4192       for x in $CPPFLAGS; do
4193         AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
4194         if test "X$x" = "X-I$additional_includedir"; then
4195           haveit=yes
4196           break
4197         fi
4198       done
4199       if test -z "$haveit"; then
4200         if test "X$additional_includedir" = "X/usr/local/include"; then
4201           if test -n "$GCC"; then
4202             case $host_os in
4203               linux*) haveit=yes;;
4204             esac
4205           fi
4206         fi
4207         if test -z "$haveit"; then
4208           if test -d "$additional_includedir"; then
4209             dnl Really add $additional_includedir to $CPPFLAGS.
4210             CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
4211           fi
4212         fi
4213       fi
4214     fi
4215     dnl Potentially add $additional_libdir to $LDFLAGS.
4216     dnl But don't add it
4217     dnl   1. if it's the standard /usr/lib,
4218     dnl   2. if it's already present in $LDFLAGS,
4219     dnl   3. if it's /usr/local/lib and we are using GCC on Linux,
4220     dnl   4. if it doesn't exist as a directory.
4221     if test "X$additional_libdir" != "X/usr/lib"; then
4222       haveit=
4223       for x in $LDFLAGS; do
4224         AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
4225         if test "X$x" = "X-L$additional_libdir"; then
4226           haveit=yes
4227           break
4228         fi
4229       done
4230       if test -z "$haveit"; then
4231         if test "X$additional_libdir" = "X/usr/local/lib"; then
4232           if test -n "$GCC"; then
4233             case $host_os in
4234               linux*) haveit=yes;;
4235             esac
4236           fi
4237         fi
4238         if test -z "$haveit"; then
4239           if test -d "$additional_libdir"; then
4240             dnl Really add $additional_libdir to $LDFLAGS.
4241             LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
4242           fi
4243         fi
4244       fi
4245     fi
4246   fi
4249 dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
4250 dnl acl_final_exec_prefix, containing the values to which $prefix and
4251 dnl $exec_prefix will expand at the end of the configure script.
4252 AC_DEFUN([AC_LIB_PREPARE_PREFIX],
4254   dnl Unfortunately, prefix and exec_prefix get only finally determined
4255   dnl at the end of configure.
4256   if test "X$prefix" = "XNONE"; then
4257     acl_final_prefix="$ac_default_prefix"
4258   else
4259     acl_final_prefix="$prefix"
4260   fi
4261   if test "X$exec_prefix" = "XNONE"; then
4262     acl_final_exec_prefix='${prefix}'
4263   else
4264     acl_final_exec_prefix="$exec_prefix"
4265   fi
4266   acl_save_prefix="$prefix"
4267   prefix="$acl_final_prefix"
4268   eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
4269   prefix="$acl_save_prefix"
4272 dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
4273 dnl variables prefix and exec_prefix bound to the values they will have
4274 dnl at the end of the configure script.
4275 AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
4277   acl_save_prefix="$prefix"
4278   prefix="$acl_final_prefix"
4279   acl_save_exec_prefix="$exec_prefix"
4280   exec_prefix="$acl_final_exec_prefix"
4281   $1
4282   exec_prefix="$acl_save_exec_prefix"
4283   prefix="$acl_save_prefix"
4286 # lib-link.m4 serial 3 (gettext-0.11.3)
4287 dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
4288 dnl This file is free software, distributed under the terms of the GNU
4289 dnl General Public License.  As a special exception to the GNU General
4290 dnl Public License, this file may be distributed as part of a program
4291 dnl that contains a configuration script generated by Autoconf, under
4292 dnl the same distribution terms as the rest of that program.
4294 dnl From Bruno Haible.
4296 dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
4297 dnl the libraries corresponding to explicit and implicit dependencies.
4298 dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
4299 dnl augments the CPPFLAGS variable.
4300 AC_DEFUN([AC_LIB_LINKFLAGS],
4302   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
4303   AC_REQUIRE([AC_LIB_RPATH])
4304   define([Name],[translit([$1],[./-], [___])])
4305   define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
4306                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
4307   AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
4308     AC_LIB_LINKFLAGS_BODY([$1], [$2])
4309     ac_cv_lib[]Name[]_libs="$LIB[]NAME"
4310     ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
4311     ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
4312   ])
4313   LIB[]NAME="$ac_cv_lib[]Name[]_libs"
4314   LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
4315   INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
4316   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
4317   AC_SUBST([LIB]NAME)
4318   AC_SUBST([LTLIB]NAME)
4319   dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
4320   dnl results of this search when this library appears as a dependency.
4321   HAVE_LIB[]NAME=yes
4322   undefine([Name])
4323   undefine([NAME])
4326 dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
4327 dnl searches for libname and the libraries corresponding to explicit and
4328 dnl implicit dependencies, together with the specified include files and
4329 dnl the ability to compile and link the specified testcode. If found, it
4330 dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
4331 dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
4332 dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
4333 dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
4334 AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
4336   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
4337   AC_REQUIRE([AC_LIB_RPATH])
4338   define([Name],[translit([$1],[./-], [___])])
4339   define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
4340                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
4342   dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
4343   dnl accordingly.
4344   AC_LIB_LINKFLAGS_BODY([$1], [$2])
4346   dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
4347   dnl because if the user has installed lib[]Name and not disabled its use
4348   dnl via --without-lib[]Name-prefix, he wants to use it.
4349   ac_save_CPPFLAGS="$CPPFLAGS"
4350   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
4352   AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
4353     ac_save_LIBS="$LIBS"
4354     LIBS="$LIBS $LIB[]NAME"
4355     AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
4356     LIBS="$ac_save_LIBS"
4357   ])
4358   if test "$ac_cv_lib[]Name" = yes; then
4359     HAVE_LIB[]NAME=yes
4360     AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
4361     AC_MSG_CHECKING([how to link with lib[]$1])
4362     AC_MSG_RESULT([$LIB[]NAME])
4363   else
4364     HAVE_LIB[]NAME=no
4365     dnl If $LIB[]NAME didn't lead to a usable library, we don't need
4366     dnl $INC[]NAME either.
4367     CPPFLAGS="$ac_save_CPPFLAGS"
4368     LIB[]NAME=
4369     LTLIB[]NAME=
4370   fi
4371   AC_SUBST([HAVE_LIB]NAME)
4372   AC_SUBST([LIB]NAME)
4373   AC_SUBST([LTLIB]NAME)
4374   undefine([Name])
4375   undefine([NAME])
4378 dnl Determine the platform dependent parameters needed to use rpath:
4379 dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
4380 dnl hardcode_direct, hardcode_minus_L,
4381 dnl sys_lib_search_path_spec, sys_lib_dlsearch_path_spec.
4382 AC_DEFUN([AC_LIB_RPATH],
4384   AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
4385   AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
4386   AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
4387   AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
4388   AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
4389     CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
4390     ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
4391     . ./conftest.sh
4392     rm -f ./conftest.sh
4393     acl_cv_rpath=done
4394   ])
4395   wl="$acl_cv_wl"
4396   libext="$acl_cv_libext"
4397   shlibext="$acl_cv_shlibext"
4398   hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
4399   hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
4400   hardcode_direct="$acl_cv_hardcode_direct"
4401   hardcode_minus_L="$acl_cv_hardcode_minus_L"
4402   sys_lib_search_path_spec="$acl_cv_sys_lib_search_path_spec"
4403   sys_lib_dlsearch_path_spec="$acl_cv_sys_lib_dlsearch_path_spec"
4404   dnl Determine whether the user wants rpath handling at all.
4405   AC_ARG_ENABLE(rpath,
4406     [  --disable-rpath         do not hardcode runtime library paths],
4407     :, enable_rpath=yes)
4410 dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
4411 dnl the libraries corresponding to explicit and implicit dependencies.
4412 dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
4413 AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
4415   define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
4416                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
4417   dnl By default, look in $includedir and $libdir.
4418   use_additional=yes
4419   AC_LIB_WITH_FINAL_PREFIX([
4420     eval additional_includedir=\"$includedir\"
4421     eval additional_libdir=\"$libdir\"
4422   ])
4423   AC_ARG_WITH([lib$1-prefix],
4424 [  --with-lib$1-prefix[=DIR]  search for lib$1 in DIR/include and DIR/lib
4425   --without-lib$1-prefix     don't search for lib$1 in includedir and libdir],
4427     if test "X$withval" = "Xno"; then
4428       use_additional=no
4429     else
4430       if test "X$withval" = "X"; then
4431         AC_LIB_WITH_FINAL_PREFIX([
4432           eval additional_includedir=\"$includedir\"
4433           eval additional_libdir=\"$libdir\"
4434         ])
4435       else
4436         additional_includedir="$withval/include"
4437         additional_libdir="$withval/lib"
4438       fi
4439     fi
4441   dnl Search the library and its dependencies in $additional_libdir and
4442   dnl $LDFLAGS. Using breadth-first-seach.
4443   LIB[]NAME=
4444   LTLIB[]NAME=
4445   INC[]NAME=
4446   rpathdirs=
4447   ltrpathdirs=
4448   names_already_handled=
4449   names_next_round='$1 $2'
4450   while test -n "$names_next_round"; do
4451     names_this_round="$names_next_round"
4452     names_next_round=
4453     for name in $names_this_round; do
4454       already_handled=
4455       for n in $names_already_handled; do
4456         if test "$n" = "$name"; then
4457           already_handled=yes
4458           break
4459         fi
4460       done
4461       if test -z "$already_handled"; then
4462         names_already_handled="$names_already_handled $name"
4463         dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
4464         dnl or AC_LIB_HAVE_LINKFLAGS call.
4465         uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
4466         eval value=\"\$HAVE_LIB$uppername\"
4467         if test -n "$value"; then
4468           if test "$value" = yes; then
4469             eval value=\"\$LIB$uppername\"
4470             test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
4471             eval value=\"\$LTLIB$uppername\"
4472             test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
4473           else
4474             dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
4475             dnl that this library doesn't exist. So just drop it.
4476             :
4477           fi
4478         else
4479           dnl Search the library lib$name in $additional_libdir and $LDFLAGS
4480           dnl and the already constructed $LIBNAME/$LTLIBNAME.
4481           found_dir=
4482           found_la=
4483           found_so=
4484           found_a=
4485           if test $use_additional = yes; then
4486             if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
4487               found_dir="$additional_libdir"
4488               found_so="$additional_libdir/lib$name.$shlibext"
4489               if test -f "$additional_libdir/lib$name.la"; then
4490                 found_la="$additional_libdir/lib$name.la"
4491               fi
4492             else
4493               if test -f "$additional_libdir/lib$name.$libext"; then
4494                 found_dir="$additional_libdir"
4495                 found_a="$additional_libdir/lib$name.$libext"
4496                 if test -f "$additional_libdir/lib$name.la"; then
4497                   found_la="$additional_libdir/lib$name.la"
4498                 fi
4499               fi
4500             fi
4501           fi
4502           if test "X$found_dir" = "X"; then
4503             for x in $LDFLAGS $LTLIB[]NAME; do
4504               AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
4505               case "$x" in
4506                 -L*)
4507                   dir=`echo "X$x" | sed -e 's/^X-L//'`
4508                   if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
4509                     found_dir="$dir"
4510                     found_so="$dir/lib$name.$shlibext"
4511                     if test -f "$dir/lib$name.la"; then
4512                       found_la="$dir/lib$name.la"
4513                     fi
4514                   else
4515                     if test -f "$dir/lib$name.$libext"; then
4516                       found_dir="$dir"
4517                       found_a="$dir/lib$name.$libext"
4518                       if test -f "$dir/lib$name.la"; then
4519                         found_la="$dir/lib$name.la"
4520                       fi
4521                     fi
4522                   fi
4523                   ;;
4524               esac
4525               if test "X$found_dir" != "X"; then
4526                 break
4527               fi
4528             done
4529           fi
4530           if test "X$found_dir" != "X"; then
4531             dnl Found the library.
4532             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
4533             if test "X$found_so" != "X"; then
4534               dnl Linking with a shared library. We attempt to hardcode its
4535               dnl directory into the executable's runpath, unless it's the
4536               dnl standard /usr/lib.
4537               if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
4538                 dnl No hardcoding is needed.
4539                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
4540               else
4541                 dnl Use an explicit option to hardcode DIR into the resulting
4542                 dnl binary.
4543                 dnl Potentially add DIR to ltrpathdirs.
4544                 dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
4545                 haveit=
4546                 for x in $ltrpathdirs; do
4547                   if test "X$x" = "X$found_dir"; then
4548                     haveit=yes
4549                     break
4550                   fi
4551                 done
4552                 if test -z "$haveit"; then
4553                   ltrpathdirs="$ltrpathdirs $found_dir"
4554                 fi
4555                 dnl The hardcoding into $LIBNAME is system dependent.
4556                 if test "$hardcode_direct" = yes; then
4557                   dnl Using DIR/libNAME.so during linking hardcodes DIR into the
4558                   dnl resulting binary.
4559                   LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
4560                 else
4561                   if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
4562                     dnl Use an explicit option to hardcode DIR into the resulting
4563                     dnl binary.
4564                     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
4565                     dnl Potentially add DIR to rpathdirs.
4566                     dnl The rpathdirs will be appended to $LIBNAME at the end.
4567                     haveit=
4568                     for x in $rpathdirs; do
4569                       if test "X$x" = "X$found_dir"; then
4570                         haveit=yes
4571                         break
4572                       fi
4573                     done
4574                     if test -z "$haveit"; then
4575                       rpathdirs="$rpathdirs $found_dir"
4576                     fi
4577                   else
4578                     dnl Rely on "-L$found_dir".
4579                     dnl But don't add it if it's already contained in the LDFLAGS
4580                     dnl or the already constructed $LIBNAME
4581                     haveit=
4582                     for x in $LDFLAGS $LIB[]NAME; do
4583                       AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
4584                       if test "X$x" = "X-L$found_dir"; then
4585                         haveit=yes
4586                         break
4587                       fi
4588                     done
4589                     if test -z "$haveit"; then
4590                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
4591                     fi
4592                     if test "$hardcode_minus_L" != no; then
4593                       dnl FIXME: Not sure whether we should use
4594                       dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
4595                       dnl here.
4596                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
4597                     else
4598                       dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
4599                       dnl here, because this doesn't fit in flags passed to the
4600                       dnl compiler. So give up. No hardcoding. This affects only
4601                       dnl very old systems.
4602                       dnl FIXME: Not sure whether we should use
4603                       dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
4604                       dnl here.
4605                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
4606                     fi
4607                   fi
4608                 fi
4609               fi
4610             else
4611               if test "X$found_a" != "X"; then
4612                 dnl Linking with a static library.
4613                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
4614               else
4615                 dnl We shouldn't come here, but anyway it's good to have a
4616                 dnl fallback.
4617                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
4618               fi
4619             fi
4620             dnl Assume the include files are nearby.
4621             additional_includedir=
4622             case "$found_dir" in
4623               */lib | */lib/)
4624                 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
4625                 additional_includedir="$basedir/include"
4626                 ;;
4627             esac
4628             if test "X$additional_includedir" != "X"; then
4629               dnl Potentially add $additional_includedir to $INCNAME.
4630               dnl But don't add it
4631               dnl   1. if it's the standard /usr/include,
4632               dnl   2. if it's /usr/local/include and we are using GCC on Linux,
4633               dnl   3. if it's already present in $CPPFLAGS or the already
4634               dnl      constructed $INCNAME,
4635               dnl   4. if it doesn't exist as a directory.
4636               if test "X$additional_includedir" != "X/usr/include"; then
4637                 haveit=
4638                 if test "X$additional_includedir" = "X/usr/local/include"; then
4639                   if test -n "$GCC"; then
4640                     case $host_os in
4641                       linux*) haveit=yes;;
4642                     esac
4643                   fi
4644                 fi
4645                 if test -z "$haveit"; then
4646                   for x in $CPPFLAGS $INC[]NAME; do
4647                     AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
4648                     if test "X$x" = "X-I$additional_includedir"; then
4649                       haveit=yes
4650                       break
4651                     fi
4652                   done
4653                   if test -z "$haveit"; then
4654                     if test -d "$additional_includedir"; then
4655                       dnl Really add $additional_includedir to $INCNAME.
4656                       INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
4657                     fi
4658                   fi
4659                 fi
4660               fi
4661             fi
4662             dnl Look for dependencies.
4663             if test -n "$found_la"; then
4664               dnl Read the .la file. It defines the variables
4665               dnl dlname, library_names, old_library, dependency_libs, current,
4666               dnl age, revision, installed, dlopen, dlpreopen, libdir.
4667               save_libdir="$libdir"
4668               case "$found_la" in
4669                 */* | *\\*) . "$found_la" ;;
4670                 *) . "./$found_la" ;;
4671               esac
4672               libdir="$save_libdir"
4673               dnl We use only dependency_libs.
4674               for dep in $dependency_libs; do
4675                 case "$dep" in
4676                   -L*)
4677                     additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
4678                     dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
4679                     dnl But don't add it
4680                     dnl   1. if it's the standard /usr/lib,
4681                     dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
4682                     dnl   3. if it's already present in $LDFLAGS or the already
4683                     dnl      constructed $LIBNAME,
4684                     dnl   4. if it doesn't exist as a directory.
4685                     if test "X$additional_libdir" != "X/usr/lib"; then
4686                       haveit=
4687                       if test "X$additional_libdir" = "X/usr/local/lib"; then
4688                         if test -n "$GCC"; then
4689                           case $host_os in
4690                             linux*) haveit=yes;;
4691                           esac
4692                         fi
4693                       fi
4694                       if test -z "$haveit"; then
4695                         haveit=
4696                         for x in $LDFLAGS $LIB[]NAME; do
4697                           AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
4698                           if test "X$x" = "X-L$additional_libdir"; then
4699                             haveit=yes
4700                             break
4701                           fi
4702                         done
4703                         if test -z "$haveit"; then
4704                           if test -d "$additional_libdir"; then
4705                             dnl Really add $additional_libdir to $LIBNAME.
4706                             LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
4707                           fi
4708                         fi
4709                         haveit=
4710                         for x in $LDFLAGS $LTLIB[]NAME; do
4711                           AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
4712                           if test "X$x" = "X-L$additional_libdir"; then
4713                             haveit=yes
4714                             break
4715                           fi
4716                         done
4717                         if test -z "$haveit"; then
4718                           if test -d "$additional_libdir"; then
4719                             dnl Really add $additional_libdir to $LTLIBNAME.
4720                             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
4721                           fi
4722                         fi
4723                       fi
4724                     fi
4725                     ;;
4726                   -R*)
4727                     dir=`echo "X$dep" | sed -e 's/^X-R//'`
4728                     if test "$enable_rpath" != no; then
4729                       dnl Potentially add DIR to rpathdirs.
4730                       dnl The rpathdirs will be appended to $LIBNAME at the end.
4731                       haveit=
4732                       for x in $rpathdirs; do
4733                         if test "X$x" = "X$dir"; then
4734                           haveit=yes
4735                           break
4736                         fi
4737                       done
4738                       if test -z "$haveit"; then
4739                         rpathdirs="$rpathdirs $dir"
4740                       fi
4741                       dnl Potentially add DIR to ltrpathdirs.
4742                       dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
4743                       haveit=
4744                       for x in $ltrpathdirs; do
4745                         if test "X$x" = "X$dir"; then
4746                           haveit=yes
4747                           break
4748                         fi
4749                       done
4750                       if test -z "$haveit"; then
4751                         ltrpathdirs="$ltrpathdirs $dir"
4752                       fi
4753                     fi
4754                     ;;
4755                   -l*)
4756                     dnl Handle this in the next round.
4757                     names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
4758                     ;;
4759                   *.la)
4760                     dnl Handle this in the next round. Throw away the .la's
4761                     dnl directory; it is already contained in a preceding -L
4762                     dnl option.
4763                     names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
4764                     ;;
4765                   *)
4766                     dnl Most likely an immediate library name.
4767                     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
4768                     LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
4769                     ;;
4770                 esac
4771               done
4772             fi
4773           else
4774             dnl Didn't find the library; assume it is in the system directories
4775             dnl known to the linker and runtime loader. (All the system
4776             dnl directories known to the linker should also be known to the
4777             dnl runtime loader, otherwise the system is severely misconfigured.)
4778             LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
4779             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
4780           fi
4781         fi
4782       fi
4783     done
4784   done
4785   if test "X$rpathdirs" != "X"; then
4786     if test -n "$hardcode_libdir_separator"; then
4787       dnl Weird platform: only the last -rpath option counts, the user must
4788       dnl pass all path elements in one option. We can arrange that for a
4789       dnl single library, but not when more than one $LIBNAMEs are used.
4790       alldirs=
4791       for found_dir in $rpathdirs; do
4792         alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
4793       done
4794       dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
4795       acl_save_libdir="$libdir"
4796       libdir="$alldirs"
4797       eval flag=\"$hardcode_libdir_flag_spec\"
4798       libdir="$acl_save_libdir"
4799       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
4800     else
4801       dnl The -rpath options are cumulative.
4802       for found_dir in $rpathdirs; do
4803         acl_save_libdir="$libdir"
4804         libdir="$found_dir"
4805         eval flag=\"$hardcode_libdir_flag_spec\"
4806         libdir="$acl_save_libdir"
4807         LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
4808       done
4809     fi
4810   fi
4811   if test "X$ltrpathdirs" != "X"; then
4812     dnl When using libtool, the option that works for both libraries and
4813     dnl executables is -R. The -R options are cumulative.
4814     for found_dir in $ltrpathdirs; do
4815       LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
4816     done
4817   fi
4820 dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
4821 dnl unless already present in VAR.
4822 dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
4823 dnl contains two or three consecutive elements that belong together.
4824 AC_DEFUN([AC_LIB_APPENDTOVAR],
4826   for element in [$2]; do
4827     haveit=
4828     for x in $[$1]; do
4829       AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
4830       if test "X$x" = "X$element"; then
4831         haveit=yes
4832         break
4833       fi
4834     done
4835     if test -z "$haveit"; then
4836       [$1]="${[$1]}${[$1]:+ }$element"
4837     fi
4838   done
4841 # lib-ld.m4 serial 1 (gettext-0.11)
4842 dnl Copyright (C) 1996-2002 Free Software Foundation, Inc.
4843 dnl This file is free software, distributed under the terms of the GNU
4844 dnl General Public License.  As a special exception to the GNU General
4845 dnl Public License, this file may be distributed as part of a program
4846 dnl that contains a configuration script generated by Autoconf, under
4847 dnl the same distribution terms as the rest of that program.
4849 dnl Subroutines of libtool.m4,
4850 dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
4851 dnl with libtool.m4.
4853 dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
4854 AC_DEFUN([AC_LIB_PROG_LD_GNU],
4855 [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
4856 [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
4857 if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
4858   acl_cv_prog_gnu_ld=yes
4859 else
4860   acl_cv_prog_gnu_ld=no
4861 fi])
4862 with_gnu_ld=$acl_cv_prog_gnu_ld
4865 dnl From libtool-1.4. Sets the variable LD.
4866 AC_DEFUN([AC_LIB_PROG_LD],
4867 [AC_ARG_WITH(gnu-ld,
4868 [  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
4869 test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
4870 AC_REQUIRE([AC_PROG_CC])dnl
4871 AC_REQUIRE([AC_CANONICAL_HOST])dnl
4872 ac_prog=ld
4873 if test "$GCC" = yes; then
4874   # Check if gcc -print-prog-name=ld gives a path.
4875   AC_MSG_CHECKING([for ld used by GCC])
4876   case $host in
4877   *-*-mingw*)
4878     # gcc leaves a trailing carriage return which upsets mingw
4879     ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
4880   *)
4881     ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
4882   esac
4883   case $ac_prog in
4884     # Accept absolute paths.
4885     [[\\/]* | [A-Za-z]:[\\/]*)]
4886       [re_direlt='/[^/][^/]*/\.\./']
4887       # Canonicalize the path of ld
4888       ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
4889       while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
4890         ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
4891       done
4892       test -z "$LD" && LD="$ac_prog"
4893       ;;
4894   "")
4895     # If it fails, then pretend we aren't using GCC.
4896     ac_prog=ld
4897     ;;
4898   *)
4899     # If it is relative, then search for the first ld in PATH.
4900     with_gnu_ld=unknown
4901     ;;
4902   esac
4903 elif test "$with_gnu_ld" = yes; then
4904   AC_MSG_CHECKING([for GNU ld])
4905 else
4906   AC_MSG_CHECKING([for non-GNU ld])
4908 AC_CACHE_VAL(acl_cv_path_LD,
4909 [if test -z "$LD"; then
4910   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
4911   for ac_dir in $PATH; do
4912     test -z "$ac_dir" && ac_dir=.
4913     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
4914       acl_cv_path_LD="$ac_dir/$ac_prog"
4915       # Check to see if the program is GNU ld.  I'd rather use --version,
4916       # but apparently some GNU ld's only accept -v.
4917       # Break only if it was the GNU/non-GNU ld that we prefer.
4918       if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
4919         test "$with_gnu_ld" != no && break
4920       else
4921         test "$with_gnu_ld" != yes && break
4922       fi
4923     fi
4924   done
4925   IFS="$ac_save_ifs"
4926 else
4927   acl_cv_path_LD="$LD" # Let the user override the test with a path.
4928 fi])
4929 LD="$acl_cv_path_LD"
4930 if test -n "$LD"; then
4931   AC_MSG_RESULT($LD)
4932 else
4933   AC_MSG_RESULT(no)
4935 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
4936 AC_LIB_PROG_LD_GNU
4939 #serial 6
4941 dnl From J. David Anglin.
4943 dnl HPUX and other systems can't unlink shared text that is being executed.
4945 AC_DEFUN([jm_FUNC_UNLINK_BUSY_TEXT],
4946 [dnl
4947   AC_CACHE_CHECK([whether a running program can be unlinked],
4948     jm_cv_func_unlink_busy_text,
4949     [
4950       AC_TRY_RUN([
4951         main (argc, argv)
4952           int argc;
4953           char **argv;
4954         {
4955           if (!argc)
4956             exit (-1);
4957           exit (unlink (argv[0]));
4958         }
4959         ],
4960       jm_cv_func_unlink_busy_text=yes,
4961       jm_cv_func_unlink_busy_text=no,
4962       jm_cv_func_unlink_busy_text=no
4963       )
4964     ]
4965   )
4967   if test $jm_cv_func_unlink_busy_text = no; then
4968     INSTALL=$ac_install_sh
4969   fi
4972 #serial 11
4974 dnl From Jim Meyering.
4976 dnl This is not pretty.  I've just taken the autoconf code and wrapped
4977 dnl it in an AC_DEFUN.
4980 # jm_LIST_MOUNTED_FILESYSTEMS([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
4981 AC_DEFUN([jm_LIST_MOUNTED_FILESYSTEMS],
4982   [
4983 AC_CHECK_FUNCS(listmntent getmntinfo)
4984 AC_CHECK_HEADERS(mntent.h sys/param.h sys/ucred.h sys/mount.h sys/fs_types.h)
4985     getfsstat_includes="\
4986 $ac_includes_default
4987 #if HAVE_SYS_PARAM_H
4988 # include <sys/param.h> /* needed by powerpc-apple-darwin1.3.7 */
4989 #endif
4990 #if HAVE_SYS_UCRED_H
4991 # include <sys/ucred.h> /* needed by powerpc-apple-darwin1.3.7 */
4992 #endif
4993 #if HAVE_SYS_MOUNT_H
4994 # include <sys/mount.h>
4995 #endif
4996 #if HAVE_SYS_FS_TYPES_H
4997 # include <sys/fs_types.h> /* needed by powerpc-apple-darwin1.3.7 */
4998 #endif
5000 AC_CHECK_MEMBERS([struct fsstat.f_fstypename],,,[$getfsstat_includes])
5002 # Determine how to get the list of mounted filesystems.
5003 ac_list_mounted_fs=
5005 # If the getmntent function is available but not in the standard library,
5006 # make sure LIBS contains -lsun (on Irix4) or -lseq (on PTX).
5007 AC_FUNC_GETMNTENT
5009 # This test must precede the ones for getmntent because Unicos-9 is
5010 # reported to have the getmntent function, but its support is incompatible
5011 # with other getmntent implementations.
5013 # NOTE: Normally, I wouldn't use a check for system type as I've done for
5014 # `CRAY' below since that goes against the whole autoconf philosophy.  But
5015 # I think there is too great a chance that some non-Cray system has a
5016 # function named listmntent to risk the false positive.
5018 if test -z "$ac_list_mounted_fs"; then
5019   # Cray UNICOS 9
5020   AC_MSG_CHECKING([for listmntent of Cray/Unicos-9])
5021   AC_CACHE_VAL(fu_cv_sys_mounted_cray_listmntent,
5022     [fu_cv_sys_mounted_cray_listmntent=no
5023       AC_EGREP_CPP(yes,
5024         [#ifdef _CRAY
5026 #endif
5027         ], [test $ac_cv_func_listmntent = yes \
5028             && fu_cv_sys_mounted_cray_listmntent=yes]
5029       )
5030     ]
5031   )
5032   AC_MSG_RESULT($fu_cv_sys_mounted_cray_listmntent)
5033   if test $fu_cv_sys_mounted_cray_listmntent = yes; then
5034     ac_list_mounted_fs=found
5035     AC_DEFINE(MOUNTED_LISTMNTENT, 1,
5036       [Define if there is a function named listmntent that can be used to
5037    list all mounted filesystems. (UNICOS)])
5038   fi
5041 if test $ac_cv_func_getmntent = yes; then
5043   # This system has the getmntent function.
5044   # Determine whether it's the one-argument variant or the two-argument one.
5046   if test -z "$ac_list_mounted_fs"; then
5047     # 4.3BSD, SunOS, HP-UX, Dynix, Irix
5048     AC_MSG_CHECKING([for one-argument getmntent function])
5049     AC_CACHE_VAL(fu_cv_sys_mounted_getmntent1,
5050                  [AC_TRY_COMPILE([
5051 /* SunOS 4.1.x /usr/include/mntent.h needs this for FILE */
5052 #include <stdio.h>
5054 #include <mntent.h>
5055 #if !defined MOUNTED
5056 # if defined _PATH_MOUNTED      /* GNU libc  */
5057 #  define MOUNTED _PATH_MOUNTED
5058 # endif
5059 # if defined MNT_MNTTAB /* HP-UX.  */
5060 #  define MOUNTED MNT_MNTTAB
5061 # endif
5062 # if defined MNTTABNAME /* Dynix.  */
5063 #  define MOUNTED MNTTABNAME
5064 # endif
5065 #endif
5067                     [ struct mntent *mnt = 0; char *table = MOUNTED; ],
5068                     fu_cv_sys_mounted_getmntent1=yes,
5069                     fu_cv_sys_mounted_getmntent1=no)])
5070     AC_MSG_RESULT($fu_cv_sys_mounted_getmntent1)
5071     if test $fu_cv_sys_mounted_getmntent1 = yes; then
5072       ac_list_mounted_fs=found
5073       AC_DEFINE(MOUNTED_GETMNTENT1, 1,
5074   [Define if there is a function named getmntent for reading the list
5075    of mounted filesystems, and that function takes a single argument.
5076    (4.3BSD, SunOS, HP-UX, Dynix, Irix)])
5077     fi
5078   fi
5080   if test -z "$ac_list_mounted_fs"; then
5081     # SVR4
5082     AC_MSG_CHECKING([for two-argument getmntent function])
5083     AC_CACHE_VAL(fu_cv_sys_mounted_getmntent2,
5084     [AC_EGREP_HEADER(getmntent, sys/mnttab.h,
5085       fu_cv_sys_mounted_getmntent2=yes,
5086       fu_cv_sys_mounted_getmntent2=no)])
5087     AC_MSG_RESULT($fu_cv_sys_mounted_getmntent2)
5088     if test $fu_cv_sys_mounted_getmntent2 = yes; then
5089       ac_list_mounted_fs=found
5090       AC_DEFINE(MOUNTED_GETMNTENT2, 1,
5091   [Define if there is a function named getmntent for reading the list of
5092    mounted filesystems, and that function takes two arguments.  (SVR4)])
5093     fi
5094   fi
5098 if test -z "$ac_list_mounted_fs"; then
5099   # DEC Alpha running OSF/1, and Apple Darwin 1.3.
5100   # powerpc-apple-darwin1.3.7 needs sys/param.h sys/ucred.h sys/fs_types.h
5102   AC_MSG_CHECKING([for getfsstat function])
5103   AC_CACHE_VAL(fu_cv_sys_mounted_getfsstat,
5104   [AC_TRY_LINK([
5105 #include <sys/types.h>
5106 #if HAVE_STRUCT_FSSTAT_F_FSTYPENAME
5107 # define FS_TYPE(Ent) ((Ent).f_fstypename)
5108 #else
5109 # define FS_TYPE(Ent) mnt_names[(Ent).f_type]
5110 #endif
5111 ]$getfsstat_includes
5113   [struct statfs *stats;
5114    int numsys = getfsstat ((struct statfs *)0, 0L, MNT_WAIT);
5115    char *t = FS_TYPE (*stats); ],
5116     fu_cv_sys_mounted_getfsstat=yes,
5117     fu_cv_sys_mounted_getfsstat=no)])
5118   AC_MSG_RESULT($fu_cv_sys_mounted_getfsstat)
5119   if test $fu_cv_sys_mounted_getfsstat = yes; then
5120     ac_list_mounted_fs=found
5121     AC_DEFINE(MOUNTED_GETFSSTAT, 1,
5122               [Define if there is a function named getfsstat for reading the
5123    list of mounted filesystems.  (DEC Alpha running OSF/1)])
5124   fi
5127 if test -z "$ac_list_mounted_fs"; then
5128   # AIX.
5129   AC_MSG_CHECKING([for mntctl function and struct vmount])
5130   AC_CACHE_VAL(fu_cv_sys_mounted_vmount,
5131   [AC_TRY_CPP([#include <fshelp.h>],
5132     fu_cv_sys_mounted_vmount=yes,
5133     fu_cv_sys_mounted_vmount=no)])
5134   AC_MSG_RESULT($fu_cv_sys_mounted_vmount)
5135   if test $fu_cv_sys_mounted_vmount = yes; then
5136     ac_list_mounted_fs=found
5137     AC_DEFINE(MOUNTED_VMOUNT, 1,
5138         [Define if there is a function named mntctl that can be used to read
5139    the list of mounted filesystems, and there is a system header file
5140    that declares `struct vmount.'  (AIX)])
5141   fi
5144 if test -z "$ac_list_mounted_fs"; then
5145   # SVR3
5146   AC_MSG_CHECKING([for FIXME existence of three headers])
5147   AC_CACHE_VAL(fu_cv_sys_mounted_fread_fstyp,
5148     [AC_TRY_CPP([
5149 #include <sys/statfs.h>
5150 #include <sys/fstyp.h>
5151 #include <mnttab.h>],
5152                 fu_cv_sys_mounted_fread_fstyp=yes,
5153                 fu_cv_sys_mounted_fread_fstyp=no)])
5154   AC_MSG_RESULT($fu_cv_sys_mounted_fread_fstyp)
5155   if test $fu_cv_sys_mounted_fread_fstyp = yes; then
5156     ac_list_mounted_fs=found
5157     AC_DEFINE(MOUNTED_FREAD_FSTYP, 1,
5158 [Define if (like SVR2) there is no specific function for reading the
5159    list of mounted filesystems, and your system has these header files:
5160    <sys/fstyp.h> and <sys/statfs.h>.  (SVR3)])
5161   fi
5164 if test -z "$ac_list_mounted_fs"; then
5165   # 4.4BSD and DEC OSF/1.
5166   AC_MSG_CHECKING([for getmntinfo function])
5167   AC_CACHE_VAL(fu_cv_sys_mounted_getmntinfo,
5168     [
5169       test "$ac_cv_func_getmntinfo" = yes \
5170           && fu_cv_sys_mounted_getmntinfo=yes \
5171           || fu_cv_sys_mounted_getmntinfo=no
5172     ])
5173   AC_MSG_RESULT($fu_cv_sys_mounted_getmntinfo)
5174   if test $fu_cv_sys_mounted_getmntinfo = yes; then
5175     ac_list_mounted_fs=found
5176     AC_DEFINE(MOUNTED_GETMNTINFO, 1,
5177               [Define if there is a function named getmntinfo for reading the
5178    list of mounted filesystems.  (4.4BSD, Darwin)])
5179   fi
5182 if test -z "$ac_list_mounted_fs"; then
5183   # Ultrix
5184   AC_MSG_CHECKING([for getmnt function])
5185   AC_CACHE_VAL(fu_cv_sys_mounted_getmnt,
5186     [AC_TRY_CPP([
5187 #include <sys/fs_types.h>
5188 #include <sys/mount.h>],
5189                 fu_cv_sys_mounted_getmnt=yes,
5190                 fu_cv_sys_mounted_getmnt=no)])
5191   AC_MSG_RESULT($fu_cv_sys_mounted_getmnt)
5192   if test $fu_cv_sys_mounted_getmnt = yes; then
5193     ac_list_mounted_fs=found
5194     AC_DEFINE(MOUNTED_GETMNT, 1,
5195       [Define if there is a function named getmnt for reading the list of
5196    mounted filesystems.  (Ultrix)])
5197   fi
5200 if test -z "$ac_list_mounted_fs"; then
5201   # BeOS
5202   AC_CHECK_FUNCS(next_dev fs_stat_dev)
5203   AC_CHECK_HEADERS(fs_info.h)
5204   AC_MSG_CHECKING([for BEOS mounted file system support functions])
5205   if test $ac_cv_header_fs_info_h = yes \
5206       && test $ac_cv_func_next_dev = yes \
5207         && test $ac_cv_func_fs_stat_dev = yes; then
5208     fu_result=yes
5209   else
5210     fu_result=no
5211   fi
5212   AC_MSG_RESULT($fu_result)
5213   if test $fu_result = yes; then
5214     ac_list_mounted_fs=found
5215     AC_DEFINE(MOUNTED_FS_STAT_DEV, 1,
5216       [Define if there are functions named next_dev and fs_stat_dev for
5217    reading the list of mounted filesystems.  (BeOS)])
5218   fi
5221 if test -z "$ac_list_mounted_fs"; then
5222   # SVR2
5223   AC_MSG_CHECKING([whether it is possible to resort to fread on /etc/mnttab])
5224   AC_CACHE_VAL(fu_cv_sys_mounted_fread,
5225     [AC_TRY_CPP([#include <mnttab.h>],
5226                 fu_cv_sys_mounted_fread=yes,
5227                 fu_cv_sys_mounted_fread=no)])
5228   AC_MSG_RESULT($fu_cv_sys_mounted_fread)
5229   if test $fu_cv_sys_mounted_fread = yes; then
5230     ac_list_mounted_fs=found
5231     AC_DEFINE(MOUNTED_FREAD, 1,
5232               [Define if there is no specific function for reading the list of
5233    mounted filesystems.  fread will be used to read /etc/mnttab.  (SVR2) ])
5234   fi
5237 if test -z "$ac_list_mounted_fs"; then
5238   AC_MSG_ERROR([could not determine how to read list of mounted filesystems])
5239   # FIXME -- no need to abort building the whole package
5240   # Can't build mountlist.c or anything that needs its functions
5243 AS_IF([test $ac_list_mounted_fs = found], [$1], [$2])
5245   ])
5247 #serial 3
5249 dnl From Jim Meyering.
5251 dnl See if struct statfs has the f_fstypename member.
5252 dnl If so, define HAVE_F_FSTYPENAME_IN_STATFS.
5255 AC_DEFUN([jm_FSTYPENAME],
5256   [
5257     AC_CACHE_CHECK([for f_fstypename in struct statfs],
5258                    fu_cv_sys_f_fstypename_in_statfs,
5259       [
5260         AC_TRY_COMPILE(
5261           [
5262 #include <sys/param.h>
5263 #include <sys/types.h>
5264 #include <sys/mount.h>
5265           ],
5266           [struct statfs s; int i = sizeof s.f_fstypename;],
5267           fu_cv_sys_f_fstypename_in_statfs=yes,
5268           fu_cv_sys_f_fstypename_in_statfs=no
5269         )
5270       ]
5271     )
5273     if test $fu_cv_sys_f_fstypename_in_statfs = yes; then
5274       AC_DEFINE(HAVE_F_FSTYPENAME_IN_STATFS, 1,
5275                 [Define if struct statfs has the f_fstypename member.])
5276     fi
5277   ]
5280 #serial 9
5282 # From fileutils/configure.in
5284 # Try to determine how a program can obtain filesystem usage information.
5285 # If successful, define the appropriate symbol (see fsusage.c) and
5286 # execute ACTION-IF-FOUND.  Otherwise, execute ACTION-IF-NOT-FOUND.
5288 # jm_FILE_SYSTEM_USAGE([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
5290 AC_DEFUN([jm_FILE_SYSTEM_USAGE],
5293 echo "checking how to get filesystem space usage..."
5294 ac_fsusage_space=no
5296 # Perform only the link test since it seems there are no variants of the
5297 # statvfs function.  This check is more than just AC_CHECK_FUNCS(statvfs)
5298 # because that got a false positive on SCO OSR5.  Adding the declaration
5299 # of a `struct statvfs' causes this test to fail (as it should) on such
5300 # systems.  That system is reported to work fine with STAT_STATFS4 which
5301 # is what it gets when this test fails.
5302 if test $ac_fsusage_space = no; then
5303   # SVR4
5304   AC_CACHE_CHECK([for statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
5305                  [AC_TRY_LINK([#include <sys/types.h>
5306 #ifdef __GLIBC__
5307 Do not use statvfs on systems with GNU libc, because that function stats
5308 all preceding entries in /proc/mounts, and that makes df hang if even
5309 one of the corresponding file systems is hard-mounted, but not available.
5310 #endif
5311 #include <sys/statvfs.h>],
5312                               [struct statvfs fsd; statvfs (0, &fsd);],
5313                               fu_cv_sys_stat_statvfs=yes,
5314                               fu_cv_sys_stat_statvfs=no)])
5315   if test $fu_cv_sys_stat_statvfs = yes; then
5316     ac_fsusage_space=yes
5317     AC_DEFINE(STAT_STATVFS, 1,
5318               [  Define if there is a function named statvfs.  (SVR4)])
5319   fi
5322 if test $ac_fsusage_space = no; then
5323   # DEC Alpha running OSF/1
5324   AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
5325   AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
5326   [AC_TRY_RUN([
5327 #include <sys/param.h>
5328 #include <sys/types.h>
5329 #include <sys/mount.h>
5330   main ()
5331   {
5332     struct statfs fsd;
5333     fsd.f_fsize = 0;
5334     exit (statfs (".", &fsd, sizeof (struct statfs)));
5335   }],
5336   fu_cv_sys_stat_statfs3_osf1=yes,
5337   fu_cv_sys_stat_statfs3_osf1=no,
5338   fu_cv_sys_stat_statfs3_osf1=no)])
5339   AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
5340   if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
5341     ac_fsusage_space=yes
5342     AC_DEFINE(STAT_STATFS3_OSF1, 1,
5343               [   Define if  statfs takes 3 args.  (DEC Alpha running OSF/1)])
5344   fi
5347 if test $ac_fsusage_space = no; then
5348 # AIX
5349   AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
5350 member (AIX, 4.3BSD)])
5351   AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
5352   [AC_TRY_RUN([
5353 #ifdef HAVE_SYS_PARAM_H
5354 #include <sys/param.h>
5355 #endif
5356 #ifdef HAVE_SYS_MOUNT_H
5357 #include <sys/mount.h>
5358 #endif
5359 #ifdef HAVE_SYS_VFS_H
5360 #include <sys/vfs.h>
5361 #endif
5362   main ()
5363   {
5364   struct statfs fsd;
5365   fsd.f_bsize = 0;
5366   exit (statfs (".", &fsd));
5367   }],
5368   fu_cv_sys_stat_statfs2_bsize=yes,
5369   fu_cv_sys_stat_statfs2_bsize=no,
5370   fu_cv_sys_stat_statfs2_bsize=no)])
5371   AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
5372   if test $fu_cv_sys_stat_statfs2_bsize = yes; then
5373     ac_fsusage_space=yes
5374     AC_DEFINE(STAT_STATFS2_BSIZE, 1,
5375 [  Define if statfs takes 2 args and struct statfs has a field named f_bsize.
5376    (4.3BSD, SunOS 4, HP-UX, AIX PS/2)])
5377   fi
5380 if test $ac_fsusage_space = no; then
5381 # SVR3
5382   AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
5383   AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
5384   [AC_TRY_RUN([#include <sys/types.h>
5385 #include <sys/statfs.h>
5386   main ()
5387   {
5388   struct statfs fsd;
5389   exit (statfs (".", &fsd, sizeof fsd, 0));
5390   }],
5391     fu_cv_sys_stat_statfs4=yes,
5392     fu_cv_sys_stat_statfs4=no,
5393     fu_cv_sys_stat_statfs4=no)])
5394   AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
5395   if test $fu_cv_sys_stat_statfs4 = yes; then
5396     ac_fsusage_space=yes
5397     AC_DEFINE(STAT_STATFS4, 1,
5398               [  Define if statfs takes 4 args.  (SVR3, Dynix, Irix, Dolphin)])
5399   fi
5402 if test $ac_fsusage_space = no; then
5403 # 4.4BSD and NetBSD
5404   AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
5405 member (4.4BSD and NetBSD)])
5406   AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
5407   [AC_TRY_RUN([#include <sys/types.h>
5408 #ifdef HAVE_SYS_PARAM_H
5409 #include <sys/param.h>
5410 #endif
5411 #ifdef HAVE_SYS_MOUNT_H
5412 #include <sys/mount.h>
5413 #endif
5414   main ()
5415   {
5416   struct statfs fsd;
5417   fsd.f_fsize = 0;
5418   exit (statfs (".", &fsd));
5419   }],
5420   fu_cv_sys_stat_statfs2_fsize=yes,
5421   fu_cv_sys_stat_statfs2_fsize=no,
5422   fu_cv_sys_stat_statfs2_fsize=no)])
5423   AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
5424   if test $fu_cv_sys_stat_statfs2_fsize = yes; then
5425     ac_fsusage_space=yes
5426     AC_DEFINE(STAT_STATFS2_FSIZE, 1,
5427 [  Define if statfs takes 2 args and struct statfs has a field named f_fsize.
5428    (4.4BSD, NetBSD)])
5429   fi
5432 if test $ac_fsusage_space = no; then
5433   # Ultrix
5434   AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
5435   AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
5436   [AC_TRY_RUN([#include <sys/types.h>
5437 #ifdef HAVE_SYS_PARAM_H
5438 #include <sys/param.h>
5439 #endif
5440 #ifdef HAVE_SYS_MOUNT_H
5441 #include <sys/mount.h>
5442 #endif
5443 #ifdef HAVE_SYS_FS_TYPES_H
5444 #include <sys/fs_types.h>
5445 #endif
5446   main ()
5447   {
5448   struct fs_data fsd;
5449   /* Ultrix's statfs returns 1 for success,
5450      0 for not mounted, -1 for failure.  */
5451   exit (statfs (".", &fsd) != 1);
5452   }],
5453   fu_cv_sys_stat_fs_data=yes,
5454   fu_cv_sys_stat_fs_data=no,
5455   fu_cv_sys_stat_fs_data=no)])
5456   AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
5457   if test $fu_cv_sys_stat_fs_data = yes; then
5458     ac_fsusage_space=yes
5459     AC_DEFINE(STAT_STATFS2_FS_DATA, 1,
5460 [  Define if statfs takes 2 args and the second argument has
5461    type struct fs_data.  (Ultrix)])
5462   fi
5465 if test $ac_fsusage_space = no; then
5466   # SVR2
5467   AC_TRY_CPP([#include <sys/filsys.h>
5468     ],
5469     AC_DEFINE(STAT_READ_FILSYS, 1,
5470       [Define if there is no specific function for reading filesystems usage
5471        information and you have the <sys/filsys.h> header file.  (SVR2)])
5472     ac_fsusage_space=yes)
5475 AS_IF([test $ac_fsusage_space = yes], [$1], [$2])
5479 #serial 5
5481 # Define some macros required for proper operation of code in lib/*.c
5482 # on MSDOS/Windows systems.
5484 # From Jim Meyering.
5486 AC_DEFUN([jm_AC_DOS],
5487   [
5488     AC_CACHE_CHECK([whether system is Windows or MSDOS], [ac_cv_win_or_dos],
5489       [
5490         AC_TRY_COMPILE([],
5491         [#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__
5492 neither MSDOS nor Windows
5493 #endif],
5494         [ac_cv_win_or_dos=yes],
5495         [ac_cv_win_or_dos=no])
5496       ])
5498     if test x"$ac_cv_win_or_dos" = xyes; then
5499       ac_fs_accepts_drive_letter_prefix=1
5500       ac_fs_backslash_is_file_name_separator=1
5501     else
5502       ac_fs_accepts_drive_letter_prefix=0
5503       ac_fs_backslash_is_file_name_separator=0
5504     fi
5506     AH_VERBATIM(FILESYSTEM_PREFIX_LEN,
5507     [#if FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX
5508 # define FILESYSTEM_PREFIX_LEN(Filename) \
5509   ((Filename)[0] && (Filename)[1] == ':' ? 2 : 0)
5510 #else
5511 # define FILESYSTEM_PREFIX_LEN(Filename) 0
5512 #endif])
5514     AC_DEFINE_UNQUOTED([FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX],
5515       $ac_fs_accepts_drive_letter_prefix,
5516       [Define on systems for which file names may have a so-called
5517        `drive letter' prefix, define this to compute the length of that
5518        prefix, including the colon.])
5520     AH_VERBATIM(ISSLASH,
5521     [#if FILESYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR
5522 # define ISSLASH(C) ((C) == '/' || (C) == '\\')
5523 #else
5524 # define ISSLASH(C) ((C) == '/')
5525 #endif])
5527     AC_DEFINE_UNQUOTED([FILESYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR],
5528       $ac_fs_backslash_is_file_name_separator,
5529       [Define if the backslash character may also serve as a file name
5530        component separator.])
5531   ])
5533 #serial 1
5534 AC_DEFUN([AC_FUNC_CANONICALIZE_FILE_NAME],
5535   [
5536     AC_REQUIRE([AC_HEADER_STDC])
5537     AC_CHECK_HEADERS(string.h sys/param.h stddef.h)
5538     AC_CHECK_FUNCS(resolvepath)
5539     AC_REQUIRE([AC_HEADER_STAT])
5541     # This would simply be AC_REPLACE_FUNC([canonicalize_file_name])
5542     # if the function name weren't so long.  Besides, I would rather
5543     # not have underscores in file names.
5544     AC_CHECK_FUNC([canonicalize_file_name], , [AC_LIBOBJ(canonicalize)])
5545   ])
5547 #serial 5
5549 dnl From Paul Eggert.
5551 # Define ST_MTIM_NSEC to be the nanoseconds member of struct stat's st_mtim,
5552 # if it exists.
5554 AC_DEFUN([AC_STRUCT_ST_MTIM_NSEC],
5555  [AC_CACHE_CHECK([for nanoseconds member of struct stat.st_mtim],
5556    ac_cv_struct_st_mtim_nsec,
5557    [ac_save_CPPFLAGS="$CPPFLAGS"
5558     ac_cv_struct_st_mtim_nsec=no
5559     # tv_nsec -- the usual case
5560     # _tv_nsec -- Solaris 2.6, if
5561     #   (defined _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED == 1
5562     #    && !defined __EXTENSIONS__)
5563     # st__tim.tv_nsec -- UnixWare 2.1.2
5564     for ac_val in tv_nsec _tv_nsec st__tim.tv_nsec; do
5565       CPPFLAGS="$ac_save_CPPFLAGS -DST_MTIM_NSEC=$ac_val"
5566       AC_TRY_COMPILE([#include <sys/types.h>
5567 #include <sys/stat.h>], [struct stat s; s.st_mtim.ST_MTIM_NSEC;],
5568         [ac_cv_struct_st_mtim_nsec=$ac_val; break])
5569     done
5570     CPPFLAGS="$ac_save_CPPFLAGS"])
5572   if test $ac_cv_struct_st_mtim_nsec != no; then
5573     AC_DEFINE_UNQUOTED(ST_MTIM_NSEC, $ac_cv_struct_st_mtim_nsec,
5574       [Define to be the nanoseconds member of struct stat's st_mtim,
5575    if it exists.])
5576   fi
5580 #serial 3
5582 # Define HAVE_ST_DM_MODE if struct stat has an st_dm_mode member.
5584 AC_DEFUN([AC_STRUCT_ST_DM_MODE],
5585  [AC_CACHE_CHECK([for st_dm_mode in struct stat], ac_cv_struct_st_dm_mode,
5586    [AC_TRY_COMPILE([#include <sys/types.h>
5587 #include <sys/stat.h>], [struct stat s; s.st_dm_mode;],
5588      ac_cv_struct_st_dm_mode=yes,
5589      ac_cv_struct_st_dm_mode=no)])
5591   if test $ac_cv_struct_st_dm_mode = yes; then
5592     AC_DEFINE(HAVE_ST_DM_MODE, 1,
5593               [Define if struct stat has an st_dm_mode member. ])
5594   fi
5598 #serial 5
5600 dnl From Jim Meyering
5602 dnl Define HAVE_STRUCT_TIMESPEC if `struct timespec' is declared
5603 dnl in time.h or sys/time.h.
5605 AC_DEFUN([jm_CHECK_TYPE_STRUCT_TIMESPEC],
5607   AC_REQUIRE([AC_HEADER_TIME])
5608   AC_CACHE_CHECK([for struct timespec], fu_cv_sys_struct_timespec,
5609     [AC_TRY_COMPILE(
5610       [
5611 #      if TIME_WITH_SYS_TIME
5612 #       include <sys/time.h>
5613 #       include <time.h>
5614 #      else
5615 #       if HAVE_SYS_TIME_H
5616 #        include <sys/time.h>
5617 #       else
5618 #        include <time.h>
5619 #       endif
5620 #      endif
5621       ],
5622       [static struct timespec x; x.tv_sec = x.tv_nsec;],
5623       fu_cv_sys_struct_timespec=yes,
5624       fu_cv_sys_struct_timespec=no)
5625     ])
5627   if test $fu_cv_sys_struct_timespec = yes; then
5628     AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
5629               [Define if struct timespec is declared in <time.h>. ])
5630   fi
5633 #serial 6
5634 dnl From Jim Meyering and Paul Eggert.
5635 AC_DEFUN([jm_HEADER_TIOCGWINSZ_IN_TERMIOS_H],
5636 [AC_REQUIRE([AC_SYS_POSIX_TERMIOS])
5637  AC_CACHE_CHECK([whether use of TIOCGWINSZ requires termios.h],
5638                 jm_cv_sys_tiocgwinsz_needs_termios_h,
5639   [jm_cv_sys_tiocgwinsz_needs_termios_h=no
5641    if test $ac_cv_sys_posix_termios = yes; then
5642      AC_EGREP_CPP([yes],
5643      [#include <sys/types.h>
5644 #      include <termios.h>
5645 #      ifdef TIOCGWINSZ
5646          yes
5647 #      endif
5648      ], jm_cv_sys_tiocgwinsz_needs_termios_h=yes)
5649    fi
5650   ])
5653 AC_DEFUN([jm_WINSIZE_IN_PTEM],
5654   [AC_REQUIRE([AC_SYS_POSIX_TERMIOS])
5655    AC_CACHE_CHECK([whether use of struct winsize requires sys/ptem.h],
5656      jm_cv_sys_struct_winsize_needs_sys_ptem_h,
5657      [jm_cv_sys_struct_winsize_needs_sys_ptem_h=yes
5658       if test $ac_cv_sys_posix_termios = yes; then
5659         AC_TRY_COMPILE([#include <termios.h>]
5660           [struct winsize x;],
5661           [jm_cv_sys_struct_winsize_needs_sys_ptem_h=no])
5662       fi
5663       if test $jm_cv_sys_struct_winsize_needs_sys_ptem_h = yes; then
5664         AC_TRY_COMPILE([#include <sys/ptem.h>],
5665           [struct winsize x;],
5666           [], [jm_cv_sys_struct_winsize_needs_sys_ptem_h=no])
5667       fi])
5668    if test $jm_cv_sys_struct_winsize_needs_sys_ptem_h = yes; then
5669      AC_DEFINE([WINSIZE_IN_PTEM], 1,
5670        [Define if sys/ptem.h is required for struct winsize.])
5671    fi])
5673 # Determine whether this system has infrastructure for obtaining the boot time.
5675 # GNULIB_BOOT_TIME([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
5676 * ----------------------------------------------------------
5677 AC_DEFUN([GNULIB_BOOT_TIME],
5679   AC_CHECK_FUNCS(sysctl)
5680   AC_CHECK_HEADERS(sys/sysctl.h)
5681   AC_CACHE_CHECK(
5682     [whether we can get the system boot time],
5683     [gnulib_cv_have_boot_time],
5684     [
5685       AC_COMPILE_IFELSE(
5686        [AC_LANG_PROGRAM(
5687 [AC_INCLUDES_DEFAULT
5688 #if HAVE_SYSCTL && HAVE_SYS_SYSCTL_H
5689 # include <sys/param.h> /* needed for OpenBSD 3.0 */
5690 # include <sys/sysctl.h>
5691 #endif
5692 #ifdef HAVE_UTMPX_H
5693 # include <utmpx.h>
5694 #else
5695 # include <utmp.h>
5696 #endif
5699 #if defined BOOT_TIME || (defined CTL_KERN && defined KERN_BOOTTIME)
5700 /* your system *does* have the infrastructure to determine boot time */
5701 #else
5702 please_tell_us_how_to_determine_boot_time_on_your_system
5703 #endif
5704 ]])],
5705        gnulib_cv_have_boot_time=yes,
5706        gnulib_cv_have_boot_time=no)
5707     ])
5708   AS_IF([test $gnulib_cv_have_boot_time = yes], [$1], [$2])
5711 #serial 4
5713 AC_DEFUN([jm_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL],
5714 [AC_REQUIRE([jm_HEADER_TIOCGWINSZ_IN_TERMIOS_H])
5715  AC_CACHE_CHECK([whether use of TIOCGWINSZ requires sys/ioctl.h],
5716                 jm_cv_sys_tiocgwinsz_needs_sys_ioctl_h,
5717   [jm_cv_sys_tiocgwinsz_needs_sys_ioctl_h=no
5719   if test $jm_cv_sys_tiocgwinsz_needs_termios_h = no; then
5720     AC_EGREP_CPP([yes],
5721     [#include <sys/types.h>
5722 #     include <sys/ioctl.h>
5723 #     ifdef TIOCGWINSZ
5724         yes
5725 #     endif
5726     ], jm_cv_sys_tiocgwinsz_needs_sys_ioctl_h=yes)
5727   fi
5728   ])
5729   if test $jm_cv_sys_tiocgwinsz_needs_sys_ioctl_h = yes; then
5730     AC_DEFINE(GWINSZ_IN_SYS_IOCTL, 1,
5731       [Define if your system defines TIOCGWINSZ in sys/ioctl.h.])
5732   fi
5735 #serial 5
5737 dnl Misc lib-related macros for fileutils, sh-utils, textutils.
5739 AC_DEFUN([jm_LIB_CHECK],
5742   # Check for libypsec.a on Dolphin M88K machines.
5743   AC_CHECK_LIB(ypsec, main)
5745   # m88k running dgux 5.4 needs this
5746   AC_CHECK_LIB(ldgc, main)
5748   # Some programs need to link with -lm.  printf does if it uses
5749   # lib/strtod.c which uses pow.  And seq uses the math functions,
5750   # floor, modf, rint.  And factor uses sqrt.  And sleep uses fesetround.
5752   # Save a copy of $LIBS and add $FLOOR_LIBM before these tests
5753   # Check for these math functions used by seq.
5754   ac_su_saved_lib="$LIBS"
5755   LIBS="$LIBS -lm"
5756   AC_CHECK_FUNCS(floor modf rint)
5757   LIBS="$ac_su_saved_lib"
5759   AC_SUBST(SQRT_LIBM)
5760   AC_CHECK_FUNCS(sqrt)
5761   if test $ac_cv_func_sqrt = no; then
5762     AC_CHECK_LIB(m, sqrt, [SQRT_LIBM=-lm])
5763   fi
5765   AC_SUBST(FESETROUND_LIBM)
5766   AC_CHECK_FUNCS(fesetround)
5767   if test $ac_cv_func_fesetround = no; then
5768     AC_CHECK_LIB(m, fesetround, [FESETROUND_LIBM=-lm])
5769   fi
5771   # The -lsun library is required for YP support on Irix-4.0.5 systems.
5772   # m88k/svr3 DolphinOS systems using YP need -lypsec for id.
5773   AC_SEARCH_LIBS(yp_match, [sun ypsec])
5775   # SysV needs -lsec, older versions of Linux need -lshadow for
5776   # shadow passwords.  UnixWare 7 needs -lgen.
5777   AC_SEARCH_LIBS(getspnam, [shadow sec gen])
5779   AC_CHECK_HEADERS(shadow.h)
5781   # Requirements for su.c.
5782   shadow_includes="\
5783 $ac_includes_default
5784 #if HAVE_SHADOW_H
5785 # include <shadow.h>
5786 #endif
5788   AC_CHECK_MEMBERS([struct spwd.sp_pwdp],,,[$shadow_includes])
5789   AC_CHECK_FUNCS(getspnam)
5791   # SCO-ODT-3.0 is reported to need -lufc for crypt.
5792   # NetBSD needs -lcrypt for crypt.
5793   ac_su_saved_lib="$LIBS"
5794   AC_SEARCH_LIBS(crypt, [ufc crypt], [LIB_CRYPT="$ac_cv_search_crypt"])
5795   LIBS="$ac_su_saved_lib"
5796   AC_SUBST(LIB_CRYPT)
5799 # gettext.m4 serial 17 (gettext-0.11.5)
5800 dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
5801 dnl This file is free software, distributed under the terms of the GNU
5802 dnl General Public License.  As a special exception to the GNU General
5803 dnl Public License, this file may be distributed as part of a program
5804 dnl that contains a configuration script generated by Autoconf, under
5805 dnl the same distribution terms as the rest of that program.
5807 dnl This file can can be used in projects which are not available under
5808 dnl the GNU General Public License or the GNU Library General Public
5809 dnl License but which still want to provide support for the GNU gettext
5810 dnl functionality.
5811 dnl Please note that the actual code of the GNU gettext library is covered
5812 dnl by the GNU Library General Public License, and the rest of the GNU
5813 dnl gettext package package is covered by the GNU General Public License.
5814 dnl They are *not* in the public domain.
5816 dnl Authors:
5817 dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
5818 dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2002.
5820 dnl Macro to add for using GNU gettext.
5822 dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
5823 dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
5824 dnl    default (if it is not specified or empty) is 'no-libtool'.
5825 dnl    INTLSYMBOL should be 'external' for packages with no intl directory,
5826 dnl    and 'no-libtool' or 'use-libtool' for packages with an intl directory.
5827 dnl    If INTLSYMBOL is 'use-libtool', then a libtool library
5828 dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
5829 dnl    depending on --{enable,disable}-{shared,static} and on the presence of
5830 dnl    AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
5831 dnl    $(top_builddir)/intl/libintl.a will be created.
5832 dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
5833 dnl    implementations (in libc or libintl) without the ngettext() function
5834 dnl    will be ignored.  If NEEDSYMBOL is specified and is
5835 dnl    'need-formatstring-macros', then GNU gettext implementations that don't
5836 dnl    support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
5837 dnl INTLDIR is used to find the intl libraries.  If empty,
5838 dnl    the value `$(top_builddir)/intl/' is used.
5840 dnl The result of the configuration is one of three cases:
5841 dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
5842 dnl    and used.
5843 dnl    Catalog format: GNU --> install in $(datadir)
5844 dnl    Catalog extension: .mo after installation, .gmo in source tree
5845 dnl 2) GNU gettext has been found in the system's C library.
5846 dnl    Catalog format: GNU --> install in $(datadir)
5847 dnl    Catalog extension: .mo after installation, .gmo in source tree
5848 dnl 3) No internationalization, always use English msgid.
5849 dnl    Catalog format: none
5850 dnl    Catalog extension: none
5851 dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
5852 dnl The use of .gmo is historical (it was needed to avoid overwriting the
5853 dnl GNU format catalogs when building on a platform with an X/Open gettext),
5854 dnl but we keep it in order not to force irrelevant filename changes on the
5855 dnl maintainers.
5857 AC_DEFUN([AM_GNU_GETTEXT],
5859   dnl Argument checking.
5860   ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
5861     [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
5862 ])])])])])
5863   ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
5864     [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
5865 ])])])])
5866   define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
5867   define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
5869   AC_REQUIRE([AM_PO_SUBDIRS])dnl
5870   ifelse(gt_included_intl, yes, [
5871     AC_REQUIRE([AM_INTL_SUBDIR])dnl
5872   ])
5874   dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
5875   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
5876   AC_REQUIRE([AC_LIB_RPATH])
5878   dnl Sometimes libintl requires libiconv, so first search for libiconv.
5879   dnl Ideally we would do this search only after the
5880   dnl      if test "$USE_NLS" = "yes"; then
5881   dnl        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
5882   dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
5883   dnl the configure script would need to contain the same shell code
5884   dnl again, outside any 'if'. There are two solutions:
5885   dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
5886   dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
5887   dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
5888   dnl documented, we avoid it.
5889   ifelse(gt_included_intl, yes, , [
5890     AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
5891   ])
5893   AC_MSG_CHECKING([whether NLS is requested])
5894   dnl Default is enabled NLS
5895   AC_ARG_ENABLE(nls,
5896     [  --disable-nls           do not use Native Language Support],
5897     USE_NLS=$enableval, USE_NLS=yes)
5898   AC_MSG_RESULT($USE_NLS)
5899   AC_SUBST(USE_NLS)
5901   ifelse(gt_included_intl, yes, [
5902     BUILD_INCLUDED_LIBINTL=no
5903     USE_INCLUDED_LIBINTL=no
5904   ])
5905   LIBINTL=
5906   LTLIBINTL=
5907   POSUB=
5909   dnl If we use NLS figure out what method
5910   if test "$USE_NLS" = "yes"; then
5911     gt_use_preinstalled_gnugettext=no
5912     ifelse(gt_included_intl, yes, [
5913       AC_MSG_CHECKING([whether included gettext is requested])
5914       AC_ARG_WITH(included-gettext,
5915         [  --with-included-gettext use the GNU gettext library included here],
5916         nls_cv_force_use_gnu_gettext=$withval,
5917         nls_cv_force_use_gnu_gettext=no)
5918       AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
5920       nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
5921       if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
5922     ])
5923         dnl User does not insist on using GNU NLS library.  Figure out what
5924         dnl to use.  If GNU gettext is available we use this.  Else we have
5925         dnl to fall back to GNU NLS library.
5927         dnl Add a version number to the cache macros.
5928         define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
5929         define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
5930         define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
5932         AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
5933          [AC_TRY_LINK([#include <libintl.h>
5934 ]ifelse([$2], [need-formatstring-macros],
5935 [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
5936 #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
5937 #endif
5938 changequote(,)dnl
5939 typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
5940 changequote([,])dnl
5941 ], [])[extern int _nl_msg_cat_cntr;
5942 extern int *_nl_domain_bindings;],
5943             [bindtextdomain ("", "");
5944 return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
5945             gt_cv_func_gnugettext_libc=yes,
5946             gt_cv_func_gnugettext_libc=no)])
5948         if test "$gt_cv_func_gnugettext_libc" != "yes"; then
5949           dnl Sometimes libintl requires libiconv, so first search for libiconv.
5950           ifelse(gt_included_intl, yes, , [
5951             AM_ICONV_LINK
5952           ])
5953           dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
5954           dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
5955           dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
5956           dnl even if libiconv doesn't exist.
5957           AC_LIB_LINKFLAGS_BODY([intl])
5958           AC_CACHE_CHECK([for GNU gettext in libintl],
5959             gt_cv_func_gnugettext_libintl,
5960            [gt_save_CPPFLAGS="$CPPFLAGS"
5961             CPPFLAGS="$CPPFLAGS $INCINTL"
5962             gt_save_LIBS="$LIBS"
5963             LIBS="$LIBS $LIBINTL"
5964             dnl Now see whether libintl exists and does not depend on libiconv.
5965             AC_TRY_LINK([#include <libintl.h>
5966 ]ifelse([$2], [need-formatstring-macros],
5967 [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
5968 #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
5969 #endif
5970 changequote(,)dnl
5971 typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
5972 changequote([,])dnl
5973 ], [])[extern int _nl_msg_cat_cntr;
5974 extern
5975 #ifdef __cplusplus
5977 #endif
5978 const char *_nl_expand_alias ();],
5979               [bindtextdomain ("", "");
5980 return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
5981               gt_cv_func_gnugettext_libintl=yes,
5982               gt_cv_func_gnugettext_libintl=no)
5983             dnl Now see whether libintl exists and depends on libiconv.
5984             if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
5985               LIBS="$LIBS $LIBICONV"
5986               AC_TRY_LINK([#include <libintl.h>
5987 ]ifelse([$2], [need-formatstring-macros],
5988 [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
5989 #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
5990 #endif
5991 changequote(,)dnl
5992 typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
5993 changequote([,])dnl
5994 ], [])[extern int _nl_msg_cat_cntr;
5995 extern
5996 #ifdef __cplusplus
5998 #endif
5999 const char *_nl_expand_alias ();],
6000                 [bindtextdomain ("", "");
6001 return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
6002                [LIBINTL="$LIBINTL $LIBICONV"
6003                 LTLIBINTL="$LTLIBINTL $LTLIBICONV"
6004                 gt_cv_func_gnugettext_libintl=yes
6005                ])
6006             fi
6007             CPPFLAGS="$gt_save_CPPFLAGS"
6008             LIBS="$gt_save_LIBS"])
6009         fi
6011         dnl If an already present or preinstalled GNU gettext() is found,
6012         dnl use it.  But if this macro is used in GNU gettext, and GNU
6013         dnl gettext is already preinstalled in libintl, we update this
6014         dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
6015         if test "$gt_cv_func_gnugettext_libc" = "yes" \
6016            || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
6017                 && test "$PACKAGE" != gettext; }; then
6018           gt_use_preinstalled_gnugettext=yes
6019         else
6020           dnl Reset the values set by searching for libintl.
6021           LIBINTL=
6022           LTLIBINTL=
6023           INCINTL=
6024         fi
6026     ifelse(gt_included_intl, yes, [
6027         if test "$gt_use_preinstalled_gnugettext" != "yes"; then
6028           dnl GNU gettext is not found in the C library.
6029           dnl Fall back on included GNU gettext library.
6030           nls_cv_use_gnu_gettext=yes
6031         fi
6032       fi
6034       if test "$nls_cv_use_gnu_gettext" = "yes"; then
6035         dnl Mark actions used to generate GNU NLS library.
6036         INTLOBJS="\$(GETTOBJS)"
6037         BUILD_INCLUDED_LIBINTL=yes
6038         USE_INCLUDED_LIBINTL=yes
6039         LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
6040         LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
6041         LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
6042       fi
6044       if test "$gt_use_preinstalled_gnugettext" = "yes" \
6045          || test "$nls_cv_use_gnu_gettext" = "yes"; then
6046         dnl Mark actions to use GNU gettext tools.
6047         CATOBJEXT=.gmo
6048       fi
6049     ])
6051     if test "$gt_use_preinstalled_gnugettext" = "yes" \
6052        || test "$nls_cv_use_gnu_gettext" = "yes"; then
6053       AC_DEFINE(ENABLE_NLS, 1,
6054         [Define to 1 if translation of program messages to the user's native language
6055    is requested.])
6056     else
6057       USE_NLS=no
6058     fi
6059   fi
6061   if test "$USE_NLS" = "yes"; then
6063     if test "$gt_use_preinstalled_gnugettext" = "yes"; then
6064       if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
6065         AC_MSG_CHECKING([how to link with libintl])
6066         AC_MSG_RESULT([$LIBINTL])
6067         AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
6068       fi
6070       dnl For backward compatibility. Some packages may be using this.
6071       AC_DEFINE(HAVE_GETTEXT, 1,
6072        [Define if the GNU gettext() function is already present or preinstalled.])
6073       AC_DEFINE(HAVE_DCGETTEXT, 1,
6074        [Define if the GNU dcgettext() function is already present or preinstalled.])
6075     fi
6077     dnl We need to process the po/ directory.
6078     POSUB=po
6079   fi
6081   ifelse(gt_included_intl, yes, [
6082     dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
6083     dnl to 'yes' because some of the testsuite requires it.
6084     if test "$PACKAGE" = gettext; then
6085       BUILD_INCLUDED_LIBINTL=yes
6086     fi
6088     dnl Make all variables we use known to autoconf.
6089     AC_SUBST(BUILD_INCLUDED_LIBINTL)
6090     AC_SUBST(USE_INCLUDED_LIBINTL)
6091     AC_SUBST(CATOBJEXT)
6092     AC_SUBST(INTLOBJS)
6094     dnl For backward compatibility. Some configure.ins may be using this.
6095     nls_cv_header_intl=
6096     nls_cv_header_libgt=
6098     dnl For backward compatibility. Some Makefiles may be using this.
6099     DATADIRNAME=share
6100     AC_SUBST(DATADIRNAME)
6102     dnl For backward compatibility. Some Makefiles may be using this.
6103     INSTOBJEXT=.mo
6104     AC_SUBST(INSTOBJEXT)
6106     dnl For backward compatibility. Some Makefiles may be using this.
6107     GENCAT=gencat
6108     AC_SUBST(GENCAT)
6110     dnl Enable libtool support if the surrounding package wishes it.
6111     INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
6112     AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
6113   ])
6115   dnl For backward compatibility. Some Makefiles may be using this.
6116   INTLLIBS="$LIBINTL"
6117   AC_SUBST(INTLLIBS)
6119   dnl Make all documented variables known to autoconf.
6120   AC_SUBST(LIBINTL)
6121   AC_SUBST(LTLIBINTL)
6122   AC_SUBST(POSUB)
6126 dnl Checks for all prerequisites of the po subdirectory,
6127 dnl except for USE_NLS.
6128 AC_DEFUN([AM_PO_SUBDIRS],
6130   AC_REQUIRE([AC_PROG_MAKE_SET])dnl
6131   AC_REQUIRE([AC_PROG_INSTALL])dnl
6132   AC_REQUIRE([AM_MKINSTALLDIRS])dnl
6134   dnl Perform the following tests also if --disable-nls has been given,
6135   dnl because they are needed for "make dist" to work.
6137   dnl Search for GNU msgfmt in the PATH.
6138   dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
6139   dnl The second test excludes FreeBSD msgfmt.
6140   AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
6141     [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
6142      (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
6143     :)
6144   AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
6146   dnl Search for GNU xgettext 0.11 or newer in the PATH.
6147   dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
6148   dnl The second test excludes FreeBSD xgettext.
6149   AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
6150     [$ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
6151      (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
6152     :)
6153   dnl Remove leftover from FreeBSD xgettext call.
6154   rm -f messages.po
6156   dnl Search for GNU msgmerge 0.11 or newer in the PATH.
6157   AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
6158     [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :)
6160   dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
6161   dnl Test whether we really found GNU msgfmt.
6162   if test "$GMSGFMT" != ":"; then
6163     dnl If it is no GNU msgfmt we define it as : so that the
6164     dnl Makefiles still can work.
6165     if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
6166        (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
6167       : ;
6168     else
6169       GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
6170       AC_MSG_RESULT(
6171         [found $GMSGFMT program is not GNU msgfmt; ignore it])
6172       GMSGFMT=":"
6173     fi
6174   fi
6176   dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
6177   dnl Test whether we really found GNU xgettext.
6178   if test "$XGETTEXT" != ":"; then
6179     dnl If it is no GNU xgettext we define it as : so that the
6180     dnl Makefiles still can work.
6181     if $XGETTEXT --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
6182        (if $XGETTEXT --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
6183       : ;
6184     else
6185       AC_MSG_RESULT(
6186         [found xgettext program is not GNU xgettext; ignore it])
6187       XGETTEXT=":"
6188     fi
6189     dnl Remove leftover from FreeBSD xgettext call.
6190     rm -f messages.po
6191   fi
6193   AC_OUTPUT_COMMANDS([
6194     for ac_file in $CONFIG_FILES; do
6195       # Support "outfile[:infile[:infile...]]"
6196       case "$ac_file" in
6197         *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
6198       esac
6199       # PO directories have a Makefile.in generated from Makefile.in.in.
6200       case "$ac_file" in */Makefile.in)
6201         # Adjust a relative srcdir.
6202         ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
6203         ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
6204         ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
6205         # In autoconf-2.13 it is called $ac_given_srcdir.
6206         # In autoconf-2.50 it is called $srcdir.
6207         test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
6208         case "$ac_given_srcdir" in
6209           .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
6210           /*) top_srcdir="$ac_given_srcdir" ;;
6211           *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
6212         esac
6213         if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
6214           rm -f "$ac_dir/POTFILES"
6215           test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
6216           cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[   ]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
6217           # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend
6218           # on $ac_dir but don't depend on user-specified configuration
6219           # parameters.
6220           if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
6221             # The LINGUAS file contains the set of available languages.
6222             if test -n "$ALL_LINGUAS"; then
6223               test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
6224             fi
6225             ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
6226             # Hide the ALL_LINGUAS assigment from automake.
6227             eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
6228           fi
6229           case "$ac_given_srcdir" in
6230             .) srcdirpre= ;;
6231             *) srcdirpre='$(srcdir)/' ;;
6232           esac
6233           POFILES=
6234           GMOFILES=
6235           UPDATEPOFILES=
6236           DUMMYPOFILES=
6237           for lang in $ALL_LINGUAS; do
6238             POFILES="$POFILES $srcdirpre$lang.po"
6239             GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
6240             UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
6241             DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
6242           done
6243           # CATALOGS depends on both $ac_dir and the user's LINGUAS
6244           # environment variable.
6245           INST_LINGUAS=
6246           if test -n "$ALL_LINGUAS"; then
6247             for presentlang in $ALL_LINGUAS; do
6248               useit=no
6249               if test "%UNSET%" != "$LINGUAS"; then
6250                 desiredlanguages="$LINGUAS"
6251               else
6252                 desiredlanguages="$ALL_LINGUAS"
6253               fi
6254               for desiredlang in $desiredlanguages; do
6255                 # Use the presentlang catalog if desiredlang is
6256                 #   a. equal to presentlang, or
6257                 #   b. a variant of presentlang (because in this case,
6258                 #      presentlang can be used as a fallback for messages
6259                 #      which are not translated in the desiredlang catalog).
6260                 case "$desiredlang" in
6261                   "$presentlang"*) useit=yes;;
6262                 esac
6263               done
6264               if test $useit = yes; then
6265                 INST_LINGUAS="$INST_LINGUAS $presentlang"
6266               fi
6267             done
6268           fi
6269           CATALOGS=
6270           if test -n "$INST_LINGUAS"; then
6271             for lang in $INST_LINGUAS; do
6272               CATALOGS="$CATALOGS $lang.gmo"
6273             done
6274           fi
6275           test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
6276           sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
6277           for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
6278             if test -f "$f"; then
6279               case "$f" in
6280                 *.orig | *.bak | *~) ;;
6281                 *) cat "$f" >> "$ac_dir/Makefile" ;;
6282               esac
6283             fi
6284           done
6285         fi
6286         ;;
6287       esac
6288     done],
6289    [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
6290     # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it
6291     # from automake.
6292     eval 'ALL_LINGUAS''="$ALL_LINGUAS"'
6293     # Capture the value of LINGUAS because we need it to compute CATALOGS.
6294     LINGUAS="${LINGUAS-%UNSET%}"
6295    ])
6299 dnl Checks for all prerequisites of the intl subdirectory,
6300 dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
6301 dnl            USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
6302 AC_DEFUN([AM_INTL_SUBDIR],
6304   AC_REQUIRE([AC_PROG_INSTALL])dnl
6305   AC_REQUIRE([AM_MKINSTALLDIRS])dnl
6306   AC_REQUIRE([AC_PROG_CC])dnl
6307   AC_REQUIRE([AC_CANONICAL_HOST])dnl
6308   AC_REQUIRE([AC_PROG_RANLIB])dnl
6309   AC_REQUIRE([AC_ISC_POSIX])dnl
6310   AC_REQUIRE([AC_HEADER_STDC])dnl
6311   AC_REQUIRE([AC_C_CONST])dnl
6312   AC_REQUIRE([AC_C_INLINE])dnl
6313   AC_REQUIRE([AC_TYPE_OFF_T])dnl
6314   AC_REQUIRE([AC_TYPE_SIZE_T])dnl
6315   AC_REQUIRE([AC_FUNC_ALLOCA])dnl
6316   AC_REQUIRE([AC_FUNC_MMAP])dnl
6317   AC_REQUIRE([jm_GLIBC21])dnl
6318   AC_REQUIRE([gt_INTDIV0])dnl
6319   AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
6320   AC_REQUIRE([gt_INTTYPES_PRI])dnl
6322   AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
6323 stdlib.h string.h unistd.h sys/param.h])
6324   AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \
6325 geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \
6326 strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
6328   AM_ICONV
6329   AM_LANGINFO_CODESET
6330   if test $ac_cv_header_locale_h = yes; then
6331     AM_LC_MESSAGES
6332   fi
6334   dnl intl/plural.c is generated from intl/plural.y. It requires bison,
6335   dnl because plural.y uses bison specific features. It requires at least
6336   dnl bison-1.26 because earlier versions generate a plural.c that doesn't
6337   dnl compile.
6338   dnl bison is only needed for the maintainer (who touches plural.y). But in
6339   dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
6340   dnl the rule in general Makefile. Now, some people carelessly touch the
6341   dnl files or have a broken "make" program, hence the plural.c rule will
6342   dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
6343   dnl present or too old.
6344   AC_CHECK_PROGS([INTLBISON], [bison])
6345   if test -z "$INTLBISON"; then
6346     ac_verc_fail=yes
6347   else
6348     dnl Found it, now check the version.
6349     AC_MSG_CHECKING([version of bison])
6350 changequote(<<,>>)dnl
6351     ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
6352     case $ac_prog_version in
6353       '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
6354       1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
6355 changequote([,])dnl
6356          ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
6357       *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
6358     esac
6359     AC_MSG_RESULT([$ac_prog_version])
6360   fi
6361   if test $ac_verc_fail = yes; then
6362     INTLBISON=:
6363   fi
6367 AC_DEFUN([AM_MKINSTALLDIRS],
6369   dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
6370   dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
6371   dnl Try to locate is.
6372   MKINSTALLDIRS=
6373   if test -n "$ac_aux_dir"; then
6374     MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
6375   fi
6376   if test -z "$MKINSTALLDIRS"; then
6377     MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
6378   fi
6379   AC_SUBST(MKINSTALLDIRS)
6383 dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
6384 AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
6386 # progtest.m4 serial 2 (gettext-0.10.40)
6387 dnl Copyright (C) 1996-2002 Free Software Foundation, Inc.
6388 dnl This file is free software, distributed under the terms of the GNU
6389 dnl General Public License.  As a special exception to the GNU General
6390 dnl Public License, this file may be distributed as part of a program
6391 dnl that contains a configuration script generated by Autoconf, under
6392 dnl the same distribution terms as the rest of that program.
6394 dnl This file can can be used in projects which are not available under
6395 dnl the GNU General Public License or the GNU Library General Public
6396 dnl License but which still want to provide support for the GNU gettext
6397 dnl functionality.
6398 dnl Please note that the actual code of the GNU gettext library is covered
6399 dnl by the GNU Library General Public License, and the rest of the GNU
6400 dnl gettext package package is covered by the GNU General Public License.
6401 dnl They are *not* in the public domain.
6403 dnl Authors:
6404 dnl   Ulrich Drepper <drepper@cygnus.com>, 1996.
6406 # Search path for a program which passes the given test.
6408 dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
6409 dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
6410 AC_DEFUN([AM_PATH_PROG_WITH_TEST],
6411 [# Extract the first word of "$2", so it can be a program name with args.
6412 set dummy $2; ac_word=[$]2
6413 AC_MSG_CHECKING([for $ac_word])
6414 AC_CACHE_VAL(ac_cv_path_$1,
6415 [case "[$]$1" in
6416   /*)
6417   ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
6418   ;;
6419   *)
6420   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
6421   for ac_dir in ifelse([$5], , $PATH, [$5]); do
6422     test -z "$ac_dir" && ac_dir=.
6423     if test -f $ac_dir/$ac_word; then
6424       if [$3]; then
6425         ac_cv_path_$1="$ac_dir/$ac_word"
6426         break
6427       fi
6428     fi
6429   done
6430   IFS="$ac_save_ifs"
6431 dnl If no 4th arg is given, leave the cache variable unset,
6432 dnl so AC_PATH_PROGS will keep looking.
6433 ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
6434 ])dnl
6435   ;;
6436 esac])dnl
6437 $1="$ac_cv_path_$1"
6438 if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
6439   AC_MSG_RESULT([$]$1)
6440 else
6441   AC_MSG_RESULT(no)
6443 AC_SUBST($1)dnl
6446 # intdiv0.m4 serial 1 (gettext-0.11.3)
6447 dnl Copyright (C) 2002 Free Software Foundation, Inc.
6448 dnl This file is free software, distributed under the terms of the GNU
6449 dnl General Public License.  As a special exception to the GNU General
6450 dnl Public License, this file may be distributed as part of a program
6451 dnl that contains a configuration script generated by Autoconf, under
6452 dnl the same distribution terms as the rest of that program.
6454 dnl From Bruno Haible.
6456 AC_DEFUN([gt_INTDIV0],
6458   AC_REQUIRE([AC_PROG_CC])dnl
6459   AC_REQUIRE([AC_CANONICAL_HOST])dnl
6461   AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
6462     gt_cv_int_divbyzero_sigfpe,
6463     [
6464       AC_TRY_RUN([
6465 #include <stdlib.h>
6466 #include <signal.h>
6468 static void
6469 #ifdef __cplusplus
6470 sigfpe_handler (int sig)
6471 #else
6472 sigfpe_handler (sig) int sig;
6473 #endif
6475   /* Exit with code 0 if SIGFPE, with code 1 if any other signal.  */
6476   exit (sig != SIGFPE);
6479 int x = 1;
6480 int y = 0;
6481 int z;
6482 int nan;
6484 int main ()
6486   signal (SIGFPE, sigfpe_handler);
6487 /* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP.  */
6488 #if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
6489   signal (SIGTRAP, sigfpe_handler);
6490 #endif
6491 /* Linux/SPARC yields signal SIGILL.  */
6492 #if defined (__sparc__) && defined (__linux__)
6493   signal (SIGILL, sigfpe_handler);
6494 #endif
6496   z = x / y;
6497   nan = y / y;
6498   exit (1);
6500 ], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no,
6501         [
6502           # Guess based on the CPU.
6503           case "$host_cpu" in
6504             alpha* | i[34567]86 | m68k | s390*)
6505               gt_cv_int_divbyzero_sigfpe="guessing yes";;
6506             *)
6507               gt_cv_int_divbyzero_sigfpe="guessing no";;
6508           esac
6509         ])
6510     ])
6511   case "$gt_cv_int_divbyzero_sigfpe" in
6512     *yes) value=1;;
6513     *) value=0;;
6514   esac
6515   AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value,
6516     [Define if integer division by zero raises signal SIGFPE.])
6519 # lcmessage.m4 serial 3 (gettext-0.11.3)
6520 dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
6521 dnl This file is free software, distributed under the terms of the GNU
6522 dnl General Public License.  As a special exception to the GNU General
6523 dnl Public License, this file may be distributed as part of a program
6524 dnl that contains a configuration script generated by Autoconf, under
6525 dnl the same distribution terms as the rest of that program.
6527 dnl This file can can be used in projects which are not available under
6528 dnl the GNU General Public License or the GNU Library General Public
6529 dnl License but which still want to provide support for the GNU gettext
6530 dnl functionality.
6531 dnl Please note that the actual code of the GNU gettext library is covered
6532 dnl by the GNU Library General Public License, and the rest of the GNU
6533 dnl gettext package package is covered by the GNU General Public License.
6534 dnl They are *not* in the public domain.
6536 dnl Authors:
6537 dnl   Ulrich Drepper <drepper@cygnus.com>, 1995.
6539 # Check whether LC_MESSAGES is available in <locale.h>.
6541 AC_DEFUN([AM_LC_MESSAGES],
6543   AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
6544     [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
6545        am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
6546   if test $am_cv_val_LC_MESSAGES = yes; then
6547     AC_DEFINE(HAVE_LC_MESSAGES, 1,
6548       [Define if your <locale.h> file defines LC_MESSAGES.])
6549   fi