From e0023883c6d2e6745a19e4b48e186ed156c1fca8 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 17:19:27 +0200 Subject: Adding upstream version 2.11.2. Signed-off-by: Daniel Baumann --- .gitignore | 136 + ABOUT-NLS | 1282 + COPYING | 674 + ChangeLog | 8271 ++++ ChangeLog-2013 | 13184 ++++++ FAQ | 67 + Makefile.am | 92 + Makefile.in | 2198 + NEWS.md | 1770 + README.md | 316 + aclocal.m4 | 1842 + bootstrap | 1119 + bootstrap.conf | 157 + build-aux/ar-lib | 271 + build-aux/compile | 348 + build-aux/config.guess | 1768 + build-aux/config.rpath | 684 + build-aux/config.sub | 1890 + build-aux/depcomp | 790 + build-aux/gitlog-to-changelog | 516 + build-aux/gnupload | 480 + build-aux/install-sh | 541 + build-aux/ltmain.sh | 11448 +++++ build-aux/missing | 215 + build-aux/test-driver | 153 + build-aux/ylwrap | 247 + config.h.in | 2714 ++ configure | 60620 ++++++++++++++++++++++++ configure.ac | 578 + docs/COPYING.GPLv2 | 339 + docs/COPYING.LIB | 502 + docs/HACKING.md | 181 + docs/INSTALL.autoconf | 368 + docs/INSTALL.quick | 45 + docs/Makefile.am | 13 + docs/Makefile.in | 1767 + docs/TODO | 20 + docs/manpage.example | 114 + docs/manpage.example.mdoc | 134 + docs/manpage.example.pod | 126 + docs/manpage.example.sgml | 232 + gl/lib/Makefile.am | 3732 ++ gl/lib/Makefile.in | 6617 +++ gl/lib/_Noreturn.h | 45 + gl/lib/alloca.c | 167 + gl/lib/alloca.in.h | 72 + gl/lib/arg-nonnull.h | 26 + gl/lib/argp-ba.c | 34 + gl/lib/argp-eexst.c | 30 + gl/lib/argp-fmtstream.c | 434 + gl/lib/argp-fmtstream.h | 300 + gl/lib/argp-fs-xinl.c | 46 + gl/lib/argp-help.c | 2034 + gl/lib/argp-namefrob.h | 170 + gl/lib/argp-parse.c | 968 + gl/lib/argp-pin.c | 33 + gl/lib/argp-pv.c | 33 + gl/lib/argp-pvh.c | 30 + gl/lib/argp-xinl.c | 46 + gl/lib/argp.h | 643 + gl/lib/asnprintf.c | 34 + gl/lib/asprintf.c | 39 + gl/lib/assure.h | 57 + gl/lib/at-func.c | 146 + gl/lib/at-func2.c | 289 + gl/lib/attribute.h | 226 + gl/lib/basename-lgpl.c | 71 + gl/lib/basename-lgpl.h | 78 + gl/lib/basename.c | 64 + gl/lib/bitrotate.c | 21 + gl/lib/bitrotate.h | 138 + gl/lib/btowc.c | 39 + gl/lib/c++defs.h | 331 + gl/lib/calloc.c | 55 + gl/lib/canonicalize-lgpl.c | 472 + gl/lib/canonicalize.c | 489 + gl/lib/canonicalize.h | 58 + gl/lib/cdefs.h | 707 + gl/lib/chdir-long.c | 264 + gl/lib/chdir-long.h | 30 + gl/lib/chown.c | 151 + gl/lib/cloexec.c | 83 + gl/lib/cloexec.h | 36 + gl/lib/close.c | 75 + gl/lib/closedir.c | 71 + gl/lib/ctype.in.h | 57 + gl/lib/dirent-private.h | 44 + gl/lib/dirent.in.h | 321 + gl/lib/dirfd.c | 98 + gl/lib/dirname-lgpl.c | 86 + gl/lib/dirname.c | 38 + gl/lib/dirname.h | 54 + gl/lib/dup-safer-flag.c | 38 + gl/lib/dup-safer.c | 34 + gl/lib/dup.c | 92 + gl/lib/dup2.c | 189 + gl/lib/dynarray.h | 284 + gl/lib/eloop-threshold.h | 83 + gl/lib/errno.in.h | 279 + gl/lib/error.c | 411 + gl/lib/error.h | 66 + gl/lib/exitfail.c | 24 + gl/lib/exitfail.h | 18 + gl/lib/fchdir.c | 206 + gl/lib/fchown-stub.c | 34 + gl/lib/fcntl.c | 629 + gl/lib/fcntl.in.h | 445 + gl/lib/fd-hook.c | 116 + gl/lib/fd-hook.h | 119 + gl/lib/fd-safer-flag.c | 52 + gl/lib/fd-safer.c | 49 + gl/lib/fdopendir.c | 249 + gl/lib/file-set.c | 74 + gl/lib/file-set.h | 33 + gl/lib/filename.h | 112 + gl/lib/filenamecat-lgpl.c | 90 + gl/lib/filenamecat.h | 32 + gl/lib/flexmember.h | 60 + gl/lib/float+.h | 147 + gl/lib/float.c | 33 + gl/lib/float.in.h | 194 + gl/lib/flock.c | 224 + gl/lib/fnmatch.c | 361 + gl/lib/fnmatch.in.h | 110 + gl/lib/fnmatch_loop.c | 1211 + gl/lib/free.c | 53 + gl/lib/fstat.c | 94 + gl/lib/fstatat.c | 148 + gl/lib/getcwd-lgpl.c | 127 + gl/lib/getcwd.c | 495 + gl/lib/getdelim.c | 147 + gl/lib/getdtablesize.c | 124 + gl/lib/getline.c | 27 + gl/lib/getlogin_r.c | 110 + gl/lib/getopt-cdefs.in.h | 66 + gl/lib/getopt-core.h | 96 + gl/lib/getopt-ext.h | 77 + gl/lib/getopt-pfx-core.h | 66 + gl/lib/getopt-pfx-ext.h | 70 + gl/lib/getopt.c | 811 + gl/lib/getopt.in.h | 61 + gl/lib/getopt1.c | 159 + gl/lib/getopt_int.h | 118 + gl/lib/getprogname.c | 302 + gl/lib/getprogname.h | 40 + gl/lib/getrandom.c | 191 + gl/lib/gettext.h | 300 + gl/lib/gettime.c | 51 + gl/lib/gettimeofday.c | 153 + gl/lib/gl_anyhash1.h | 31 + gl/lib/gl_anyhash2.h | 82 + gl/lib/gl_anyhash_primes.h | 87 + gl/lib/gl_anylinked_list1.h | 48 + gl/lib/gl_anylinked_list2.h | 1215 + gl/lib/gl_anyrbtree_list1.h | 76 + gl/lib/gl_anyrbtree_list2.h | 1028 + gl/lib/gl_anytree_list1.h | 41 + gl/lib/gl_anytree_list2.h | 970 + gl/lib/gl_array_list.c | 697 + gl/lib/gl_array_list.h | 34 + gl/lib/gl_hash_map.c | 333 + gl/lib/gl_hash_map.h | 34 + gl/lib/gl_hash_set.c | 313 + gl/lib/gl_hash_set.h | 34 + gl/lib/gl_linkedhash_list.c | 114 + gl/lib/gl_linkedhash_list.h | 34 + gl/lib/gl_list.c | 21 + gl/lib/gl_list.h | 924 + gl/lib/gl_map.c | 21 + gl/lib/gl_map.h | 375 + gl/lib/gl_rbtree_list.c | 106 + gl/lib/gl_rbtree_list.h | 34 + gl/lib/gl_set.c | 21 + gl/lib/gl_set.h | 281 + gl/lib/gl_xlist.c | 21 + gl/lib/gl_xlist.h | 207 + gl/lib/gl_xmap.c | 21 + gl/lib/gl_xmap.h | 96 + gl/lib/gl_xset.c | 21 + gl/lib/gl_xset.h | 81 + gl/lib/glob-libc.h | 195 + gl/lib/glob.c | 1548 + gl/lib/glob.in.h | 177 + gl/lib/glob_internal.h | 65 + gl/lib/glob_pattern_p.c | 33 + gl/lib/globfree.c | 41 + gl/lib/glthread/lock.c | 749 + gl/lib/glthread/lock.h | 791 + gl/lib/glthread/threadlib.c | 108 + gl/lib/hard-locale.c | 35 + gl/lib/hard-locale.h | 28 + gl/lib/hash-pjw-bare.c | 42 + gl/lib/hash-pjw-bare.h | 24 + gl/lib/hash-pjw.c | 40 + gl/lib/hash-pjw.h | 23 + gl/lib/hash-triple-simple.c | 59 + gl/lib/hash-triple.h | 46 + gl/lib/hash.c | 1106 + gl/lib/hash.h | 264 + gl/lib/ialloc.c | 21 + gl/lib/ialloc.h | 100 + gl/lib/idpriv-drop.c | 131 + gl/lib/idpriv-droptemp.c | 208 + gl/lib/idpriv.h | 116 + gl/lib/idx.h | 134 + gl/lib/intprops.h | 642 + gl/lib/inttypes.in.h | 1002 + gl/lib/ioctl.c | 92 + gl/lib/isblank.c | 33 + gl/lib/itold.c | 28 + gl/lib/langinfo.in.h | 222 + gl/lib/lc-charset-dispatch.c | 82 + gl/lib/lc-charset-dispatch.h | 40 + gl/lib/lchown.c | 117 + gl/lib/libc-config.h | 202 + gl/lib/limits.in.h | 131 + gl/lib/localcharset.c | 1159 + gl/lib/localcharset.h | 137 + gl/lib/locale.in.h | 305 + gl/lib/localeconv.c | 103 + gl/lib/lstat.c | 104 + gl/lib/malloc.c | 51 + gl/lib/malloc/dynarray-skeleton.c | 528 + gl/lib/malloc/dynarray.h | 178 + gl/lib/malloc/dynarray_at_failure.c | 40 + gl/lib/malloc/dynarray_emplace_enlarge.c | 77 + gl/lib/malloc/dynarray_finalize.c | 66 + gl/lib/malloc/dynarray_resize.c | 68 + gl/lib/malloc/dynarray_resize_clear.c | 39 + gl/lib/malloc/scratch_buffer.h | 151 + gl/lib/malloc/scratch_buffer_dupfree.c | 41 + gl/lib/malloc/scratch_buffer_grow.c | 56 + gl/lib/malloc/scratch_buffer_grow_preserve.c | 67 + gl/lib/malloc/scratch_buffer_set_array_size.c | 64 + gl/lib/malloca.c | 113 + gl/lib/malloca.h | 126 + gl/lib/mbrtowc-impl-utf8.h | 138 + gl/lib/mbrtowc-impl.h | 262 + gl/lib/mbrtowc.c | 158 + gl/lib/mbsinit.c | 70 + gl/lib/mbsrtowcs-impl.h | 122 + gl/lib/mbsrtowcs-state.c | 37 + gl/lib/mbsrtowcs.c | 36 + gl/lib/mbtowc-impl.h | 44 + gl/lib/mbtowc-lock.c | 150 + gl/lib/mbtowc-lock.h | 125 + gl/lib/mbtowc.c | 26 + gl/lib/memchr.c | 172 + gl/lib/memchr.valgrind | 30 + gl/lib/memmem.c | 71 + gl/lib/mempcpy.c | 33 + gl/lib/memrchr.c | 161 + gl/lib/minmax.h | 60 + gl/lib/mkdir.c | 93 + gl/lib/mkdtemp.c | 39 + gl/lib/mkstemp.c | 50 + gl/lib/msvc-inval.c | 129 + gl/lib/msvc-inval.h | 222 + gl/lib/msvc-nothrow.c | 51 + gl/lib/msvc-nothrow.h | 43 + gl/lib/nanosleep.c | 195 + gl/lib/nl_langinfo-lock.c | 150 + gl/lib/nl_langinfo.c | 572 + gl/lib/nonblocking.c | 163 + gl/lib/nonblocking.h | 62 + gl/lib/open.c | 209 + gl/lib/openat-die.c | 62 + gl/lib/openat-priv.h | 64 + gl/lib/openat-proc.c | 135 + gl/lib/openat.c | 312 + gl/lib/openat.h | 125 + gl/lib/opendir.c | 179 + gl/lib/pathmax.h | 83 + gl/lib/pipe-safer.c | 52 + gl/lib/pipe.c | 50 + gl/lib/printf-args.c | 183 + gl/lib/printf-args.h | 150 + gl/lib/printf-parse.c | 623 + gl/lib/printf-parse.h | 193 + gl/lib/progname.c | 92 + gl/lib/progname.h | 62 + gl/lib/pselect.c | 110 + gl/lib/pthread_sigmask.c | 92 + gl/lib/raise.c | 83 + gl/lib/rawmemchr.c | 125 + gl/lib/rawmemchr.valgrind | 28 + gl/lib/readdir.c | 102 + gl/lib/readlink.c | 104 + gl/lib/readlinkat.c | 113 + gl/lib/realloc.c | 63 + gl/lib/reallocarray.c | 39 + gl/lib/regcomp.c | 3788 ++ gl/lib/regex.c | 84 + gl/lib/regex.h | 699 + gl/lib/regex_internal.c | 1711 + gl/lib/regex_internal.h | 835 + gl/lib/regexec.c | 4221 ++ gl/lib/rename.c | 477 + gl/lib/renameat.c | 25 + gl/lib/renameatu.c | 255 + gl/lib/renameatu.h | 28 + gl/lib/rewinddir.c | 53 + gl/lib/rmdir.c | 56 + gl/lib/same-inode.h | 47 + gl/lib/save-cwd.c | 97 + gl/lib/save-cwd.h | 34 + gl/lib/scratch_buffer.h | 127 + gl/lib/select.c | 598 + gl/lib/setenv.c | 390 + gl/lib/setlocale-lock.c | 150 + gl/lib/setlocale_null.c | 411 + gl/lib/setlocale_null.h | 82 + gl/lib/sig-handler.c | 21 + gl/lib/sig-handler.h | 51 + gl/lib/sigaction.c | 204 + gl/lib/signal.in.h | 487 + gl/lib/sigprocmask.c | 349 + gl/lib/size_max.h | 30 + gl/lib/sleep.c | 76 + gl/lib/sockets.c | 161 + gl/lib/sockets.h | 66 + gl/lib/stat-time.c | 21 + gl/lib/stat-time.h | 252 + gl/lib/stat-w32.c | 461 + gl/lib/stat-w32.h | 37 + gl/lib/stat.c | 440 + gl/lib/stdalign.in.h | 127 + gl/lib/stdarg.in.h | 35 + gl/lib/stdbool.in.h | 132 + gl/lib/stddef.in.h | 147 + gl/lib/stdint.in.h | 740 + gl/lib/stdio-read.c | 168 + gl/lib/stdio-write.c | 206 + gl/lib/stdio.in.h | 1711 + gl/lib/stdlib.in.h | 1559 + gl/lib/stdopen.c | 66 + gl/lib/stdopen.h | 32 + gl/lib/stpcpy.c | 49 + gl/lib/str-two-way.h | 452 + gl/lib/strcasecmp.c | 62 + gl/lib/strcasestr.c | 82 + gl/lib/strchrnul.c | 142 + gl/lib/strchrnul.valgrind | 28 + gl/lib/strdup.c | 54 + gl/lib/streq.h | 176 + gl/lib/strerror-override.c | 306 + gl/lib/strerror-override.h | 57 + gl/lib/strerror.c | 71 + gl/lib/string.in.h | 1296 + gl/lib/strings.in.h | 122 + gl/lib/stripslash.c | 45 + gl/lib/strncasecmp.c | 62 + gl/lib/strndup.c | 36 + gl/lib/strnlen.c | 30 + gl/lib/strnlen1.c | 35 + gl/lib/strnlen1.h | 40 + gl/lib/strsep.c | 57 + gl/lib/sys_file.in.h | 63 + gl/lib/sys_ioctl.in.h | 79 + gl/lib/sys_random.in.h | 98 + gl/lib/sys_select.in.h | 331 + gl/lib/sys_socket.c | 22 + gl/lib/sys_socket.in.h | 734 + gl/lib/sys_stat.in.h | 954 + gl/lib/sys_time.in.h | 224 + gl/lib/sys_types.in.h | 106 + gl/lib/sys_uio.in.h | 63 + gl/lib/sysexits.in.h | 72 + gl/lib/tempname.c | 345 + gl/lib/tempname.h | 72 + gl/lib/termios.in.h | 73 + gl/lib/time.in.h | 452 + gl/lib/timespec.c | 21 + gl/lib/timespec.h | 102 + gl/lib/unistd--.h | 32 + gl/lib/unistd-safer.h | 31 + gl/lib/unistd.c | 22 + gl/lib/unistd.in.h | 2327 + gl/lib/unlink.c | 98 + gl/lib/unlinkat.c | 124 + gl/lib/utime.c | 288 + gl/lib/utime.in.h | 112 + gl/lib/utimens.c | 647 + gl/lib/utimens.h | 49 + gl/lib/vasnprintf.c | 5741 +++ gl/lib/vasnprintf.h | 72 + gl/lib/vasprintf.c | 50 + gl/lib/verify.h | 318 + gl/lib/verror.c | 80 + gl/lib/verror.h | 55 + gl/lib/vsnprintf.c | 70 + gl/lib/w32sock.h | 140 + gl/lib/warn-on-use.h | 149 + gl/lib/wchar.in.h | 1338 + gl/lib/wcrtomb.c | 80 + gl/lib/wctype-h.c | 23 + gl/lib/wctype.in.h | 732 + gl/lib/windows-initguard.h | 35 + gl/lib/windows-mutex.c | 95 + gl/lib/windows-mutex.h | 51 + gl/lib/windows-once.c | 62 + gl/lib/windows-once.h | 47 + gl/lib/windows-recmutex.c | 127 + gl/lib/windows-recmutex.h | 57 + gl/lib/windows-rwlock.c | 377 + gl/lib/windows-rwlock.h | 68 + gl/lib/wmemchr-impl.h | 27 + gl/lib/wmemchr.c | 23 + gl/lib/wmempcpy.c | 28 + gl/lib/xalloc-die.c | 41 + gl/lib/xalloc-oversized.h | 65 + gl/lib/xalloc.h | 213 + gl/lib/xasprintf.c | 34 + gl/lib/xgetcwd.c | 41 + gl/lib/xgetcwd.h | 20 + gl/lib/xmalloc.c | 339 + gl/lib/xsize.c | 21 + gl/lib/xsize.h | 108 + gl/lib/xstdopen.c | 35 + gl/lib/xstdopen.h | 28 + gl/lib/xstrndup.c | 36 + gl/lib/xstrndup.h | 25 + gl/lib/xvasprintf.c | 110 + gl/lib/xvasprintf.h | 51 + gl/m4/00gnulib.m4 | 85 + gl/m4/__inline.m4 | 22 + gl/m4/absolute-header.m4 | 100 + gl/m4/alloca.m4 | 106 + gl/m4/argp.m4 | 70 + gl/m4/asm-underscore.m4 | 83 + gl/m4/btowc.m4 | 105 + gl/m4/builtin-expect.m4 | 49 + gl/m4/calloc.m4 | 83 + gl/m4/canonicalize.m4 | 183 + gl/m4/chdir-long.m4 | 30 + gl/m4/chown.m4 | 218 + gl/m4/clock_time.m4 | 32 + gl/m4/close.m4 | 35 + gl/m4/closedir.m4 | 31 + gl/m4/codeset.m4 | 24 + gl/m4/ctype_h.m4 | 47 + gl/m4/d-ino.m4 | 60 + gl/m4/d-type.m4 | 32 + gl/m4/dirent_h.m4 | 79 + gl/m4/dirfd.m4 | 86 + gl/m4/double-slash-root.m4 | 38 + gl/m4/dup.m4 | 54 + gl/m4/dup2.m4 | 105 + gl/m4/eealloc.m4 | 31 + gl/m4/environ.m4 | 46 + gl/m4/errno_h.m4 | 131 + gl/m4/error.m4 | 31 + gl/m4/exponentd.m4 | 116 + gl/m4/extensions.m4 | 227 + gl/m4/extern-inline.m4 | 130 + gl/m4/fchdir.m4 | 66 + gl/m4/fcntl-o.m4 | 140 + gl/m4/fcntl.m4 | 151 + gl/m4/fcntl_h.m4 | 70 + gl/m4/fdopendir.m4 | 67 + gl/m4/filenamecat.m4 | 16 + gl/m4/flexmember.m4 | 44 + gl/m4/float_h.m4 | 106 + gl/m4/flock.m4 | 24 + gl/m4/fnmatch.m4 | 153 + gl/m4/fnmatch_h.m4 | 87 + gl/m4/free.m4 | 52 + gl/m4/fstat.m4 | 40 + gl/m4/fstatat.m4 | 65 + gl/m4/getcwd-abort-bug.m4 | 158 + gl/m4/getcwd-path-max.m4 | 236 + gl/m4/getcwd.m4 | 166 + gl/m4/getdelim.m4 | 99 + gl/m4/getdtablesize.m4 | 63 + gl/m4/getline.m4 | 109 + gl/m4/getlogin.m4 | 32 + gl/m4/getlogin_r.m4 | 92 + gl/m4/getopt.m4 | 381 + gl/m4/getpagesize.m4 | 49 + gl/m4/getprogname.m4 | 43 + gl/m4/getrandom.m4 | 68 + gl/m4/gettext.m4 | 401 + gl/m4/gettime.m4 | 21 + gl/m4/gettimeofday.m4 | 69 + gl/m4/glibc2.m4 | 31 + gl/m4/glob.m4 | 129 + gl/m4/glob_h.m4 | 84 + gl/m4/gnulib-common.m4 | 1075 + gl/m4/gnulib-comp.m4 | 1937 + gl/m4/host-cpu-c-abi.m4 | 678 + gl/m4/iconv.m4 | 268 + gl/m4/idpriv.m4 | 14 + gl/m4/include_next.m4 | 224 + gl/m4/intdiv0.m4 | 87 + gl/m4/intl.m4 | 272 + gl/m4/intldir.m4 | 19 + gl/m4/intlmacosx.m4 | 56 + gl/m4/intmax.m4 | 36 + gl/m4/intmax_t.m4 | 59 + gl/m4/inttypes-pri.m4 | 42 + gl/m4/inttypes.m4 | 180 + gl/m4/inttypes_h.m4 | 29 + gl/m4/ioctl.m4 | 44 + gl/m4/isblank.m4 | 17 + gl/m4/langinfo_h.m4 | 137 + gl/m4/largefile.m4 | 180 + gl/m4/lchown.m4 | 38 + gl/m4/lcmessage.m4 | 35 + gl/m4/lib-ignore.m4 | 115 + gl/m4/lib-ld.m4 | 168 + gl/m4/lib-link.m4 | 813 + gl/m4/lib-prefix.m4 | 323 + gl/m4/libtool.m4 | 8427 ++++ gl/m4/limits-h.m4 | 41 + gl/m4/localcharset.m4 | 11 + gl/m4/locale-fr.m4 | 253 + gl/m4/locale-ja.m4 | 143 + gl/m4/locale-zh.m4 | 137 + gl/m4/locale_h.m4 | 174 + gl/m4/localeconv.m4 | 22 + gl/m4/lock.m4 | 47 + gl/m4/lstat.m4 | 79 + gl/m4/ltoptions.m4 | 437 + gl/m4/ltsugar.m4 | 124 + gl/m4/ltversion.m4 | 24 + gl/m4/lt~obsolete.m4 | 99 + gl/m4/malloc.m4 | 175 + gl/m4/malloca.m4 | 14 + gl/m4/manywarnings.m4 | 211 + gl/m4/math_h.m4 | 391 + gl/m4/mbrtowc.m4 | 790 + gl/m4/mbsinit.m4 | 44 + gl/m4/mbsrtowcs.m4 | 141 + gl/m4/mbstate_t.m4 | 34 + gl/m4/mbtowc.m4 | 24 + gl/m4/memchr.m4 | 106 + gl/m4/memmem.m4 | 155 + gl/m4/mempcpy.m4 | 26 + gl/m4/memrchr.m4 | 23 + gl/m4/minmax.m4 | 44 + gl/m4/mkdir.m4 | 87 + gl/m4/mkdtemp.m4 | 20 + gl/m4/mkstemp.m4 | 87 + gl/m4/mmap-anon.m4 | 55 + gl/m4/mode_t.m4 | 26 + gl/m4/msvc-inval.m4 | 19 + gl/m4/msvc-nothrow.m4 | 10 + gl/m4/multiarch.m4 | 65 + gl/m4/nanosleep.m4 | 139 + gl/m4/nl_langinfo.m4 | 77 + gl/m4/nls.m4 | 32 + gl/m4/nocrash.m4 | 131 + gl/m4/nonblocking.m4 | 29 + gl/m4/off_t.m4 | 18 + gl/m4/open-cloexec.m4 | 21 + gl/m4/open-slash.m4 | 60 + gl/m4/open.m4 | 56 + gl/m4/openat.m4 | 38 + gl/m4/opendir.m4 | 32 + gl/m4/pathmax.m4 | 42 + gl/m4/pipe.m4 | 15 + gl/m4/po.m4 | 453 + gl/m4/printf-posix.m4 | 48 + gl/m4/printf.m4 | 1728 + gl/m4/progtest.m4 | 91 + gl/m4/pselect.m4 | 73 + gl/m4/pthread_rwlock_rdlock.m4 | 185 + gl/m4/pthread_sigmask.m4 | 274 + gl/m4/raise.m4 | 36 + gl/m4/rawmemchr.m4 | 20 + gl/m4/readdir.m4 | 15 + gl/m4/readlink.m4 | 114 + gl/m4/readlinkat.m4 | 39 + gl/m4/realloc.m4 | 63 + gl/m4/reallocarray.m4 | 23 + gl/m4/regex.m4 | 396 + gl/m4/rename.m4 | 255 + gl/m4/renameat.m4 | 25 + gl/m4/rewinddir.m4 | 15 + gl/m4/rmdir.m4 | 54 + gl/m4/save-cwd.m4 | 11 + gl/m4/select.m4 | 117 + gl/m4/setenv.m4 | 166 + gl/m4/setlocale_null.m4 | 98 + gl/m4/sigaction.m4 | 40 + gl/m4/signal_h.m4 | 100 + gl/m4/signalblocking.m4 | 23 + gl/m4/sigpipe.m4 | 29 + gl/m4/size_max.m4 | 75 + gl/m4/sleep.m4 | 66 + gl/m4/socketlib.m4 | 96 + gl/m4/sockets.m4 | 17 + gl/m4/socklen.m4 | 76 + gl/m4/sockpfaf.m4 | 84 + gl/m4/ssize_t.m4 | 23 + gl/m4/stat-time.m4 | 83 + gl/m4/stat.m4 | 85 + gl/m4/stdalign.m4 | 56 + gl/m4/stdarg.m4 | 76 + gl/m4/stdbool.m4 | 117 + gl/m4/stddef_h.m4 | 97 + gl/m4/stdint.m4 | 531 + gl/m4/stdint_h.m4 | 27 + gl/m4/stdio_h.m4 | 225 + gl/m4/stdlib_h.m4 | 200 + gl/m4/stpcpy.m4 | 25 + gl/m4/strcase.m4 | 45 + gl/m4/strcasestr.m4 | 155 + gl/m4/strchrnul.m4 | 50 + gl/m4/strdup.m4 | 32 + gl/m4/strerror.m4 | 102 + gl/m4/string_h.m4 | 145 + gl/m4/strings_h.m4 | 62 + gl/m4/strndup.m4 | 58 + gl/m4/strnlen.m4 | 30 + gl/m4/strsep.m4 | 23 + gl/m4/sys_file_h.m4 | 56 + gl/m4/sys_ioctl_h.m4 | 79 + gl/m4/sys_random_h.m4 | 68 + gl/m4/sys_select_h.m4 | 110 + gl/m4/sys_socket_h.m4 | 206 + gl/m4/sys_stat_h.m4 | 129 + gl/m4/sys_time_h.m4 | 120 + gl/m4/sys_types_h.m4 | 70 + gl/m4/sys_uio_h.m4 | 46 + gl/m4/sysexits.m4 | 42 + gl/m4/tempname.m4 | 19 + gl/m4/termios_h.m4 | 58 + gl/m4/threadlib.m4 | 664 + gl/m4/time_h.m4 | 177 + gl/m4/timespec.m4 | 11 + gl/m4/uintmax_t.m4 | 30 + gl/m4/unistd-safer.m4 | 10 + gl/m4/unistd_h.m4 | 270 + gl/m4/unlink.m4 | 135 + gl/m4/unlinkat.m4 | 34 + gl/m4/utime.m4 | 76 + gl/m4/utime_h.m4 | 63 + gl/m4/utimens.m4 | 52 + gl/m4/utimes.m4 | 161 + gl/m4/vasnprintf.m4 | 298 + gl/m4/vasprintf.m4 | 46 + gl/m4/visibility.m4 | 82 + gl/m4/vsnprintf.m4 | 62 + gl/m4/warn-on-use.m4 | 49 + gl/m4/warnings.m4 | 110 + gl/m4/wchar_h.m4 | 257 + gl/m4/wchar_t.m4 | 24 + gl/m4/wcrtomb.m4 | 146 + gl/m4/wctype_h.m4 | 200 + gl/m4/wint_t.m4 | 57 + gl/m4/wmemchr.m4 | 25 + gl/m4/wmempcpy.m4 | 21 + gl/m4/xalloc.m4 | 7 + gl/m4/xgetcwd.m4 | 10 + gl/m4/xsize.m4 | 12 + gl/m4/xstrndup.m4 | 15 + gl/m4/xvasprintf.m4 | 8 + gl/m4/year2038.m4 | 124 + gl/m4/zzgnulib.m4 | 23 + gl/po/LINGUAS | 40 + gl/po/Makefile.in.in | 454 + gl/po/Makevars | 68 + gl/po/POTFILES.in | 405 + gl/po/Rules-quot | 47 + gl/po/af.gmo | Bin 0 -> 696 bytes gl/po/af.po | 542 + gl/po/be.gmo | Bin 0 -> 931 bytes gl/po/be.po | 485 + gl/po/bg.gmo | Bin 0 -> 6217 bytes gl/po/bg.po | 963 + gl/po/boldquot.sed | 10 + gl/po/ca.gmo | Bin 0 -> 1865 bytes gl/po/ca.po | 588 + gl/po/cs.gmo | Bin 0 -> 4104 bytes gl/po/cs.po | 866 + gl/po/da.gmo | Bin 0 -> 3883 bytes gl/po/da.po | 870 + gl/po/de.gmo | Bin 0 -> 4947 bytes gl/po/de.po | 1027 + gl/po/el.gmo | Bin 0 -> 671 bytes gl/po/el.po | 684 + gl/po/en@boldquot.header | 25 + gl/po/en@quot.header | 22 + gl/po/eo.gmo | Bin 0 -> 4665 bytes gl/po/eo.po | 962 + gl/po/es.gmo | Bin 0 -> 4851 bytes gl/po/es.po | 1046 + gl/po/et.gmo | Bin 0 -> 3325 bytes gl/po/et.po | 713 + gl/po/eu.gmo | Bin 0 -> 663 bytes gl/po/eu.po | 535 + gl/po/fi.gmo | Bin 0 -> 4836 bytes gl/po/fi.po | 946 + gl/po/fr.gmo | Bin 0 -> 5001 bytes gl/po/fr.po | 960 + gl/po/ga.gmo | Bin 0 -> 3682 bytes gl/po/ga.po | 711 + gl/po/gl.gmo | Bin 0 -> 3228 bytes gl/po/gl.po | 732 + gl/po/hu.gmo | Bin 0 -> 4135 bytes gl/po/hu.po | 872 + gl/po/insert-header.sin | 23 + gl/po/it.gmo | Bin 0 -> 4886 bytes gl/po/it.po | 1011 + gl/po/ja.gmo | Bin 0 -> 4411 bytes gl/po/ja.po | 906 + gl/po/ka.gmo | Bin 0 -> 7259 bytes gl/po/ka.po | 808 + gl/po/ko.gmo | Bin 0 -> 580 bytes gl/po/ko.po | 504 + gl/po/man-db-gnulib.pot | 242 + gl/po/ms.gmo | Bin 0 -> 736 bytes gl/po/ms.po | 480 + gl/po/nb.gmo | Bin 0 -> 581 bytes gl/po/nb.po | 481 + gl/po/nl.gmo | Bin 0 -> 4814 bytes gl/po/nl.po | 978 + gl/po/pl.gmo | Bin 0 -> 4913 bytes gl/po/pl.po | 956 + gl/po/pt.gmo | Bin 0 -> 4801 bytes gl/po/pt.po | 941 + gl/po/pt_BR.gmo | Bin 0 -> 4903 bytes gl/po/pt_BR.po | 1090 + gl/po/quot.sed | 6 + gl/po/remove-potcdate.sin | 19 + gl/po/ro.gmo | Bin 0 -> 5091 bytes gl/po/ro.po | 1063 + gl/po/ru.gmo | Bin 0 -> 6284 bytes gl/po/ru.po | 969 + gl/po/rw.gmo | Bin 0 -> 590 bytes gl/po/rw.po | 587 + gl/po/sk.gmo | Bin 0 -> 577 bytes gl/po/sk.po | 504 + gl/po/sl.gmo | Bin 0 -> 4007 bytes gl/po/sl.po | 914 + gl/po/sr.gmo | Bin 0 -> 5960 bytes gl/po/sr.po | 967 + gl/po/stamp-po | 1 + gl/po/sv.gmo | Bin 0 -> 4743 bytes gl/po/sv.po | 954 + gl/po/tr.gmo | Bin 0 -> 793 bytes gl/po/tr.po | 568 + gl/po/uk.gmo | Bin 0 -> 6096 bytes gl/po/uk.po | 973 + gl/po/vi.gmo | Bin 0 -> 4440 bytes gl/po/vi.po | 879 + gl/po/zh_CN.gmo | Bin 0 -> 3641 bytes gl/po/zh_CN.po | 886 + gl/po/zh_TW.gmo | Bin 0 -> 4472 bytes gl/po/zh_TW.po | 984 + include/manconfig.h | 202 + init/Makefile.am | 21 + init/Makefile.in | 1929 + init/systemd/Makefile.am | 46 + init/systemd/Makefile.in | 1874 + init/systemd/man-db.conf.in | 1 + init/systemd/man-db.service.in | 29 + init/systemd/man-db.timer | 11 + lib/Makefile.am | 78 + lib/Makefile.in | 2210 + lib/README | 23 + lib/appendstr.c | 59 + lib/appendstr.h | 24 + lib/cleanup.c | 279 + lib/cleanup.h | 35 + lib/compression.c | 195 + lib/compression.h | 42 + lib/debug.c | 78 + lib/debug.h | 32 + lib/encodings.c | 780 + lib/encodings.h | 38 + lib/fatal.c | 48 + lib/fatal.h | 26 + lib/filenames.c | 165 + lib/filenames.h | 56 + lib/glcontainers.c | 78 + lib/glcontainers.h | 68 + lib/linelength.c | 110 + lib/linelength.h | 23 + lib/mp.h | 483 + lib/orderfiles.c | 180 + lib/orderfiles.h | 25 + lib/pathsearch.c | 146 + lib/pathsearch.h | 36 + lib/sandbox.c | 666 + lib/sandbox.h | 38 + lib/security.c | 177 + lib/security.h | 38 + lib/tempfile.c | 94 + lib/tempfile.h | 24 + lib/util.c | 274 + lib/util.h | 33 + lib/wordfnmatch.c | 66 + lib/wordfnmatch.h | 25 + lib/xregcomp.c | 52 + lib/xregcomp.h | 25 + libdb/Makefile.am | 49 + libdb/Makefile.in | 2079 + libdb/README | 6 + libdb/db_btree.c | 293 + libdb/db_delete.c | 146 + libdb/db_gdbm.c | 173 + libdb/db_lookup.c | 513 + libdb/db_ndbm.c | 160 + libdb/db_storage.h | 88 + libdb/db_store.c | 454 + libdb/db_ver.c | 87 + libdb/db_xdbm.c | 171 + libdb/db_xdbm.h | 40 + libdb/mydbm.h | 200 + m4/man-arg-automatic-create.m4 | 13 + m4/man-arg-automatic-update.m4 | 14 + m4/man-arg-cache-owner.m4 | 44 + m4/man-arg-cats.m4 | 14 + m4/man-arg-config-file.m4 | 21 + m4/man-arg-db.m4 | 16 + m4/man-arg-device.m4 | 15 + m4/man-arg-mandirs.m4 | 32 + m4/man-arg-manual.m4 | 13 + m4/man-arg-override-dir.m4 | 20 + m4/man-arg-sections.m4 | 17 + m4/man-arg-setuid.m4 | 32 + m4/man-arg-snapdir.m4 | 17 + m4/man-arg-systemdsystemunitdir.m4 | 24 + m4/man-arg-systemdtmpfilesdir.m4 | 24 + m4/man-arg-undoc.m4 | 17 + m4/man-bdb.m4 | 61 + m4/man-check-progs.m4 | 19 + m4/man-compress-lib.m4 | 13 + m4/man-gnu-nroff.m4 | 24 + m4/man-heirloom-nroff.m4 | 33 + m4/man-libseccomp.m4 | 18 + m4/man-linguas.m4 | 72 + m4/man-po4a.m4 | 9 + m4/man-tar-sort-name.m4 | 21 + m4/man-trans-subst.m4 | 12 + man/LINGUAS | 1 + man/LINGUAS.po4a | 17 + man/Makefile.am | 64 + man/Makefile.in | 2615 + man/Rules.man | 73 + man/THANKS | 68 + man/check-man | 46 + man/da/Makefile.am | 43 + man/da/Makefile.in | 2415 + man/da/translator.add | 1 + man/de/Makefile.am | 43 + man/de/Makefile.in | 2415 + man/de/translator.add | 1 + man/es/Makefile.am | 43 + man/es/Makefile.in | 2415 + man/es/translator.add | 1 + man/fr/Makefile.am | 43 + man/fr/Makefile.in | 2415 + man/fr/translator.add | 16 + man/id/Makefile.am | 43 + man/id/Makefile.in | 2415 + man/id/translator.add | 1 + man/it/Makefile.am | 37 + man/it/Makefile.in | 2389 + man/it/man1/apropos.man1 | 209 + man/it/man1/man.man1 | 1105 + man/it/man1/manpath.man1 | 135 + man/it/man1/whatis.man1 | 197 + man/it/man1/zsoelim.man1 | 85 + man/it/man5/manpath.man5 | 110 + man/it/man8/accessdb.man8 | 34 + man/it/man8/catman.man8 | 112 + man/it/man8/mandb.man8 | 161 + man/ja/Makefile.am | 43 + man/ja/Makefile.in | 2415 + man/ja/translator.add | 1 + man/ko/Makefile.am | 42 + man/ko/Makefile.in | 2415 + man/ko/translator.add | 1 + man/man1/apropos.man1 | 268 + man/man1/lexgrog.man1 | 223 + man/man1/man-recode.man1 | 89 + man/man1/man.man1 | 1303 + man/man1/manconv.man1 | 84 + man/man1/manpath.man1 | 127 + man/man1/whatis.man1 | 263 + man/man1/zsoelim.man1 | 84 + man/man5/manpath.man5 | 247 + man/man8/accessdb.man8 | 51 + man/man8/catman.man8 | 129 + man/man8/mandb.man8 | 226 + man/nl/Makefile.am | 43 + man/nl/Makefile.in | 2415 + man/nl/translator.add | 1 + man/pl/Makefile.am | 43 + man/pl/Makefile.in | 2415 + man/pl/translator.add | 6 + man/po4a/Locale/Po4a/Manext.pm | 229 + man/po4a/Makefile.am | 102 + man/po4a/Makefile.in | 1832 + man/po4a/po/da.po | 3632 ++ man/po4a/po/de.po | 4039 ++ man/po4a/po/es.po | 3913 ++ man/po4a/po/fr.po | 4197 ++ man/po4a/po/id.po | 4392 ++ man/po4a/po/ja.po | 4039 ++ man/po4a/po/ko.po | 3668 ++ man/po4a/po/man-db-manpages.pot | 2977 ++ man/po4a/po/nl.po | 4131 ++ man/po4a/po/pl.po | 4483 ++ man/po4a/po/pt.po | 4058 ++ man/po4a/po/pt_BR.po | 4139 ++ man/po4a/po/ro.po | 4123 ++ man/po4a/po/ru.po | 4278 ++ man/po4a/po/sr.po | 4096 ++ man/po4a/po/sv.po | 4079 ++ man/po4a/po/tr.po | 3815 ++ man/po4a/po/zh_CN.po | 3773 ++ man/po4a/po4a.cfg | 35 + man/pt/Makefile.am | 42 + man/pt/Makefile.in | 2415 + man/pt/translator.add | 1 + man/pt_BR/Makefile.am | 43 + man/pt_BR/Makefile.in | 2415 + man/pt_BR/translator.add | 1 + man/replace.sin.in | 27 + man/ro/Makefile.am | 42 + man/ro/Makefile.in | 2415 + man/ro/translator.add | 1 + man/ru/Makefile.am | 43 + man/ru/Makefile.in | 2415 + man/ru/translator.add | 1 + man/sr/Makefile.am | 43 + man/sr/Makefile.in | 2415 + man/sr/translator.add | 1 + man/sv/Makefile.am | 43 + man/sv/Makefile.in | 2415 + man/sv/translator.add | 1 + man/tr/Makefile.am | 43 + man/tr/Makefile.in | 2415 + man/tr/translator.add | 1 + man/zh_CN/Makefile.am | 43 + man/zh_CN/Makefile.in | 2415 + man/zh_CN/translator.add | 1 + manual/Makefile.am | 108 + manual/Makefile.in | 1848 + manual/README | 23 + manual/comp.me | 88 + manual/db.me | 317 + manual/files.me | 518 + manual/format.me | 185 + manual/glossary.me | 50 + manual/intro.me | 324 + manual/leader.me | 59 + manual/man_db.me | 118 + manual/misc.me | 220 + manual/options-only.me | 13 + manual/print-options | 14 + manual/sec.me | 136 + patches/argp-domain.patch | 278 + po/LINGUAS | 25 + po/Makefile.in.in | 454 + po/Makevars | 63 + po/POTFILES.in | 28 + po/Rules-quot | 47 + po/ast.gmo | Bin 0 -> 19204 bytes po/ast.po | 1003 + po/boldquot.sed | 10 + po/ca.gmo | Bin 0 -> 19289 bytes po/ca.po | 1598 + po/cs.gmo | Bin 0 -> 21008 bytes po/cs.po | 1005 + po/da.gmo | Bin 0 -> 18972 bytes po/da.po | 1080 + po/de.gmo | Bin 0 -> 20738 bytes po/de.po | 1007 + po/en@boldquot.header | 25 + po/en@quot.header | 22 + po/eo.gmo | Bin 0 -> 19128 bytes po/eo.po | 995 + po/es.gmo | Bin 0 -> 20129 bytes po/es.po | 995 + po/fi.gmo | Bin 0 -> 6070 bytes po/fi.po | 1040 + po/fr.gmo | Bin 0 -> 20873 bytes po/fr.po | 999 + po/id.gmo | Bin 0 -> 19468 bytes po/id.po | 981 + po/insert-header.sin | 23 + po/it.gmo | Bin 0 -> 8340 bytes po/it.po | 1473 + po/ja.gmo | Bin 0 -> 21307 bytes po/ja.po | 1001 + po/ko.gmo | Bin 0 -> 20731 bytes po/ko.po | 971 + po/man-db.pot | 963 + po/nl.gmo | Bin 0 -> 17390 bytes po/nl.po | 1081 + po/pl.gmo | Bin 0 -> 20034 bytes po/pl.po | 1079 + po/pt.gmo | Bin 0 -> 19524 bytes po/pt.po | 997 + po/pt_BR.gmo | Bin 0 -> 20209 bytes po/pt_BR.po | 1346 + po/quot.sed | 6 + po/remove-potcdate.sin | 19 + po/ro.gmo | Bin 0 -> 21187 bytes po/ro.po | 1056 + po/ru.gmo | Bin 0 -> 26463 bytes po/ru.po | 1072 + po/sr.gmo | Bin 0 -> 25883 bytes po/sr.po | 1002 + po/stamp-po | 1 + po/sv.gmo | Bin 0 -> 19101 bytes po/sv.po | 1523 + po/tr.gmo | Bin 0 -> 19559 bytes po/tr.po | 979 + po/vi.gmo | Bin 0 -> 21146 bytes po/vi.po | 1021 + po/zh_CN.gmo | Bin 0 -> 18458 bytes po/zh_CN.po | 1064 + po/zh_TW.gmo | Bin 0 -> 18015 bytes po/zh_TW.po | 986 + src/Makefile.am | 221 + src/Makefile.in | 2573 + src/accessdb.c | 175 + src/catman.c | 448 + src/check_mandirs.c | 1018 + src/check_mandirs.h | 36 + src/convert.c | 99 + src/convert.h | 23 + src/decompress.c | 435 + src/decompress.h | 139 + src/descriptions.c | 163 + src/descriptions.h | 39 + src/descriptions_store.c | 250 + src/globbing.c | 435 + src/globbing.h | 38 + src/globbing_test.c | 140 + src/lexgrog.c | 5398 +++ src/lexgrog.h | 38 + src/lexgrog.l | 981 + src/lexgrog_test.c | 260 + src/man-recode.c | 296 + src/man.c | 4474 ++ src/man_db.conf.in | 132 + src/manconv.c | 570 + src/manconv.h | 35 + src/manconv_client.c | 218 + src/manconv_client.h | 31 + src/manconv_main.c | 209 + src/mandb.c | 1027 + src/manp.c | 1369 + src/manp.h | 51 + src/manpath.c | 139 + src/straycats.c | 362 + src/straycats.h | 26 + src/tests/Makefile.am | 80 + src/tests/Makefile.in | 2556 + src/tests/fspause.c | 113 + src/tests/get-mtime.c | 75 + src/tests/lexgrog-backslash-dash-rhs | 22 + src/tests/lexgrog-basic | 19 + src/tests/lexgrog-multiple-whatis | 28 + src/tests/man-deleted-directory | 26 + src/tests/man-exact-section-matches | 41 + src/tests/man-executable-page-on-path | 23 + src/tests/man-invalid-db-entry | 31 + src/tests/man-language-specific-requests | 65 + src/tests/man-mandatory-manpath | 189 + src/tests/man-missing-locales | 27 + src/tests/man-override-dir | 46 + src/tests/man-recode-in-place | 47 + src/tests/man-recode-suffix | 46 + src/tests/man-so-links-same-section | 91 + src/tests/man-suffixed-extension | 52 + src/tests/man-symlinks-with-matching-names | 32 + src/tests/manconv-coding-tags | 62 + src/tests/manconv-guess-from-encoding | 39 + src/tests/manconv-incomplete-char-at-eof | 17 + src/tests/manconv-odd-combinations | 81 + src/tests/mandb-basic | 25 + src/tests/mandb-bogus-symlink | 25 + src/tests/mandb-cachedir-tag | 32 + src/tests/mandb-empty-page | 28 + src/tests/mandb-purge-updates-timestamp | 70 + src/tests/mandb-regular-file-symlink-changes | 68 + src/tests/mandb-symlink-beats-whatis-ref | 61 + src/tests/mandb-symlink-target-timestamp | 32 + src/tests/mandb-whatis-broken-link-changes | 57 + src/tests/testlib.sh | 115 + src/tests/whatis-path-to-executable | 57 + src/tests/zsoelim-so-includes | 61 + src/ult_src.c | 452 + src/ult_src.h | 45 + src/utf8.c | 138 + src/utf8.h | 26 + src/whatis.c | 943 + src/zsoelim.c | 2632 + src/zsoelim.h | 36 + src/zsoelim.l | 576 + src/zsoelim_main.c | 163 + tools/Makefile.am | 6 + tools/Makefile.in | 1762 + tools/README | 13 + tools/chconfig | 131 + tools/checkman | 78 + tools/mandb_fmt-script | 28 + tools/mkcatdirs | 114 + 1106 files changed, 498103 insertions(+) create mode 100644 .gitignore create mode 100644 ABOUT-NLS create mode 100644 COPYING create mode 100644 ChangeLog create mode 100644 ChangeLog-2013 create mode 100644 FAQ create mode 100644 Makefile.am create mode 100644 Makefile.in create mode 100644 NEWS.md create mode 100644 README.md create mode 100644 aclocal.m4 create mode 100755 bootstrap create mode 100644 bootstrap.conf create mode 100755 build-aux/ar-lib create mode 100755 build-aux/compile create mode 100755 build-aux/config.guess create mode 100755 build-aux/config.rpath create mode 100755 build-aux/config.sub create mode 100755 build-aux/depcomp create mode 100755 build-aux/gitlog-to-changelog create mode 100755 build-aux/gnupload create mode 100755 build-aux/install-sh create mode 100755 build-aux/ltmain.sh create mode 100755 build-aux/missing create mode 100755 build-aux/test-driver create mode 100755 build-aux/ylwrap create mode 100644 config.h.in create mode 100755 configure create mode 100644 configure.ac create mode 100644 docs/COPYING.GPLv2 create mode 100644 docs/COPYING.LIB create mode 100644 docs/HACKING.md create mode 100644 docs/INSTALL.autoconf create mode 100644 docs/INSTALL.quick create mode 100644 docs/Makefile.am create mode 100644 docs/Makefile.in create mode 100644 docs/TODO create mode 100644 docs/manpage.example create mode 100644 docs/manpage.example.mdoc create mode 100644 docs/manpage.example.pod create mode 100644 docs/manpage.example.sgml create mode 100644 gl/lib/Makefile.am create mode 100644 gl/lib/Makefile.in create mode 100644 gl/lib/_Noreturn.h create mode 100644 gl/lib/alloca.c create mode 100644 gl/lib/alloca.in.h create mode 100644 gl/lib/arg-nonnull.h create mode 100644 gl/lib/argp-ba.c create mode 100644 gl/lib/argp-eexst.c create mode 100644 gl/lib/argp-fmtstream.c create mode 100644 gl/lib/argp-fmtstream.h create mode 100644 gl/lib/argp-fs-xinl.c create mode 100644 gl/lib/argp-help.c create mode 100644 gl/lib/argp-namefrob.h create mode 100644 gl/lib/argp-parse.c create mode 100644 gl/lib/argp-pin.c create mode 100644 gl/lib/argp-pv.c create mode 100644 gl/lib/argp-pvh.c create mode 100644 gl/lib/argp-xinl.c create mode 100644 gl/lib/argp.h create mode 100644 gl/lib/asnprintf.c create mode 100644 gl/lib/asprintf.c create mode 100644 gl/lib/assure.h create mode 100644 gl/lib/at-func.c create mode 100644 gl/lib/at-func2.c create mode 100644 gl/lib/attribute.h create mode 100644 gl/lib/basename-lgpl.c create mode 100644 gl/lib/basename-lgpl.h create mode 100644 gl/lib/basename.c create mode 100644 gl/lib/bitrotate.c create mode 100644 gl/lib/bitrotate.h create mode 100644 gl/lib/btowc.c create mode 100644 gl/lib/c++defs.h create mode 100644 gl/lib/calloc.c create mode 100644 gl/lib/canonicalize-lgpl.c create mode 100644 gl/lib/canonicalize.c create mode 100644 gl/lib/canonicalize.h create mode 100644 gl/lib/cdefs.h create mode 100644 gl/lib/chdir-long.c create mode 100644 gl/lib/chdir-long.h create mode 100644 gl/lib/chown.c create mode 100644 gl/lib/cloexec.c create mode 100644 gl/lib/cloexec.h create mode 100644 gl/lib/close.c create mode 100644 gl/lib/closedir.c create mode 100644 gl/lib/ctype.in.h create mode 100644 gl/lib/dirent-private.h create mode 100644 gl/lib/dirent.in.h create mode 100644 gl/lib/dirfd.c create mode 100644 gl/lib/dirname-lgpl.c create mode 100644 gl/lib/dirname.c create mode 100644 gl/lib/dirname.h create mode 100644 gl/lib/dup-safer-flag.c create mode 100644 gl/lib/dup-safer.c create mode 100644 gl/lib/dup.c create mode 100644 gl/lib/dup2.c create mode 100644 gl/lib/dynarray.h create mode 100644 gl/lib/eloop-threshold.h create mode 100644 gl/lib/errno.in.h create mode 100644 gl/lib/error.c create mode 100644 gl/lib/error.h create mode 100644 gl/lib/exitfail.c create mode 100644 gl/lib/exitfail.h create mode 100644 gl/lib/fchdir.c create mode 100644 gl/lib/fchown-stub.c create mode 100644 gl/lib/fcntl.c create mode 100644 gl/lib/fcntl.in.h create mode 100644 gl/lib/fd-hook.c create mode 100644 gl/lib/fd-hook.h create mode 100644 gl/lib/fd-safer-flag.c create mode 100644 gl/lib/fd-safer.c create mode 100644 gl/lib/fdopendir.c create mode 100644 gl/lib/file-set.c create mode 100644 gl/lib/file-set.h create mode 100644 gl/lib/filename.h create mode 100644 gl/lib/filenamecat-lgpl.c create mode 100644 gl/lib/filenamecat.h create mode 100644 gl/lib/flexmember.h create mode 100644 gl/lib/float+.h create mode 100644 gl/lib/float.c create mode 100644 gl/lib/float.in.h create mode 100644 gl/lib/flock.c create mode 100644 gl/lib/fnmatch.c create mode 100644 gl/lib/fnmatch.in.h create mode 100644 gl/lib/fnmatch_loop.c create mode 100644 gl/lib/free.c create mode 100644 gl/lib/fstat.c create mode 100644 gl/lib/fstatat.c create mode 100644 gl/lib/getcwd-lgpl.c create mode 100644 gl/lib/getcwd.c create mode 100644 gl/lib/getdelim.c create mode 100644 gl/lib/getdtablesize.c create mode 100644 gl/lib/getline.c create mode 100644 gl/lib/getlogin_r.c create mode 100644 gl/lib/getopt-cdefs.in.h create mode 100644 gl/lib/getopt-core.h create mode 100644 gl/lib/getopt-ext.h create mode 100644 gl/lib/getopt-pfx-core.h create mode 100644 gl/lib/getopt-pfx-ext.h create mode 100644 gl/lib/getopt.c create mode 100644 gl/lib/getopt.in.h create mode 100644 gl/lib/getopt1.c create mode 100644 gl/lib/getopt_int.h create mode 100644 gl/lib/getprogname.c create mode 100644 gl/lib/getprogname.h create mode 100644 gl/lib/getrandom.c create mode 100644 gl/lib/gettext.h create mode 100644 gl/lib/gettime.c create mode 100644 gl/lib/gettimeofday.c create mode 100644 gl/lib/gl_anyhash1.h create mode 100644 gl/lib/gl_anyhash2.h create mode 100644 gl/lib/gl_anyhash_primes.h create mode 100644 gl/lib/gl_anylinked_list1.h create mode 100644 gl/lib/gl_anylinked_list2.h create mode 100644 gl/lib/gl_anyrbtree_list1.h create mode 100644 gl/lib/gl_anyrbtree_list2.h create mode 100644 gl/lib/gl_anytree_list1.h create mode 100644 gl/lib/gl_anytree_list2.h create mode 100644 gl/lib/gl_array_list.c create mode 100644 gl/lib/gl_array_list.h create mode 100644 gl/lib/gl_hash_map.c create mode 100644 gl/lib/gl_hash_map.h create mode 100644 gl/lib/gl_hash_set.c create mode 100644 gl/lib/gl_hash_set.h create mode 100644 gl/lib/gl_linkedhash_list.c create mode 100644 gl/lib/gl_linkedhash_list.h create mode 100644 gl/lib/gl_list.c create mode 100644 gl/lib/gl_list.h create mode 100644 gl/lib/gl_map.c create mode 100644 gl/lib/gl_map.h create mode 100644 gl/lib/gl_rbtree_list.c create mode 100644 gl/lib/gl_rbtree_list.h create mode 100644 gl/lib/gl_set.c create mode 100644 gl/lib/gl_set.h create mode 100644 gl/lib/gl_xlist.c create mode 100644 gl/lib/gl_xlist.h create mode 100644 gl/lib/gl_xmap.c create mode 100644 gl/lib/gl_xmap.h create mode 100644 gl/lib/gl_xset.c create mode 100644 gl/lib/gl_xset.h create mode 100644 gl/lib/glob-libc.h create mode 100644 gl/lib/glob.c create mode 100644 gl/lib/glob.in.h create mode 100644 gl/lib/glob_internal.h create mode 100644 gl/lib/glob_pattern_p.c create mode 100644 gl/lib/globfree.c create mode 100644 gl/lib/glthread/lock.c create mode 100644 gl/lib/glthread/lock.h create mode 100644 gl/lib/glthread/threadlib.c create mode 100644 gl/lib/hard-locale.c create mode 100644 gl/lib/hard-locale.h create mode 100644 gl/lib/hash-pjw-bare.c create mode 100644 gl/lib/hash-pjw-bare.h create mode 100644 gl/lib/hash-pjw.c create mode 100644 gl/lib/hash-pjw.h create mode 100644 gl/lib/hash-triple-simple.c create mode 100644 gl/lib/hash-triple.h create mode 100644 gl/lib/hash.c create mode 100644 gl/lib/hash.h create mode 100644 gl/lib/ialloc.c create mode 100644 gl/lib/ialloc.h create mode 100644 gl/lib/idpriv-drop.c create mode 100644 gl/lib/idpriv-droptemp.c create mode 100644 gl/lib/idpriv.h create mode 100644 gl/lib/idx.h create mode 100644 gl/lib/intprops.h create mode 100644 gl/lib/inttypes.in.h create mode 100644 gl/lib/ioctl.c create mode 100644 gl/lib/isblank.c create mode 100644 gl/lib/itold.c create mode 100644 gl/lib/langinfo.in.h create mode 100644 gl/lib/lc-charset-dispatch.c create mode 100644 gl/lib/lc-charset-dispatch.h create mode 100644 gl/lib/lchown.c create mode 100644 gl/lib/libc-config.h create mode 100644 gl/lib/limits.in.h create mode 100644 gl/lib/localcharset.c create mode 100644 gl/lib/localcharset.h create mode 100644 gl/lib/locale.in.h create mode 100644 gl/lib/localeconv.c create mode 100644 gl/lib/lstat.c create mode 100644 gl/lib/malloc.c create mode 100644 gl/lib/malloc/dynarray-skeleton.c create mode 100644 gl/lib/malloc/dynarray.h create mode 100644 gl/lib/malloc/dynarray_at_failure.c create mode 100644 gl/lib/malloc/dynarray_emplace_enlarge.c create mode 100644 gl/lib/malloc/dynarray_finalize.c create mode 100644 gl/lib/malloc/dynarray_resize.c create mode 100644 gl/lib/malloc/dynarray_resize_clear.c create mode 100644 gl/lib/malloc/scratch_buffer.h create mode 100644 gl/lib/malloc/scratch_buffer_dupfree.c create mode 100644 gl/lib/malloc/scratch_buffer_grow.c create mode 100644 gl/lib/malloc/scratch_buffer_grow_preserve.c create mode 100644 gl/lib/malloc/scratch_buffer_set_array_size.c create mode 100644 gl/lib/malloca.c create mode 100644 gl/lib/malloca.h create mode 100644 gl/lib/mbrtowc-impl-utf8.h create mode 100644 gl/lib/mbrtowc-impl.h create mode 100644 gl/lib/mbrtowc.c create mode 100644 gl/lib/mbsinit.c create mode 100644 gl/lib/mbsrtowcs-impl.h create mode 100644 gl/lib/mbsrtowcs-state.c create mode 100644 gl/lib/mbsrtowcs.c create mode 100644 gl/lib/mbtowc-impl.h create mode 100644 gl/lib/mbtowc-lock.c create mode 100644 gl/lib/mbtowc-lock.h create mode 100644 gl/lib/mbtowc.c create mode 100644 gl/lib/memchr.c create mode 100644 gl/lib/memchr.valgrind create mode 100644 gl/lib/memmem.c create mode 100644 gl/lib/mempcpy.c create mode 100644 gl/lib/memrchr.c create mode 100644 gl/lib/minmax.h create mode 100644 gl/lib/mkdir.c create mode 100644 gl/lib/mkdtemp.c create mode 100644 gl/lib/mkstemp.c create mode 100644 gl/lib/msvc-inval.c create mode 100644 gl/lib/msvc-inval.h create mode 100644 gl/lib/msvc-nothrow.c create mode 100644 gl/lib/msvc-nothrow.h create mode 100644 gl/lib/nanosleep.c create mode 100644 gl/lib/nl_langinfo-lock.c create mode 100644 gl/lib/nl_langinfo.c create mode 100644 gl/lib/nonblocking.c create mode 100644 gl/lib/nonblocking.h create mode 100644 gl/lib/open.c create mode 100644 gl/lib/openat-die.c create mode 100644 gl/lib/openat-priv.h create mode 100644 gl/lib/openat-proc.c create mode 100644 gl/lib/openat.c create mode 100644 gl/lib/openat.h create mode 100644 gl/lib/opendir.c create mode 100644 gl/lib/pathmax.h create mode 100644 gl/lib/pipe-safer.c create mode 100644 gl/lib/pipe.c create mode 100644 gl/lib/printf-args.c create mode 100644 gl/lib/printf-args.h create mode 100644 gl/lib/printf-parse.c create mode 100644 gl/lib/printf-parse.h create mode 100644 gl/lib/progname.c create mode 100644 gl/lib/progname.h create mode 100644 gl/lib/pselect.c create mode 100644 gl/lib/pthread_sigmask.c create mode 100644 gl/lib/raise.c create mode 100644 gl/lib/rawmemchr.c create mode 100644 gl/lib/rawmemchr.valgrind create mode 100644 gl/lib/readdir.c create mode 100644 gl/lib/readlink.c create mode 100644 gl/lib/readlinkat.c create mode 100644 gl/lib/realloc.c create mode 100644 gl/lib/reallocarray.c create mode 100644 gl/lib/regcomp.c create mode 100644 gl/lib/regex.c create mode 100644 gl/lib/regex.h create mode 100644 gl/lib/regex_internal.c create mode 100644 gl/lib/regex_internal.h create mode 100644 gl/lib/regexec.c create mode 100644 gl/lib/rename.c create mode 100644 gl/lib/renameat.c create mode 100644 gl/lib/renameatu.c create mode 100644 gl/lib/renameatu.h create mode 100644 gl/lib/rewinddir.c create mode 100644 gl/lib/rmdir.c create mode 100644 gl/lib/same-inode.h create mode 100644 gl/lib/save-cwd.c create mode 100644 gl/lib/save-cwd.h create mode 100644 gl/lib/scratch_buffer.h create mode 100644 gl/lib/select.c create mode 100644 gl/lib/setenv.c create mode 100644 gl/lib/setlocale-lock.c create mode 100644 gl/lib/setlocale_null.c create mode 100644 gl/lib/setlocale_null.h create mode 100644 gl/lib/sig-handler.c create mode 100644 gl/lib/sig-handler.h create mode 100644 gl/lib/sigaction.c create mode 100644 gl/lib/signal.in.h create mode 100644 gl/lib/sigprocmask.c create mode 100644 gl/lib/size_max.h create mode 100644 gl/lib/sleep.c create mode 100644 gl/lib/sockets.c create mode 100644 gl/lib/sockets.h create mode 100644 gl/lib/stat-time.c create mode 100644 gl/lib/stat-time.h create mode 100644 gl/lib/stat-w32.c create mode 100644 gl/lib/stat-w32.h create mode 100644 gl/lib/stat.c create mode 100644 gl/lib/stdalign.in.h create mode 100644 gl/lib/stdarg.in.h create mode 100644 gl/lib/stdbool.in.h create mode 100644 gl/lib/stddef.in.h create mode 100644 gl/lib/stdint.in.h create mode 100644 gl/lib/stdio-read.c create mode 100644 gl/lib/stdio-write.c create mode 100644 gl/lib/stdio.in.h create mode 100644 gl/lib/stdlib.in.h create mode 100644 gl/lib/stdopen.c create mode 100644 gl/lib/stdopen.h create mode 100644 gl/lib/stpcpy.c create mode 100644 gl/lib/str-two-way.h create mode 100644 gl/lib/strcasecmp.c create mode 100644 gl/lib/strcasestr.c create mode 100644 gl/lib/strchrnul.c create mode 100644 gl/lib/strchrnul.valgrind create mode 100644 gl/lib/strdup.c create mode 100644 gl/lib/streq.h create mode 100644 gl/lib/strerror-override.c create mode 100644 gl/lib/strerror-override.h create mode 100644 gl/lib/strerror.c create mode 100644 gl/lib/string.in.h create mode 100644 gl/lib/strings.in.h create mode 100644 gl/lib/stripslash.c create mode 100644 gl/lib/strncasecmp.c create mode 100644 gl/lib/strndup.c create mode 100644 gl/lib/strnlen.c create mode 100644 gl/lib/strnlen1.c create mode 100644 gl/lib/strnlen1.h create mode 100644 gl/lib/strsep.c create mode 100644 gl/lib/sys_file.in.h create mode 100644 gl/lib/sys_ioctl.in.h create mode 100644 gl/lib/sys_random.in.h create mode 100644 gl/lib/sys_select.in.h create mode 100644 gl/lib/sys_socket.c create mode 100644 gl/lib/sys_socket.in.h create mode 100644 gl/lib/sys_stat.in.h create mode 100644 gl/lib/sys_time.in.h create mode 100644 gl/lib/sys_types.in.h create mode 100644 gl/lib/sys_uio.in.h create mode 100644 gl/lib/sysexits.in.h create mode 100644 gl/lib/tempname.c create mode 100644 gl/lib/tempname.h create mode 100644 gl/lib/termios.in.h create mode 100644 gl/lib/time.in.h create mode 100644 gl/lib/timespec.c create mode 100644 gl/lib/timespec.h create mode 100644 gl/lib/unistd--.h create mode 100644 gl/lib/unistd-safer.h create mode 100644 gl/lib/unistd.c create mode 100644 gl/lib/unistd.in.h create mode 100644 gl/lib/unlink.c create mode 100644 gl/lib/unlinkat.c create mode 100644 gl/lib/utime.c create mode 100644 gl/lib/utime.in.h create mode 100644 gl/lib/utimens.c create mode 100644 gl/lib/utimens.h create mode 100644 gl/lib/vasnprintf.c create mode 100644 gl/lib/vasnprintf.h create mode 100644 gl/lib/vasprintf.c create mode 100644 gl/lib/verify.h create mode 100644 gl/lib/verror.c create mode 100644 gl/lib/verror.h create mode 100644 gl/lib/vsnprintf.c create mode 100644 gl/lib/w32sock.h create mode 100644 gl/lib/warn-on-use.h create mode 100644 gl/lib/wchar.in.h create mode 100644 gl/lib/wcrtomb.c create mode 100644 gl/lib/wctype-h.c create mode 100644 gl/lib/wctype.in.h create mode 100644 gl/lib/windows-initguard.h create mode 100644 gl/lib/windows-mutex.c create mode 100644 gl/lib/windows-mutex.h create mode 100644 gl/lib/windows-once.c create mode 100644 gl/lib/windows-once.h create mode 100644 gl/lib/windows-recmutex.c create mode 100644 gl/lib/windows-recmutex.h create mode 100644 gl/lib/windows-rwlock.c create mode 100644 gl/lib/windows-rwlock.h create mode 100644 gl/lib/wmemchr-impl.h create mode 100644 gl/lib/wmemchr.c create mode 100644 gl/lib/wmempcpy.c create mode 100644 gl/lib/xalloc-die.c create mode 100644 gl/lib/xalloc-oversized.h create mode 100644 gl/lib/xalloc.h create mode 100644 gl/lib/xasprintf.c create mode 100644 gl/lib/xgetcwd.c create mode 100644 gl/lib/xgetcwd.h create mode 100644 gl/lib/xmalloc.c create mode 100644 gl/lib/xsize.c create mode 100644 gl/lib/xsize.h create mode 100644 gl/lib/xstdopen.c create mode 100644 gl/lib/xstdopen.h create mode 100644 gl/lib/xstrndup.c create mode 100644 gl/lib/xstrndup.h create mode 100644 gl/lib/xvasprintf.c create mode 100644 gl/lib/xvasprintf.h create mode 100644 gl/m4/00gnulib.m4 create mode 100644 gl/m4/__inline.m4 create mode 100644 gl/m4/absolute-header.m4 create mode 100644 gl/m4/alloca.m4 create mode 100644 gl/m4/argp.m4 create mode 100644 gl/m4/asm-underscore.m4 create mode 100644 gl/m4/btowc.m4 create mode 100644 gl/m4/builtin-expect.m4 create mode 100644 gl/m4/calloc.m4 create mode 100644 gl/m4/canonicalize.m4 create mode 100644 gl/m4/chdir-long.m4 create mode 100644 gl/m4/chown.m4 create mode 100644 gl/m4/clock_time.m4 create mode 100644 gl/m4/close.m4 create mode 100644 gl/m4/closedir.m4 create mode 100644 gl/m4/codeset.m4 create mode 100644 gl/m4/ctype_h.m4 create mode 100644 gl/m4/d-ino.m4 create mode 100644 gl/m4/d-type.m4 create mode 100644 gl/m4/dirent_h.m4 create mode 100644 gl/m4/dirfd.m4 create mode 100644 gl/m4/double-slash-root.m4 create mode 100644 gl/m4/dup.m4 create mode 100644 gl/m4/dup2.m4 create mode 100644 gl/m4/eealloc.m4 create mode 100644 gl/m4/environ.m4 create mode 100644 gl/m4/errno_h.m4 create mode 100644 gl/m4/error.m4 create mode 100644 gl/m4/exponentd.m4 create mode 100644 gl/m4/extensions.m4 create mode 100644 gl/m4/extern-inline.m4 create mode 100644 gl/m4/fchdir.m4 create mode 100644 gl/m4/fcntl-o.m4 create mode 100644 gl/m4/fcntl.m4 create mode 100644 gl/m4/fcntl_h.m4 create mode 100644 gl/m4/fdopendir.m4 create mode 100644 gl/m4/filenamecat.m4 create mode 100644 gl/m4/flexmember.m4 create mode 100644 gl/m4/float_h.m4 create mode 100644 gl/m4/flock.m4 create mode 100644 gl/m4/fnmatch.m4 create mode 100644 gl/m4/fnmatch_h.m4 create mode 100644 gl/m4/free.m4 create mode 100644 gl/m4/fstat.m4 create mode 100644 gl/m4/fstatat.m4 create mode 100644 gl/m4/getcwd-abort-bug.m4 create mode 100644 gl/m4/getcwd-path-max.m4 create mode 100644 gl/m4/getcwd.m4 create mode 100644 gl/m4/getdelim.m4 create mode 100644 gl/m4/getdtablesize.m4 create mode 100644 gl/m4/getline.m4 create mode 100644 gl/m4/getlogin.m4 create mode 100644 gl/m4/getlogin_r.m4 create mode 100644 gl/m4/getopt.m4 create mode 100644 gl/m4/getpagesize.m4 create mode 100644 gl/m4/getprogname.m4 create mode 100644 gl/m4/getrandom.m4 create mode 100644 gl/m4/gettext.m4 create mode 100644 gl/m4/gettime.m4 create mode 100644 gl/m4/gettimeofday.m4 create mode 100644 gl/m4/glibc2.m4 create mode 100644 gl/m4/glob.m4 create mode 100644 gl/m4/glob_h.m4 create mode 100644 gl/m4/gnulib-common.m4 create mode 100644 gl/m4/gnulib-comp.m4 create mode 100644 gl/m4/host-cpu-c-abi.m4 create mode 100644 gl/m4/iconv.m4 create mode 100644 gl/m4/idpriv.m4 create mode 100644 gl/m4/include_next.m4 create mode 100644 gl/m4/intdiv0.m4 create mode 100644 gl/m4/intl.m4 create mode 100644 gl/m4/intldir.m4 create mode 100644 gl/m4/intlmacosx.m4 create mode 100644 gl/m4/intmax.m4 create mode 100644 gl/m4/intmax_t.m4 create mode 100644 gl/m4/inttypes-pri.m4 create mode 100644 gl/m4/inttypes.m4 create mode 100644 gl/m4/inttypes_h.m4 create mode 100644 gl/m4/ioctl.m4 create mode 100644 gl/m4/isblank.m4 create mode 100644 gl/m4/langinfo_h.m4 create mode 100644 gl/m4/largefile.m4 create mode 100644 gl/m4/lchown.m4 create mode 100644 gl/m4/lcmessage.m4 create mode 100644 gl/m4/lib-ignore.m4 create mode 100644 gl/m4/lib-ld.m4 create mode 100644 gl/m4/lib-link.m4 create mode 100644 gl/m4/lib-prefix.m4 create mode 100644 gl/m4/libtool.m4 create mode 100644 gl/m4/limits-h.m4 create mode 100644 gl/m4/localcharset.m4 create mode 100644 gl/m4/locale-fr.m4 create mode 100644 gl/m4/locale-ja.m4 create mode 100644 gl/m4/locale-zh.m4 create mode 100644 gl/m4/locale_h.m4 create mode 100644 gl/m4/localeconv.m4 create mode 100644 gl/m4/lock.m4 create mode 100644 gl/m4/lstat.m4 create mode 100644 gl/m4/ltoptions.m4 create mode 100644 gl/m4/ltsugar.m4 create mode 100644 gl/m4/ltversion.m4 create mode 100644 gl/m4/lt~obsolete.m4 create mode 100644 gl/m4/malloc.m4 create mode 100644 gl/m4/malloca.m4 create mode 100644 gl/m4/manywarnings.m4 create mode 100644 gl/m4/math_h.m4 create mode 100644 gl/m4/mbrtowc.m4 create mode 100644 gl/m4/mbsinit.m4 create mode 100644 gl/m4/mbsrtowcs.m4 create mode 100644 gl/m4/mbstate_t.m4 create mode 100644 gl/m4/mbtowc.m4 create mode 100644 gl/m4/memchr.m4 create mode 100644 gl/m4/memmem.m4 create mode 100644 gl/m4/mempcpy.m4 create mode 100644 gl/m4/memrchr.m4 create mode 100644 gl/m4/minmax.m4 create mode 100644 gl/m4/mkdir.m4 create mode 100644 gl/m4/mkdtemp.m4 create mode 100644 gl/m4/mkstemp.m4 create mode 100644 gl/m4/mmap-anon.m4 create mode 100644 gl/m4/mode_t.m4 create mode 100644 gl/m4/msvc-inval.m4 create mode 100644 gl/m4/msvc-nothrow.m4 create mode 100644 gl/m4/multiarch.m4 create mode 100644 gl/m4/nanosleep.m4 create mode 100644 gl/m4/nl_langinfo.m4 create mode 100644 gl/m4/nls.m4 create mode 100644 gl/m4/nocrash.m4 create mode 100644 gl/m4/nonblocking.m4 create mode 100644 gl/m4/off_t.m4 create mode 100644 gl/m4/open-cloexec.m4 create mode 100644 gl/m4/open-slash.m4 create mode 100644 gl/m4/open.m4 create mode 100644 gl/m4/openat.m4 create mode 100644 gl/m4/opendir.m4 create mode 100644 gl/m4/pathmax.m4 create mode 100644 gl/m4/pipe.m4 create mode 100644 gl/m4/po.m4 create mode 100644 gl/m4/printf-posix.m4 create mode 100644 gl/m4/printf.m4 create mode 100644 gl/m4/progtest.m4 create mode 100644 gl/m4/pselect.m4 create mode 100644 gl/m4/pthread_rwlock_rdlock.m4 create mode 100644 gl/m4/pthread_sigmask.m4 create mode 100644 gl/m4/raise.m4 create mode 100644 gl/m4/rawmemchr.m4 create mode 100644 gl/m4/readdir.m4 create mode 100644 gl/m4/readlink.m4 create mode 100644 gl/m4/readlinkat.m4 create mode 100644 gl/m4/realloc.m4 create mode 100644 gl/m4/reallocarray.m4 create mode 100644 gl/m4/regex.m4 create mode 100644 gl/m4/rename.m4 create mode 100644 gl/m4/renameat.m4 create mode 100644 gl/m4/rewinddir.m4 create mode 100644 gl/m4/rmdir.m4 create mode 100644 gl/m4/save-cwd.m4 create mode 100644 gl/m4/select.m4 create mode 100644 gl/m4/setenv.m4 create mode 100644 gl/m4/setlocale_null.m4 create mode 100644 gl/m4/sigaction.m4 create mode 100644 gl/m4/signal_h.m4 create mode 100644 gl/m4/signalblocking.m4 create mode 100644 gl/m4/sigpipe.m4 create mode 100644 gl/m4/size_max.m4 create mode 100644 gl/m4/sleep.m4 create mode 100644 gl/m4/socketlib.m4 create mode 100644 gl/m4/sockets.m4 create mode 100644 gl/m4/socklen.m4 create mode 100644 gl/m4/sockpfaf.m4 create mode 100644 gl/m4/ssize_t.m4 create mode 100644 gl/m4/stat-time.m4 create mode 100644 gl/m4/stat.m4 create mode 100644 gl/m4/stdalign.m4 create mode 100644 gl/m4/stdarg.m4 create mode 100644 gl/m4/stdbool.m4 create mode 100644 gl/m4/stddef_h.m4 create mode 100644 gl/m4/stdint.m4 create mode 100644 gl/m4/stdint_h.m4 create mode 100644 gl/m4/stdio_h.m4 create mode 100644 gl/m4/stdlib_h.m4 create mode 100644 gl/m4/stpcpy.m4 create mode 100644 gl/m4/strcase.m4 create mode 100644 gl/m4/strcasestr.m4 create mode 100644 gl/m4/strchrnul.m4 create mode 100644 gl/m4/strdup.m4 create mode 100644 gl/m4/strerror.m4 create mode 100644 gl/m4/string_h.m4 create mode 100644 gl/m4/strings_h.m4 create mode 100644 gl/m4/strndup.m4 create mode 100644 gl/m4/strnlen.m4 create mode 100644 gl/m4/strsep.m4 create mode 100644 gl/m4/sys_file_h.m4 create mode 100644 gl/m4/sys_ioctl_h.m4 create mode 100644 gl/m4/sys_random_h.m4 create mode 100644 gl/m4/sys_select_h.m4 create mode 100644 gl/m4/sys_socket_h.m4 create mode 100644 gl/m4/sys_stat_h.m4 create mode 100644 gl/m4/sys_time_h.m4 create mode 100644 gl/m4/sys_types_h.m4 create mode 100644 gl/m4/sys_uio_h.m4 create mode 100644 gl/m4/sysexits.m4 create mode 100644 gl/m4/tempname.m4 create mode 100644 gl/m4/termios_h.m4 create mode 100644 gl/m4/threadlib.m4 create mode 100644 gl/m4/time_h.m4 create mode 100644 gl/m4/timespec.m4 create mode 100644 gl/m4/uintmax_t.m4 create mode 100644 gl/m4/unistd-safer.m4 create mode 100644 gl/m4/unistd_h.m4 create mode 100644 gl/m4/unlink.m4 create mode 100644 gl/m4/unlinkat.m4 create mode 100644 gl/m4/utime.m4 create mode 100644 gl/m4/utime_h.m4 create mode 100644 gl/m4/utimens.m4 create mode 100644 gl/m4/utimes.m4 create mode 100644 gl/m4/vasnprintf.m4 create mode 100644 gl/m4/vasprintf.m4 create mode 100644 gl/m4/visibility.m4 create mode 100644 gl/m4/vsnprintf.m4 create mode 100644 gl/m4/warn-on-use.m4 create mode 100644 gl/m4/warnings.m4 create mode 100644 gl/m4/wchar_h.m4 create mode 100644 gl/m4/wchar_t.m4 create mode 100644 gl/m4/wcrtomb.m4 create mode 100644 gl/m4/wctype_h.m4 create mode 100644 gl/m4/wint_t.m4 create mode 100644 gl/m4/wmemchr.m4 create mode 100644 gl/m4/wmempcpy.m4 create mode 100644 gl/m4/xalloc.m4 create mode 100644 gl/m4/xgetcwd.m4 create mode 100644 gl/m4/xsize.m4 create mode 100644 gl/m4/xstrndup.m4 create mode 100644 gl/m4/xvasprintf.m4 create mode 100644 gl/m4/year2038.m4 create mode 100644 gl/m4/zzgnulib.m4 create mode 100644 gl/po/LINGUAS create mode 100644 gl/po/Makefile.in.in create mode 100644 gl/po/Makevars create mode 100644 gl/po/POTFILES.in create mode 100644 gl/po/Rules-quot create mode 100644 gl/po/af.gmo create mode 100644 gl/po/af.po create mode 100644 gl/po/be.gmo create mode 100644 gl/po/be.po create mode 100644 gl/po/bg.gmo create mode 100644 gl/po/bg.po create mode 100644 gl/po/boldquot.sed create mode 100644 gl/po/ca.gmo create mode 100644 gl/po/ca.po create mode 100644 gl/po/cs.gmo create mode 100644 gl/po/cs.po create mode 100644 gl/po/da.gmo create mode 100644 gl/po/da.po create mode 100644 gl/po/de.gmo create mode 100644 gl/po/de.po create mode 100644 gl/po/el.gmo create mode 100644 gl/po/el.po create mode 100644 gl/po/en@boldquot.header create mode 100644 gl/po/en@quot.header create mode 100644 gl/po/eo.gmo create mode 100644 gl/po/eo.po create mode 100644 gl/po/es.gmo create mode 100644 gl/po/es.po create mode 100644 gl/po/et.gmo create mode 100644 gl/po/et.po create mode 100644 gl/po/eu.gmo create mode 100644 gl/po/eu.po create mode 100644 gl/po/fi.gmo create mode 100644 gl/po/fi.po create mode 100644 gl/po/fr.gmo create mode 100644 gl/po/fr.po create mode 100644 gl/po/ga.gmo create mode 100644 gl/po/ga.po create mode 100644 gl/po/gl.gmo create mode 100644 gl/po/gl.po create mode 100644 gl/po/hu.gmo create mode 100644 gl/po/hu.po create mode 100644 gl/po/insert-header.sin create mode 100644 gl/po/it.gmo create mode 100644 gl/po/it.po create mode 100644 gl/po/ja.gmo create mode 100644 gl/po/ja.po create mode 100644 gl/po/ka.gmo create mode 100644 gl/po/ka.po create mode 100644 gl/po/ko.gmo create mode 100644 gl/po/ko.po create mode 100644 gl/po/man-db-gnulib.pot create mode 100644 gl/po/ms.gmo create mode 100644 gl/po/ms.po create mode 100644 gl/po/nb.gmo create mode 100644 gl/po/nb.po create mode 100644 gl/po/nl.gmo create mode 100644 gl/po/nl.po create mode 100644 gl/po/pl.gmo create mode 100644 gl/po/pl.po create mode 100644 gl/po/pt.gmo create mode 100644 gl/po/pt.po create mode 100644 gl/po/pt_BR.gmo create mode 100644 gl/po/pt_BR.po create mode 100644 gl/po/quot.sed create mode 100644 gl/po/remove-potcdate.sin create mode 100644 gl/po/ro.gmo create mode 100644 gl/po/ro.po create mode 100644 gl/po/ru.gmo create mode 100644 gl/po/ru.po create mode 100644 gl/po/rw.gmo create mode 100644 gl/po/rw.po create mode 100644 gl/po/sk.gmo create mode 100644 gl/po/sk.po create mode 100644 gl/po/sl.gmo create mode 100644 gl/po/sl.po create mode 100644 gl/po/sr.gmo create mode 100644 gl/po/sr.po create mode 100644 gl/po/stamp-po create mode 100644 gl/po/sv.gmo create mode 100644 gl/po/sv.po create mode 100644 gl/po/tr.gmo create mode 100644 gl/po/tr.po create mode 100644 gl/po/uk.gmo create mode 100644 gl/po/uk.po create mode 100644 gl/po/vi.gmo create mode 100644 gl/po/vi.po create mode 100644 gl/po/zh_CN.gmo create mode 100644 gl/po/zh_CN.po create mode 100644 gl/po/zh_TW.gmo create mode 100644 gl/po/zh_TW.po create mode 100644 include/manconfig.h create mode 100644 init/Makefile.am create mode 100644 init/Makefile.in create mode 100644 init/systemd/Makefile.am create mode 100644 init/systemd/Makefile.in create mode 100644 init/systemd/man-db.conf.in create mode 100644 init/systemd/man-db.service.in create mode 100644 init/systemd/man-db.timer create mode 100644 lib/Makefile.am create mode 100644 lib/Makefile.in create mode 100644 lib/README create mode 100644 lib/appendstr.c create mode 100644 lib/appendstr.h create mode 100644 lib/cleanup.c create mode 100644 lib/cleanup.h create mode 100644 lib/compression.c create mode 100644 lib/compression.h create mode 100644 lib/debug.c create mode 100644 lib/debug.h create mode 100644 lib/encodings.c create mode 100644 lib/encodings.h create mode 100644 lib/fatal.c create mode 100644 lib/fatal.h create mode 100644 lib/filenames.c create mode 100644 lib/filenames.h create mode 100644 lib/glcontainers.c create mode 100644 lib/glcontainers.h create mode 100644 lib/linelength.c create mode 100644 lib/linelength.h create mode 100644 lib/mp.h create mode 100644 lib/orderfiles.c create mode 100644 lib/orderfiles.h create mode 100644 lib/pathsearch.c create mode 100644 lib/pathsearch.h create mode 100644 lib/sandbox.c create mode 100644 lib/sandbox.h create mode 100644 lib/security.c create mode 100644 lib/security.h create mode 100644 lib/tempfile.c create mode 100644 lib/tempfile.h create mode 100644 lib/util.c create mode 100644 lib/util.h create mode 100644 lib/wordfnmatch.c create mode 100644 lib/wordfnmatch.h create mode 100644 lib/xregcomp.c create mode 100644 lib/xregcomp.h create mode 100644 libdb/Makefile.am create mode 100644 libdb/Makefile.in create mode 100644 libdb/README create mode 100644 libdb/db_btree.c create mode 100644 libdb/db_delete.c create mode 100644 libdb/db_gdbm.c create mode 100644 libdb/db_lookup.c create mode 100644 libdb/db_ndbm.c create mode 100644 libdb/db_storage.h create mode 100644 libdb/db_store.c create mode 100644 libdb/db_ver.c create mode 100644 libdb/db_xdbm.c create mode 100644 libdb/db_xdbm.h create mode 100644 libdb/mydbm.h create mode 100644 m4/man-arg-automatic-create.m4 create mode 100644 m4/man-arg-automatic-update.m4 create mode 100644 m4/man-arg-cache-owner.m4 create mode 100644 m4/man-arg-cats.m4 create mode 100644 m4/man-arg-config-file.m4 create mode 100644 m4/man-arg-db.m4 create mode 100644 m4/man-arg-device.m4 create mode 100644 m4/man-arg-mandirs.m4 create mode 100644 m4/man-arg-manual.m4 create mode 100644 m4/man-arg-override-dir.m4 create mode 100644 m4/man-arg-sections.m4 create mode 100644 m4/man-arg-setuid.m4 create mode 100644 m4/man-arg-snapdir.m4 create mode 100644 m4/man-arg-systemdsystemunitdir.m4 create mode 100644 m4/man-arg-systemdtmpfilesdir.m4 create mode 100644 m4/man-arg-undoc.m4 create mode 100644 m4/man-bdb.m4 create mode 100644 m4/man-check-progs.m4 create mode 100644 m4/man-compress-lib.m4 create mode 100644 m4/man-gnu-nroff.m4 create mode 100644 m4/man-heirloom-nroff.m4 create mode 100644 m4/man-libseccomp.m4 create mode 100644 m4/man-linguas.m4 create mode 100644 m4/man-po4a.m4 create mode 100644 m4/man-tar-sort-name.m4 create mode 100644 m4/man-trans-subst.m4 create mode 100644 man/LINGUAS create mode 100644 man/LINGUAS.po4a create mode 100644 man/Makefile.am create mode 100644 man/Makefile.in create mode 100644 man/Rules.man create mode 100644 man/THANKS create mode 100755 man/check-man create mode 100644 man/da/Makefile.am create mode 100644 man/da/Makefile.in create mode 100644 man/da/translator.add create mode 100644 man/de/Makefile.am create mode 100644 man/de/Makefile.in create mode 100644 man/de/translator.add create mode 100644 man/es/Makefile.am create mode 100644 man/es/Makefile.in create mode 100644 man/es/translator.add create mode 100644 man/fr/Makefile.am create mode 100644 man/fr/Makefile.in create mode 100644 man/fr/translator.add create mode 100644 man/id/Makefile.am create mode 100644 man/id/Makefile.in create mode 100644 man/id/translator.add create mode 100644 man/it/Makefile.am create mode 100644 man/it/Makefile.in create mode 100644 man/it/man1/apropos.man1 create mode 100644 man/it/man1/man.man1 create mode 100644 man/it/man1/manpath.man1 create mode 100644 man/it/man1/whatis.man1 create mode 100644 man/it/man1/zsoelim.man1 create mode 100644 man/it/man5/manpath.man5 create mode 100644 man/it/man8/accessdb.man8 create mode 100644 man/it/man8/catman.man8 create mode 100644 man/it/man8/mandb.man8 create mode 100644 man/ja/Makefile.am create mode 100644 man/ja/Makefile.in create mode 100644 man/ja/translator.add create mode 100644 man/ko/Makefile.am create mode 100644 man/ko/Makefile.in create mode 100644 man/ko/translator.add create mode 100644 man/man1/apropos.man1 create mode 100644 man/man1/lexgrog.man1 create mode 100644 man/man1/man-recode.man1 create mode 100644 man/man1/man.man1 create mode 100644 man/man1/manconv.man1 create mode 100644 man/man1/manpath.man1 create mode 100644 man/man1/whatis.man1 create mode 100644 man/man1/zsoelim.man1 create mode 100644 man/man5/manpath.man5 create mode 100644 man/man8/accessdb.man8 create mode 100644 man/man8/catman.man8 create mode 100644 man/man8/mandb.man8 create mode 100644 man/nl/Makefile.am create mode 100644 man/nl/Makefile.in create mode 100644 man/nl/translator.add create mode 100644 man/pl/Makefile.am create mode 100644 man/pl/Makefile.in create mode 100644 man/pl/translator.add create mode 100644 man/po4a/Locale/Po4a/Manext.pm create mode 100644 man/po4a/Makefile.am create mode 100644 man/po4a/Makefile.in create mode 100644 man/po4a/po/da.po create mode 100644 man/po4a/po/de.po create mode 100644 man/po4a/po/es.po create mode 100644 man/po4a/po/fr.po create mode 100644 man/po4a/po/id.po create mode 100644 man/po4a/po/ja.po create mode 100644 man/po4a/po/ko.po create mode 100644 man/po4a/po/man-db-manpages.pot create mode 100644 man/po4a/po/nl.po create mode 100644 man/po4a/po/pl.po create mode 100644 man/po4a/po/pt.po create mode 100644 man/po4a/po/pt_BR.po create mode 100644 man/po4a/po/ro.po create mode 100644 man/po4a/po/ru.po create mode 100644 man/po4a/po/sr.po create mode 100644 man/po4a/po/sv.po create mode 100644 man/po4a/po/tr.po create mode 100644 man/po4a/po/zh_CN.po create mode 100644 man/po4a/po4a.cfg create mode 100644 man/pt/Makefile.am create mode 100644 man/pt/Makefile.in create mode 100644 man/pt/translator.add create mode 100644 man/pt_BR/Makefile.am create mode 100644 man/pt_BR/Makefile.in create mode 100644 man/pt_BR/translator.add create mode 100644 man/replace.sin.in create mode 100644 man/ro/Makefile.am create mode 100644 man/ro/Makefile.in create mode 100644 man/ro/translator.add create mode 100644 man/ru/Makefile.am create mode 100644 man/ru/Makefile.in create mode 100644 man/ru/translator.add create mode 100644 man/sr/Makefile.am create mode 100644 man/sr/Makefile.in create mode 100644 man/sr/translator.add create mode 100644 man/sv/Makefile.am create mode 100644 man/sv/Makefile.in create mode 100644 man/sv/translator.add create mode 100644 man/tr/Makefile.am create mode 100644 man/tr/Makefile.in create mode 100644 man/tr/translator.add create mode 100644 man/zh_CN/Makefile.am create mode 100644 man/zh_CN/Makefile.in create mode 100644 man/zh_CN/translator.add create mode 100644 manual/Makefile.am create mode 100644 manual/Makefile.in create mode 100644 manual/README create mode 100644 manual/comp.me create mode 100644 manual/db.me create mode 100644 manual/files.me create mode 100644 manual/format.me create mode 100644 manual/glossary.me create mode 100644 manual/intro.me create mode 100644 manual/leader.me create mode 100644 manual/man_db.me create mode 100644 manual/misc.me create mode 100644 manual/options-only.me create mode 100755 manual/print-options create mode 100644 manual/sec.me create mode 100644 patches/argp-domain.patch create mode 100644 po/LINGUAS create mode 100644 po/Makefile.in.in create mode 100644 po/Makevars create mode 100644 po/POTFILES.in create mode 100644 po/Rules-quot create mode 100644 po/ast.gmo create mode 100644 po/ast.po create mode 100644 po/boldquot.sed create mode 100644 po/ca.gmo create mode 100644 po/ca.po create mode 100644 po/cs.gmo create mode 100644 po/cs.po create mode 100644 po/da.gmo create mode 100644 po/da.po create mode 100644 po/de.gmo create mode 100644 po/de.po create mode 100644 po/en@boldquot.header create mode 100644 po/en@quot.header create mode 100644 po/eo.gmo create mode 100644 po/eo.po create mode 100644 po/es.gmo create mode 100644 po/es.po create mode 100644 po/fi.gmo create mode 100644 po/fi.po create mode 100644 po/fr.gmo create mode 100644 po/fr.po create mode 100644 po/id.gmo create mode 100644 po/id.po create mode 100644 po/insert-header.sin create mode 100644 po/it.gmo create mode 100644 po/it.po create mode 100644 po/ja.gmo create mode 100644 po/ja.po create mode 100644 po/ko.gmo create mode 100644 po/ko.po create mode 100644 po/man-db.pot create mode 100644 po/nl.gmo create mode 100644 po/nl.po create mode 100644 po/pl.gmo create mode 100644 po/pl.po create mode 100644 po/pt.gmo create mode 100644 po/pt.po create mode 100644 po/pt_BR.gmo create mode 100644 po/pt_BR.po create mode 100644 po/quot.sed create mode 100644 po/remove-potcdate.sin create mode 100644 po/ro.gmo create mode 100644 po/ro.po create mode 100644 po/ru.gmo create mode 100644 po/ru.po create mode 100644 po/sr.gmo create mode 100644 po/sr.po create mode 100644 po/stamp-po create mode 100644 po/sv.gmo create mode 100644 po/sv.po create mode 100644 po/tr.gmo create mode 100644 po/tr.po create mode 100644 po/vi.gmo create mode 100644 po/vi.po create mode 100644 po/zh_CN.gmo create mode 100644 po/zh_CN.po create mode 100644 po/zh_TW.gmo create mode 100644 po/zh_TW.po create mode 100644 src/Makefile.am create mode 100644 src/Makefile.in create mode 100644 src/accessdb.c create mode 100644 src/catman.c create mode 100644 src/check_mandirs.c create mode 100644 src/check_mandirs.h create mode 100644 src/convert.c create mode 100644 src/convert.h create mode 100644 src/decompress.c create mode 100644 src/decompress.h create mode 100644 src/descriptions.c create mode 100644 src/descriptions.h create mode 100644 src/descriptions_store.c create mode 100644 src/globbing.c create mode 100644 src/globbing.h create mode 100644 src/globbing_test.c create mode 100644 src/lexgrog.c create mode 100644 src/lexgrog.h create mode 100644 src/lexgrog.l create mode 100644 src/lexgrog_test.c create mode 100644 src/man-recode.c create mode 100644 src/man.c create mode 100644 src/man_db.conf.in create mode 100644 src/manconv.c create mode 100644 src/manconv.h create mode 100644 src/manconv_client.c create mode 100644 src/manconv_client.h create mode 100644 src/manconv_main.c create mode 100644 src/mandb.c create mode 100644 src/manp.c create mode 100644 src/manp.h create mode 100644 src/manpath.c create mode 100644 src/straycats.c create mode 100644 src/straycats.h create mode 100644 src/tests/Makefile.am create mode 100644 src/tests/Makefile.in create mode 100644 src/tests/fspause.c create mode 100644 src/tests/get-mtime.c create mode 100644 src/tests/lexgrog-backslash-dash-rhs create mode 100755 src/tests/lexgrog-basic create mode 100755 src/tests/lexgrog-multiple-whatis create mode 100755 src/tests/man-deleted-directory create mode 100755 src/tests/man-exact-section-matches create mode 100755 src/tests/man-executable-page-on-path create mode 100755 src/tests/man-invalid-db-entry create mode 100755 src/tests/man-language-specific-requests create mode 100755 src/tests/man-mandatory-manpath create mode 100755 src/tests/man-missing-locales create mode 100755 src/tests/man-override-dir create mode 100755 src/tests/man-recode-in-place create mode 100755 src/tests/man-recode-suffix create mode 100755 src/tests/man-so-links-same-section create mode 100755 src/tests/man-suffixed-extension create mode 100755 src/tests/man-symlinks-with-matching-names create mode 100755 src/tests/manconv-coding-tags create mode 100755 src/tests/manconv-guess-from-encoding create mode 100755 src/tests/manconv-incomplete-char-at-eof create mode 100755 src/tests/manconv-odd-combinations create mode 100755 src/tests/mandb-basic create mode 100755 src/tests/mandb-bogus-symlink create mode 100755 src/tests/mandb-cachedir-tag create mode 100755 src/tests/mandb-empty-page create mode 100755 src/tests/mandb-purge-updates-timestamp create mode 100755 src/tests/mandb-regular-file-symlink-changes create mode 100755 src/tests/mandb-symlink-beats-whatis-ref create mode 100755 src/tests/mandb-symlink-target-timestamp create mode 100755 src/tests/mandb-whatis-broken-link-changes create mode 100644 src/tests/testlib.sh create mode 100755 src/tests/whatis-path-to-executable create mode 100755 src/tests/zsoelim-so-includes create mode 100644 src/ult_src.c create mode 100644 src/ult_src.h create mode 100644 src/utf8.c create mode 100644 src/utf8.h create mode 100644 src/whatis.c create mode 100644 src/zsoelim.c create mode 100644 src/zsoelim.h create mode 100644 src/zsoelim.l create mode 100644 src/zsoelim_main.c create mode 100644 tools/Makefile.am create mode 100644 tools/Makefile.in create mode 100644 tools/README create mode 100755 tools/chconfig create mode 100755 tools/checkman create mode 100644 tools/mandb_fmt-script create mode 100755 tools/mkcatdirs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..40eed81 --- /dev/null +++ b/.gitignore @@ -0,0 +1,136 @@ +**/*.a +**/*.la +**/*.lo +**/*.o +**/*.so +**/*~ +**/.libs +**/Makefile +**/Makefile.in +/ABOUT-NLS +/aclocal.m4 +/autom4te.cache +/build-aux +/config.h +/config.h.in +/config.log +/config.status +/config.status.lineno +/configure +/gl +/gnulib +/libtool +/stamp-h* +docs/INSTALL.autoconf +init/systemd/man-db.conf +init/systemd/man-db.service +lib/.deps +libdb/.deps +man/replace.sin +man/replace.sed +man/man1/*.1 +man/man5/*.5 +man/man8/*.8 +man/*/replace.sed +man/*/man1/*.1 +man/*/man5/*.5 +man/*/man8/*.8 +man/**/*.log +man/**/*.trs +man/da/man1 +man/da/man5 +man/da/man8 +man/de/man1 +man/de/man5 +man/de/man8 +man/es/man1 +man/es/man5 +man/es/man8 +man/fr/man1 +man/fr/man5 +man/fr/man8 +man/id/man1 +man/id/man5 +man/id/man8 +man/ja/man1 +man/ja/man5 +man/ja/man8 +man/ko/man1 +man/ko/man5 +man/ko/man8 +man/nl/man1 +man/nl/man5 +man/nl/man8 +man/pl/man1 +man/pl/man5 +man/pl/man8 +man/pt/man1 +man/pt/man5 +man/pt/man8 +man/pt_BR/man1 +man/pt_BR/man5 +man/pt_BR/man8 +man/ro/man1 +man/ro/man5 +man/ro/man8 +man/ru/man1 +man/ru/man5 +man/ru/man8 +man/sr/man1 +man/sr/man5 +man/sr/man8 +man/sv/man1 +man/sv/man5 +man/sv/man8 +man/tr/man1 +man/tr/man5 +man/tr/man8 +man/zh_CN/man1 +man/zh_CN/man5 +man/zh_CN/man8 +manual/man_db.cat +manual/man_db.dvi +manual/man_db.html +manual/man_db.pp +manual/man_db.ps +manual/man_db.tps +manual/version +po/ChangeLog +po/Makefile.in.in +po/Makevars +po/Makevars.template +po/POTFILES +po/Rules-quot +po/boldquot.sed +po/en@boldquot.header +po/en@quot.header +po/insert-header.sin +po/messages.mo +po/quot.sed +po/remove-potcdate.sed +po/remove-potcdate.sin +po/stamp-po +po/*.gmo +src/.deps +src/accessdb +src/apropos +src/catman +src/globbing +src/lexgrog +src/lexgrog.c +src/man +src/man-recode +src/man_db.conf +src/manconv +src/mandb +src/manpath +src/whatis +src/wrapper +src/zsoelim +src/zsoelim.c +src/tests/.deps +src/tests/*.log +src/tests/*.trs +src/tests/fspause +src/tests/get-mtime +src/tests/tmp-* diff --git a/ABOUT-NLS b/ABOUT-NLS new file mode 100644 index 0000000..b1de1b6 --- /dev/null +++ b/ABOUT-NLS @@ -0,0 +1,1282 @@ +1 Notes on the Free Translation Project +*************************************** + +Free software is going international! The Free Translation Project is +a way to get maintainers of free software, translators, and users all +together, so that free software will gradually become able to speak many +languages. A few packages already provide translations for their +messages. + + If you found this `ABOUT-NLS' file inside a distribution, you may +assume that the distributed package does use GNU `gettext' internally, +itself available at your nearest GNU archive site. But you do _not_ +need to install GNU `gettext' prior to configuring, installing or using +this package with messages translated. + + Installers will find here some useful hints. These notes also +explain how users should proceed for getting the programs to use the +available translations. They tell how people wanting to contribute and +work on translations can contact the appropriate team. + +1.1 INSTALL Matters +=================== + +Some packages are "localizable" when properly installed; the programs +they contain can be made to speak your own native language. Most such +packages use GNU `gettext'. Other packages have their own ways to +internationalization, predating GNU `gettext'. + + By default, this package will be installed to allow translation of +messages. It will automatically detect whether the system already +provides the GNU `gettext' functions. Installers may use special +options at configuration time for changing the default behaviour. The +command: + + ./configure --disable-nls + +will _totally_ disable translation of messages. + + When you already have GNU `gettext' installed on your system and run +configure without an option for your new package, `configure' will +probably detect the previously built and installed `libintl' library +and will decide to use it. If not, you may have to to use the +`--with-libintl-prefix' option to tell `configure' where to look for it. + + Internationalized packages usually have many `po/LL.po' files, where +LL gives an ISO 639 two-letter code identifying the language. Unless +translations have been forbidden at `configure' time by using the +`--disable-nls' switch, all available translations are installed +together with the package. However, the environment variable `LINGUAS' +may be set, prior to configuration, to limit the installed set. +`LINGUAS' should then contain a space separated list of two-letter +codes, stating which languages are allowed. + +1.2 Using This Package +====================== + +As a user, if your language has been installed for this package, you +only have to set the `LANG' environment variable to the appropriate +`LL_CC' combination. If you happen to have the `LC_ALL' or some other +`LC_xxx' environment variables set, you should unset them before +setting `LANG', otherwise the setting of `LANG' will not have the +desired effect. Here `LL' is an ISO 639 two-letter language code, and +`CC' is an ISO 3166 two-letter country code. For example, let's +suppose that you speak German and live in Germany. At the shell +prompt, merely execute `setenv LANG de_DE' (in `csh'), +`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). +This can be done from your `.login' or `.profile' file, once and for +all. + + You might think that the country code specification is redundant. +But in fact, some languages have dialects in different countries. For +example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The +country code serves to distinguish the dialects. + + The locale naming convention of `LL_CC', with `LL' denoting the +language and `CC' denoting the country, is the one use on systems based +on GNU libc. On other systems, some variations of this scheme are +used, such as `LL' or `LL_CC.ENCODING'. You can get the list of +locales supported by your system for your language by running the +command `locale -a | grep '^LL''. + + Not all programs have translations for all languages. By default, an +English message is shown in place of a nonexistent translation. If you +understand other languages, you can set up a priority list of languages. +This is done through a different environment variable, called +`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' +for the purpose of message handling, but you still need to have `LANG' +set to the primary language; this is required by other parts of the +system libraries. For example, some Swedish users who would rather +read translations in German than English for when Swedish is not +available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. + + Special advice for Norwegian users: The language code for Norwegian +bokma*l changed from `no' to `nb' recently (in 2003). During the +transition period, while some message catalogs for this language are +installed under `nb' and some older ones under `no', it's recommended +for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and +older translations are used. + + In the `LANGUAGE' environment variable, but not in the `LANG' +environment variable, `LL_CC' combinations can be abbreviated as `LL' +to denote the language's main dialect. For example, `de' is equivalent +to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' +(Portuguese as spoken in Portugal) in this context. + +1.3 Translating Teams +===================== + +For the Free Translation Project to be a success, we need interested +people who like their own language and write it well, and who are also +able to synergize with other translators speaking the same language. +Each translation team has its own mailing list. The up-to-date list of +teams can be found at the Free Translation Project's homepage, +`http://translationproject.org/', in the "Teams" area. + + If you'd like to volunteer to _work_ at translating messages, you +should become a member of the translating team for your own language. +The subscribing address is _not_ the same as the list itself, it has +`-request' appended. For example, speakers of Swedish can send a +message to `sv-request@li.org', having this message body: + + subscribe + + Keep in mind that team members are expected to participate +_actively_ in translations, or at solving translational difficulties, +rather than merely lurking around. If your team does not exist yet and +you want to start one, or if you are unsure about what to do or how to +get started, please write to `coordinator@translationproject.org' to +reach the coordinator for all translator teams. + + The English team is special. It works at improving and uniformizing +the terminology in use. Proven linguistic skills are praised more than +programming skills, here. + +1.4 Available Packages +====================== + +Languages are not equally supported in all packages. The following +matrix shows the current state of internationalization, as of June +2010. The matrix shows, in regard of each package, for which languages +PO files have been submitted to translation coordination, with a +translation percentage of at least 50%. + + Ready PO files af am an ar as ast az be be@latin bg bn_IN bs ca + +--------------------------------------------------+ + a2ps | [] [] | + aegis | | + ant-phone | | + anubis | | + aspell | [] [] | + bash | | + bfd | | + bibshelf | [] | + binutils | | + bison | | + bison-runtime | [] | + bluez-pin | [] [] | + bombono-dvd | | + buzztard | | + cflow | | + clisp | | + coreutils | [] [] | + cpio | | + cppi | | + cpplib | [] | + cryptsetup | | + dfarc | | + dialog | [] [] | + dico | | + diffutils | [] | + dink | | + doodle | | + e2fsprogs | [] | + enscript | [] | + exif | | + fetchmail | [] | + findutils | [] | + flex | [] | + freedink | | + gas | | + gawk | [] [] | + gcal | [] | + gcc | | + gettext-examples | [] [] [] [] | + gettext-runtime | [] [] | + gettext-tools | [] [] | + gip | [] | + gjay | | + gliv | [] | + glunarclock | [] [] | + gnubiff | | + gnucash | [] | + gnuedu | | + gnulib | | + gnunet | | + gnunet-gtk | | + gnutls | | + gold | | + gpe-aerial | | + gpe-beam | | + gpe-bluetooth | | + gpe-calendar | | + gpe-clock | [] | + gpe-conf | | + gpe-contacts | | + gpe-edit | | + gpe-filemanager | | + gpe-go | | + gpe-login | | + gpe-ownerinfo | [] | + gpe-package | | + gpe-sketchbook | | + gpe-su | [] | + gpe-taskmanager | [] | + gpe-timesheet | [] | + gpe-today | [] | + gpe-todo | | + gphoto2 | | + gprof | [] | + gpsdrive | | + gramadoir | | + grep | | + grub | [] [] | + gsasl | | + gss | | + gst-plugins-bad | [] | + gst-plugins-base | [] | + gst-plugins-good | [] | + gst-plugins-ugly | [] | + gstreamer | [] [] [] | + gtick | | + gtkam | [] | + gtkorphan | [] | + gtkspell | [] [] [] | + gutenprint | | + hello | [] | + help2man | | + hylafax | | + idutils | | + indent | [] [] | + iso_15924 | | + iso_3166 | [] [] [] [] [] [] [] | + iso_3166_2 | | + iso_4217 | | + iso_639 | [] [] [] [] | + iso_639_3 | | + jwhois | | + kbd | | + keytouch | [] | + keytouch-editor | | + keytouch-keyboa... | [] | + klavaro | [] | + latrine | | + ld | [] | + leafpad | [] [] | + libc | [] [] | + libexif | () | + libextractor | | + libgnutls | | + libgpewidget | | + libgpg-error | | + libgphoto2 | | + libgphoto2_port | | + libgsasl | | + libiconv | [] | + libidn | | + lifelines | | + liferea | [] [] | + lilypond | | + linkdr | [] | + lordsawar | | + lprng | | + lynx | [] | + m4 | | + mailfromd | | + mailutils | | + make | | + man-db | | + man-db-manpages | | + minicom | | + mkisofs | | + myserver | | + nano | [] [] | + opcodes | | + parted | | + pies | | + popt | | + psmisc | | + pspp | [] | + pwdutils | | + radius | [] | + recode | [] [] | + rosegarden | | + rpm | | + rush | | + sarg | | + screem | | + scrollkeeper | [] [] [] | + sed | [] [] | + sharutils | [] [] | + shishi | | + skencil | | + solfege | | + solfege-manual | | + soundtracker | | + sp | | + sysstat | | + tar | [] | + texinfo | | + tin | | + unicode-han-tra... | | + unicode-transla... | | + util-linux-ng | [] | + vice | | + vmm | | + vorbis-tools | | + wastesedge | | + wdiff | | + wget | [] [] | + wyslij-po | | + xchat | [] [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] | + +--------------------------------------------------+ + af am an ar as ast az be be@latin bg bn_IN bs ca + 6 0 1 2 3 19 1 10 3 28 3 1 38 + + crh cs da de el en en_GB en_ZA eo es et eu fa + +-------------------------------------------------+ + a2ps | [] [] [] [] [] [] [] | + aegis | [] [] [] | + ant-phone | [] () | + anubis | [] [] | + aspell | [] [] [] [] [] | + bash | [] [] [] | + bfd | [] | + bibshelf | [] [] [] | + binutils | [] | + bison | [] [] | + bison-runtime | [] [] [] [] | + bluez-pin | [] [] [] [] [] [] | + bombono-dvd | [] | + buzztard | [] [] [] | + cflow | [] [] | + clisp | [] [] [] [] | + coreutils | [] [] [] [] | + cpio | | + cppi | | + cpplib | [] [] [] | + cryptsetup | [] | + dfarc | [] [] [] | + dialog | [] [] [] [] [] | + dico | | + diffutils | [] [] [] [] [] [] | + dink | [] [] [] | + doodle | [] | + e2fsprogs | [] [] [] | + enscript | [] [] [] | + exif | () [] [] | + fetchmail | [] [] () [] [] [] | + findutils | [] [] [] | + flex | [] [] | + freedink | [] [] [] | + gas | [] | + gawk | [] [] [] | + gcal | [] | + gcc | [] [] | + gettext-examples | [] [] [] [] | + gettext-runtime | [] [] [] [] | + gettext-tools | [] [] [] | + gip | [] [] [] [] | + gjay | [] | + gliv | [] [] [] | + glunarclock | [] [] | + gnubiff | () | + gnucash | [] () () () () | + gnuedu | [] [] | + gnulib | [] [] | + gnunet | | + gnunet-gtk | [] | + gnutls | [] [] | + gold | [] | + gpe-aerial | [] [] [] [] | + gpe-beam | [] [] [] [] | + gpe-bluetooth | [] [] | + gpe-calendar | [] | + gpe-clock | [] [] [] [] | + gpe-conf | [] [] [] | + gpe-contacts | [] [] [] | + gpe-edit | [] [] | + gpe-filemanager | [] [] [] | + gpe-go | [] [] [] [] | + gpe-login | [] [] | + gpe-ownerinfo | [] [] [] [] | + gpe-package | [] [] [] | + gpe-sketchbook | [] [] [] [] | + gpe-su | [] [] [] [] | + gpe-taskmanager | [] [] [] [] | + gpe-timesheet | [] [] [] [] | + gpe-today | [] [] [] [] | + gpe-todo | [] [] [] | + gphoto2 | [] [] () [] [] [] | + gprof | [] [] [] | + gpsdrive | [] [] [] | + gramadoir | [] [] [] | + grep | [] | + grub | [] [] | + gsasl | [] | + gss | | + gst-plugins-bad | [] [] [] [] [] | + gst-plugins-base | [] [] [] [] [] | + gst-plugins-good | [] [] [] [] [] [] | + gst-plugins-ugly | [] [] [] [] [] [] | + gstreamer | [] [] [] [] [] | + gtick | [] () [] | + gtkam | [] [] () [] [] | + gtkorphan | [] [] [] [] | + gtkspell | [] [] [] [] [] [] [] | + gutenprint | [] [] [] | + hello | [] [] [] [] | + help2man | [] | + hylafax | [] [] | + idutils | [] [] | + indent | [] [] [] [] [] [] [] | + iso_15924 | [] () [] [] | + iso_3166 | [] [] [] [] () [] [] [] () | + iso_3166_2 | () | + iso_4217 | [] [] [] () [] [] | + iso_639 | [] [] [] [] () [] [] | + iso_639_3 | [] | + jwhois | [] | + kbd | [] [] [] [] [] | + keytouch | [] [] | + keytouch-editor | [] [] | + keytouch-keyboa... | [] | + klavaro | [] [] [] [] | + latrine | [] () | + ld | [] [] | + leafpad | [] [] [] [] [] [] | + libc | [] [] [] [] | + libexif | [] [] () | + libextractor | | + libgnutls | [] | + libgpewidget | [] [] | + libgpg-error | [] [] | + libgphoto2 | [] () | + libgphoto2_port | [] () [] | + libgsasl | | + libiconv | [] [] [] [] [] | + libidn | [] [] [] | + lifelines | [] () | + liferea | [] [] [] [] [] | + lilypond | [] [] [] | + linkdr | [] [] [] | + lordsawar | [] | + lprng | | + lynx | [] [] [] [] | + m4 | [] [] [] [] | + mailfromd | | + mailutils | [] | + make | [] [] [] | + man-db | | + man-db-manpages | | + minicom | [] [] [] [] | + mkisofs | | + myserver | | + nano | [] [] [] | + opcodes | [] [] | + parted | [] [] | + pies | | + popt | [] [] [] [] [] | + psmisc | [] [] [] | + pspp | [] | + pwdutils | [] | + radius | [] | + recode | [] [] [] [] [] [] | + rosegarden | () () () | + rpm | [] [] [] | + rush | | + sarg | | + screem | | + scrollkeeper | [] [] [] [] [] | + sed | [] [] [] [] [] [] | + sharutils | [] [] [] [] | + shishi | | + skencil | [] () [] | + solfege | [] [] [] | + solfege-manual | [] [] | + soundtracker | [] [] [] | + sp | [] | + sysstat | [] [] [] | + tar | [] [] [] [] | + texinfo | [] [] [] | + tin | [] [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux-ng | [] [] [] [] | + vice | () () | + vmm | [] | + vorbis-tools | [] [] | + wastesedge | [] | + wdiff | [] [] | + wget | [] [] [] | + wyslij-po | | + xchat | [] [] [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] [] [] [] | + +-------------------------------------------------+ + crh cs da de el en en_GB en_ZA eo es et eu fa + 5 64 105 117 18 1 8 0 28 89 18 19 0 + + fi fr ga gl gu he hi hr hu hy id is it ja ka kn + +----------------------------------------------------+ + a2ps | [] [] [] [] | + aegis | [] [] | + ant-phone | [] [] | + anubis | [] [] [] [] | + aspell | [] [] [] [] | + bash | [] [] [] [] | + bfd | [] [] [] | + bibshelf | [] [] [] [] [] | + binutils | [] [] [] | + bison | [] [] [] [] | + bison-runtime | [] [] [] [] [] [] | + bluez-pin | [] [] [] [] [] [] [] [] | + bombono-dvd | [] | + buzztard | [] | + cflow | [] [] [] | + clisp | [] | + coreutils | [] [] [] [] [] | + cpio | [] [] [] [] | + cppi | [] [] | + cpplib | [] [] [] | + cryptsetup | [] [] [] | + dfarc | [] [] [] | + dialog | [] [] [] [] [] [] [] | + dico | | + diffutils | [] [] [] [] [] [] [] [] [] | + dink | [] | + doodle | [] [] | + e2fsprogs | [] [] | + enscript | [] [] [] [] | + exif | [] [] [] [] [] [] | + fetchmail | [] [] [] [] | + findutils | [] [] [] [] [] [] | + flex | [] [] [] | + freedink | [] [] [] | + gas | [] [] | + gawk | [] [] [] [] () [] | + gcal | [] | + gcc | [] | + gettext-examples | [] [] [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] [] | + gettext-tools | [] [] [] [] | + gip | [] [] [] [] [] [] | + gjay | [] | + gliv | [] () | + glunarclock | [] [] [] [] | + gnubiff | () [] () | + gnucash | () () () () () [] | + gnuedu | [] [] | + gnulib | [] [] [] [] [] [] | + gnunet | | + gnunet-gtk | [] | + gnutls | [] [] | + gold | [] [] | + gpe-aerial | [] [] [] | + gpe-beam | [] [] [] [] | + gpe-bluetooth | [] [] [] [] | + gpe-calendar | [] [] | + gpe-clock | [] [] [] [] [] | + gpe-conf | [] [] [] [] | + gpe-contacts | [] [] [] [] | + gpe-edit | [] [] [] | + gpe-filemanager | [] [] [] [] | + gpe-go | [] [] [] [] [] | + gpe-login | [] [] [] | + gpe-ownerinfo | [] [] [] [] [] | + gpe-package | [] [] [] | + gpe-sketchbook | [] [] [] [] | + gpe-su | [] [] [] [] [] [] | + gpe-taskmanager | [] [] [] [] [] | + gpe-timesheet | [] [] [] [] [] | + gpe-today | [] [] [] [] [] [] [] | + gpe-todo | [] [] [] | + gphoto2 | [] [] [] [] [] [] | + gprof | [] [] [] [] | + gpsdrive | [] [] [] | + gramadoir | [] [] [] | + grep | [] [] | + grub | [] [] [] [] | + gsasl | [] [] [] [] [] | + gss | [] [] [] [] [] | + gst-plugins-bad | [] [] [] [] [] [] | + gst-plugins-base | [] [] [] [] [] [] | + gst-plugins-good | [] [] [] [] [] [] | + gst-plugins-ugly | [] [] [] [] [] [] | + gstreamer | [] [] [] [] [] | + gtick | [] [] [] [] [] | + gtkam | [] [] [] [] [] | + gtkorphan | [] [] [] | + gtkspell | [] [] [] [] [] [] [] [] [] | + gutenprint | [] [] [] [] | + hello | [] [] [] | + help2man | [] [] | + hylafax | [] | + idutils | [] [] [] [] [] [] | + indent | [] [] [] [] [] [] [] [] | + iso_15924 | [] () [] [] | + iso_3166 | [] () [] [] [] [] [] [] [] [] [] [] | + iso_3166_2 | () [] [] [] | + iso_4217 | [] () [] [] [] [] | + iso_639 | [] () [] [] [] [] [] [] [] | + iso_639_3 | () [] [] | + jwhois | [] [] [] [] [] | + kbd | [] [] | + keytouch | [] [] [] [] [] [] | + keytouch-editor | [] [] [] [] [] | + keytouch-keyboa... | [] [] [] [] [] | + klavaro | [] [] | + latrine | [] [] [] | + ld | [] [] [] [] | + leafpad | [] [] [] [] [] [] [] () | + libc | [] [] [] [] [] | + libexif | [] | + libextractor | | + libgnutls | [] [] | + libgpewidget | [] [] [] [] | + libgpg-error | [] [] | + libgphoto2 | [] [] [] | + libgphoto2_port | [] [] [] | + libgsasl | [] [] [] [] [] | + libiconv | [] [] [] [] [] [] | + libidn | [] [] [] [] | + lifelines | () | + liferea | [] [] [] [] | + lilypond | [] [] | + linkdr | [] [] [] [] [] | + lordsawar | | + lprng | [] | + lynx | [] [] [] [] [] | + m4 | [] [] [] [] [] [] | + mailfromd | | + mailutils | [] [] | + make | [] [] [] [] [] [] [] [] [] | + man-db | [] [] | + man-db-manpages | [] | + minicom | [] [] [] [] [] | + mkisofs | [] [] [] [] | + myserver | | + nano | [] [] [] [] [] [] | + opcodes | [] [] [] [] | + parted | [] [] [] [] | + pies | | + popt | [] [] [] [] [] [] [] [] [] | + psmisc | [] [] [] | + pspp | | + pwdutils | [] [] | + radius | [] [] | + recode | [] [] [] [] [] [] [] [] | + rosegarden | () () () () () | + rpm | [] [] | + rush | | + sarg | [] | + screem | [] [] | + scrollkeeper | [] [] [] [] | + sed | [] [] [] [] [] [] [] [] | + sharutils | [] [] [] [] [] [] [] | + shishi | [] | + skencil | [] | + solfege | [] [] [] [] | + solfege-manual | [] [] | + soundtracker | [] [] | + sp | [] () | + sysstat | [] [] [] [] [] | + tar | [] [] [] [] [] [] [] | + texinfo | [] [] [] [] | + tin | [] | + unicode-han-tra... | | + unicode-transla... | [] [] | + util-linux-ng | [] [] [] [] [] [] | + vice | () () () | + vmm | [] | + vorbis-tools | [] | + wastesedge | () () | + wdiff | [] | + wget | [] [] [] [] [] [] [] [] | + wyslij-po | [] [] [] | + xchat | [] [] [] [] [] [] [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] [] [] | + +----------------------------------------------------+ + fi fr ga gl gu he hi hr hu hy id is it ja ka kn + 105 121 53 20 4 8 3 5 53 2 120 5 84 67 0 4 + + ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne + +-----------------------------------------------+ + a2ps | [] | + aegis | | + ant-phone | | + anubis | [] [] | + aspell | [] | + bash | | + bfd | | + bibshelf | [] [] | + binutils | | + bison | [] | + bison-runtime | [] [] [] [] [] | + bluez-pin | [] [] [] [] [] | + bombono-dvd | | + buzztard | | + cflow | | + clisp | | + coreutils | [] | + cpio | | + cppi | | + cpplib | | + cryptsetup | | + dfarc | [] | + dialog | [] [] [] [] [] | + dico | | + diffutils | [] [] | + dink | | + doodle | | + e2fsprogs | | + enscript | | + exif | [] | + fetchmail | | + findutils | | + flex | | + freedink | [] | + gas | | + gawk | | + gcal | | + gcc | | + gettext-examples | [] [] [] [] | + gettext-runtime | [] | + gettext-tools | [] | + gip | [] [] | + gjay | | + gliv | | + glunarclock | [] | + gnubiff | | + gnucash | () () () () | + gnuedu | | + gnulib | | + gnunet | | + gnunet-gtk | | + gnutls | [] | + gold | | + gpe-aerial | [] | + gpe-beam | [] | + gpe-bluetooth | [] [] | + gpe-calendar | [] | + gpe-clock | [] [] [] [] [] | + gpe-conf | [] [] | + gpe-contacts | [] [] | + gpe-edit | [] | + gpe-filemanager | [] [] | + gpe-go | [] [] [] | + gpe-login | [] | + gpe-ownerinfo | [] [] | + gpe-package | [] [] | + gpe-sketchbook | [] [] | + gpe-su | [] [] [] [] [] [] | + gpe-taskmanager | [] [] [] [] [] [] | + gpe-timesheet | [] [] | + gpe-today | [] [] [] [] | + gpe-todo | [] [] | + gphoto2 | | + gprof | [] | + gpsdrive | | + gramadoir | | + grep | | + grub | | + gsasl | | + gss | | + gst-plugins-bad | [] [] [] [] | + gst-plugins-base | [] [] | + gst-plugins-good | [] [] | + gst-plugins-ugly | [] [] [] [] [] | + gstreamer | | + gtick | | + gtkam | [] | + gtkorphan | [] [] | + gtkspell | [] [] [] [] [] [] [] | + gutenprint | | + hello | [] [] [] | + help2man | | + hylafax | | + idutils | | + indent | | + iso_15924 | [] [] | + iso_3166 | [] [] () [] [] [] [] [] | + iso_3166_2 | | + iso_4217 | [] [] | + iso_639 | [] [] | + iso_639_3 | [] | + jwhois | [] | + kbd | | + keytouch | [] | + keytouch-editor | [] | + keytouch-keyboa... | [] | + klavaro | [] | + latrine | [] | + ld | | + leafpad | [] [] [] | + libc | [] | + libexif | | + libextractor | | + libgnutls | [] | + libgpewidget | [] [] | + libgpg-error | | + libgphoto2 | | + libgphoto2_port | | + libgsasl | | + libiconv | | + libidn | | + lifelines | | + liferea | | + lilypond | | + linkdr | | + lordsawar | | + lprng | | + lynx | | + m4 | | + mailfromd | | + mailutils | | + make | [] | + man-db | | + man-db-manpages | | + minicom | [] | + mkisofs | | + myserver | | + nano | [] [] | + opcodes | | + parted | | + pies | | + popt | [] [] [] | + psmisc | | + pspp | | + pwdutils | | + radius | | + recode | | + rosegarden | | + rpm | | + rush | | + sarg | | + screem | | + scrollkeeper | [] [] | + sed | | + sharutils | | + shishi | | + skencil | | + solfege | [] | + solfege-manual | | + soundtracker | | + sp | | + sysstat | [] | + tar | [] | + texinfo | [] | + tin | | + unicode-han-tra... | | + unicode-transla... | | + util-linux-ng | | + vice | | + vmm | | + vorbis-tools | | + wastesedge | | + wdiff | | + wget | [] | + wyslij-po | | + xchat | [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] | + +-----------------------------------------------+ + ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne + 20 5 10 1 13 48 4 2 2 4 24 10 20 3 1 + + nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr + +---------------------------------------------------+ + a2ps | [] [] [] [] [] [] [] [] | + aegis | [] [] [] | + ant-phone | [] [] | + anubis | [] [] [] | + aspell | [] [] [] [] [] | + bash | [] [] | + bfd | [] | + bibshelf | [] [] | + binutils | [] [] | + bison | [] [] [] | + bison-runtime | [] [] [] [] [] [] [] | + bluez-pin | [] [] [] [] [] [] [] [] | + bombono-dvd | [] () | + buzztard | [] [] | + cflow | [] | + clisp | [] [] | + coreutils | [] [] [] [] [] [] | + cpio | [] [] [] | + cppi | [] | + cpplib | [] | + cryptsetup | [] | + dfarc | [] | + dialog | [] [] [] [] | + dico | [] | + diffutils | [] [] [] [] [] [] | + dink | () | + doodle | [] [] | + e2fsprogs | [] [] | + enscript | [] [] [] [] [] | + exif | [] [] [] () [] | + fetchmail | [] [] [] [] | + findutils | [] [] [] [] [] | + flex | [] [] [] [] [] | + freedink | [] [] | + gas | | + gawk | [] [] [] [] | + gcal | | + gcc | [] | + gettext-examples | [] [] [] [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] [] [] [] [] | + gettext-tools | [] [] [] [] [] [] | + gip | [] [] [] [] [] | + gjay | | + gliv | [] [] [] [] [] [] | + glunarclock | [] [] [] [] [] | + gnubiff | [] () | + gnucash | [] () () () | + gnuedu | [] | + gnulib | [] [] [] [] | + gnunet | | + gnunet-gtk | | + gnutls | [] [] | + gold | | + gpe-aerial | [] [] [] [] [] [] [] | + gpe-beam | [] [] [] [] [] [] [] | + gpe-bluetooth | [] [] | + gpe-calendar | [] [] [] [] | + gpe-clock | [] [] [] [] [] [] [] [] | + gpe-conf | [] [] [] [] [] [] [] | + gpe-contacts | [] [] [] [] [] | + gpe-edit | [] [] [] | + gpe-filemanager | [] [] [] | + gpe-go | [] [] [] [] [] [] [] [] | + gpe-login | [] [] | + gpe-ownerinfo | [] [] [] [] [] [] [] [] | + gpe-package | [] [] | + gpe-sketchbook | [] [] [] [] [] [] [] | + gpe-su | [] [] [] [] [] [] [] [] | + gpe-taskmanager | [] [] [] [] [] [] [] [] | + gpe-timesheet | [] [] [] [] [] [] [] [] | + gpe-today | [] [] [] [] [] [] [] [] | + gpe-todo | [] [] [] [] [] | + gphoto2 | [] [] [] [] [] [] [] [] | + gprof | [] [] [] | + gpsdrive | [] [] | + gramadoir | [] [] | + grep | [] [] [] [] | + grub | [] [] [] | + gsasl | [] [] [] [] | + gss | [] [] [] | + gst-plugins-bad | [] [] [] [] [] [] | + gst-plugins-base | [] [] [] [] [] | + gst-plugins-good | [] [] [] [] [] | + gst-plugins-ugly | [] [] [] [] [] [] | + gstreamer | [] [] [] [] [] | + gtick | [] [] [] | + gtkam | [] [] [] [] [] [] | + gtkorphan | [] | + gtkspell | [] [] [] [] [] [] [] [] [] [] | + gutenprint | [] [] | + hello | [] [] [] [] | + help2man | [] [] | + hylafax | [] | + idutils | [] [] [] [] [] | + indent | [] [] [] [] [] [] [] | + iso_15924 | [] [] [] [] | + iso_3166 | [] [] [] [] [] () [] [] [] [] [] [] [] [] | + iso_3166_2 | [] [] [] | + iso_4217 | [] [] [] [] [] [] [] [] | + iso_639 | [] [] [] [] [] [] [] [] [] | + iso_639_3 | [] [] | + jwhois | [] [] [] [] | + kbd | [] [] [] | + keytouch | [] [] [] | + keytouch-editor | [] [] [] | + keytouch-keyboa... | [] [] [] | + klavaro | [] [] | + latrine | [] [] | + ld | | + leafpad | [] [] [] [] [] [] [] [] [] | + libc | [] [] [] [] | + libexif | [] [] () [] | + libextractor | | + libgnutls | [] [] | + libgpewidget | [] [] [] | + libgpg-error | [] [] | + libgphoto2 | [] [] | + libgphoto2_port | [] [] [] [] [] | + libgsasl | [] [] [] [] [] | + libiconv | [] [] [] [] [] | + libidn | [] [] | + lifelines | [] [] | + liferea | [] [] [] [] [] () () [] | + lilypond | [] | + linkdr | [] [] [] | + lordsawar | | + lprng | [] | + lynx | [] [] [] | + m4 | [] [] [] [] [] | + mailfromd | [] | + mailutils | [] | + make | [] [] [] [] | + man-db | [] [] [] | + man-db-manpages | [] [] [] | + minicom | [] [] [] [] | + mkisofs | [] [] [] | + myserver | | + nano | [] [] [] [] | + opcodes | [] [] | + parted | [] [] [] [] | + pies | [] | + popt | [] [] [] [] | + psmisc | [] [] [] | + pspp | [] [] | + pwdutils | [] | + radius | [] [] [] | + recode | [] [] [] [] [] [] [] [] | + rosegarden | () () | + rpm | [] [] [] | + rush | [] [] | + sarg | | + screem | | + scrollkeeper | [] [] [] [] [] [] [] [] | + sed | [] [] [] [] [] [] [] [] [] | + sharutils | [] [] [] [] | + shishi | [] | + skencil | [] [] | + solfege | [] [] [] [] | + solfege-manual | [] [] [] | + soundtracker | [] | + sp | | + sysstat | [] [] [] [] | + tar | [] [] [] [] | + texinfo | [] [] [] [] | + tin | [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux-ng | [] [] [] [] [] | + vice | [] | + vmm | [] | + vorbis-tools | [] [] | + wastesedge | [] | + wdiff | [] [] | + wget | [] [] [] [] [] [] [] | + wyslij-po | [] [] [] | + xchat | [] [] [] [] [] [] [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] | + +---------------------------------------------------+ + nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr + 135 10 4 7 105 1 29 62 47 91 3 54 46 9 37 + + sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW + +---------------------------------------------------+ + a2ps | [] [] [] [] [] | 27 + aegis | [] | 9 + ant-phone | [] [] [] [] | 9 + anubis | [] [] [] [] | 15 + aspell | [] [] [] | 20 + bash | [] [] [] | 12 + bfd | [] | 6 + bibshelf | [] [] [] | 16 + binutils | [] [] | 8 + bison | [] [] | 12 + bison-runtime | [] [] [] [] [] [] | 29 + bluez-pin | [] [] [] [] [] [] [] [] | 37 + bombono-dvd | [] | 4 + buzztard | [] | 7 + cflow | [] [] [] | 9 + clisp | | 10 + coreutils | [] [] [] [] | 22 + cpio | [] [] [] [] [] [] | 13 + cppi | [] [] | 5 + cpplib | [] [] [] [] [] [] | 14 + cryptsetup | [] [] | 7 + dfarc | [] | 9 + dialog | [] [] [] [] [] [] [] | 30 + dico | [] | 2 + diffutils | [] [] [] [] [] [] | 30 + dink | | 4 + doodle | [] [] | 7 + e2fsprogs | [] [] [] | 11 + enscript | [] [] [] [] | 17 + exif | [] [] [] | 16 + fetchmail | [] [] [] | 17 + findutils | [] [] [] [] [] | 20 + flex | [] [] [] [] | 15 + freedink | [] | 10 + gas | [] | 4 + gawk | [] [] [] [] | 18 + gcal | [] [] | 5 + gcc | [] [] [] | 7 + gettext-examples | [] [] [] [] [] [] [] | 34 + gettext-runtime | [] [] [] [] [] [] [] | 29 + gettext-tools | [] [] [] [] [] [] | 22 + gip | [] [] [] [] | 22 + gjay | [] | 3 + gliv | [] [] [] | 14 + glunarclock | [] [] [] [] [] | 19 + gnubiff | [] [] | 4 + gnucash | () [] () [] () | 10 + gnuedu | [] [] | 7 + gnulib | [] [] [] [] | 16 + gnunet | [] | 1 + gnunet-gtk | [] [] [] | 5 + gnutls | [] [] [] | 10 + gold | [] | 4 + gpe-aerial | [] [] [] | 18 + gpe-beam | [] [] [] | 19 + gpe-bluetooth | [] [] [] | 13 + gpe-calendar | [] [] [] [] | 12 + gpe-clock | [] [] [] [] [] | 28 + gpe-conf | [] [] [] [] | 20 + gpe-contacts | [] [] [] | 17 + gpe-edit | [] [] [] | 12 + gpe-filemanager | [] [] [] [] | 16 + gpe-go | [] [] [] [] [] | 25 + gpe-login | [] [] [] | 11 + gpe-ownerinfo | [] [] [] [] [] | 25 + gpe-package | [] [] [] | 13 + gpe-sketchbook | [] [] [] | 20 + gpe-su | [] [] [] [] [] | 30 + gpe-taskmanager | [] [] [] [] [] | 29 + gpe-timesheet | [] [] [] [] [] | 25 + gpe-today | [] [] [] [] [] [] | 30 + gpe-todo | [] [] [] [] | 17 + gphoto2 | [] [] [] [] [] | 24 + gprof | [] [] [] | 15 + gpsdrive | [] [] [] | 11 + gramadoir | [] [] [] | 11 + grep | [] [] [] | 10 + grub | [] [] [] | 14 + gsasl | [] [] [] [] | 14 + gss | [] [] [] | 11 + gst-plugins-bad | [] [] [] [] | 26 + gst-plugins-base | [] [] [] [] [] | 24 + gst-plugins-good | [] [] [] [] | 24 + gst-plugins-ugly | [] [] [] [] [] | 29 + gstreamer | [] [] [] [] | 22 + gtick | [] [] [] | 13 + gtkam | [] [] [] | 20 + gtkorphan | [] [] [] | 14 + gtkspell | [] [] [] [] [] [] [] [] [] | 45 + gutenprint | [] | 10 + hello | [] [] [] [] [] [] | 21 + help2man | [] [] | 7 + hylafax | [] | 5 + idutils | [] [] [] [] | 17 + indent | [] [] [] [] [] [] | 30 + iso_15924 | () [] () [] [] | 16 + iso_3166 | [] [] () [] [] () [] [] [] () | 53 + iso_3166_2 | () [] () [] | 9 + iso_4217 | [] () [] [] () [] [] | 26 + iso_639 | [] [] [] () [] () [] [] [] [] | 38 + iso_639_3 | [] () | 8 + jwhois | [] [] [] [] [] | 16 + kbd | [] [] [] [] [] | 15 + keytouch | [] [] [] | 16 + keytouch-editor | [] [] [] | 14 + keytouch-keyboa... | [] [] [] | 14 + klavaro | [] | 11 + latrine | [] [] [] | 10 + ld | [] [] [] [] | 11 + leafpad | [] [] [] [] [] [] | 33 + libc | [] [] [] [] [] | 21 + libexif | [] () | 7 + libextractor | [] | 1 + libgnutls | [] [] [] | 9 + libgpewidget | [] [] [] | 14 + libgpg-error | [] [] [] | 9 + libgphoto2 | [] [] | 8 + libgphoto2_port | [] [] [] [] | 14 + libgsasl | [] [] [] | 13 + libiconv | [] [] [] [] | 21 + libidn | () [] [] | 11 + lifelines | [] | 4 + liferea | [] [] [] | 21 + lilypond | [] | 7 + linkdr | [] [] [] [] [] | 17 + lordsawar | | 1 + lprng | [] | 3 + lynx | [] [] [] [] | 17 + m4 | [] [] [] [] | 19 + mailfromd | [] [] | 3 + mailutils | [] | 5 + make | [] [] [] [] | 21 + man-db | [] [] [] | 8 + man-db-manpages | | 4 + minicom | [] [] | 16 + mkisofs | [] [] | 9 + myserver | | 0 + nano | [] [] [] [] | 21 + opcodes | [] [] [] | 11 + parted | [] [] [] [] [] | 15 + pies | [] [] | 3 + popt | [] [] [] [] [] [] | 27 + psmisc | [] [] | 11 + pspp | | 4 + pwdutils | [] [] | 6 + radius | [] [] | 9 + recode | [] [] [] [] | 28 + rosegarden | () | 0 + rpm | [] [] [] | 11 + rush | [] [] | 4 + sarg | | 1 + screem | [] | 3 + scrollkeeper | [] [] [] [] [] | 27 + sed | [] [] [] [] [] | 30 + sharutils | [] [] [] [] [] | 22 + shishi | [] | 3 + skencil | [] [] | 7 + solfege | [] [] [] [] | 16 + solfege-manual | [] | 8 + soundtracker | [] [] [] | 9 + sp | [] | 3 + sysstat | [] [] | 15 + tar | [] [] [] [] [] [] | 23 + texinfo | [] [] [] [] [] | 17 + tin | | 4 + unicode-han-tra... | | 0 + unicode-transla... | | 2 + util-linux-ng | [] [] [] [] | 20 + vice | () () | 1 + vmm | [] | 4 + vorbis-tools | [] | 6 + wastesedge | | 2 + wdiff | [] [] | 7 + wget | [] [] [] [] [] | 26 + wyslij-po | [] [] | 8 + xchat | [] [] [] [] [] [] | 36 + xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] | 63 + xkeyboard-config | [] [] [] | 22 + +---------------------------------------------------+ + 85 teams sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW + 178 domains 119 1 3 3 0 10 65 51 155 17 98 7 41 2618 + + Some counters in the preceding matrix are higher than the number of +visible blocks let us expect. This is because a few extra PO files are +used for implementing regional variants of languages, or language +dialects. + + For a PO file in the matrix above to be effective, the package to +which it applies should also have been internationalized and +distributed as such by its maintainer. There might be an observable +lag between the mere existence a PO file and its wide availability in a +distribution. + + If June 2010 seems to be old, you may fetch a more recent copy of +this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date +matrix with full percentage details can be found at +`http://translationproject.org/extra/matrix.html'. + +1.5 Using `gettext' in new packages +=================================== + +If you are writing a freely available program and want to +internationalize it you are welcome to use GNU `gettext' in your +package. Of course you have to respect the GNU Library General Public +License which covers the use of the GNU `gettext' library. This means +in particular that even non-free programs can use `libintl' as a shared +library, whereas only free software can use `libintl' as a static +library or use modified versions of `libintl'. + + Once the sources are changed appropriately and the setup can handle +the use of `gettext' the only thing missing are the translations. The +Free Translation Project is also available for packages which are not +developed inside the GNU project. Therefore the information given above +applies also for every other Free Software Project. Contact +`coordinator@translationproject.org' to make the `.pot' files available +to the translation teams. + diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..0c2ef79 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,8271 @@ +2023-01-08 Colin Watson + + Release man-db 2.11.2 + +2023-01-01 Colin Watson + + mandb: Check for stray cats even if the manpath is unchanged + + * src/mandb.c (mandb): Require the database file to be open before + calling `straycats`, but don't require `create_db` or + `update_db_wrapper` to have made any changes to it. + * src/tests/mandb-whatis-broken-link-changes: Update expected output. + * NEWS.md: Document this. + +2023-01-01 Colin Watson + + mandb: Fix crash when processing stray cats + + Regression introduced in man-db 2.11.0. Fixes Debian bug #1027487. + + * src/straycats.c (check_for_stray): Pass a basic trace list to + `store_descriptions`, since that's required as of commit + d3e4b5522ae8152f10db0bb98e6873c9cc17ed59. + * NEWS.md: Document this. + +2022-12-31 Colin Watson + + Pacify gcc -Wanalyzer-use-of-uninitialized-value + + It incorrectly thought that `outleft` could be uninitialized in some + cases. Restructure code slightly to simplify its analysis. + + * src/manconv.c (try_iconv): Initialize `outptr` in all branches of the + conditional beginning with `if (handle_iconv_errors)`. + +2022-12-31 Colin Watson + + Fix segfault when nroff is not installed + + * src/man.c (try_section): Only free the `names` list if it is non-NULL + due to `NROFF_MISSING` being defined, and return early if options are + set such that cat files cannot be used either. + * NEWS.md: Document this. + +2022-12-31 Colin Watson + + Fix compile and test failures when troff is not groff + + Fixes https://gitlab.com/man-db/man-db/-/issues/12. + + * src/man.c (ONLY_TROFF_IS_GROFF): Only define if `HAS_TROFF` is + defined. + (init_html_pager): Only define if `TROFF_IS_GROFF` is defined. + (format_display): Mark `man_file` as unused if `TROFF_IS_GROFF` is not + defined. + + * configure.ac: Substitute `troff_is_groff`. + * src/tests/Makefile.am (TESTS_ENVIRONMENT): Export `troff_is_groff`. + * src/tests/man-language-specific-requests: Adjust expected + language-specific requests if `troff_is_groff` is not `yes`. + + * NEWS.md: Document this. + +2022-11-29 Seong-ho Cho + + Update Korean manual page translation + + * man/po4a/po/ko.po: Update from Translation Project. + +2022-11-28 Yuri Kozlov + + Update Russian manual page translation + + * man/po4a/po/ru.po: Update from Translation Project. + +2022-11-15 Colin Watson + + Release man-db 2.11.1 + +2022-11-15 Colin Watson + + Tweak README for better readability + + * README.md: Add blank line for improved Markdown rendering. + +2022-11-14 Colin Watson + + web: Fix man.png width/height + + * web/index.html: Update width and height for man.png. + +2022-11-14 Colin Watson + + web: Update man(1) image + + * web/man.png: Replace with a fresh screenshot. + +2022-11-14 Colin Watson + + Link to project home page + + * README.md: Add home page link (https://man-db.gitlab.io/man-db/). + +2022-11-14 Colin Watson + + Add GitLab Pages site + + * .gitlab-ci.yml (stages): Add deploy. + (pages): New job. + * web/development.html, web/index.html, web/man.png, web/standard.css, + web/white.css: New files. + +2022-11-14 Colin Watson + + Transfer Git repository to new group + + * README.md, docs/HACKING.md, man/man1/apropos.man1, + man/man1/lexgrog.man1, man/man1/man-recode.man1, man/man1/man.man1, + man/man1/manconv.man1, man/man1/manpath.man1, man/man1/whatis.man1, + man/man1/zsoelim.man1, man/man5/manpath.man5, man/man8/accessdb.man8, + man/man8/catman.man8, man/man8/mandb.man8: Change GitLab URL to + https://gitlab.com/man-db/man-db. + * NEWS.md: Document this. + +2022-11-12 Colin Watson + + Remove unused include + + * src/manconv_client.c: Remove unused `#include "idpriv.h"`. + +2022-11-05 Colin Watson + + Fix distribution of Korean manual page translation + + Accidentally omitted from 8f12d39bbb6748a1257358269028ef919f9c92e6. + + * man/Makefile.am (DIST_SUBDIRS): Add ko. + +2022-11-05 Colin Watson + + Replace $ in page names rather than trying to escape it + + Jakub Wilk points out in Debian bug #1021951 that attempting to use the + `--use-backslash` option has a number of complications. Just replace + dollar signs with question marks instead. + + * include/manconfig.h (LESS_OPTS): Revert addition of `--use-backslash`. + * src/man.c: Replace `$` characters with `?` rather than trying to + escape them. + * NEWS.md: Document this. + +2022-11-05 Colin Watson + + Add Korean manual page translation + + * man/po4a/po/ko.po: New from Translation Project (thanks, Seong-ho + Cho). + * configure.ac (AC_CONFIG_FILES): Add man/ko/Makefile. + * man/LINGUAS.po4a: Add ko. + * man/Makefile.am (DIST_SUBDIRS): Add ko. + * man/ko/Makefile.am, man/ko/translator.add: New files. + * man/po4a/Makefile.am (POFILES): Add po/ko.po. + * man/po4a/po4a.cfg (po4a_langs): Add ko. + * man/THANKS: Update translator credit. + * .gitignore: Add man/ko/man1, man/ko/man5, and man/ko/man8. + +2022-10-28 Seong-ho Cho + + Add Korean translation + + * po/ko.po: New from Translation Project. + * po/LINGUAS: Add ko. + * man/THANKS: Add translator credit. + +2022-10-28 Sebastian Rasmussen + + Update Swedish manual page translation + + * man/po4a/po/sv.po: Update from Translation Project. + +2022-10-18 Colin Watson + + zsoelim_open_file: Fix use of uninitialized value + + In the case where `filename` has no directory part and does not contain + a dot, we could reach the decision of whether to emit a "can't open %s" + error message without initializing `decomp`. Noticed by `gcc -Og`. + + * src/zsoelim.l (zsoelim_open_file): Initialize `decomp` to NULL. + +2022-10-18 Colin Watson + + Recognize more Hungarian translations of the NAME section + + * src/lexgrog.l (hu_name): Handle the case where "É" or "é" is written + as "\('E" or "\('e". + * NEWS.md: Document this. + +2022-10-18 Colin Watson + + Sort whatis references below real pages more aggressively + + I think this makes more sense in most cases, and it definitely fixes + some observed odd behaviour. + + Fixes Debian bug #780235. + + * src/man.c (compare_candidates): Compare IDs before comparing sections. + * NEWS.md: Document this. + +2022-10-17 Colin Watson + + Silence error for empty mandir with missing catdir + + Fixes https://gitlab.com/cjwatson/man-db/-/issues/8. + + * src/check_mandirs.c (ensure_db_open): Don't call `gripe_rwopen_failed` + before returning false (since it only makes sense for one of the two + callers). + (testmandirs): Call `gripe_rwopen_failed` if `ensure_db_open` returns + false. + +2022-10-17 Colin Watson + + Add 3type to default section list + + This is used by the Linux man-pages package, and should be lower + priority than section 2. Suggested by Alejandro Colomar. + + Fixes https://gitlab.com/cjwatson/man-db/-/issues/5. + + * include/manconfig.h (STD_SECTIONS): Add `3type` between sections `2` + and `5`. + * m4/man-arg-sections.m4 (MAN_ARG_SECTIONS): Likewise. + * man/man5/manpath.man5 (FORMAT): Update documentation of SECTION. + * src/tests/man-exact-section-matches: Update default section order. + * src/man_db.conf.in (SECTION): Update documentation. + * NEWS.md: Document this. + +2022-10-17 Colin Watson + + Escape $ in page names when constructing less prompts + + Fixes Debian bug #1021951. + + * include/manconfig.h (LESS_OPTS): Add `--use-backslash`. + * src/man.c (escape_less): Also escape `$` characters. + * NEWS.md: Document this. + +2022-10-15 Colin Watson + + Release man-db 2.11.0 + +2022-10-13 Colin Watson + + ult_src: Fix possible NULL dereference + + `gcc -fanalyzer` noticed that `canonicalize_file_name` can return NULL, + therefore `find_include` could return NULL, and therefore it was + possible for `ult_src` to attempt to dereference NULL in the `stat + (base, &st)` call. Push more work down to `find_include` so that we can + consistently treat it as an error if it returns NULL. + + * src/ult_src.c (ult_softlink): Move error messages to ... + (gripe_canonicalize_failed): ... here (new function). + (find_include): Replace simple suffix globbing with `comp_file`, and use + this approach in both the relative-to-mantree and + relative-to-dirname-of-page cases; we previously only tried it in the + latter case. Call `gripe_canonicalize_failed` if the final + canonicalization step fails; print a "can't resolve %s" error if we + can't even find anything to canonicalize. + (ult_src): Remove `comp_file` processing, now done by `find_include`. + * src/ult_src.h (gripe_canonicalize_failed): Add prototype. + * src/straycats.c (check_for_stray): Use `gripe_canonicalize_failed`. + +2022-10-11 Colin Watson + + Fix regression in preprocessor string handling + + We need to stop looking for characters that identify preprocessors after + the first space or dash, as otherwise encoding declarations of the kind + specified in man-recode(1) may break. + + * src/man.c (make_roff_command): Only consider the part of the + preprocessor string up to the first space or dash, if any. + +2022-10-11 Colin Watson + + match_in_directory: Split into multiple functions + + `match_in_directory` had two almost entirely disjoint code paths, one + for regex patterns and one for wildcard patterns; but its structure made + it difficult for `gcc -fanalyzer` to understand that, and it was a bit + unclear for humans too. Split it up for clarity. + + * src/globbing.c (match_in_directory): Split out the + regex/wildcard-handling parts to ... + (match_regex_in_directory, match_wildcard_in_directory): ... here, + respectively. + +2022-10-11 Colin Watson + + Assert that another xasprintf call returns non-NULL + + As with commit a22f140354c80a7c5c52c4a413f1c929e105a24c, `gcc + -fanalyzer` notices that `xasprintf` can return NULL in some situations. + I believe those situations would all amount to programming errors here, + so add an assert. + + * src/mandb.c (main): Assert that `xasprintf` returns non-NULL. + +2022-10-09 Colin Watson + + Fix error message + + * src/straycats.c (check_for_stray): If canonicalizing `catdir` returns + NULL, then substitute `catdir` into the "warning: %s is a dangling + symlink" message, not `fullpath` (which at this point must be NULL). + +2022-10-08 Colin Watson + + Convert many more ints to bools + + I don't expect this to make a significant runtime difference, but it + makes some things easier to analyse visually. + + * lib/cleanup.c (do_cleanups_sigsafe): Change `in_sighandler` parameter + type to bool. Update all callers. + (push_cleanup): Change `handler_installed` local variable type to bool. + * lib/cleanup.h (do_cleanups_sigsafe): Update prototype. + * lib/compression.c (comp_info): Change `want_stem` parameter type to + bool. Update all callers. + * lib/compression.h (comp_info): Update prototype. + * lib/sandbox.c (seccomp_filter_unavailable): Change type to bool. + Update all references. + (make_seccomp_filter): Change `permissive` parameter type to bool. + Update all callers. + (_sandbox_load): Likewise. + * lib/util.c (remove_directory): Change `recurse` parameter type to + bool. Update all callers. + * lib/util.h (remove_directory): Update prototype. + * libdb/db_gdbm.c (opening): Change type to bool. Update all + references. + * libdb/db_store.c (compare_ids): Change `promote_links` parameter type + to bool. Update all callers. + * libdb/db_storage.h (compare_ids): Update prototype. + * src/catman.c (parse_for_sec): Change `message` local variable type to + bool. + (check_access): Change return type to bool. + (purge_whatis): Change `cat` parameter type to bool. Update all + callers. + (check_multi_key): Change return type to bool. + * src/descriptions.c (parse_descriptions): Change `seen_base` local + variable type to bool. + * src/globbing.c (look_for_file): Change `cat` parameter type to bool. + Update all callers. + * src/globbing.h (look_for_file): Update prototype. + * src/lexgrog.l (fill_mode, waiting_for_quote): Change types to bool. + Update all references. + * src/man.c (skip, created_tmp_cat): Change types to bool. Update all + references. + (run_mandb): Change `create` parameter type to bool. Update all + callers. + (squeeze_blank_lines): Change `in_blank_line` and `got_blank_line` local + variable types to bool. + (display): Change `format` and `printed` local variable types to bool. + (convert_name): Change `fsstnd` parameter type to bool. Update all + callers. + (add_candidate): Change `dupcand` local variable type to bool. + (main): Change `maybe_section` local variable type to bool. + * src/manp.c (add_sections): Change `user` parameter type to bool. + Update all callers. + (add_def): Likewise. + (add_mandb_map): Likewise. + (add_to_dirlist): Likewise. + (read_config_file): Change `done` local variable type to bool. + (get_manpath_from_path): Change `mandatory` parameter type to bool. + Update all callers. + * src/manp.h (get_manpath_from_path): Update prototype. + * src/whatis.c (do_apropos): Change `matched` local variable type to + bool. + * src/zsoelim.l (no_newline): Change type to bool. Update all + references. + (zsoelim_open_file): Change return type to true. + * src/zsoelim.h (zsoelim_open_file): Update prototype. + +2022-10-07 Colin Watson + + Remove unused variable + + * src/man.c (found_a_stray): Remove; it was set but no longer used. + (display_database): Remove setting of `found_a_stray`. + +2022-10-07 Colin Watson + + Add some more pure function attributes + + * lib/encodings.c (compatible_encodings): Mark as pure. + * src/man.c (is_section): Likewise. + * src/manp.c (get_config, get_def, get_def_user, is_global_mandir): + Likewise. + +2022-10-07 Colin Watson + + Default to --disable-cache-owner on systems without getuid + + * m4/man-arg-cache-owner.m4 (MAN_ARG_CACHE_OWNER): If the system doesn't + have `getuid`, force cache files to have unconstrained cache ownership, + and issue a warning if `--enable-cache-owner` was given. + +2022-10-07 Colin Watson + + Fix installation on systems with non-empty EXEEXT + + * src/Makefile.am (install-exec-hook): Add `$(EXEEXT)` to + `chown`/`chmod` calls. + * NEWS.md: Document MinGW portability work. + +2022-10-07 Colin Watson + + Fix build on systems without SIGPIPE + + * bootstrap.conf (gnulib_modules): Add sigpipe. + * src/mandb.c (main): Drop `#ifdef SIGPIPE` guards, as Gnulib now + ensures that it's defined. + +2022-10-07 Colin Watson + + Fix build on systems without getuid + + * lib/tempfile.c (running_setid): New function; always returns false if + the system doesn't have `getuid`, since in that case we won't have been + able to drop privileges either. + +2022-10-07 Colin Watson + + Fix build on systems without + + * lib/security.h: Only include `` if `MAN_OWNER` is defined. + +2022-10-07 Colin Watson + + Fix build on systems without + + * bootstrap.conf (gnulib_modules): Add termios. + * src/man.c (get_term): Replace with a no-op stub if the system has no + `` (Gnulib tests for it and can replace some functions, but + its replacement isn't sufficient here). + +2022-10-07 Colin Watson + + Fix build on systems without SIGHUP + + * lib/cleanup.c (trap_abnormal_exits, untrap_abnormal_exits): Guard uses + of `SIGHUP` with an `#ifdef`. + +2022-10-06 Colin Watson + + Run preprocessors in the correct order + + We have no particular reason to trust the order of filters in a + preprocessor string specified in a page; it's easy for authors to get + this wrong by accident. Do as groff(1) does and run them in a + canonicalized order. + + Fixes Debian bug #1012078. + + * src/man.c (add_filter): New function, split out from + `make_roff_command`. + (make_roff_command): Iterate through possible preprocessors and add each + one depending on whether it's present in the preprocessor string, rather + than iterating through the preprocessor string and acting on each of its + characters. Turn several `int` variables into `bool` variables in + passing. + * NEWS.md: Document this. + +2022-10-06 Emir SARI + + Update Turkish translation + + * po/tr.po: Update from Translation Project. + +2022-10-06 Emir SARI + + Update Turkish manual page translation + + * man/po4a/po/tr.po: Update from Translation Project. + +2022-10-06 Boyuan Yang <073plan@gmail.com> + + Update Simplified Chinese manual page translation + + * man/po4a/po/zh_CN.po: Update from Translation Project. + +2022-10-06 Remus-Gabriel Chelu + + Update Romanian manual page translation + + * man/po4a/po/ro.po: Update from Translation Project. + +2022-10-06 Remus-Gabriel Chelu + + Update Romanian translation + + * po/ro.po: Update from Translation Project. + +2022-10-03 Mario Blättermann + + Update German manual page translation + + * man/po4a/po/de.po: Update from Translation Project. + +2022-10-02 Colin Watson + + Release man-db 2.11.0-pre1 + +2022-10-02 Colin Watson + + Bump next version to 2.11.0 + + There are quite a few substantial changes here that I think justify an + updated minor number. + + * NEWS.md: Bump to 2.11.0. + +2022-10-02 Colin Watson + + Update translation files + + * po/man-db.pot, po/*.po: Update. + +2022-10-02 Colin Watson + + Fix harmless but incorrect cast + + * libdb/db_xdbm.c (man_xdbm_firstkey): Cast `gl_list_free` to + `gl_mapvalue_dispose_fn`, not `gl_listelement_dispose_fn`. (These were + in practice identical but are semantically distinct.) + +2022-10-02 Colin Watson + + Reformat option declarations using macros + + The previous tabular presentation had some advantages, but it only + looked reasonable in wide terminals, was often quite cumbersome to + maintain, and played poorly with `clang-format`. + + * include/manconfig.h (OPT, OPT_FULL, OPT_ALIAS, OPT_HIDDEN, + OPT_GROUP_HEADER, OPT_HELP_COMPAT): New macros. + * src/accessdb.c (options): Rewrite using `OPT*` macros. + * src/catman.c (options): Likewise. + * src/globbing_test.c (options): Likewise. + * src/lexgrog_test.c (options): Likewise. + * src/man-recode.c (options): Likewise. + * src/man.c (options): Likewise. + * src/manconv_main.c (options): Likewise. + * src/mandb.c (options): Likewise. + * src/manpath.c (options): Likewise. + * src/whatis.c (options): Likewise. + * src/zsoelim_main.c (options): Likewise. + +2022-10-02 Colin Watson + + Add CI checks for Berkeley DB and NDBM + + * .gitlab-ci.yml (build-berkeley-db, build-ndbm): New jobs. + +2022-10-02 Colin Watson + + mandb: Fully reorganize databases + + This allows us to produce bitwise-identical databases regardless of the + order in which pages were scanned (at least with GDBM). + `gdbm_reorganize` isn't enough for this, probably because entries end up + in different positions in hash buckets depending on insertion order; but + reading in the entire database and writing it back out in sorted order + seems to do the job with negligible cost. + + Fixes Debian bug #1010957. + + * src/mandb.c (reorganize): New function: read all the items from a + database in sorted order and write them back out. + (mandb): Stop calling `MYDBM_REORG`, which saved space after deletions + but didn't help with reproducibility. + (process_manpath): Call `reorganize` if any changes were made to a + database. + * libdb/mydbm.h (MYDBM_REORG): Remove macro. + * NEWS.md: Document this. + +2022-10-02 Colin Watson + + mandb: Rearrange database path operations + + Moving these into "methods" of `struct dbpaths` makes the control flow + clearer by avoiding lots of inlined `#ifdef`s. + + I fixed a possible crash in `mandb -f` in the process, exposed by the + clearer control flow. + + * src/mandb.c (dbpaths_init, dbpaths_copy_to_tmp, dbpaths_remove_tmp): + New functions. + (finish_up): Rename to ... + (dbpaths_rename_from_tmp): ... this. + (do_chown): Rename to ... + (dbpaths_chown_if_possible): ... this. + (cleanup_sigsafe): Rename to ... + (dbpaths_unlink_tmp): ... this, and take a `struct dbpaths *` argument + rather than `void *`. + (cleanup): Rename to ... + (dbpaths_free_elements): ... this, and take a `struct dbpaths *` + argument rather than `void *`. + (mandb, process_manpath): Use new `dbpaths_*` functions. Only call + `dbpaths_rename_from_tmp` if `run_mandb` is set (in practice this was + always true anyway but this makes it clearer). Only call + `dbpaths_chown_if_possible` if `run_mandb` is set and + `dbpaths_rename_from_tmp` was called (this may have caused a crash in + some edge cases involving `mandb -f`). + +2022-10-01 Colin Watson + + test_manfile: Remove "already exists" check + + This produced inconsistent results in some unusual cases. For example, + if `/usr/share/man/man5/inetd.conf.5.gz` was a symlink to + `/usr/share/man/man8/inetd.8.gz` and had `NAME` entries for both `inetd` + and `inetd.conf`, then if `inetd.8.gz` was scanned first we would + include a `WHATIS_MAN` entry in section 8 for `inetd.conf`, while if + `inetd.conf.5.gz` was scanned first we'd skip that due to hitting the + already-exists check when scanning `inetd.8.gz`. + + This was originally a performance optimization. Now that we cache the + results of `ult_src` and `find_name`, this optimization no longer helps + us much, so it can go. + + * src/check_mandirs.c (test_manfile): Don't return early if the page + already exists with matching details. + * NEWS.md: Document this. + +2022-10-01 Colin Watson + + Further improve name selection for whatis targets + + In commit 9aff3c30b0, I used the rule "first name in the trace out of + those that have the best ID". However, a better rule turns out to be to + pick the last entry in the trace that has the same section and extension + as the starting page. This is already guaranteed to have at least as + good an ID as the starting page, and since whatis pointers don't include + the target section and extension we need to ensure that they don't cross + sections/extensions; otherwise we just end up with database entries that + man(1) refuses to use, which isn't particularly useful. + + * src/descriptions_store.c (store_descriptions): Parse and cache all the + filenames in the trace at the start. Use the last entry in the trace + with the same section/extension as the starting page as the pointer for + `WHATIS_*` entries. + +2022-10-01 Colin Watson + + test_manfile: Stop caching ult_src traces + + Now that `test_manfile` always calls `ult_src` before adding database + entries, there's no need for it to cache the resulting traces, and doing + so had some confusing consequences since `store_descriptions` could end + up seeing cached traces that didn't include the initial path. + + * src/check_mandirs.c (struct whatis): Remove `trace` element. + (whatis_free): Stop freeing `whatis->trace`. + (test_manfile): Stop caching `ult->trace`; pass it directly to + `store_descriptions` instead. + +2022-10-01 Colin Watson + + Restructure ult_src to add caching + + * src/ult_src.c (struct ult_key): New structure. + (ult_key_new, ult_key_equals, ult_key_hash, ult_key_free, ult_value_new, + ult_value_free): New functions. + (ult_cache): New map. + (ult_src): Instead of returning a path as a string and taking `trace` as + an output parameter, return a `struct ult_value *` containing both path + and trace. Cache the return value in a hash map (indexed by a composite + key consisting of `name` and `flags`), and return cached values where + possible rather than repeating the same work. Update all callers to + reflect the new signature. + * src/ult_src.h (struct ult_value): New structure. + (ult_src): Update prototype. + + * src/check_mandirs.c (test_manfile): Simplify `ult_src` calling + arrangements now that repeated calls with the same `name` and `flags` + arguments are cheap. At the moment this may end up doing a little more + work in some rare cases (links to already-scanned pages with `.so` + links), but that doesn't seem to be very significant at the moment, and + caching could be improved inside `ult_src` if it proves to be a problem. + * src/descriptions_store.c (store_descriptions): `trace` is now always + set. Add an assertion of this and drop a couple of conditionals. + +2022-09-25 Colin Watson + + ult_src: Remove recursion + + The use of recursion for `.so` handling in `ult_src` is somewhat + inconvenient, and it's relatively easy to convert it to an iterative + implementation. + + There should be no functional change from this commit, except to some + details of debug messages. + + * src/ult_src.c (find_include_directive): New function, extracted from + `ult_src`. + (ult_src): Handle `.so` links using a loop rather than recursion. Check + for compression extensions towards the end of the loop rather than at + the beginning, to avoid nonexistent files showing up in the trace. + +2022-09-25 Colin Watson + + mandb: Improve debugging + + * src/check_mandirs.c (test_manfile): Log the file under consideration + on entry. Log when we return early due to an existing database entry. + Remove some unnecessary parentheses from debug messages. + * src/ult_src.c (ult_src): Remove leading newline from debug message. + +2022-09-25 Colin Watson + + Don't skip adding a database entry due to SO_MAN + + An existing `SO_MAN` entry shouldn't stop us considering a page for + insertion into the database, because until we run `ult_src` we don't yet + know whether that page will be `ULT_MAN` (which should replace the + existing entry) or `SO_MAN` (which shouldn't). + + * src/check_mandirs.c (test_manfile): Don't return early due to an + existing matching `SO_MAN` entry, but only due to an `ULT_MAN` entry. + * NEWS.md: Document this. + +2022-09-24 Colin Watson + + Fix section/extension for whatis entries in database + + * src/descriptions_store.c (store_descriptions): Use the + section/extension of the best name for whatis entries, since we don't + have anything better. + +2022-09-24 Colin Watson + + store_descriptions: Improve debugging + + * src/descriptions_store.c (store_descriptions): Log the extension of + each entry being stored. + +2022-09-24 Colin Watson + + Extend database entry replacement rules + + These rules were previously ambiguous such that the targets of whatis + entries depended on the order in which files were scanned. + + * libdb/db_store.c (enum replace_action): Add. + (replace_if_necessary): Extend rules for greater stability. We now also + take mtimes and pointers into account, as well as including a case for + when the new ID is weaker than the old one (there was already a case for + when it was stronger). + (dbstore): Use `replace_if_necessary` when considering replacing multi + keys. + +2022-09-24 Colin Watson + + Fix section/extension for links in database + + In some cases this resulted in spurious database entries. For example, + if `man5/inetd.conf.5` was a symlink to `man8/inetd.8` and that page had + a `NAME` entry for `inetd`, then as well as entries for `inetd` in + section 8 and `inetd.conf` in section 5, we would also store a spurious + entry for `inetd` in section 5. We no longer do that. + + * src/descriptions_store.c (store_descriptions): For names corresponding + to entries in the ultimate source trace and not to the base name of the + file, use the section and extension of the trace entry rather than of + the ultimate source. + +2022-09-24 Colin Watson + + Pick a more consistent name for whatis targets + + We don't want the targets of whatis entries in the database to depend on + the order in which files were scanned. Prefer the first name in the + trace out of those that have the best ID. + + * src/descriptions_store.c (store_descriptions): Defer adding names that + don't appear in the ultimate source trace (i.e. whatis entries) until we + know the best name to use as the target, and use that best name as the + pointer for each of them. + +2022-09-24 Colin Watson + + Fix stored ID for links + + Database entries for links were often incorrectly stored as `ULT_MAN`, + depending on the exact order in which pages were scanned. They are now + stored more consistently as `SO_MAN`. + + * src/descriptions_store.c (store_descriptions): Override the ID from + `ULT_MAN` to `SO_MAN` if the name is not the last entry in the trace. + (Previously we overrode from `SO_MAN` to `ULT_MAN` if the name was the + last entry in the trace, but not the converse.) + * NEWS.md: Document this. + +2022-09-24 Colin Watson + + Simplify struct mandata memory allocation + + The arrangement where most of the fields of `struct mandata` were + constant pointers into the `addr` field was a bit more memory-efficient, + but it made some kinds of analysis and reorganization very difficult, + and we don't actually need to be quite that frugal about memory. + Reorganize this to allocate each field independently instead. + + * lib/filenames.c (filename_info): Allocate each field independently. + Use Gnulib's `base_name` and `dir_name` functions to parse paths. Stop + setting `info->addr`. + (free_mandata_struct): Free the `ext`, `sec`, `pointer`, `comp`, + `filter`, and `whatis` fields. Stop freeing `addr`. + * lib/filenames.h (struct mandata): Remove `addr`. Make `ext`, `sec`, + `pointer`, `comp`, `filter`, and `whatis` non-`const`. + * libdb/db_lookup.c (split_content): Copy the `ext`, `sec`, `pointer`, + `filter`, `comp`, and `whatis` fields. Stop setting `addr`. + * libdb/db_store.c (make_content): Copy the `pointer`, `comp`, `filter`, + and `whatis` fields. + * src/descriptions_store.c (store_descriptions): Copy `pointer` and + `whatis` fields. + * src/straycats.c (check_for_stray): Copy `comp`, `ext`, `sec`, and + `filter` fields. + + * libdb/db_lookup.c (dblookup): Always free `cont`'s data pointer, since + it's no longer sometimes borrowed. + * libdb/db_store.c (dbstore): Free `cont`'s and `oldcont`'s data + pointers, since they're no longer borrowed. + * src/check_mandirs.c (purge_missing): Free `content`'s data pointer, + since it's no longer borrowed. + + * libdb/db_lookup.c (dblookup_pattern): Stop freeing `info->addr`. + * src/catman.c (parse_for_sec): Stop freeing `entry->addr`. + * src/whatis.c (do_apropos): Stop freeing `info->addr`. + +2022-09-24 Colin Watson + + Stop using the addr field of struct mandata + + The `addr` field of `struct mandata` is just intended as an internal + buffer, but some functions were extracting information from it in + complicated ways, which made it difficult to refactor the memory + allocation here. Use different approaches. + + * src/check_mandirs (test_manfile): Calculate `len` using `comp_info`. + This duplicates some of what `filename_info` does, but it's just some + cheap string manipulation, and it expresses what we want in a less + confusing way (the length of the file name with any compression + extension removed). + * src/descriptions_store.c (store_descriptions): Check whether `path` is + a prefix of `trace_name` rather than of `trace_info->addr`. + `trace_info->addr` is always itself a prefix of `trace_name`, so if + `path` is not a prefix of `trace_name` then it can't be a prefix of + `trace_info->addr`. + +2022-09-24 Colin Watson + + is_prefix: Improve parameter naming + + The second parameter doesn't have to be a directory, so stop implying + that in the parameter name. + + * src/descriptions_store.c (is_prefix): Rename `path` to `parent`; rename + `dir` to `child`. + +2022-09-24 Colin Watson + + Simplify split_content interface + + Now that `struct mandata` is always allocated on the heap, we might as + well just have `split_content` return a freshly-allocated `struct + mandata` rather than taking a pointer to one as a parameter. + + * libdb/db_lookup.c (split_content): Allocate and return a `struct + mandata`; remove `pinfo` parameter. Update all callers. + * libdb/db_storage.h (split_content): Update prototype. + +2022-09-24 Colin Watson + + Always allocate struct mandata on the heap + + This means we no longer need two slightly different functions for + freeing it. + + * libdb/db_lookup.c (dblookup_pattern): Allocate `struct mandata` on the + heap. Simplify arrangements for adding to the `infos` list. + (dbstore): Allocate `struct mandata` on the heap. + * src/catman.c (parse_for_sec): Likewise. + * src/check_mandirs.c (purge_pointers, purge_missing): Likewise. + * src/straycats.c (check_for_stray): Likewise. + * src/whatis.c (do_apropos): Likewise. + + * lib/filenames.c (free_mandata_elements): Remove function and move its + contents to ... + (free_mandata_struct): ... here, if `pinfo` is set. + * lib/filenames.h (free_mandata_elements): Remove prototype. + +2022-09-24 Colin Watson + + filename_info: Always allocate info->name + + Only one call site has any interest in this being unset (in order to + pass the result to `dbstore`), and even there it's easier for the caller + to deal with unsetting it. Otherwise, it's strictly more convenient if + the structure returned by `filename_info` always includes the name of + the page. + + * lib/filenames.c (filename_info): Remove `req_name` parameter; update + all callers. Always set `info->name` before returning successfully. + * lib/filenames.h (filename_info): Update prototype. + * src/check_mandirs.c (test_manfile): Use `info->name` for + `manpage_base` rather than poking around in `info->addr`. + (count_glob_matches): Remove `name` parameter; update all callers. + * src/descriptions_store.c (store_descriptions): Drop now-unnecessary + check for `trace_info->name`. + * src/man.c (do_global_apropos_section): Build `title` using + `info->name` rather than poking around in `info->addr`. + * src/mandb.c (update_one_file): Drop now-unnecessary check for + `info->name`. + +2022-09-23 Colin Watson + + Reduce indentation in store_descriptions a bit + + * src/descriptions_store.c (store_descriptions): Use an early-continue + construction to save a level of indentation. + +2022-09-23 Colin Watson + + Simplify the filename_info interface + + This interface is a bit less confusing. + + * libdb/db_lookup.c (free_mandata_elements, free_mandata_struct): Move + to ... + * lib/filenames.c (free_mandata_elements, free_mandata_struct): ... + here. + * libdb/db_storage.h (free_mandata_elements, free_mandata_struct): Move + to ... + * lib/filenames.h (free_mandata_elements, free_mandata_struct): ... + here. + + * lib/filenames.c (filename_info): Return a `struct mandata` with the + `addr` element set to the buffer containing the fields, rather than + returning the buffer and taking a pointer to a `struct mandata` as a + parameter. Update all callers. + * lib/filenames.h (filename_info): Update prototype. + +2022-09-23 Colin Watson + + Move manual page file name utilities to lib/ + + * src/filenames.c: Move to ... + * lib/filenames.c: ... here. + * src/filenames.h: Move to ... + * lib/filenames.h: ... here. Update positioning of all includes. + * lib/Makefile.am (libman_la_SOURCES): Add `filenames.c` and + `filenames.h`. + * src/Makefile.am (man_recode_LDADD): Link with `$(LIBMAN)` instead of + `$(LIBMANDB)`. + (lexgrog_SOURCES, man_SOURCES, mandb_SOURCES): Remove `filenames.c` and + `filenames.h`. + * po/POTFILES.in: Rename `src/filenames.c` to `lib/filenames.c`. + + * lib/filenames.c (gripe_bogus_manpage): Remove `quiet < 2` condition. + (filename_info): Add `warn_if_bogus` parameter; only call + `gripe_bogus_manpage` if it is set. Update all callers. + * lib/filename.h (filename_info): Update prototype. + + * libdb/db_storage.h (struct mandata): Move to ... + * lib/filenames.h (struct mandata): ... here. Add includes where + necessary. + +2022-09-23 Colin Watson + + Fix distcheck + + * po/POTFILES.in: Rename `src/compression.c` to `lib/compression.c`. + +2022-09-23 Colin Watson + + Move compression file name utilities to lib/ + + This makes more sense as a home for plain file name manipulation + utilities. I also merged `include/comp_src.h.in` into + `lib/compression.c`, because structure definitions (as opposed to + declarations) don't belong in header files. + + * src/compression.c: Move to ... + * lib/compression.c: ... here. Remove unnecessary `pipeline.h` include. + * src/compression.h: Move to ... + * lib/compression.h: ... here. Update positioning of all includes. + * lib/Makefile.am (libman_la_SOURCES): Add `compression.c` and + `compression.h`. + * lib/README: Add `compression.*`. + * src/Makefile.am (lexgrog_SOURCES, man_SOURCES, man_recode_SOURCES, + mandb_SOURCES): Remove `compression.c` and `compression.h`. + + * include/comp_src.h (comp_list): Move to ... + * lib/compression.c (comp_list): ... here. Update all references. + * include/manconfig.h (struct compression, comp_list): Move to ... + * lib/compression.h (struct compression, comp_list): ... here. Add + includes where necessary. + * Makefile.am (noinst_HEADERS): Remove `include/comp_src.h`. + +2022-09-23 Colin Watson + + Remove infoalloc macro + + It doesn't really pull its weight. + + * libdb/db_lookup.c (dblookup, dblookup_pattern): Call `XZALLOC (struct + mandata)` rather than `infoalloc ()`. + * src/man.c (try_section, do_global_apropos_section): Likewise. + * libdb/db_storage.h (infoalloc): Remove. + +2022-09-19 Colin Watson + + Maintain multi key references in sorted order + + This is a step towards being able to reproduce the same database given + the same manual page tree. + + * bootstrap.conf (gnulib_modules): Add stpcpy. + * libdb/db_lookup.c (name_ext_equals): Remove static; add pure + attribute. + (name_ext_compare): New function. + (list_extensions): Add entries in sorted order. + * libdb/db_storage.h (name_ext_equals, name_ext_compare): Add + prototypes. + * libdb/db_store.c (make_extensions_reference): New function. + (dbstore): When building or updating multi key references, maintain them + in sorted order. + * NEWS.md: Document this. + +2022-09-19 Colin Watson + + Remove some excessive debugging output + + This hasn't been of any practical use for many years. + + * lib/security.c (drop_effective_privs, regain_effective_privs): Remove + debug messages emitted when increasing or decreasing the privilege drop + count. + +2022-08-11 Colin Watson + + Fix use of pointer (address only) after free + + I don't believe this was technically undefined behaviour, since we + didn't actually dereference the dangling pointer, merely compared its + value (the pointer address itself) against entries in the cleanup stack. + However, the compiler probably had a hard time proving that, so the + use-after-free warning issued by recent versions of GCC seems fair + enough. + + * src/mandb.c (cleanup): Don't free dbpaths. + (process_manpath): Free it here instead, after calling pop_cleanup. + +2022-08-11 Colin Watson + + Make CATWIDTH override MINCATWIDTH/MAXCATWIDTH + + Otherwise setting `CATWIDTH` to something larger than 80 confusingly + doesn't work unless you also set `MAXCATWIDTH`. + + Fixes https://gitlab.com/cjwatson/man-db/-/issues/9. + + * src/man.c (add_roff_line_length): Skip terminal width range check if + `cat_width` is set. + * man/man5/manpath.man5 (FORMAT): Remove note that `CATWIDTH` should be + within the range set by `MINCATWIDTH` and `MAXCATWIDTH`, and instead say + that it overrides them. + * NEWS.md: Document this. + +2022-07-22 Colin Watson + + Add more case variants of localized versions of NAME + + * src/lexgrog.l (bg_name, lt_name, ru_name, sr_name, srlatin_name, + tr_name, uk_name, vi_name): Add more case variants. + * NEWS.md: Document this. + +2022-07-18 Colin Watson + + Update pre-commit hooks + + * .pre-commit-config.yaml (pre-commit-hooks): Update to v4.3.0. + +2022-07-18 Colin Watson + + Update to Gnulib 20220717 + + Fixes https://gitlab.com/cjwatson/man-db/-/issues/6. + + * bootstrap: Sync to Gnulib df336dc1ae60d8ad9f452f2234951133fe617bb0. + * bootstrap.conf (GNULIB_REVISION): Set to + df336dc1ae60d8ad9f452f2234951133fe617bb0. + * NEWS.md: Document build fix. + +2022-07-15 Colin Watson + + Merge branch 'drop-lsm' into 'main' + + Drop LSM file + + See merge request cjwatson/man-db!4 + +2022-07-13 Pino Toscano + + Drop LSM file + + The LSM format is a very old format for software, and it is dead for + many years already. Since keeping the .lsm up-to-date is basically not + much of use, simply drop it altogether. + + * docs/Makefile.am (dist_noinst_DATA): Remove man-db.lsm. + * docs/HACKING.md: Stop mentioning man-db.lsm. + * docs/man-db.lsm: Remove file. + +2022-07-05 Stéphane Aulery + + Update French manual page translation + + * man/po4a/po/fr.po: Update from Translation Project. + +2022-06-02 Joe Hansen + + Update Danish translation + + * po/da.po: Update from Translation Project. + +2022-05-18 Colin Watson + + Cache filters alongside whatis information + + `mandb` needs to cache filters together with whatis information, as + otherwise pages were incorrectly recorded with no filters if `mandb` + happened to use cached whatis information for them rather than reading + it from scratch. + + * src/check_mandirs.c (struct whatis): Add filters. + (whatis_free): Free whatis->filters. + (test_manfile): Store and use whatis->filters. + * NEWS.md: Document this. + +2022-04-27 Andika Triwidada + + Update Indonesian translation + + * po/id.po: Update from Translation Project. + * man/THANKS: Add translator credit. + +2022-04-23 Colin Watson + + Stop GitLab from getting confused about licences + + GitLab uses https://github.com/licensee/licensee to detect the project's + licence, and if that finds multiple matching files then it throws up its + hands and refuses to make a licence assertion, with no apparent way to + override it. + + To avoid this problem, move the secondary licence files (those that + apply only to some files, rather than to the project as a whole) back + into a subdirectory, so that `licensee` doesn't notice them. + + * COPYING.GPLv2: Move to ... + * docs/COPYING.GPLv2: ... here. Update all references. + * COPYING.LIB: Move to ... + * docs/COPYING.LIB: ... here. Update all references. + * Makefile.am (dist_noinst_DATA): Remove COPYING.GPLv2. + * docs/Makefile.am (dist_noinst_DATA): Add COPYING.GPLv2 and + COPYING.LIB. + +2022-04-23 Colin Watson + + Clarify effective GPLv3 licensing + + While man-db's own files are individually licensed under GPLv2 (or in a + few cases LGPLv2.1), the project as a whole is effectively GPLv3 due to + Gnulib. This was already explained in README.md, but make it a bit + clearer by having the top-level COPYING file be a copy of GPLv3. + + * COPYING: Move to ... + * COPYING.GPLv2: ... here. + * COPYING: New file. + * Makefile.am (dist_noinst_DATA): Add COPYING.GPLv2. + * lib/README, man/it/man1/apropos.man1, man/it/man1/man.man1, + man/it/man1/manpath.man1, man/it/man1/whatis.man1, + man/it/man1/zsoelim.man1, man/it/man5/manpath.man5, + man/it/man8/accessdb.man8, man/it/man8/catman.man8, + man/it/man8/mandb.man8, man/man1/apropos.man1, man/man1/lexgrog.man1, + man/man1/man-recode.man1, man/man1/man.man1, man/man1/manconv.man1, + man/man1/manpath.man1, man/man1/whatis.man1, man/man1/zsoelim.man1, + man/man5/manpath.man5, man/man8/accessdb.man8, man/man8/catman.man8, + man/man8/mandb.man8, manual/comp.me, manual/db.me, manual/files.me, + manual/format.me, manual/glossary.me, manual/intro.me, manual/leader.me, + manual/man_db.me, manual/misc.me, manual/sec.me: Refer to COPYING.GPLv2 + rather than COPYING. + +2022-04-23 Colin Watson + + Update pre-commit hooks + + * .pre-commit-config.yaml (pre-commit-hooks): Update to v4.2.0. + +2022-04-17 Emir SARI + + Update Turkish manual page translation + + * man/po4a/po/tr.po: Update from Translation Project. + * man/THANKS: Update translator credit. + +2022-04-16 Colin Watson + + Recognize another Turkish translation of NAME + + Emir SARI reports that "AD" is the de facto standard technical + terminology for "NAME" in Turkish, rather than "Ä°SÄ°M" which sounds + slightly colloquial. Recognize it as well. + + * src/lexgrog.l (tr_name): Add "AD". + +2022-04-12 Emir SARI + + Update Turkish translation + + * po/tr.po: Update from Translation Project. + * man/THANKS: Add translator credit. + +2022-03-17 Colin Watson + + Release man-db 2.10.2 + + NEWS.md: Fix typo for 2.7.6 + +2022-03-08 Colin Watson + + pre-commit: Avoid need for multiple shellcheck runs + + * .shellcheckrc: Set `external-sources=true`. + * src/tests/lexgrog-backslash-dash-rhs, src/tests/lexgrog-basic, + src/tests/lexgrog-multiple-whatis, src/tests/man-deleted-directory, + src/tests/man-exact-section-matches, + src/tests/man-executable-page-on-path, src/tests/man-invalid-db-entry, + src/tests/man-language-specific-requests, + src/tests/man-mandatory-manpath, src/tests/man-missing-locales, + src/tests/man-override-dir, src/tests/man-recode-in-place, + src/tests/man-recode-suffix, src/tests/man-so-links-same-section, + src/tests/man-suffixed-extension, + src/tests/man-symlinks-with-matching-names, + src/tests/manconv-coding-tags, src/tests/manconv-guess-from-encoding, + src/tests/manconv-incomplete-char-at-eof, + src/tests/manconv-odd-combinations, src/tests/mandb-basic, + src/tests/mandb-bogus-symlink, src/tests/mandb-cachedir-tag, + src/tests/mandb-empty-page, src/tests/mandb-purge-updates-timestamp, + src/tests/mandb-regular-file-symlink-changes, + src/tests/mandb-symlink-beats-whatis-ref, + src/tests/mandb-symlink-target-timestamp, + src/tests/mandb-whatis-broken-link-changes, + src/tests/whatis-path-to-executable, src/tests/zsoelim-so-includes: Add + `shellcheck source-path=SCRIPTDIR` directive before sourcing testlib.sh. + * .pre-commit-config.yaml: Consolidate the two shellcheck hooks into + one. + +2022-03-08 Colin Watson + + pre-commit: Add shellcheck + + * .pre-commit-config.yaml: Add shellcheck. We need separate hooks for + `src/tests/` and for everything else, since shellcheck needs a `-P` + option to correctly handle sourced files in `src/tests/`. + * .shellcheckrc: New file. + +2022-03-08 Colin Watson + + Refactor use of cd in shell scripts + + shellcheck warns about unchecked uses of `cd` (SC2164). Either check it + or refactor to avoid changing directory. + + * src/tests/man-deleted-directory: Check `cd` call. + * src/tests/man-suffixed-extension: Avoid changing directory. + * tools/mkcatdirs: Likewise. + +2022-03-08 Colin Watson + + mkcatdirs: Skip nonexistent man directories + + * tools/mkcatdirs: `manpath -qg` may return man directories that are + mentioned in the configuration file but that don't exist on the + filesystem. Skip these. + +2022-03-08 Colin Watson + + mkcatdirs: Refactor using install(1) + + I'm not sure this script is widely-used, but it might as well work. It + previously relied on `mkinstalldirs`, which is a build tool not + typically installed on end-user systems. + + * tools/mkcatdirs: Refactor cat directory creation using install(1). + +2022-03-08 Colin Watson + + Apply various minor shell syntax improvements + + * manual/print-options: Explicitly set `LANGUAGE=''` rather than + `LANGUAGE=`, pacifying shellcheck SC1007 which notes that this + construction might otherwise be misread. + * src/tests/manconv-odd-combinations: Use `printf %b` to pacify + shellcheck SC2059. + * src/tests/testlib.sh: Tell shellcheck which shell syntax to assume, + since this file has no `#!` line. + (run): Disable shellcheck SC2154; `abs_top_builddir` is always set by + the test runner. + (report): Remove unnecessary `$` before variable in arithmetic context. + (tools/checkman): Use `$(...)` for command substitution. Quote + variables properly where possible, and ignore shellcheck SC2068 in a + couple of other places. + +2022-03-07 Colin Watson + + tests: Pacify shellcheck SC2188 + + The previous construction resulted in: + + SC2188 (warning): This redirection doesn't have a command. Move to its + command (or use 'true' as no-op). + + * src/tests/man-mandatory-manpath, src/tests/testlib.sh: Avoid + redirections without a command. + +2022-03-07 Colin Watson + + tests: Make pass/fail reporting more shellcheck-friendly + + * src/tests/testlib.sh (report): New function, similar to expect_pass + but taking an exit code rather than a command string to evaluate. + (expect_pass): Remove. + (expect_files_equal): Refactor using report function. + * src/tests/man-deleted-directory, + src/tests/man-executable-page-on-path, src/tests/man-missing-locales, + src/tests/man-recode-in-place, src/tests/manconv-incomplete-char-at-eof, + src/tests/mandb-bogus-symlink, src/tests/mandb-cachedir-tag, + src/tests/mandb-empty-page, src/tests/mandb-purge-updates-timestamp: + Refactor to use report function rather than expect_pass. + +2022-03-07 Colin Watson + + tests: Add an expect_files_equal helper function + + * src/tests/testlib.sh (expect_files_equal): New function. + * src/tests/lexgrog-backslash-dash-rhs, src/tests/lexgrog-basic, + src/tests/lexgrog-multiple-whatis, src/tests/man-exact-section-matches, + src/tests/man-invalid-db-entry, + src/tests/man-language-specific-requests, + src/tests/man-mandatory-manpath, src/tests/man-override-dir, + src/tests/man-recode-in-place, src/tests/man-recode-suffix, + src/tests/man-so-links-same-section, src/tests/man-suffixed-extension, + src/tests/man-symlinks-with-matching-names, + src/tests/manconv-coding-tags, src/tests/manconv-guess-from-encoding, + src/tests/manconv-odd-combinations, src/tests/mandb-basic, + src/tests/mandb-purge-updates-timestamp, + src/tests/mandb-regular-file-symlink-changes, + src/tests/mandb-symlink-beats-whatis-ref, + src/tests/mandb-symlink-target-timestamp, + src/tests/mandb-whatis-broken-link-changes, + src/tests/whatis-path-to-executable, src/tests/zsoelim-so-includes: Use + expect_files_equal instead of the equivalent expect_pass construction. + +2022-03-07 Colin Watson + + tests: Improve quoting + + * src/tests/lexgrog-backslash-dash-rhs, src/tests/lexgrog-basic, + src/tests/lexgrog-multiple-whatis, src/tests/man-deleted-directory, + src/tests/man-exact-section-matches, + src/tests/man-executable-page-on-path, src/tests/man-invalid-db-entry, + src/tests/man-language-specific-requests, + src/tests/man-mandatory-manpath, src/tests/man-missing-locales, + src/tests/man-override-dir, src/tests/man-recode-in-place, + src/tests/man-recode-suffix, src/tests/man-so-links-same-section, + src/tests/man-suffixed-extension, + src/tests/man-symlinks-with-matching-names, + src/tests/manconv-coding-tags, src/tests/manconv-guess-from-encoding, + src/tests/manconv-incomplete-char-at-eof, + src/tests/manconv-odd-combinations, src/tests/mandb-basic, + src/tests/mandb-bogus-symlink, src/tests/mandb-cachedir-tag, + src/tests/mandb-empty-page, src/tests/mandb-purge-updates-timestamp, + src/tests/mandb-regular-file-symlink-changes, + src/tests/mandb-symlink-beats-whatis-ref, + src/tests/mandb-symlink-target-timestamp, + src/tests/mandb-whatis-broken-link-changes, + src/tests/whatis-path-to-executable, src/tests/zsoelim-so-includes: Use + ': "${var=default}"' idiom to assign default values rather than + ': ${var=default}', pacifying shellcheck. + +2022-03-06 Nikola Forró + + Add --with-snapdir configure option + + * m4/man-arg-snapdir.m4: New file. + * configure.ac: Call MAN_ARG_SNAPDIR. + * src/man_db.conf.in: Use @snapdir@ rather than hardcoding /snap. + * NEWS.md: Document this. + +2022-03-06 Colin Watson + + Tidy up NEWS.md slightly + + * NEWS.md: Reorder fixes and improvements; add credit for last commit. + +2022-03-06 Mihail Konev + + man(1): Fix override dir handling + + Previously, override dir was affecting only some cases of manpath + determination. Apply it only when all paths have been gathered instead. + + Also look for override dir when sorting candidates. + + Fixes src/tests/man-override-dir failing when --with-override-dir=od is + passed to ./configure. + + [cjwatson: Refactored candidate comparison to use a strcmp-style + function, and simplified the addition of override directories a little + more.] + + * src/man.c (compare_override_dir): New function. + (compare_candidates): Compare override directory status between + comparing section extensions and comparing locale elements. + * src/manp.c (insert_override_dir): Remove. + (get_manpath_from_path, add_man_subdirs): Remove calls to + insert_override_dir. + (create_pathlist): Add OVERRIDE_DIR at the canonicalization stage + instead. + * NEWS.md: Document this. + + Reported-by: Nikola Forró + Tested-by: Nikola Forró + +2022-03-06 Colin Watson + + Update to Gnulib 20220301 + + In line with Gnulib, we now require Automake 1.14. + + * bootstrap.conf (GNULIB_REVISION): Set to + 8c4f4d7a3c28f88b64fce2fb1d0dc0e570d1a482. + (buildreq): Bump required automake version to 1.14. + * configure.ac (AM_INIT_AUTOMAKE): Bump minimum version to 1.14. + * NEWS.md: Document this. + +2022-03-06 Colin Watson + + Add some hardening options to the systemd service + + Based on a patch by Johannes Segitz in the openSUSE packaging, although + I added `PrivateTmp=true` and `LockPersonality=true` as well. + + * init/systemd/man-db.service.in: Add some hardening options. (This may + produce warnings with `systemd < 244`.) + * NEWS.md: Document this. + +2022-03-05 Colin Watson + + Make the man-db manual build reproducible + + Inspired by a patch from B. Wiedemann, but implemented differently. + + * manual/Makefile.am (version): Set "td" string to the package's release + date, since otherwise groff's me package will use the current date. + * NEWS.md: Document this. + +2022-03-05 Dr. Werner Fink + + Fix showing HTML, as firefox runs into background too fast + + [cjwatson: I'm not 100% keen on this approach, since it randomly depends + on how long the browser happens to take to launch and might be a bit + annoying for users of light browsers such as w3m, but there doesn't seem + to be any other good alternative for the more common case of people + using typical graphical browsers.] + + Fixes Debian bug #335411 and Savannah bug #59542. + + * src/man.c (format_display): Sleep for a few seconds after starting the + browser, since it may background itself before loading files. + * NEWS.md: Document this. + +2022-02-18 МироÑлав Ðиколић + + Update Serbian manual page translation + + * man/po4a/po/sr.po: Update from Translation Project. + +2022-02-17 Remus-Gabriel Chelu + + Update Romanian translation + + * po/ro.po: Update from Translation Project. + * man/THANKS: Update translator credit. + +2022-02-15 Remus-Gabriel Chelu + + Update Romanian manual page translation + + * man/po4a/po/ro.po: Update from Translation Project. + +2022-02-15 Remus-Gabriel Chelu + + Update Romanian manual page translation + + * man/po4a/po/ro.po: Update from Translation Project. + * man/THANKS: Add translator credit. + +2022-02-10 Colin Watson + + Release man-db 2.10.1 + +2022-02-10 Colin Watson + + Add a top-level update-po target + + This simplifies the common task of ensuring that both program and manual + page translation files are up to date. + + * Makefile.am (update-po): New target. + +2022-02-09 Colin Watson + + Fix warnings when building without zlib + + * src/decompress.c (decompress_new_inprocess): Only define this function + if HAVE_LIBZ is defined. + (OPEN_FLAGS_UNUSED): New macro, defined to MAYBE_UNUSED if HAVE_LIBZ is + undefined. + (decompress_open): Declare flags as unused if HAVE_LIBZ is defined. + +2022-02-08 Colin Watson + + Use Gnulib raise module + + This can be made slightly more portable (e.g. to MinGW). + + * bootstrap.conf (gnulib_modules): Add raise. + * lib/cleanup.c (sighandler): Call raise rather than kill. + +2022-02-08 Colin Watson + + Merge branch 'libintl' into 'main' + + libdb: link against libintl explicitly + + See merge request cjwatson/man-db!3 + +2022-02-08 Colin Watson + + Use @LTLIBINTL@ rather than $(LIBINTL) + + This matches our other Makefiles. + +2022-02-08 Boyuan Yang <073plan@gmail.com> + + Update Simplified Chinese manual page translation + + Fixes Debian bug #1005139. + + * man/po4a/po/zh_CN.po: Update from Translation Project. + +2022-02-08 Colin Watson + + Fix building on Cygwin + + Achim reported that 2.10.0 no longer builds on Cygwin, while 2.9.4 did. + This was magnificently obscure, at least to this Unix-head. Initially + it appeared to be an issue with inter-library linking between libman and + libmandb, but 2.9.4 relied on that too, just slightly less so. + + The actual problem was that libman only exported + `gl_get_setlocale_null_lock` and not all the other symbols it's supposed + to export, which is because that was explicitly marked for export and no + other symbols were. Building libman with `-Wl,--export-all-symbols` + fixes this; libman is intended as an aggregation of various helper + functions, including those from Gnulib, and it doesn't make sense to be + especially selective since it's only installed as a private library + anyway. + + (I'm still not exactly sure why 2.9.4 didn't do the same thing, but this + seems to be a good enough fix.) + + * configure.ac: Set LIBMAN_EXPORT_LDFLAGS to '-Wl,--export-all-symbols' + when linking with GNU ld on Windows platforms. + * lib/Makefile.am (libman_la_LDFLAGS): Add $(LIBMAN_EXPORT_LDFLAGS). + * src/Makefile.am (LIBMAN): Remove $(top_builddir)/gl/lib/libgnu.la; as + a convenience library, this is already incorporated into libman.la, and + specifying it again causes multiple-definition errors on Cygwin. + * src/tests/Makefile.am (get_mtime_LDADD): Likewise. + * NEWS.md: Document this. + +2022-02-08 Colin Watson + + Document fix for building without iconv + + * NEWS.md: Document previous change. + +2022-02-08 Colin Watson + + Fix building without iconv + + * src/convert.c (convert_to_locale) [!HAVE_ICONV]: Declare a function + rather than a macro. + (convert_to_locale): Add ATTRIBUTE_MALLOC. + +2022-02-08 Colin Watson + + Remove some unused includes + + * lib/encodings.c: Remove unused #include "pipeline.h". Explicitly + include , previously included implicitly via "pipeline.h". + * lib/security.c, lib/util.c: Remove unused #include "pipeline.h". + +2022-02-07 Fabian Groffen + + libdb: link against libintl explicitly + + Necessary since gettext is used for translations. + + [sam: originally found downstream in Gentoo on Gentoo Prefix on macOS.] + +2022-02-06 Colin Watson + + Suppress Clang warnings with -Wconstant-logical-operand + + * src/lexgrog.l (find_name): Explicitly test `*PROG_COL != '\0'` rather + than just `*PROG_COL`, to pacify `clang -Wconstant-logical-operand`. + * src/man.c (make_roff_command, make_display_command): Likewise. + +2022-02-06 Colin Watson + + Revert "Reduce indentation depth using C99" + + This reverts commit c4d20840f3487588c4a0da4397b1acb6dc83a1e5. Even in + C99, a declaration isn't valid immediately after a label; this didn't + become valid until C2x, although gcc allows it as an extension. + + Fixes https://gitlab.com/cjwatson/man-db/-/issues/2. + + * src/man.c (parse_opt): Restore enclosing block for OPT_WARNINGS. + * NEWS: Document this. + +2022-02-04 Colin Watson + + Fix another edge case in mandb-symlink-target-timestamp + + * src/tests/mandb-symlink-target-timestamp: Fix handling of the case + where the nanosecond part of a timestamp is exactly 0 (probably because + the filesystem doesn't support nanosecond resolution). + +2022-02-04 Colin Watson + + Fix occasional mandb-symlink-target-timestamp test failure + + * src/tests/mandb-symlink-target-timestamp: Fix handling of the case + where the nanosecond part of a timestamp starts with a zero. + * NEWS.md: Document this. + +2022-02-04 Colin Watson + + Update man-db.lsm properly + + Release man-db 2.10.0 + +2022-01-31 Colin Watson + + gitlab-ci: Run tests with VERBOSE=1 + + This makes it easier to diagnose test failures. + + * .gitlab-ci.yml (build-distcheck:script, build-out-of-tree:script): Set + VERBOSE=1. + +2022-01-31 Colin Watson + + man: Avoid spurious error messages due to subpages + + Since man-db 2.4.2, `man` has behaved as if the `-l` option was given if + a manual page argument contains a slash. Since man-db 2.5.6, this has + interacted slightly poorly with the subpage feature, emitting spurious + error messages if given multiple manual page arguments some of which + include a slash. `man` no longer emits spurious error messages in this + case. + + Fixes Savannah bug #53708. + + * src/man.c (man): Move name-contains-slash case to ... + (man_maybe_local): ... here (new function). + (main): Call man_maybe_local instead of man where checking for names + containing slashes is acceptable. + * NEWS.md: Document this. + +2022-01-31 Colin Watson + + mandb: Fix handling of link target mtimes + + Depending on directory iteration order, mandb sometimes incorrectly + stored the mtime of a symlink as the mtime of its target as well. + + Fixes Debian bug #691643. + + * src/descriptions_store.c (store_descriptions): When adding entries + based on an ult_src trace, use the mtime of the target file if possible + rather than the mtime of the base entry. + * src/tests/Makefile.am (ALL_TESTS): Add mandb-symlink-target-timestamp. + * src/tests/get-mtime.c (main): Use lstat rather than stat. + * src/tests/mandb-symlink-target-timestamp: New file. + * NEWS.md: Document this. + +2022-01-30 Colin Watson + + Update translation files + + * po/man-db.pot, po/*.po: Update. + +2022-01-30 Colin Watson + + Update to Gnulib 20220130 + + * bootstrap: Sync to Gnulib 735f319cde4ab7e98294557181d682564241d846. + * bootstrap.conf (GNULIB_REVISION): Set to + 735f319cde4ab7e98294557181d682564241d846. + +2022-01-30 Colin Watson + + Simplify static analysis of fatal errors + + The usual idiom for fatal error reporting in man-db is `error (FATAL, + ...)` (there are a few cases using different exit codes, but they're + less common). Unfortunately, there's no easy way to tell the compiler + that this call doesn't return, because `error (0, ...)` *does* return. + As a result, some call sites required extra work to give the compiler + this information, which can sometimes make a difference to static + analysis. + + To simplify this, add a new `fatal` helper function which always exits + `FATAL` (i.e. 2) and never returns. This is declared with `_Noreturn` + so that the compiler can straightforwardly know what's going on. + + * bootstrap.conf (gnulib_modules): Add verror. + (XGETTEXT_OPTIONS): Add --flag=fatal:2:c-format. + * lib/fatal.c, lib/fatal.h: New files. + * lib/Makefile.am (libman_la_SOURCES): Add fatal.c and fatal.h. + * src/tests/Makefile.am (AM_CPPFLAGS): Add -I$(top_srcdir)/lib. + (get_mtime_LDADD): Add $(top_builddir)/lib/libman.la. + + * lib/pathsearch.c (pathsearch, directory_on_path): Use fatal. + * lib/sandbox.c (can_load_seccomp, make_seccomp_filter, _sandbox_load): + Likewise. + * lib/security.c (gripe_set_euid): Likewise. + * lib/xregcomp.c (xregcomp): Likewise. + * libdb/db_lookup.c (gripe_corrupt_data, dblookup_pattern): Likewise. + * libdb/db_ver.c (dbver_wr): Likewise. + * src/accessdb.c (main): Likewise. + * src/catman.c (parse_for_sec): Likewise. + * src/check_mandirs.c (chown_if_possible): Likewise. + * src/man-recode.c (recode): Likewise. + * src/man.c (open_cat_stream, format_display, gripe_converting_name): + Likewise. + * src/manconv.c (add_output): Likewise. + * src/manp.c (add_dir_to_path_list): Likewise. + * src/tests/get-mtime.c (main): Likewise. + * src/whatis.c (do_apropos): Likewise. + * src/zsoelim.l (\"?[^ \t\n\"]+\"?): Likewise. + + * libdb/db_lookup.c (gripe_corrupt_data, gripe_replace_key): Declare as + _Noreturn. + + * src/accessdb.c (main): Remove now-unnecessary assertion. + * src/man.c (gripe_converting_name): Remove now-unnecessary abort. + +2022-01-30 Colin Watson + + docs: Move COPYING and COPYING.LIB to top level + + I think people are more likely to expect to find them here - I recently + even found myself confused by their previous placement. + + * docs/COPYING, docs/COPYING.LIB: Move to ... + * COPYING, COPYING.LIB: ... here, respectively. + * lib/README: Update references. + +2022-01-30 Colin Watson + + man: Don't modify MANSECT environment variable + + Reported and diagnosed by Rob Hoelz. Fixes Savannah bug #58896. + + * src/man.c (get_section_list): Copy colon_sep_section_list before + passing it to strtok. + * NEWS.md: Document this. + +2022-01-30 Colin Watson + + libdb: Pacify gcc -Wempty-body + + * libdb/mydbm.h (MYDBM_REORG) [NDBM, BTREE]: Change no-op macro + definition to avoid "suggest braces around empty body" warning in mandb. + +2022-01-30 Alejandro Cendejas Tena + + Update Spanish manual page translation + + * man/po4a/po/es.po: Update from Translation Project. + +2022-01-30 Colin Watson + + mandb: Don't modify DB without changing its mtime + + In d9ebedad15 (man-db 2.7.0), mandb started relying on the modification + times of database files themselves rather than using a special row, in + order to make databases reproducible between otherwise-identical + installations (subject to predictable behaviour from the underlying + database). + + There was a difficulty with this change. Because purging deleted pages + from the database opened and closed the database in a separate phase + before the main phase of looking for updated manual pages, and because + the main phase relies on comparing against the mtime of the database to + find changed files, I had to arrange to restore the original mtime at + the end of the purge phase in order to avoid confusing the main phase + into being a no-op. However, in some cases (perhaps due to other bugs, + but nevertheless), it's possible for the purge phase to find work to do + without the main phase ever finding any modified directories, which + meant that the net effect of mandb would be to modify its database + without changing its mtime. This is bad form, and confused some backup + systems into believing that the filesystem had been corrupted, since + files having their contents changed without updating their mtime is + indeed a likely symptom of filesystem corruption. + + To avoid this, restructure our database-handling code so that a given + mandb run opens any given database at most once. This means that we no + longer need to modify mtimes manually, so the usual filesystem rules + apply. + + Fixes Debian bug #1004355 and Ubuntu bug #1411633. + + * bootstrap.conf (gnulib_modules): Remove futimens. + * libdb/db_btree.c (man_btree_close): Rename to ... + (man_btree_free): ... this. Check whether wrap->file is set. Free + wrap->mtime. + (man_btree_new): New function. + (man_btree_open): Convert to running on the result of man_btree_new. + (man_btree_get_time): Cache return value in wrap->mtime. + (man_btree_set_time): Remove. + * libdb/db_gdbm.c (man_gdbm_new): New function. + (man_gdbm_open_wrapper): Convert to running on the result of + man_gdbm_new. + (man_gdbm_get_time): Cache return value in wrap->mtime. + (man_gdbm_set_time): Remove. + (raw_close): Check whether wrap->file is set. + (man_gdbm_close): Rename to ... + (man_gdbm_free): ... this. + * libdb/db_ndbm.c (raw_close): Check whether wrap->file is set. + (man_ndbm_close): Rename to ... + (man_ndbm_free): ... this. + (man_ndbm_new): New function. + (man_ndbm_open): Convert to running on the result of man_ndbm_new. + (man_ndbm_get_time): Cache return value in wrap->mtime. + (man_ndbm_set_time): Remove. + * libdb/db_xdbm.c (man_xdbm_close): Rename to ... + (man_xdbm_free): ... this. Update all callers. Free dbf->mtime. + * libdb/db_xdbm.h (man_xdbm_close): Rename to ... + (man_xdbm_free): ... this. + * libdb/mydbm.h (man_gdbm_wrapper, man_ndbm_wrapper, man_btree_wrapper): + Add mtime. + (man_gdbm_new, man_ndbm_new, man_btree_new): Add prototypes. + (man_gdbm_open_wrapper, man_ndbm_open, man_btree_open): Update + prototypes. + (man_gdbm_set_time, man_ndbm_set_time, man_btree_set_time): Remove + prototypes. + (man_gdbm_close, man_ndbm_close, man_btree_close): Rename to ... + (man_gdbm_free, man_ndbm_free, man_btree_free): ... these, respectively. + (MYDBM_NEW): New macro. + (MYDBM_CTRWOPEN, MYDBM_RWOPEN, MYDBM_RDOPEN): Rename file argument to + wrap. + (MYDBM_CLOSE): Rename to ... + (MYDBM_FREE): ... this. + (MYDBM_SET_TIME): Remove macro. + + * src/catman.c (parse_for_sec): Take a MYDBM_FILE argument rather than a + database path. + * src/check_mandirs.c (gripe_rwopen_failed, testmandirs, create_db, + update_db, purge_missing): Likewise. + * src/mandb.c (update_one_file, update_db_wrapper): Likewise. + * src/straycats.c (straycats): Likewise. + * src/check_mandirs.h (create_db, update_db, purge_missing): Update + prototypes. + * src/straycats.h (straycats): Likewise. + + * src/check_mandirs.c (ensure_db_open): New function. + (testmandirs): Only open the database if it wasn't already open, and + don't close it. + (update_db, purge_missing): Likewise. + * src/mandb.c (update_one_file): Likewise. + * src/straycats.c (straycats): Assert that the database is already open, + and don't close it. + + * src/accessdb.c (main): Update database opening code. + * src/catman.c (post_fork): Update database closing code. + (parse_for_sec): Move database opening and closing code to ... + (main): ... here, and update it. + * src/man.c (dbdelete_wrapper): Update database opening and closing + code. + * src/whatis.c (search): Update database opening and closing code. + + * src/check_mandirs.c (purge_missing): Don't reorganize the database. + * src/mandb.c (mandb): Create a MYDBM_FILE from the database path, and + close and free it before returning. Rearrange purging so that it runs + on the temporary database copy, which we close and remove if + purge_missing finds a consistency problem requiring us to rescan from + scratch. Unless purging requires a rescan, all of the purge, main, and + stray cats phases now run on the same open database file. Reorganize + the database before closing it if the purge phase did any work. + (process_manpath): Rename the temporary database into place if either of + the purge or stray cats phases did any work, even if the main phase + didn't. + + * src/check_mandirs.c (update_db_time): Remove. + (create_db): Don't manually update the database mtime. + (update_db, purge_missing): Likewise. + + * src/tests/Makefile.am (ALL_TESTS): Add mandb-purge-updates-timestamp. + (check_PROGRAMS): Add get-mtime. + (get_mtime_SOURCES, get_mtime_LDADD): Add. + * src/tests/get-mtime.c: New file: test helper to get a file's mtime + portably. + * src/tests/mandb-purge-updates-timestamp: New file. + * .gitignore: Add src/tests/get-mtime. + + * NEWS: Document this. + +2022-01-29 Colin Watson + + man: Make dbdelete_wrapper use the correct database + + Even if it has permissions to delete stale entries from the database, + dbdelete_wrapper can't assume that the most recently opened database is + the one from which it should delete the entry; it needs to use the + database to which the candidate in question belongs. + + * src/man.c (database): Remove global variable. + (dbdelete_wrapper): Add a manpath argument, and attempt to open the + associated database locally. + (display_database_check): Pass the candidate's path (i.e. manpath) to + dbdelete_wrapper. + (try_db): Make the database path a local variable. Reorganize cleanup + paths. + (main): Stop freeing database, since it's no longer a global variable. + +2022-01-29 Colin Watson + + mandb: Fix some details of error handling + + * src/check_mandirs.c (testmandirs): Return -1 rather than -errno on + failure to create the database. + (create_db, update_db): Only call update_db_time if amount > 0, rather + than if it is non-zero (since it may be negative to indicate an error, + and updating the database time doesn't make sense in that case). + (update_db): Return -1 rather than EOF. + * src/mandb.c (update_db_wrapper): Check whether amount is non-zero + rather than whether it is unequal to EOF. + +2022-01-29 Colin Watson + + libdb: Remove unused MYDBM_CRWOPEN macro + + * libdb/mydbm.h (MYDBM_CRWOPEN): Remove. + +2022-01-29 Colin Watson + + mandb: Call purge_missing and straycats from mandb + + We can simplify some logic by pushing these down a layer. + + * src/check_mandirs.c (purge_missing): Remove will_run_mandb argument, + which was always true due to --filename implying --no-purge. + * src/check_mandirs.h (purge_missing): Update prototype. + * src/mandb.c (process_manpath): Move purge_missing and straycats calls + to ... + (mandb): ... here. + +2022-01-29 Colin Watson + + mandb: Factor out some duplicate code + + * src/mandb.c (mandb): Move common create/update logic outside the + database-type-specific #ifdefs. + +2022-01-26 Colin Watson + + Use bool in more places in mandb + + * src/check_mandirs.c (testmandirs): Change "create" parameter and + "created" local variable types to bool. Update all callers. + (check_multi_key): Change "valid" local variable to bool. + (purge_missing): Change "will_run_mandb" parameter and "db_exists" local + variable types to bool. Update all callers. + * src/check_mandirs.h (purge_missing): Update prototype. + * src/mandb.c (struct tried_catdirs_entry): Change "seen" element type + to bool. Update all users. + (mandb): Change "should_create" and "cachedir_tag_exists" local variable + types to bool. + (process_manpath): Change "run_mandb" local variable type to bool. + (is_lang_dir): Return bool. + +2022-01-26 Yi-Jyun Pan + + Update Traditional Chinese translation + + * po/zh_TW.po: Update from Translation Project. + * man/THANKS: Update translator credit. + +2022-01-25 Colin Watson + + Add Spanish translator credit + + * man/THANKS: Add translator credit. + +2022-01-25 Petr Pisar + + Update Czech translation + + * po/cs.po: Update from Translation Project. + * man/THANKS: Add translator credit. + +2022-01-24 Mario Blättermann + + Update German manual page translation + + * man/po4a/po/de.po: Update from Translation Project. + +2022-01-24 Alejandro Cendejas Tena + + Update Spanish manual page translation + + * man/po4a/po/es.po: Update from Translation Project. + +2022-01-24 Alejandro Cendejas Tena + + Update Spanish manual page translation + + * man/po4a/po/es.po: Update from Translation Project. + +2022-01-24 Colin Watson + + Fix upload/release machinery to handle .tar.xz + + Release man-db 2.10.0-pre1 + +2022-01-24 Colin Watson + + Improve documentation of search path handling + + Fixes Savannah bug #61862. + + * man/man5/manpath.man5 (SEARCH PATH): New section. + * man/man1/apropos.man1 (ENVIRONMENT): Refer to manpath(5) for details + of MANPATH. + * man/man1/man.man1 (ENVIRONMENT): Likewise. + * man/man1/manpath.man1 (ENVIRONMENT): Likewise. + * man/man1/whatis.man1 (ENVIRONMENT): Likewise. + * man/man8/catman.man8 (ENVIRONMENT): Likewise. + +2022-01-24 Colin Watson + + Fix typos in descriptions of --systems + + Fixes Savannah bug #61861. + + * man/man1/apropos.man1 (OPTIONS): "system's" → "systems'". + * man/man1/man.man1 (Finding manual pages): Likewise. + * man/man1/manpath.man1 (OPTIONS): Likewise. + * man/man1/whatis.man1 (OPTIONS): Likewise. + +2022-01-24 Colin Watson + + Merge branch 'optimize-decompression' into 'main' + + Significantly improve mandb performance + + See merge request cjwatson/man-db!2 + +2022-01-24 Colin Watson + + Optimize manconv_inprocess for UTF-8 target encoding + + If the target encoding is UTF-8, then manconv's first stage (trial + conversion from UTF-8) can more efficiently be replaced with UTF-8 + validation, leaving the original decompressed buffer unchanged on + success. Suggested by Steinar H. Gunderson. + + * src/manconfig.h (UNLIKELY): New macro. + * src/decompress.c (decompress_inprocess_buf): New function. + * src/decompress.h (decompress_inprocess_buf): Add prototype. + * src/utf8.c, src/utf8.h: New files, based on glib's UTF-8 validation + code. + * src/manconv_client.c (manconv_inprocess): Optimize case where + source_encoding is not UTF-8 and target_encoding is UTF-8 by returning + early if UTF-8 validation passes. + * src/Makefile.am (lexgrog_SOURCES, man_SOURCES, man_recode_SOURCES, + mandb_SOURCES): Add utf8.c and utf8.h. + +2022-01-24 Colin Watson + + Significantly improve mandb performance + + Forking large numbers of subprocesses is slow. An ideal fix would + involve work in libpipeline (e.g. generator functions or + multithreading), but in the meantime we can do much better in the common + case of moderately-sized pages compressed using zlib by doing in-process + decompression. On my test system, this takes `mandb -c` from 344 + seconds (or 152 seconds with `MAN_DISABLE_SECCOMP=1` before 50200d151d, + or 78 seconds with `MAN_DISABLE_SECCOMP=1` after 50200d151d) to 10 + seconds. + + Thanks to Steinar H. Gunderson for a proof of concept, which I reworked + extensively. + + Fixes Debian bugs #630799 and #1003089, and Ubuntu bug #1858777. + + * NEWS.md: Document this. Bump version to 2.10.0. + * src/decompress.c (enum decompress_tag): Add DECOMPRESS_INPROCESS. + (struct decompress_inprocess): New structure. + (struct decompress): Add an inprocess element. + (decompress_new_inprocess, decompress_try_zlib, decompress_is_pipeline, + decompress_inprocess_len, decompress_inprocess_replace): New functions. + (decompress_open): Add flags argument. Try in-process zlib + decompression if requested via DECOMPRESS_ALLOW_INPROCESS. Update all + callers to pass a flags argument (0 unless otherwise stated). + (decompress_start, decompress_read, decompress_peek, + decompress_peek_skip, decompress_readline, decompress_peekline, + decompress_wait, decompress_free): Implement in-process mode. + * src/decompress.h (DECOMPRESS_ALLOW_INPROCESS): Define. + (decompress_open): Update prototype. + (decompress_fdopen): Update comment to indicate that this always uses + pipeline-based decompression. + (decompress_is_pipeline, decompress_inprocess_len, + decompress_inprocess_replace): Add prototypes. + (decompress_start, decompress_wait): Update comments to document + behaviour for in-process decompressors. + + * src/manconv.c (add_output): Add output buffer argument; append to + output buffer if given, otherwise write to stdout as before. + (try_iconv): Add and pass output buffer argument. + (manconv): Likewise. Update all callers to pass output buffer argument + (NULL unless otherwise stated). + * src/manconv.h (struct manconv_outbuf): New structure. + (manconv): Update prototype. + * src/manconv_client.c (manconv_inprocess): New function. + * src/manconv_client.h (manconv_inprocess): Add prototype. + + * src/lexgrog.l (find_name): Request in-process decompression unless + operating on a cat page. Use manconv_inprocess rather than add_manconv + in the in-process case. + * src/man.c (grep): Request in-process decompression. + * src/ult_src.c (ult_src): Likewise. + * src/zsoelim.l (try_compressed, zsoelim_open_file): Likewise. + +2022-01-24 Colin Watson + + Avoid a manconv subprocess in more cases + + Suggested by Steinar H. Gunderson. + + * src/manconv_client.c (add_manconv): Return early if the source and + target encodings are equal, not just if they're both UTF-8. + +2022-01-22 Colin Watson + + Make manconv error handling less abrupt + + Exiting immediately on errors works OK if manconv is only ever used in a + subprocess, but that approach makes it hard to use in an in-process + context. + + * src/manconv.c (add_output): New function, factored out of try_iconv + and manconv. + (tried_iconv): New enumeration. + (try_iconv): Use add_output. Return TRIED_ICONV_FATAL where we would + previously have exited the process. + (manconv): Use add_output. Return non-zero if add_output returns + non-zero or try_iconv returns TRIED_ICONV_FATAL. + * src/manconv.h (manconv): Update prototype. + * src/manconv_client.c (manconv_stdin): Exit with FATAL if manconv + returns non-zero. + * src/manconv_main.c (main): Likewise. + +2022-01-22 Colin Watson + + Clarify argument naming in add_manconv + + Suggested by Steinar H. Gunderson. + + * src/manconv_client.c (add_manconv): Rename source to source_encoding, + and target to target_encoding. + * src/manconv_client.h (add_manconv): Update prototype. + +2022-01-19 Colin Watson + + Add a layer of abstraction to decompression + + It would be useful to have an optimized version of the common case of + zlib decompression that doesn't involve forking subprocesses. As + preparation for this, insert an abstraction layer around code that reads + from decompressors. This abstraction layer looks almost identical to + the `libpipeline` API except for name changes, but having it allows us + to implement decompression in some other way. + + Code that requires `libpipeline`-based decompression can use + `decompress_get_pipeline` to assert that the decompressor uses + `libpipeline` and return the underlying `pipeline *`. + + * src/decompress.c (enum decompress_tag, struct decompress, + decompress_new_pipeline, decompress_get_pipeline, decompress_start, + decompress_read, decompress_peek, decompress_peek_skip, + decompress_readline, decompress_peekline, decompress_wait, + decompress_free): Add. + (decompress_open, decompress_fdopen): Return `decompress *` rather than + `pipeline *`. + * src/decompress.h (decompress): New typedef. + (decompress_open, decompress_fdopen): Update prototypes. + (decompress_get_pipeline, decompress_start, decompress_read, + decompress_peek, decompress_peek_skip, decompress_readline, + decompress_peekline, decompress_wait, decompress_free): Add prototypes. + + * src/lexgrog.l (YY_INPUT, find_name, find_name_decompressed): Use + decompression API. + * src/man-recode.c (recode): Likewise. + * src/man.c (get_preprocessors_from_file, get_preprocessors, + make_roff_command, format_display_and_save, format_display, + display_catman, display, display_pages, grep): Likewise. + * src/manconv.c (check_preprocessor_encoding, try_iconv, manconv): + Likewise. + * src/manconv_client.c (manconv_stdin): Likewise. + * src/manconv_main.c (main): Likewise. + * src/straycats.c (check_for_stray): Likewise. + * src/ult_src.c (ult_src): Likewise. + * src/zsoelim.l (YY_INPUT, <>, zsoelim_parse_file, try_compressed, + zsoelim_open_file): Likewise. + + * src/lexgrog.h (find_name_decompressed): Update prototype. + * src/manconv.h (check_preprocessor_encoding, manconv): Likewise. + +2022-01-19 Alejandro Cendejas Tena + + Update Spanish manual page translation + + * man/po4a/po/es.po: Update from Translation Project. + +2022-01-18 Colin Watson + + Fix missing options when invoking troff + + Broken by 000cda3ec5. + + * configure.ac: Move PROG_TROFF definition after all assignments to + $troff. + +2022-01-18 Colin Watson + + Fix override-dir handling + + Broken by 000cda3ec5. + + * m4/man-arg-override-dir.m4 (MAN_ARG_OVERRIDE_DIR): Remove superfluous + "$" from AC_DEFINE_UNQUOTED call. + +2022-01-17 Colin Watson + + Remove AM_MAINTAINER_MODE + + I enabled this in fb4afb0b75, saying that timestamps were too fragile + for the rebuild rules to work well. However, I've changed my mind: git + is good at making sure that file modification times are updated when + checking out a different commit, and tarballs include timestamp + information. Moreover, with `AM_MAINTAINER_MODE` and without passing + `--enable-maintainer-mode`, flex output isn't automatically regenerated, + which is impossibly annoying and has tripped me up countless times since + 2010. + + * configure.ac (AM_MAINTAINER_MODE): Remove. + +2022-01-17 Colin Watson + + NEWS.md: Document previous commit + +2022-01-17 Colin Watson + + Merge branch 'C0rn3j-main-patch-74046' into 'main' + + man-db.timer: Use RandomizedDelaySec over AccuracySec + + See merge request cjwatson/man-db!1 + +2022-01-17 Colin Watson + + Avoid libpipeline linkage in libman + + Since it's only used by one function, and not all of man-db's tools need + libpipeline in their own right (e.g. accessdb), it seems worth pushing + this up a layer. + + * lib/encodings.c (struct conversion_entry, conversion_table, + convert_encoding, check_preprocessor_encoding): Move to ... + * src/manconv.c: ... here. + * lib/encodings.h (check_preprocessor_encoding): Move to ... + * src/manconv.h: ... here. + * lib/Makefile.am (libman_la_CPPFLAGS): Remove $(libpipeline_CFLAGS). + (libman_la_LDFLAGS): Remove $(libpipeline_LIBS). + * src/man-recode.c, src/man.c, src/manconv.c: Include manconv.h. + +2022-01-17 Colin Watson + + Pacify cppcheck in check_preprocessor_encoding + + * lib/encoding.c (check_preprocessor_encoding): Explicitly initialize + directive_end and ppsearch. If directive is non-NULL by the time these + are used then they're always initialized, but cppcheck didn't manage to + spot that. + +2022-01-16 Colin Watson + + Update to Gnulib 20220116 + + * bootstrap: Sync to Gnulib 1eae0f7ea3c220d054025f2c9211700665f9f4a0. + * bootstrap.conf (GNULIB_REVISION): Set to + 1eae0f7ea3c220d054025f2c9211700665f9f4a0. + +2022-01-16 Colin Watson + + Move some more declarations out of manconfig.h + + Header includes should be in the same translation unit as the code that + uses them rather than being ambient across the whole project. + + * include/manconfig.h: Remove obsolete header comment about program + paths. + + * include/manconfig.h: Remove includes of "xvasprintf.h", , + "xalloc.h", and "xstrndup.h", as well as "struct pipeline" declaration. + Update all files that relied on these to include/declare them directly + instead as needed. + + * include/manconfig.h (MAN_DB, mkdbname): Move to ... + * libdb/mydbm.h: ... here. + +2022-01-16 Colin Watson + + Move appendstr out of manconfig.h + + * include/manconfig.h (appendstr): Move to ... + * lib/appendstr.h: ... here (new file). + * lib/Makefile.am (libman_la_SOURCES): Add appendstr.h. + * lib/README: Update file names. + * lib/appendstr.c, libdb/db_delete.c, src/catman.c, src/check_mandirs.c, + src/compression.c, src/filenames.c, src/globbing.c, src/man.c, + src/manconv_client.c, src/manconv_main.c, src/manp.c, src/straycats.c, + src/whatis.c, src/zsoelim.l: Include appendstr.h. + +2022-01-16 Colin Watson + + Move debug-related declarations out of manconfig.h + + * include/manconfig.h (debug_level, init_debug, debug, debug_error): + Move to ... + * lib/debug.h: ... here (new file). + * lib/Makefile.am (libman_la_SOURCES): Add debug.h. + * lib/README: Update file names. + * lib/debug.c, lib/encodings.c, lib/sandbox.c, lib/security.c, + lib/util.c, libdb/db_btree.c, libdb/db_delete.c, libdb/db_gdbm.c, + libdb/db_lookup.c, libdb/db_store.c, libdb/db_ver.c, src/accessdb.c, + src/catman.c, src/check_mandirs.c, src/descriptions.c, + src/descriptions_store.c, src/filenames.c, src/globbing.c, + src/globbing_test.c, src/lexgrog_test.c, src/man-recode.c, src/man.c, + src/manconv.c, src/manconv_main.c, src/mandb.c, src/manp.c, + src/manpath.c, src/straycats.c, src/ult_src.c, src/whatis.c, + src/zsoelim.l, src/zsoelim_main.c: Include debug.h. + +2022-01-16 Colin Watson + + Move create_tempdir out of manconfig.h + + * include/manconfig.h (create_tempdir): Move to ... + * lib/tempfile.h: ... here (new file). + * lib/Makefile.am (libman_la_SOURCES): Add tempfile.h. + * lib/tempfile.c, src/man.c: Include tempfile.h. + +2022-01-16 Colin Watson + + Move util.c-related declarations out of manconfig.h + + * include/manconfig.h (is_changed, is_directory, escape_shell, + remove_directory, trim_spaces, lang_dir, init_locale): Move to ... + * lib/util.h: ... here (new file). + * lib/Makefile.am (libman_la_SOURCES): Add util.h. + * lib/util.c, src/accessdb.c, src/catman.c, src/check_mandirs.c, + src/descriptions.c, src/globbing.c, src/globbing_test.c, src/lexgrog.l, + src/lexgrog_test.c, src/man-recode.c, src/man.c, src/manconv_main.c, + src/mandb.c, src/manp.c, src/manpath.c, src/straycats.c, src/whatis.c, + src/zsoelim_main.c: Include util.h. + +2022-01-16 Colin Watson + + Move comp_info and comp_file out of manconfig.h + + * include/manconfig.h (comp_info, comp_file): Move to ... + * src/compression.h: ... here (new file). + * src/Makefile.am (lexgrog_SOURCES, man_SOURCES, man_recode_SOURCES, + mandb_SOURCES): Add compression.h. + * src/compression.c, src/filenames.c, src/man-recode.c, src/man.c, + src/straycats.c, src/ult_src.c: Include compression.h. + +2022-01-16 Colin Watson + + Move straycats out of manconfig.h + + * include/manconfig.h (straycats): Move to ... + * src/straycats.h: ... here (new file). + * src/Makefile.am (mandb_SOURCES): Add straycats.h. + * src/mandb.c, src/straycats.c: Include straycats.h. + +2022-01-16 Colin Watson + + Use lexgrog type definitions consistently + + * include/manconfig.h (MANPAGE, CATPAGE): Move to ... + * src/lexgrog.h (MANPAGE, CATPAGE): ... here. + * src/lexgrog.l (find_name, find_name_decompressed): Compare p_lg->type + against CATPAGE rather than testing its truth value. + * src/lexgrog_test.c (main): Set type to MANPAGE/CATPAGE rather than + 0/1. + +2022-01-16 Colin Watson + + Update translation files + + * po/man-db.pot, po/*.po: Update. + +2022-01-16 Colin Watson + + Fix build system following changes to include/*.h + + * Makefile.am (noinst_HEADERS): Add include/comp_src.h and + include/manconfig.h. + * lib/Makefile.am (libman_la_CPPFLAGS): Replace + -I$(top_builddir)/include with -I$(top_srcdir)/include. + * libdb/Makefile.am (libmandb_la_CPPFLAGS): Likewise. + * src/Makefile.am (AM_CPPFLAGS): Likewise. + * src/tests/Makefile.am (AM_CPPFLAGS): Likewise. + +2022-01-16 Colin Watson + + Remove Checker support + + The GNU Checker package was last released in 2005, and its web page + (https://www.gnu.org/software/checker/) says that it has been + decommissioned in favour of Valgrind. + + * include/manconfig.h (chkr_garbage_detector): Remove. + * src/man.c (main): Remove call to chkr_garbage_detector. + * src/mandb.c (main): Likewise. + * src/whatis.c (search): Likewise. + +2022-01-16 Colin Watson + + Remove obsolete include/README + + * include/README: Remove; it claimed that this directory contains files + created by configure, which is no longer true, and it said nothing else + useful. + * Makefile.am (dist_noinst_DATA): Remove include/README. + +2022-01-16 Colin Watson + + Stop generating include/*.h from configure + + This was inconvenient when making changes to those central header files. + All `configure`-generated preprocessor symbols are now in `config.h`. + + * configure.ac: Define various PROG_* symbols. Remove AC_SUBST calls + for compressors and decompressors. + (AC_CONFIG_FILES): Remove include/comp_src.h and include/manconfig.h. + * m4/man-arg-override-dir.m4: Define OVERRIDE_DIR symbol. + * include/manconfig.h.in: Rename to ... + * include/manconfig.h: ... this. Remove PROG_*, OVERRIDE_DIR, and + COMPRESS_EXT definitions. + * include/comp_src.h.in: Rename to ... + * include/comp_src.h: ... this. + * README.md: Update references to include/manconfig.h. + * .gitignore: Remove include/*.h. + +2022-01-16 Colin Watson + + Rename program preprocessor symbols to PROG_* + + This is mainly in order to avoid potential confusion with `PIC` (defined + when building position-independent code), but I renamed all these + variables for consistency. + + * include/manconfig.h.in (PAGER, CAT, WEB_BROWSER, TR, GREP, TROFF, + NROFF, EQN, NEQN, TBL, COL, VGRIND, REFER, GRAP, PIC, COMPRESSOR, + GUNZIP, UNCOMPRESS, BUNZIP2, UNLZMA, UNXZ, LZIP, UNZSTD): Rename to ... + (PROG_PAGER, PROG_CAT, PROG_BROWSER, PROG_TR, PROG_GREP, PROG_TROFF, + PROG_NROFF, PROG_EQN, PROG_NEQN, PROG_TBL, PROG_COL, PROG_VGRIND, + PROG_REFER, PROG_GRAP, PROG_PIC, PROG_COMPRESSOR, PROG_GUNZIP, + PROG_UNCOMPRESS, PROG_BUNZIP2, PROG_UNLZMA, PROG_UNXZ, PROG_LZIP, + PROG_UNZSTD): ... these (respectively). Update all references. + +2022-01-16 Colin Watson + + Move lexgrog-related bits out of manconfig.h + + It's generally cleaner for things like this to be in a dedicated header + file. + + * include/manconfig.h.in (struct lexgrog, find_name, + find_name_decompressed): Move to ... + * src/lexgrog.h: ... here (new file). Simplify declarations slightly. + * include/manconfig.h.in (lexgrog filter enum): Move to ... + * src/lexgrog.l: ... here. + * src/Makefile.am (lexgrog_SOURCES, mandb_SOURCES): Add lexgrog.h. + * src/check_mandirs.c, src/lexgrog.l, src/lexgrog_test.c, + src/straycats.c: Include lexgrog.h. + +2022-01-16 Martin + + man-db.timer: Use RandomizedDelaySec Avoids congesting resources, otherwise this runs daily at 12:00 and 00:00 https://www.freedesktop.org/software/systemd/man/systemd.timer.html + +2022-01-09 Colin Watson + + Recognize Arabic and Persian translations of NAME + + * src/lexgrog.l (ar_name, fa_name): Add. + (name): Add ar_name and fa_name. + * NEWS.md: Document this. + +2022-01-09 Colin Watson + + Note Macedonian support + + * src/lexgrog.l: Note that bg_name also works for mk (Macedonian). + +2022-01-09 Colin Watson + + Downgrade "malformed .lf request" warning to debug + + Fixes Debian bug #998426. + + * src/zsoelim.l (.): Downgrade and rephrase message, + since *roff arithmetic expressions are valid here and we can't + reasonably parse them. + * NEWS.md: Document this. + +2022-01-09 Colin Watson + + NEWS.md: Fix rendering with some parsers + +2022-01-09 Colin Watson + + Use MAYBE_UNUSED rather than _GL_UNUSED + + We should be using the public name from Gnulib's `attribute.h`. + + * lib/orderfiles.c (order_files) [!HAVE_LINUX_FIEMAP_H && + !HAVE_POSIX_FADVISE]: Use MAYBE_UNUSED rather than _GL_UNUSED. + * lib/sandbox.c (_sandbox_load) [!HAVE_LIBSECCOMP]: Likewise. + * lib/security.c (drop_privs): Likewise. + * libdb/db_ndbm.c (unsorted_nextkey): Likewise. + * src/accessdb.c (help_filter): Likewise. + * src/check_mandirs.c (chown_if_possible) [!MAN_OWNER]: Likewise. + * src/convert.c (close_conv_to_locale): Likewise. + * src/decompress.c (decompress_zlib): Likewise. + * src/lexgrog_test.c (help_filter): Likewise. + * src/man.c (help_filter, squeeze_blank_lines, disable_hyphenation, + disable_justification): Likewise. + * src/manconv.c (manconv): Likewise. + * src/manp.c (free_config_file): Likewise. + * src/tests/fspause.c (main): Likewise. + * src/whatis.c (help_filter): Likewise. + * src/zsoelim_main.c (parse_opt): Likewise. + +2022-01-09 Colin Watson + + lexgrog: Produce output in the user's locale + + Fixes Debian bug #970482. + + * src/whatis.c (simple_convert): Move to ... + * src/convert.c: ... here (new file). Rename to convert_to_locale, and + automatically handle setup/teardown of the iconv descriptor. + * src/convert.h: New file. + + * src/whatis.c (display): Use convert_to_locale instead of + simple_convert. + (main): Remove setup/teardown of iconv descriptor, now handled + automatically by convert_to_locale. + * src/lexgrog_test.c (main): Convert name and whatis to the user's + locale. + * src/Makefile.am (lexgrog_SOURCES, whatis_SOURCES): Add convert.c and + convert.h. + * NEWS.md: Document this. + +2022-01-03 Colin Watson + + Add man-pages(7) reference to man(1) + + Fixes Debian bug #974174. + + * man/man1/man.man1 (DESCRIPTION): Add man-pages(7) reference to + description of section 7. + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update. + * NEWS.md: Document this. + +2022-01-03 Colin Watson + + Document MAN_DISABLE_SECCOMP and PIPELINE_DEBUG + + Fixes Debian bug #941622. + + * man/man1/man.man1 (ENVIRONMENT): Document MAN_DISABLE_SECCOMP and + PIPELINE_DEBUG. + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update. + * NEWS: Document this. + +2022-01-03 Colin Watson + + NEWS: Document previous commit + +2022-01-03 Colin Watson + + Reduce overhead of MAN_DISABLE_SECCOMP=1 + + If MAN_DISABLE_SECCOMP=1 is set (or if seccomp is otherwise + unavailable), then there's no need to call seccomp_init and friends, + which can have significant overhead even if we never actually load the + resulting filter. + + Pointed out by Steinar H. Gunderson in https://bugs.debian.org/1003089. + + * lib/sandbox.c (make_seccomp_filter): Return NULL early if + can_load_seccomp returns false. + (_sandbox_load): Return early if the relevant context is NULL. + (sandbox_free): Only call seccomp_release if the relevant context is + non-NULL. + +2022-01-03 Colin Watson + + Indicate that merge requests are preferred + + * docs/HACKING.md (Sending patches): Describe merge request workflow and + indicate that it is preferred. + +2022-01-03 Colin Watson + + Reformat hacking documentation as Markdown + + * docs/HACKING: Move to ... + * docs/HACKING.md: ... here. Reformat as Markdown. + * docs/Makefile.am (dist_noinst_DATA): Replace HACKING with HACKING.md. + +2022-01-03 Colin Watson + + Add release automation + + When a tag is pushed to GitLab, upload the bootstrapped source tarball + to the package registry, and create a release in GitLab associated with + the tag. + + * .gitlab-ci.yml (stages): Remove test, since it had no jobs. Add + upload and release. + (build-distcheck:script): Configure with --enable-maintainer-mode, to + ensure that flex-generated scanners are fresh. + (upload, release): New jobs. + * release.sh: Remove. GitLab CI handles building releases now. + * Makefile.am (EXTRA_DIST): Remove release.sh. + * docs/HACKING: Update for GitLab-based release process. + +2022-01-03 Colin Watson + + Reformat release notes as Markdown + + * NEWS: Move to ... + * NEWS.md: ... here. Reformat as Markdown. + * Makefile.am (dist_noinst_DATA): Remove NEWS; Automake automatically + includes this file (or NEWS.md) in the distribution without help. + * README.md, docs/HACKING: Refer to NEWS.md instead of NEWS. + +2022-01-02 Colin Watson + + Remove superfluous quotes + + * Makefile.am (gen_start_date): Remove superfluous quotes. + +2022-01-02 Colin Watson + + Add build-distcheck CI artifact + + This should eventually allow publishing release tarballs built by a CI + process rather than on my laptop. + + * .gitlab-ci.yml (variables): Set GIT_DEPTH to 0; we need full history + in order to build the ChangeLog file. + (bootstrap:before_script): Add wget, needed to fetch Gnulib PO files. + (build-distcheck:before_script): Add git, needed by gitlog-to-changelog. + (build-distcheck:artifacts): Add bootstrapped/*.tar.xz. + +2022-01-02 Colin Watson + + Switch CI image to debian:unstable + + This gives us newer versions of various dependencies such as the + autotools. + + * .gitlab-ci.yml (default:image): Switch from gcc to debian:unstable. + (pre-commit:before_script, bootstrap:before_script): Explicitly install + git. + +2022-01-02 Colin Watson + + Pacify gcc -fanalyzer in manconv + + * src/manconv_main.c (main): Assert that from_code is non-NULL; this is + guaranteed by the argp state machine, but the compiler can't prove that. + +2022-01-02 Colin Watson + + Fix crash in globbing if run with no arguments + + * src/globbing_test.c (parse_opt): Emit a usage message if there are no + non-option arguments. + (main): Assert that remaining_args is non-NULL; this is now guaranteed + by the argp state machine, but the compiler can't prove that. + * NEWS: Document this. + +2022-01-02 Colin Watson + + Pacify gcc -fanalyzer in catman + + It isn't actually possible for sections to be NULL after argp parsing + has finished, but "gcc -fanalyzer" can't easily determine that, and it's + easy enough to arrange for it not to matter. + + * src/catman.c (main): Handle case where sections is NULL. + +2022-01-02 Colin Watson + + Pacify gcc -fanalyzer in some database functions + + In GCC 11.2.0, -fanalyzer seems to get confused by copies by assignment + of "struct datum", and thinks that there are use-after-free or + double-free possibilities with multiple loop iterations. These seem to + be false positives, so ignore them for now. + + * libdb/db_lookup.c (dblookup_pattern): Ignore false use-after-free + diagnostic. + * src/accessdb.c (main): Ignore false double-free diagnostics. + * src/catman.c (parse_for_sec): Ignore false use-after-free diagnostics. + * src/check_mandirs.c (sanity_check_db): Ignore false double-free + diagnostics. + (purge_pointers, purge_missing): Ignore false use-after-free + diagnostics. + * src/whatis.c (do_apropos): Ignore false use-after-free and double-free + diagnostics. + +2022-01-02 Colin Watson + + Pacify gcc -fanalyzer in dbdelete + + The refs list can't in fact be empty by this point (because we checked + earlier that we could look up this_ref in it), but it's hard for "gcc + -fanalyzer" to prove that, so help it understand that multi_content can + never end up being NULL. + + * libdb/db_delete.c (dbdelete): Initialize multi_content before looping + over refs. + +2022-01-02 Colin Watson + + Assert that some xasprintf calls return non-NULL + + "gcc -fanalyzer" notices that xasprintf can return NULL in some + situations (string length > INT_MAX, invalid format string, or multibyte + conversion error), and that we weren't handling this in various cases + where we use the return value in contexts that require non-NULL values. + The situations seem obscure enough for simple asserts to be appropriate. + + * lib/pathsearch.c (pathsearch): Assert that xasprintf returns non-NULL. + * lib/tempfile.c (create_tempdir): Likewise. + * lib/util.c (remove_directory): Likewise. + * libdb/db_lookup.c (make_multi_key): Likewise. + * libdb/db_store.c (make_content, dbstore): Likewise. + * src/check_mandirs.c (add_dir_entries, fix_permissions_tree): Likewise. + * src/compression.c (comp_file): Likewise. + * src/globbing.c (look_for_file): Likewise. + * src/man.c (main): Likewise. + * src/mandb.c (mandb, purge_catsubdirs): Likewise. + * src/manp.c (pathappend): Likewise. + * src/ult_src.c (find_include): Likewise. + * src/whatis.c (use_grep): Likewise. + * src/zsoelim.l (zsoelim_open_file): Likewise. + +2022-01-02 Colin Watson + + Fix path searching crash if getcwd fails + + xgetcwd can return NULL if getcwd returns NULL for reasons other than + ENOMEM, so we should handle this. Found by "gcc -fanalyzer". + + * lib/pathsearch.c (pathsearch, directory_on_path): Emit a fatal error + if xgetcwd returns NULL. + * po/POTFILES.in: Add lib/pathsearch.c. + * NEWS: Document this. + +2022-01-02 Colin Watson + + Update to Gnulib 20211231 + + In line with Gnulib, we now require Autoconf 2.64. + + * bootstrap: Sync to Gnulib 14db2b71b5bd05b94ec6126617fd32cd5f1016cd. + * bootstrap.conf (GNULIB_REVISION): Set to + 14db2b71b5bd05b94ec6126617fd32cd5f1016cd. + (buildreq): Bump required autoconf version to 2.64. + * configure.ac (AC_PREREQ): Bump to 2.64. + (--enable-gcc-warnings): New option, based on code in coreutils. Use + this to enable -fanalyzer only if --enable-gcc-warnings=expensive is + used; it's useful but slow. + * include/manconfig.h.in (create_tempdir, appendstr): Move NODISCARD to + the start of these function declarations, required by draft C2x. + * patches/argp-domain.patch: Rebase. + * NEWS: Document this. + +2022-01-02 Colin Watson + + Fix NULL dereference in get_locale_charset callers + + * lib/encodings.c (get_canonical_charset_name): Declare argument and + return value as non-NULL. + (get_locale_charset): Declare return value as non-NULL. Fall back to + "ANSI_X3.4-1968" if locale_charset returned NULL or the empty string. + +2022-01-02 Colin Watson + + Trim down direct Gnulib dependencies a little + + * bootstrap.conf (gnulib_modules): Add c99 (already used indirectly, but + seems like a good idea to request directly now). Remove getopt-gnu, + lock, and unsetenv, none of which we use directly. Replace fcntl with + fcntl-h and signal with signal-h, since we use the corresponding header + files directly but not the corresponding functions. + * .gitignore: Remove lib/getopt.h. + +2022-01-01 Colin Watson + + Fix warnings with Autoconf >= 2.70 + + * configure.ac (AC_PROG_LEX): Add noyywrap argument (new in Autoconf + 2.70, but ignored in previous versions). + * m4/man-bdb.m4 (MAN_CHECK_BDB): Autoconf 2.70 warns about non-literal + arguments to AC_CHECK_HEADERS. Refactor loops so that the header and + library names are visible to m4. + +2022-01-01 Colin Watson + + Add an SC_ALLOW_PERMISSIVE macro + + This plays slightly better with clang-format. + + * lib/sandbox.c (SC_ALLOW_PERMISSIVE): New macro. + (make_seccomp_filter): Use SC_ALLOW_PERMISSIVE instead of forms such as + "if (permissive) SC_ALLOW (name);". + +2022-01-01 Colin Watson + + Use Gnulib attribute.h properly + + manconfig.h previously used _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM without + first including "stdio.h", which caused build failures. We should be + using the public names anyway. + + * bootstrap.conf (gnulib_modules): Add attribute. + + * include/manconfig.h.in (create_tempdir, appendstr): Use NODISCARD + rather than _GL_ATTRIBUTE_NODISCARD. + + * include/manconfig.h.in (debug, debug_error): Use ATTRIBUTE_FORMAT + rather than _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM. + * lib/debug.c (vdebug): Likewise. + + * include/manconfig.h.in (appendstr): Use ATTRIBUTE_SENTINEL rather than + _GL_ATTRIBUTE_SENTINEL. + + * lib/encodings.c (get_page_encoding): Use ATTRIBUTE_MALLOC rather than + _GL_ATTRIBUTE_MALLOC. + * lib/util.c (trim_spaces): Likewise. + + * lib/encodings.c (is_roff_device, get_output_encoding, + get_less_charset, get_jless_charset): Use ATTRIBUTE_PURE rather than + _GL_ATTRIBUTE_PURE. + * lib/glcontainers.c (string_equals, string_hash): Likewise. + * lib/security.c (running_setuid): Likewise. + * src/manp.c (canonicalized_path_equals, canonicalized_path_hash): + Likewise. + * src/whatis.c (match): Likewise. + + * libdb/db_lookup.c (dash_if_unset): Use ATTRIBUTE_CONST rather than + _GL_ATTRIBUTE_CONST. + * libdb/db_store.c (compare_ids): Likewise. + +2022-01-01 Colin Watson + + Reduce indentation depth using C99 + + * src/man.c (parse_opt): Remove an enclosing block and associated + indentation level, since C99 allows mixing declarations and code. + +2022-01-01 Colin Watson + + Pacify pre-commit + + * lib/mp.h: Remove trailing whitespace. + +2022-01-01 Colin Watson + + Simplify interface to container iterator macros + + The Gnulib container iterator macros (GL_LIST_FOREACH_* and + GL_MAP_FOREACH_*) have to run code both before and after a chunk of + user-supplied code. This previously required a START/END macro pair + used something like this: + + GL_LIST_FOREACH_START (names, name) { + ... + } GL_LIST_FOREACH_END (names); + + This doesn't look natural in C, and so it was easy to get it wrong. + + It's possible to do better, at the cost of some tricky macros. + Fortunately, Simon Tatham has already done the hard work in + https://www.chiark.greenend.org.uk/~sgtatham/mp/, and the necessary + header file is MIT-licensed, so we can incorporate it. Now these + iterator macros are used more like this, which is a much more natural C + style: + + GL_LIST_FOREACH (names, name) { + ... + } + + * lib/mp.h: New file. + * lib/Makefile.am (libman_la_SOURCES): Add mp.h. + * lib/README: Add mp.h. Rephrase introductory text about licensing to + account for an MIT-licensed file. + * lib/glcontainers.h (GL_LIST_FOREACH_START, GL_LIST_FOREACH_END): + Rewrite as ... + (GL_LIST_FOREACH): ... this. Update all callers. + (GL_MAP_FOREACH_START, GL_MAP_FOREACH_END): Rewrite as ... + (GL_MAP_FOREACH): ... this. Update all callers. + * NEWS, README.md, docs/HACKING: Document C99 compiler requirement. + +2022-01-01 Colin Watson + + Simplify some GCC attribute handling + + * include/manconfig.h.in (ATTRIBUTE_FORMAT_PRINTF, + ATTRIBUTE_WARN_UNUSED_RESULT, ATTRIBUTE_SENTINEL): Remove in favour of + Gnulib-provided macros. + (create_tempdir, appendstr): Use _GL_ATTRIBUTE_NODISCARD rather than + ATTRIBUTE_WARN_UNUSED_RESULT. + (debug, debug_error): Use _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM rather than + ATTRIBUTE_FORMAT_PRINTF. + (appendstr): Use _GL_ATTRIBUTE_SENTINEL rather than ATTRIBUTE_SENTINEL. + * lib/debug.c (vdebug): Use _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM rather + than ATTRIBUTE_FORMAT_PRINTF. + +2022-01-01 Colin Watson + + Introduce pre-commit + + * .pre-commit-config.yaml: New file. + * .gitlab-ci.yml (stages): Add bootstrap. + (pre-commit): New job. + (bootstrap): Move to bootstrap stage. + + Remove trailing whitespace from all files. + +2022-01-01 Colin Watson + + Update licence texts + + There are no substantive licensing changes here, only formatting + adjustments and referring to the "GNU Lesser General Public License" + rather than the "GNU Library General Public License". + + * docs/COPYING: Update from current contents of + https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. + * docs/COPYING.LIB: Update from current contents of + https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt. + +2021-12-31 Colin Watson + + Document migration to GitLab + + * README.md: Add link to GitLab repository. + (Contacting the maintainer): Add GitLab issues link. + * docs/HACKING (Revision control): Update for GitLab. + * man/man1/apropos.man1 (BUGS): Add GitLab issues link. + * man/man1/lexgrog.man1 (BUGS): Likewise. + * man/man1/man-recode.man1 (BUGS): Likewise. + * man/man1/man.man1 (BUGS): Likewise. + * man/man1/manconv.man1 (BUGS): Likewise. + * man/man1/manpath.man1 (BUGS): Likewise. + * man/man1/whatis.man1 (BUGS): Likewise. + * man/man1/zsoelim.man1 (BUGS): Likewise. + * man/man5/manpath.man5 (BUGS): Likewise. + * man/man8/accessdb.man8 (BUGS): Likewise. + * man/man8/catman.man8 (BUGS): Likewise. + * man/man8/mandb.man8 (BUGS): Likewise. + * NEWS: Document this. + +2021-11-17 Colin Watson + + Reformat README + + * README: Move to ... + * README.md: ... here. Reformat as Markdown. + * Makefile.am (dist_noinst_DATA): Replace README with README.md. + * docs/INSTALL.quick: Likewise. + +2021-11-16 Colin Watson + + Add .gitlab-ci.yml + +2021-09-19 Colin Watson + + Update some obsolete Autoconf macros + + * configure.ac: Replace AC_GNU_SOURCE and AC_ISC_POSIX with + AC_USE_SYSTEM_EXTENSIONS. Replace AC_CONFIG_HEADER with + AC_CONFIG_HEADERS. Remove an obsolete comment. + +2021-09-19 Colin Watson + + Stop using obsolete AC_TRY_LINK + + This has been obsolete since Autoconf 2.55. Use its AC_LINK_IFELSE + expansion instead. + + * m4/man-bdb.m4 (MAN_CHECK_BDB): Expand AC_TRY_LINK call using + AC_LINK_IFELSE. + +2021-09-18 Mario Blättermann + + Update German manual page translation + + * man/po4a/po/de.po: Update from Translation Project. + +2021-09-18 Mario Blättermann + + Update German manual page translation + + * man/po4a/po/de.po: Update from Translation Project. + +2021-07-11 Colin Watson + + Fix mishandling of suffix matches in manpath + + Fixes Savannah bug #60906. + + * src/manp.c (pathappend): strstr might return matches that are not at + the start of a manpath element, resulting in incorrect truncation. Skip + any such matches. + +2021-02-08 Colin Watson + + Release man-db 2.9.4 + +2021-02-08 Colin Watson + + Fix distribution of Romanian manual page translation + + Accidentally omitted from 1c7b46aecbed76c9833e0a5c833fc2ffd1a7a85a. + + * man/Makefile.am (DIST_SUBDIRS): Add ro. + +2021-02-08 МироÑлав Ðиколић + + Update Serbian manual page translation + + * man/po4a/po/sr.po: Update from Translation Project. + +2020-12-11 Mario Blättermann + + Update German manual page translation + + * man/po4a/po/de.po: Update from Translation Project. + +2020-09-13 Colin Watson + + Handle \[en] escapes in NAME section + + Fixes Debian bug #970122. + + * src/lexgrog.l (MAN_NAME): Treat "\[en]" (and similar) as another + synonym for "\-", and thus as a separator. (This spelling is + groff-specific; the older "\(en" spelling was already accepted.) + * NEWS: Document this. + +2020-08-22 Colin Watson + + Fix gcc -Wzero-length-bounds warning + + * lib/orderfiles.c (order_files): Avoid accessing an element of a + zero-length array. + +2020-08-22 S. Gilles + + Allow clock_gettime64; return ENOSYS so libcs can engage fallbacks + + libcs such as musl expect ENOSYS to be returned (not EPERM) in their + fallback code, so change the seccomp filter to be more agreeable to + them. + + At the same time, clock_gettime is permitted in the filter, so permit + clock_gettime64 as well -- it will be needed by 2038 in any case. + + * lib/sandbox.c (make_seccomp_filter): Set default action to + SCMP_ACT_ERRNO (ENOSYS). Allow clock_gettime64. + * NEWS: Document this. + +2020-07-04 Colin Watson + + Add Romanian manual page translation + + * man/po4a/po/ro.po: New from Translation Project (thanks, Florentina + MuÈ™at). + * configure.ac (AC_CONFIG_FILES): Add man/ro/Makefile. + * man/LINGUAS.po4a: Add ro. + * man/Makefile.am (DIST_SUBDIRS): Add ro. + * man/ro/Makefile.am, man/ro/translator.add: New files. + * man/po4a/Makefile.am (POFILES): Add po/ro.po. + * man/po4a/po4a.cfg (po4a_langs): Add ro. + * man/THANKS: Update translator credit. + * .gitignore: Add man/ro/man1, man/ro/man5, and man/ro/man8. + +2020-07-04 Colin Watson + + Remove "Type" column from DB table in mandb(8) + + The database types table in mandb(8) has always been a bit + dubiously-placed; it's really more about how man-db is configured, and + as such makes more sense in manual/db.me (which indeed has an extended + version of the same table). It causes particular problems in translated + versions of this page, where it's very easy for it to become too wide + and cause "make check" failures. + + A proper fix for this would probably require updating existing + translations, but an easy improvement is to remove the "Type" column: it + has negligible relevance here, and removing it makes it much easier for + translated versions to stay within page width limits. + + * man/man8/mandb.man8 (DATABASE CACHES): Remove "Type" column from + table. + +2020-07-02 Colin Watson + + Recognise Romanian translations of NAME + + * src/lexgrog.l (ro_name): Add. + (name): Add ro_name. + * NEWS: Document this. + +2020-06-24 Florentina MuÈ™at + + Update Romanian translation + + * po/ro.po: Update from Translation Project. + * man/THANKS: Add translator credit. + +2020-06-22 Colin Watson + + Release man-db 2.9.3 + +2020-06-22 Colin Watson + + Avoid po4a confusion with \c + + po4a >= 0.58 (I think) changes its handling of \c slightly, resulting in + incorrect output for the admittedly awkward uses of \c in man(1). + Rearrange markup to avoid this. + + * man/man1/man.man1 (OVERVIEW): Recast description of the syntax of + locale environment variables using \f[BIR] rather than .B/.RI and \c. + (Controlling formatted output): Coalesce markup for the default prompt + into a single .BI macro, avoiding the need for \c. Unfuzzy most + translations. + * NEWS: Document this. + +2020-06-22 Colin Watson + + Fix po4a version comparison + + po4a's versions don't quite conform to Perl's standard versioning + arrangements, producing very confusing results when trying to compare + two-component and three-component versions (because "0.47" is equivalent + to "v0.470.0"). Perhaps we should use some other version comparison + system instead, but in the meantime patch things up so that what we + currently use behaves more sensibly. + + * man/po4a/Locale/Po4a/Manext.pm (_parse_version): New subroutine. + (shiftline, pushline, translate): Use _parse_version, and always use a + leading "v" on the right-hand side. + +2020-06-01 Colin Watson + + Clarify description of zstd in configure + + Suggested by crabbed halo ablution in Savannah bug #57558. + + * configure.ac: Describe zstd as "LZ77/entropy-coding compression + utility". + +2020-06-01 Colin Watson + + Release man-db 2.9.2 + +2020-06-01 Colin Watson + + Update to Gnulib 20200531 + + * bootstrap: Sync to Gnulib d4429157c13b49d1749f5ea18fb30e24ffa646aa. + * bootstrap.conf (GNULIB_REVISION): Set to + d4429157c13b49d1749f5ea18fb30e24ffa646aa. + +2020-06-01 Bernhard Rosenkränzer + + Add support for zstd-compressed manual pages + + * configure.ac: Check for zstd. + * include/comp_src.h.in (comp_list): Add zstd. + * include/manconfig.h.in: Define UNZSTD. + * NEWS: Document this. + +2020-05-31 Colin Watson + + Fix configure logic for enabling COMP_CAT + + Only enable COMP_CAT if a compressor is defined. (We don't have all + possible decompression utilities set up to be compressors too.) + + * configure.ac: Only enable COMP_CAT if $compressor is non-empty. + +2020-05-31 Colin Watson + + Make gxditview work with seccomp sandbox + + "man -X" and friends used to work by running groff with -X, causing it + to run gxditview itself. This didn't work with the seccomp sandbox: the + sorts of system calls that a text processor needs to make are not very + much related to the sorts of system calls that an X client needs to + make. + + Instead, run groff with -X -Z to pass the appropriate options to troff + but stop it from running gxditview, and then run gxditview ourselves + without sandboxing. This also lets us set a better window title. + + * src/man.c (make_roff_command): In gxditview mode, run groff with -Z as + well as -X. + (make_display_command): In gxditview mode, add an appropriate gxditview + process. + (display): In gxditview mode, call the ordinary "display formatted page" + logic, without saving a cat page. + +2020-05-31 Colin Watson + + * NEWS: Move misplaced entry to "Fixes". + +2020-05-31 Colin Watson + + Fix document font size for -X75-12 and -X100-12 + + Reported by Konrad Schwarz. + + * src/man.c (make_roff_command): Add the "-rS12" argument if the + argument to -X contains "-12". + * NEWS: Document this. + +2020-05-17 Stéphane Aulery + + Update French manual page translation + + * man/po4a/po/fr.po: Update from Translation Project. + * man/THANKS: Update translator credit. + +2020-04-12 Mario Blättermann + + Update German manual page translation + + Fixes Debian bug #955320. + + * man/po4a/po/de.po: Update from Translation Project. + +2020-04-12 Colin Watson + + NEWS: Remove superfluous ")" + +2020-04-03 Boyuan Yang <073plan@gmail.com> + + Update Simplified Chinese manual page translation + + * man/po4a/po/zh_CN.po: Update from Translation Project. + +2020-04-02 МироÑлав Ðиколић + + Update Serbian translation + + * po/sr.po: Update from Translation Project. + +2020-03-29 Colin Watson + + Add bug tracker link to manual pages + + Fixes Savannah bug #58039. + + * man/man1/apropos.man1 (BUGS), man/man1/lexgrog.man1 (BUGS), + man/man1/man-recode.man1 (BUGS), man/man1/man.man1 (BUGS), + man/man1/manconv.man1 (BUGS), man/man1/manpath.man1 (BUGS), + man/man1/whatis.man1 (BUGS), man/man1/zsoelim.man1 (BUGS), + man/man8/accessdb.man8 (BUGS), man/man8/catman.man8 (BUGS), + man/man8/mandb.man8 (BUGS): New section, containing a link to the bug + tracker. + * man/man5/manpath.man5 (BUGS): Add a link to the bug tracker. + * NEWS: Document this. + +2020-03-28 Bjarni Ingi Gislason + + man/man8/*: Fix misuse of two-fonts macros + + Correct the misuse of a two-fonts macro, which function is to + + 1) use the first font for each odd numbered argument and the second + font for all others. + + 2) join (output) the arguments without an intervening space. + + Fixes Debian bug #955187. + + * man/man8/accessdb.man8 (OPTIONS): Use a one-font macro when there is + only a single argument. + * man/man8/catman.man8 (OPTIONS): Likewise. + * man/man8/mandb.man8 (OPTIONS): Likewise. + +2020-03-28 Bjarni Ingi Gislason + + man/man1/*: Fix misuse of two-fonts macros + + Correct the misuse of a two-fonts macro, which function is to + + 1) use the first font for each odd numbered argument and the second + font for all others. + + 2) join (output) the arguments without an intervening space. + + Fixes Debian bug #955185. + + * man/man1/lexgrog.man1 (OPTIONS): Use a one-font macro when there is + only a single argument. + * man/man1/man-recode.man1 (OPTIONS): Likewise. + * man/man1/man.man1 (DESCRIPTION): Likewise. + * man/man1/whatis.man1 (OPTIONS): Likewise. + * man/man1/zsoelim.man1 (DESCRIPTION): Likewise. + +2020-02-25 Colin Watson + + Release man-db 2.9.1 + +2020-02-25 Colin Watson + + Update to Gnulib 20200224 + + * bootstrap: Sync to Gnulib d279bc6d9f9323e19ad8c32b6d12ff96dfb0f5ba. + * bootstrap.conf (GNULIB_REVISION): Set to + d279bc6d9f9323e19ad8c32b6d12ff96dfb0f5ba. + (gnulib_modules): Add havelib, needed for AM_GNU_GETTEXT in + configure.ac. + +2020-01-27 Colin Watson + + Add cat path configuration for /snap/man + + Add MANDB_MAP entry mapping the prospective /snap/man directory to + /var/cache/man/snap, as discussed with the snapd team. + + * src/man_db.conf.in: Add "MANDB_MAP /snap/man /var/cache/man/snap". + * NEWS: Document this. + +2019-12-26 Felipe Castro + + Update Esperanto translation + + * po/eo.po: Update from Translation Project. + +2019-12-26 Sebastian Rasmussen + + Update Swedish manual page translation + + * man/po4a/po/sv.po: Update from Translation Project. + +2019-12-26 Sebastian Rasmussen + + Update Swedish translation + + * po/sv.po: Update from Translation Project. + +2019-11-23 Colin Watson + + Drop fdutimens patch for GNU/Hurd + + The bug (https://bugs.debian.org/762677) that this was working around + was fixed in glibc 2.28, or Debian glibc 2.27-2. + + * patches/fdutimens-hurd.patch: Remove. + * bootstrap.conf (bootstrap_post_import_hook): Stop applying + patches/fdutimens-hurd.patch. + * Makefile.am (EXTRA_DIST): Remove patches/fdutimens-hurd.patch. + * NEWS: Document this. + +2019-10-23 Colin Watson + + Release man-db 2.9.0 + +2019-10-23 Antonio Ceballos Roa + + Update Spanish manual page translation + + * man/po4a/po/es.po: Update from Translation Project. + +2019-10-18 Antonio Ceballos Roa + + Update Spanish manual page translation + + * man/po4a/po/es.po: Update from Translation Project. + +2019-10-10 Mario Blättermann + + Update German manual page translation + + * man/po4a/po/de.po: Update from Translation Project. + +2019-10-10 Antonio Ceballos Roa + + Update Spanish manual page translation + + * man/po4a/po/es.po: Update from Translation Project. + +2019-10-07 Antonio Ceballos Roa + + Update Spanish manual page translation + + * man/po4a/po/es.po: Update from Translation Project. + +2019-10-05 Antonio Ceballos Roa + + Update Spanish manual page translation + + * man/po4a/po/es.po: Update from Translation Project. + * man/THANKS: Update translator credit. + +2019-10-05 Yuri Kozlov + + Update Russian manual page translation + + * man/po4a/po/ru.po: Update from Translation Project. + +2019-10-05 Pedro Albuquerque + + Update Portuguese manual page translation + + * man/po4a/po/pt.po: Update from Translation Project. + +2019-10-05 Pedro Albuquerque + + Update Portuguese translation + + * po/pt.po: Update from Translation Project. + +2019-10-05 Rafael Fontenelle + + Update Brazilian Portuguese manual page translation + + * man/po4a/po/pt_BR.po: Update from Translation Project. + +2019-10-03 Colin Watson + + Fix language/territory candidate comparison logic + + When I extracted the COMPARE_LOCALE_ELEMENTS macro, I apparently left in + an explicit reference to territory that should have been the "elt" + parameter. As a result, some cases of language and territory comparison + went wrong, in particular resulting in pt_BR users seeing pt pages ahead + of pt_BR pages. + + Reported by Rafael Fontenelle. + + * src/man.c (compare_candidates): Fix incorrect territory-specific + comparison in COMPARE_LOCALE_ELEMENTS. + * NEWS: Document this. + +2019-10-03 Stéphane Aulery + + Update French translation + + * po/fr.po: Update from Translation Project. + * man/THANKS: Add translator credit. + +2019-10-03 Mario Blättermann + + Update German translation + + * po/de.po: Update from Translation Project. + +2019-10-03 Yuri Kozlov + + Update Russian translation + + * po/ru.po: Update from Translation Project. + +2019-10-03 Boyuan Yang <073plan@gmail.com> + + Update Simplified Chinese translation + + * po/zh_CN.po: Update from Translation Project. + +2019-10-03 Antonio Ceballos Roa + + Update Spanish translation + + * po/es.po: Update from Translation Project. + * man/THANKS: Add translator credit. + +2019-10-03 pan93412 + + Update Traditional Chinese translation + + * po/zh_TW.po: Update from Translation Project. + +2019-10-03 Rafael Fontenelle + + Update Brazilian Portuguese translation + + * po/pt_BR.po: Update from Translation Project. + +2019-10-01 Colin Watson + + Release man-db 2.9.0-pre1 + +2019-09-30 Colin Watson + + Add a new man-recode program + + This has an interface designed for bulk conversion, and so can be much + faster than running "man --recode" on each page. + + Fixes Debian bug #933576. + + * bootstrap.conf (gnulib_modules): Add renameat, tempname, and unlinkat. + * src/man-recode.c: New file. + * src/Makefile.am (bin_PROGRAMS): Add man-recode. + (man_recode_LDADD, man_recode_SOURCES): Add. + * src/tests/man-recode-in-place, src/tests/man-recode-suffix: New files. + * src/tests/Makefile.am (ALL_TESTS): Add man-recode-in-place and + man-recode-suffix. + * .gitignore: Add src/man-recode. + * po/POTFILES.in: Add src/man-recode.c. + + * m4/man-trans-subst.m4 (MAN_TRANS_SUBST): Adjust to support program + names containing dashes. + * configure.ac: Add substitutions for man-recode. + + * man/man1/man-recode.man1: New file. + * man/man1/man.man1 (Main modes of operation): Add a note to the + description of --recode suggesting man-recode instead. + * man/man1/manconv.man1 (SEE ALSO): Add reference to man-recode(1). + * man/Makefile.am (man1_MANS): Add man1/man-recode.1. + * man/da/Makefile.am (man1_MANS): Likewise. + * man/de/Makefile.am (man1_MANS): Likewise. + * man/es/Makefile.am (man1_MANS): Likewise. + * man/fr/Makefile.am (man1_MANS): Likewise. + * man/id/Makefile.am (man1_MANS): Likewise. + * man/ja/Makefile.am (man1_MANS): Likewise. + * man/nl/Makefile.am (man1_MANS): Likewise. + * man/pl/Makefile.am (man1_MANS): Likewise. + * man/pt/Makefile.am (man1_MANS): Likewise. + * man/pt_BR/Makefile.am (man1_MANS): Likewise. + * man/ru/Makefile.am (man1_MANS): Likewise. + * man/sr/Makefile.am (man1_MANS): Likewise. + * man/sv/Makefile.am (man1_MANS): Likewise. + * man/tr/Makefile.am (man1_MANS): Likewise. + * man/zh_CN/Makefile.am (man1_MANS): Likewise. + * man/po4a/po4a.cfg: Add support for man-recode. + * man/replace.sin.in: Substitute %man_recode% and %thman_recode%. + + * NEWS: Document this. + +2019-09-30 Colin Watson + + manconv: Guess input encoding if necessary + + * src/manconv_main.c (args_doc): Mark -f option as optional. + (parse_opt): Don't fail if no input encoding was specified. + (main): If no input encoding was specified, guess it from the file name + in the same way that man does. + * man/man1/manconv.man1 (SYNOPSIS): Mark -f option as optional. + (OPTIONS): Describe new default behaviour for -f. + * configure.ac: Disable -Winline; we don't care about gl_list_add_last + not always being inlined. + * NEWS: Document this. + +2019-09-30 Colin Watson + + lexgrog, zsoelim: Suppress more compiler warnings + + -Wsuggest-attribute=malloc was added in GCC 8, so don't try to ignore it + with earlier versions. + + * src/lexgrog.l: Guard '#pragma GCC diagnostic ignored + "-Wsuggest-attribute=malloc"' so that it is only invoked with GCC >= 8. + * src/zsoelim.l: Likewise. + +2019-09-11 Colin Watson + + apropos(1), whatis(1): Fix typo + + Already fixed in man(1) by commit + 68ef9f324832c790a7e3565f726fa1bc9a6d0178. + + * man/man1/apropos.man1 (ENVIRONMENT): an -> and. + * man/man1/whatis.man1 (ENVIRONMENT): Likewise. + +2019-09-09 Colin Watson + + man: Accept "page(section)" form on command line + + Suggested by Tanguy Ortolo and Paul Wise. Fixes Debian bug #677350. + + * src/man.c (split_page_name): Accept "page(section)" form as well as + "page.section". + * src/tests/man-suffixed-extension: Test the "page(section)" form. + * man/man1/man.man1 (SYNOPSIS): Don't mention the "page.section" form + here; it gets too unwieldy to try to express all the possibilities in a + synopsis. + (EXAMPLES): Document "page(section)" form. + (OPTIONS): Hyphenate "Non-argument options" thus. + * NEWS: Document this. + +2019-09-08 Colin Watson + + Make some debugging output less verbose + + Also indent some sections of debugging output, which allows removing + some blank lines. + + Fixes Debian bug #863920. + + * src/catman.c (main): Remove unnecessary debugging output of manp + before calling create_pathlist. + * src/manp.c (main): Likewise. + * src/mandb.c (main): Likewise. + + * src/man.c (main): Remove debugging output of ruid and euid, which was + redundant with init_security. Remove extra newline before "using %s as + pager". + * src/manp.c (describe_flag, print_list): Remove: everything that adds + items to this list already emits a more human-friendly debugging + message. Remove caller of print_list. + (add_sections): Squash debugging output onto one line, and indent it by + two spaces. + (add_def, add_manpath_map, add_mandb_map, add_mandatory): Indent + debugging output by two spaces. + (read_config_file): Remove extra newline after "From the config file + %s:". + (get_manpath_from_path): Remove extra newlines before "path directory + %s" and "adding mandatory man directories". + (add_expanded_dir_to_list): Remove noisy "%s is already in the manpath" + debugging output. Indent "adding %s to manpath" by two spaces. + (add_man_subdirs): Remove noisy "and doesn't have ../man, man, + ../share/man, or share/man subdirectories" debugging output. + +2019-09-08 Colin Watson + + Refactor deduplication in create_pathlist + + This is more efficient, and also has the useful side-effect of reducing + noise in debug output. + + * src/manp.c (struct canonicalized_path): New structure. + (canonicalized_path_new, canonicalized_path_equals, + canonicalized_path_hash, canonicalized_path_free): New functions. + (add_dir_to_path_list): Canonicalize the given path and (if it exists) + add both the original and canonicalized versions as a pair. + (create_pathlist): Simplify: rather than doing a second quadratic-time + pass to eliminate duplicates, we now avoid inserting them in linear time + as we go along. + +2019-09-08 Colin Watson + + man(1): Explain interactions between -w/-W and -a + + Reported by Bjarni Ingi Gislason. Fixes Debian bug #803712. + + * man/man1/man.man1 (Main modes of operation): Explain that the -w and + -W options only print a single match by default, but that -a can be used + to print all matches. + +2019-09-08 Colin Watson + + Suggest "man man" if run with no arguments + + Fixes Debian bug #869798. + + * src/man.c (gripe_no_name): Suggest running "man man". + * NEWS: Document this. + +2019-09-08 Colin Watson + + * NEWS: Document recent manual page improvements. + +2019-09-08 Colin Watson + + Mention where other manual pages come from + + * man/man1/man.man1 (OVERVIEW): Explain that individual manual pages + normally come with whatever they document. + +2019-09-08 Colin Watson + + Revamp man(1) to be a more accessible introduction + + Fixes Savannah bug #53050. + + * man/man1/man.man1 (SYNOPSIS): Delete details of most options, as it + had got much too long and indigestible. The OPTIONS section below + remains, and is better-organised and easier to read. Delete the "man + -c" form entirely, as it's only for internal use by catman. + (DESCRIPTION): Move list of default sections to ... + (DEFAULTS): ... here. + (EXAMPLES): Use a real example rather than the peculiar "alias" + terminology for "man -t". + (OVERVIEW): Various minor editorial improvements. Remove discussion of + index database caches: it's mostly irrelevant to users, and is already + better-documented in mandb(8), apropos(1), and whatis(1). Simplify + discussion of where pages are stored. Briefly describe what cat pages + are. Rewrite description of localisation support to read more fluently + and to take into account that most users will already have a suitable + locale set up. Drop discussion of translations of this package's own + messages: this should be standard rather than something that we + explicitly need to call out here, and the term "message catalogues" was + opaque. + (DEFAULTS): Remove discussion of index database caches, as above. + Remove discussion of cat pages, since this is an implementation detail + and confused matters here too much. + (Finding manual pages): Tighten up language in description of + --sections. Simplify description of --update, and tell readers that it + is normally better to run mandb(8) instead. + (FILES): Remove mention of index database caches from here. While + man(1) does use them, they're an implementation detail and are + better-documented elsewhere. + (SEE ALSO): Remove overly-detailed cross-references to setlocale(3), + ascii(7), latin1(7), the man-db manual, and the FSSTND. Add a paragraph + mentioning documentation in other formats, such as info(1) or HTML. + * man/man5/manpath.man5 (FORMAT): Remove stray quote before the FSSTND + keyword. + * man/man8/mandb.man8 (DESCRIPTION): Remove claim that index database + caches are usually maintained by man(1). + + * man/man1/man.man1, man/man1/manpath.man1: Use the "..." style of + quoting rather than the `...' style. + +2019-09-08 Colin Watson + + Improve documentation of MANROFFOPT + + Reported by Bjarni Ingi Gislason. Fixes Debian bug #914938. + + * man/man1/man.man1 (ENVIRONMENT): Rephrase description of MANROFFOPT to + make it clear that it is added to the formatter's command line, rather + than to man's command line. + +2019-09-08 Colin Watson + + Remove confusing use of "on-line" + + Nowadays "on-line" tends to be understood as "on the internet" rather + than "on a screen", so avoid the term. + + Reported by Dan Jacobson. Fixes Debian bug #774402. + + * docs/man-db.lsm: Say "system help files" rather than "on-line help + files". + * man/man1/man.man1 (NAME): Say "system reference manuals" rather than + "on-line reference manuals". + * manual/intro.me (Introduction): Say "information" rather than "online + information". + * manual/man_db.me: Say "manual page system" rather than "online manual + page system". + + * man/man1/lexgrog.man1 (EXAMPLES): Update examples quoting man(1)'s + description. + * manual/db.me (Example database): Likewise. + * manual/intro.me (Introduction): Likewise. + * src/tests/man-mandatory-manpath: Update test quoting man(1)'s + description. + +2019-09-08 Colin Watson + + Tidy up formatting of Wilf's name + + Based on similar changes elsewhere by Bjarni Ingi Gislason. + + * man/man1/lexgrog.man1 (AUTHOR): Protect "." with "\&" if it is + followed by a space and does not mean the end of a sentence. + * man/man1/manpath.man1 (AUTHOR): Likewise. + * man/man1/whatis.man1 (AUTHOR): Likewise. + * man/man1/zsoelim.man1 (AUTHOR): Likewise. + * man/man8/accessdb.man8 (AUTHOR): Likewise. + * man/man8/catman.man8 (AUTHOR): Likewise. + * man/man8/mandb.man8 (AUTHOR): Likewise. + +2019-09-08 Bjarni Ingi Gislason + + manpath(1): Correct some typographic mistakes + + Fixes Debian bug #927452. + + * man/man1/manpath.man1 (DESCRIPTION): Use \(en for a dash where + appropriate. + (OPTIONS): Change .BR to .B if there is only one argument. + +2019-09-08 Bjarni Ingi Gislason + + apropos(1): Minor typographic changes + + Fixes Debian bug #892421. + + * man/man1/apropos.man1 (DESCRIPTION): Use "\e" to print the escape + character instead of "\\" (which is interpreted in copy mode). + (OPTIONS): Change .BR to .B if there is only one argument. + (FILES): Add a space around "|" to increase readability. + (AUTHOR): Protect "." with "\&" if it is followed by a space and does + not mean the end of a sentence. + +2019-09-08 Colin Watson + + Apply italic corrections + + Partly based on suggestions from Bjarni Ingi Gislason in Debian + bug #892421, although I had to take a slightly different approach to + avoid confusing po4a. + + * man/man1/apropos.man1 (OPTIONS): Apply italic corrections to + descriptions of --sections and --systems. Simplify three-font handling + for --systems. + * man/man1/man.man1 (Finding manual pages): Likewise. + * man/man1/whatis.man1 (OPTIONS): Likewise. + * man/man1/manpath.man1 (OPTIONS): Apply italic corrections to + description of --systems, and simplify three-font handling. + +2019-09-07 Colin Watson + + man(1): Adjust description of section 5 + + * man/man1/man.man1 (DESCRIPTION): Add a comma before "e.g.". + +2019-09-07 Bjarni Ingi Gislason + + man(1): Minor typographic changes + + Fixes Debian bug #892230. + + * man/man1/man.man1 (DESCRIPTION, HISTORY): Protect "." with "\&" if it + is followed by a space and does not mean the end of a sentence. + (EXAMPLES): Use a macro to change to the italic font instead of \fI if + possible. The macros have the italic corrections. + (EXAMPLES, Controlling formatted output, Getting help, SEE ALSO): Change + .BR/.IR to .B/.I if there is only one argument, or else separate the + second argument from the first if needed. + (DEFAULTS): Begin each sentence on a new line. + (FILES): Add a space around "|" to increase readability. + +2019-09-07 Colin Watson + + Make long lines in man(1) less likely + + Fixes part of Debian bug #892230. + + * man/man1/man.man1 (DESCRIPTION, ENVIRONMENT): Put the expansion of + %sections% on its own line. + +2019-09-07 Colin Watson + + Escape %troff% expansion correctly in manual pages + + Fixes part of Debian bug #892230. + + * configure.ac: Substitute troff_as_troff_input, which is the same as + troff but with suitable escaping so that "groff -mandoc" turns into + "groff \-mandoc". + * man/replace.sin.in (%troff%): Substitute @troff_as_troff_input@ rather + than @troff@. + +2019-09-07 Colin Watson + + Remove trailing whitespace from manual pages + + * man/man1/apropos.man1, man/man1/lexgrog.man1, man/man1/man.man1, + man/man1/manpath.man1, man/man1/whatis.man1, man/man1/zsoelim.man1, + man/man5/manpath.man5, man/man8/accessdb.man8, man/man8/catman.man8, + man/man8/mandb.man8: Remove trailing whitespace. + +2019-09-07 Sebastian Rasmussen + + Fix trivial typo in man manpage + + Fixes Savannah bug #48663. + + * man/man1/man.man1: an -> and. + +2019-09-07 Colin Watson + + Remove stray words from man(1) + + Reported by Bjarni Ingi Gislason. Fixes Debian bug #939599. + + * man/man1/man.man1 (DEFAULTS): Remove two stray words from the + description of how the pager is specified. + +2019-09-05 Colin Watson + + Adjust encoding declarations when recoding + + * lib/encodings.c (check_preprocessor_encoding): Return a modified + encoding declaration in *modified_line if the new to_encoding and + modified_line parameters are non-NULL. + * lib/encodings.h (check_preprocessor_encoding): Update prototype. + * src/man.c (make_roff_command): Pass NULL as to_encoding and + modified_line arguments to check_preprocessor_encoding. + * src/manconv.c (manconv): Output a modified encoding declaration if + necessary. + * src/tests/manconv-coding-tags: Adjust for new expected output. Add a + test for the case where the coding tag matches the target encoding. + * src/tests/manconv-odd-combinations: Adjust for new expected output. + * NEWS: Document this. + +2019-09-05 Colin Watson + + Give test cases more meaningful names + + * src/tests/lexgrog-1: Rename to ... + * src/tests/lexgrog-basic: ... this. + * src/tests/lexgrog-2: Rename to ... + * src/tests/lexgrog-multiple-whatis: ... this. + * src/tests/lexgrog-3: Rename to ... + * src/tests/lexgrog-backslash-dash-rhs: ... this. + * src/tests/man-1: Rename to ... + * src/tests/man-symlinks-with-matching-names: ... this. + * src/tests/man-10: Rename to ... + * src/tests/man-deleted-directory: ... this. + * src/tests/man-11: Rename to ... + * src/tests/man-suffixed-extension: ... this. + * src/tests/man-2: Rename to ... + * src/tests/man-executable-page-on-path: ... this. + * src/tests/man-3: Rename to ... + * src/tests/man-exact-section-matches: ... this. + * src/tests/man-4: Rename to ... + * src/tests/man-mandatory-manpath: ... this. + * src/tests/man-5: Rename to ... + * src/tests/man-so-links-same-section: ... this. + * src/tests/man-6: Rename to ... + * src/tests/man-missing-locales: ... this. + * src/tests/man-7: Rename to ... + * src/tests/man-invalid-db-entry: ... this. + * src/tests/man-8: Rename to ... + * src/tests/man-language-specific-requests: ... this. + * src/tests/man-9: Rename to ... + * src/tests/man-override-dir: ... this. + * src/tests/manconv-1: Rename to ... + * src/tests/manconv-coding-tags: ... this. + * src/tests/manconv-2: Rename to ... + * src/tests/manconv-odd-combinations: ... this. + * src/tests/manconv-3: Rename to ... + * src/tests/manconv-incomplete-char-at-eof: ... this. + * src/tests/mandb-1: Rename to ... + * src/tests/mandb-basic: ... this. + * src/tests/mandb-2: Rename to ... + * src/tests/mandb-regular-file-symlink-changes: ... this. + * src/tests/mandb-3: Rename to ... + * src/tests/mandb-whatis-broken-link-changes: ... this. + * src/tests/mandb-4: Rename to ... + * src/tests/mandb-symlink-beats-whatis-ref: ... this. + * src/tests/mandb-5: Rename to ... + * src/tests/mandb-empty-page: ... this. + * src/tests/mandb-6: Rename to ... + * src/tests/mandb-bogus-symlink: ... this. + * src/tests/mandb-7: Rename to ... + * src/tests/mandb-cachedir-tag: ... this. + * src/tests/whatis-1: Rename to ... + * src/tests/whatis-path-to-executable: ... this. + * src/tests/zsoelim-1: Rename to ... + * src/tests/zsoelim-so-includes: ... this. + * src/tests/Makefile.am (ALL_TESTS): Update. + +2019-09-01 Colin Watson + + Remove unnecessary PP_COOKIE conditionals + + PP_COOKIE is always defined, so there's no need for #ifdefs. + + * lib/encodings.c (check_preprocessor_encoding): Remove PP_COOKIE + conditional. + * src/man.c (get_preprocessors_from_file): Likewise. + * src/zsoelim.l (zsoelim_parse_file): Likewise. + +2019-08-31 Colin Watson + + Remove ability to undefine COMP_SRC + + This was a minor optimisation that wasn't worth the extra code + complexity. + + * configure.ac (COMP_SRC): Remove. + * include/comp_src.h.in: Remove COMP_SRC conditional. comp_list will + simply contain only the terminal entry if no compressors are configured. + * include/manconfig.h.in: Remove COMP_SRC conditional and comment. + * manual/comp.me (Compressed manual pages): Remove documentation of + COMP_SRC; explain that support depends on the decompressors available at + configure time. + * src/compression.c: Remove COMP_SRC conditional. + (comp_info): Only do the HP-UX check if gunzip is available. + * src/filenames.c (make_filename): Remove parenthetical comment about + COMP_SRC. + (filename_info): Remove COMP_SRC conditionals. + * src/man.c (convert_name): Likewise. + * src/straycats.c (check_for_stray): Likewise. + * src/ult_src.c (ult_src): Likewise. + * NEWS: Document this. + +2019-08-31 Colin Watson + + Improve list iteration helper + + * lib/glcontainers.h (GL_LIST_FOREACH_START): Capture the gl_list_node_t + in each loop iteration. + * src/descriptions_store.c (store_descriptions): Simplify detection of + the last loop iteration. + * src/manconv.c (manconv): Likewise. + * src/manconv_client.c (add_manconv): Likewise. + * src/manp.c (create_pathlist): Simplify manual loop iteration that can + now be expressed using GL_LIST_FOREACH_START/GL_LIST_FOREACH_END. + Simplify detection of the first loop iteration when emitting the final + search path as debugging information. + +2019-08-30 Colin Watson + + Improve data types in manconv + + * src/manconv.c (try_iconv): Change "last" parameter type to bool. + Change types of "to_utf8" and "ignore_errors" to bool. + (manconv): Convert "from" to gl_list. + * src/manconv.h (manconv): Update prototype. + * src/manconv_client.h (struct manconv_codes): Convert "from" to + gl_list. + (free_manconv_codes, add_manconv): Convert "codes->from" to gl_list. + * src/manconv_main.c (from_code, split_codes, parse_opt, main): Convert + to gl_list. + +2019-08-26 Colin Watson + + Release man-db 2.8.7 + +2019-08-26 Takeshi Hamasaki + + Update Japanese translation + + * po/ja.po: Update from Translation Project. + * man/THANKS: Add translator credit. + +2019-08-26 Colin Watson + + Order results manually for NDBM as well as GDBM + + Commit 3a753221a3dddaf4870a86a4dca4771ed2cd80b3 in 2003 (!) worked + around the fact that GDBM's firstkey/nextkey interface doesn't return + ordered results. However, at least when using GDBM's NDBM compatibility + interface, this may be true for NDBM too. Extend the manual result + ordering code to cover both of these backends. + + * libdb/db_gdbm.c (parent_keys, datum_compare, datum_equals, datum_hash, + datum_free, empty_datum, man_gdbm_firstkey, man_gdbm_nextkey, + man_gdbm_close): Move to ... + * libdb/db_xdbm.c (parent_keys, datum_compare, datum_equals, datum_hash, + datum_free, empty_datum, man_xdbm_firstkey, man_xdbm_nextkey, + man_xdbm_close): ... here (new file). + * libdb/db_xdbm.h: New file. + * libdb/db_gdbm.c (unsorted_firstkey, unsorted_nextkey, raw_close): New + functions, wrapping gdbm_firstkey, gdbm_nextkey, and gdbm_close + respectively. + (man_gdbm_firstkey, man_gdbm_nextkey, man_gdbm_close): Add GDBM-specific + wrappers for the generic man_xdbm_* functions. + * libdb/db_ndbm.c (man_ndbm_close): Move NDBM-specific code ... + (raw_close): ... here. + (unsorted_firstkey, unsorted_nextkey): New functions, wrapping + dbm_firstkey and dbm_nextkey respectively. + (man_ndbm_close, man_ndbm_firstkey, man_ndbm_nextkey): Add NDBM-specific + wrappers for the generic man_xdbm_* functions. + * libdb/mydbm.h (man_ndbm_firstkey, man_ndbm_nextkey): Add prototypes. + (MYDBM_FIRSTKEY) [NDBM]: Rewrite in terms of man_ndbm_firstkey. + (MYDBM_NEXTKEY) [NDBM]: Rewrite in terms of man_ndbm_nextkey. + * libdb/Makefile.am (libmandb_la_SOURCES): Add db_xdbm.c and db_xdbm.h. + * NEWS: Document this. + +2019-08-25 Colin Watson + + Enable many more GCC warnings + + * bootstrap.conf (gnulib_modules): Add manywarnings. + * configure.ac: Add gl_MANYWARN_ALL_GCC, with some refinements to + disable -Wsystem-headers and -Wmissing-field-initializers. Define + GNULIB_NO_VLA=1 to avoid tripping over -Wvla. + * src/accessdb.c (help_filter): Disable -Wformat-nonliteral around this + function. + * src/man.c (help_filter): Likewise. + * src/check_mandirs.c (gripe_rwopen_failed, update_db_time): Factor out + EAGAIN || EWOULDBLOCK check to ... + (is_eagain): ... here, with -Wlogical-op disabled. + * src/lexgrog.l, src/zsoelim.l: Disable -Wsuggest-attribute=malloc, + -Wsuggest-attribute=pure, and -Wunused-macros. + +2019-08-25 Colin Watson + + Pacify gcc -Wnull-dereference + + * src/accessdb.c (main): Add an assertion to help the compiler prove + that dbf is non-NULL. (It doesn't know that error (FATAL, ...) is + non-returning.) + +2019-08-25 Colin Watson + + Add several function attributes suggested by GCC + + * lib/debug.c (vdebug): Mark first argument as a printf format string. + * lib/encodings.c (get_page_encoding): Mark as malloc-like. + (is_roff_device, get_output_encoding, get_less_charset, + get_jless_charset): Mark as pure. + * lib/glcontainers.c (string_equals, string_hash): Mark as pure. + * lib/security.c (running_setuid): Mark as pure. + * lib/util.c (trim_spaces): Mark as malloc-like. + * libdb/db_lookup.c (dash_if_unset): Mark as const. + * libdb/db_store.c (compare_ids): Mark as const. + * src/whatis.c (match): Mark as pure. + +2019-08-25 Colin Watson + + Fix some printf formats + + * libdb/db_lookup.c (list_extensions): Format the return value of + gl_list_size using %zu, not %zd. + * src/catman.c (add_arg): Format the return values of MYDBM_DSIZE and + strlen using %zu, not %zd. + (parse_for_sec): Format ARG_MAX - arg_size using %zu, not %zd. + * src/man.c (main): Format ruid and euid using %lu, not %d (cast to + unsigned long since POSIX only says that uid_t is an integer type). + * src/manp.c (describe_flag): Format flag using %u, not %d. + +2019-08-25 Colin Watson + + Remove several unused macros + + * libdb/db_store.c (_): Remove. + * src/compression.c (_): Likewise. + * src/globbing_test.c (_): Likewise. + * src/zsoelim_main.c (_): Likewise. + +2019-08-25 Colin Watson + + Make a couple of functions static + + * lib/orderfiles.c (compare_physical_offsets): Make static. + * src/descriptions.c (page_description_free): Likewise. + +2019-08-25 Colin Watson + + Move declaration of _nl_msg_cat_cntr to top level + + gcc -Wnested-externs warns when it encounters this declaration within a + function. + + * include/manconfig.h.in (locale_changed): Move _nl_msg_cat_cntr + declaration to the top level. + +2019-08-25 Colin Watson + + Add some missing includes + + * lib/linelength.c: Include "linelength.h". + * lib/orderfiles.c: Include "orderfiles.h". + +2019-08-23 Colin Watson + + Simplify some GCC attribute handling + + * lib/orderfiles.c (order_files) [!HAVE_LINUX_FIEMAP_H && + !HAVE_POSIX_FADVISE]: Use _GL_UNUSED rather than ATTRIBUTE_UNUSED. + * lib/sandbox.c (_sandbox_load) [!HAVE_LIBSECCOMP]: Likewise. + * lib/security.c (drop_privs): Likewise. + * src/accessdb.c (help_filter): Likewise. + * src/check_mandirs.c (chown_if_possible): Likewise. + * src/decompress.c (decompress_zlib): Likewise. + * src/lexgrog_test.c (help_filter): Likewise. + * src/man.c (help_filter, squeeze_blank_lines, disable_hyphenation, + disable_justification): Likewise. + * src/manconv.c (manconv): Likewise. + * src/manp.c (free_config_file): Likewise. + * src/tests/fspause.c (main): Likewise. + * src/whatis.c (help_filter): Likewise. + * src/zsoelim_main.c (parse_opt): Likewise. + * include/manconfig.h.in (ATTRIBUTE_UNUSED): Remove in favour of the + shorter _GL_UNUSED. + (ATTRIBUTE_MALLOC): Remove; it was unused. + +2019-08-23 Colin Watson + + Use C11/Gnulib's _Noreturn + + * lib/cleanup.c (sighandler): Declare as _Noreturn. + * src/man.c (gripe_converting_name): Use _Noreturn rather than + ATTRIBUTE_NORETURN. + * include/manconfig.h.in (ATTRIBUTE_NORETURN): Remove. + +2019-08-23 Colin Watson + + Update to Gnulib 20190821 + +2019-08-23 Colin Watson + + Pass database file name in function parameters + + Storing it in a global variable with an unresolved symbol from libmandb + was never very clean, and caused linking complications on some + platforms. + + Fixes Savannah bug #56734. + + * libdb/mydbm.h (database): Remove external symbol. + * src/accessdb.c: Remove obsolete comment. + * src/catman.c (database): Remove global variable. + (parse_for_sec): Add database parameter. Update all callers. + (main): Declare database locally. + * src/check_mandirs.c (gripe_rwopen_failed, testmandirs, update_db_time, + create_db, update_db, purge_missing): Add database parameter. Update + all callers. + * src/check_mandirs.h (create_db, update_db, purge_missing): Update + prototypes. + * src/mandb.c (database): Remove global variable. + (update_one_file, update_db_wrapper): Add database parameter. Update + all callers. + (mandb, process_manpath): Declare database locally. + * src/straycats.c (straycats): Add database parameter. Update all + callers. + * src/whatis.c (database): Remove global variable. + (search): Declare database locally. + * include/manconfig.h.in (straycats): Update prototype. + * NEWS: Document this. + +2019-08-23 Colin Watson + + Use MYDBM_FILE->name for error messages + + We previously used the global "database" variable, but we were either + also passing a MYDBM_FILE around already or could easily do so, and it's + cleaner to get the file name from there now that it's consistently + available on all backends. + + * libdb/db_lookup.c (gripe_corrupt_data): Add dbf parameter. Get file + name from dbf->name rather than from the global database variable. + Update all callers. + (gripe_replace_key, split_data, split_content): Add dbf parameter. + Update all callers. + (dblookup_pattern): Get file name from dbf->name rather than from the + global database variable. + * libdb/db_ver.c (dbver_rd, dbver_wr): Get file name from dbfile->name + rather than from the global database variable. + * libdb/db_storage.h (split_content, gripe_corrupt_data, + gripe_replace_key): Update prototypes. + * src/check_mandirs.c (sanity_check_db): Get file name from dbf->name + rather than from the global database variable. + * src/whatis.c (do_apropos): Likewise. + +2019-08-23 Colin Watson + + Store database file name alongside its handle + + The GDBM backend already did things this way, but it's convenient to do + it the same way for all backends. + + Rename libmandb's various backend-specific functions to be uniformly + man__. In the cases of btree and ndbm there was + already no clash with the libraries they depend on, but this makes them + match the gdbm backend. + + * libdb/db_btree.c (btree_close): Rename to ... + (man_btree_close): ... this. + (btree_flopen): Rename to ... + (man_btree_open): ... this. Wrap the returned file handle in a + man_btree_wrapper structure that remembers the file name. + (btree_replace): Rename to ... + (man_btree_replace): ... this. + (btree_insert): Rename to ... + (man_btree_insert): ... this. + (btree_fetch): Rename to ... + (man_btree_fetch): ... this. + (btree_exists): Rename to ... + (man_btree_exists): ... this. + (btree_findkey): Rename to ... + (man_btree_findkey): ... this. + (btree_firstkey): Rename to ... + (man_btree_firstkey): ... this. + (btree_nextkey): Rename to ... + (man_btree_nextkey): ... this. + (btree_nextkeydata): Rename to ... + (man_btree_nextkeydata): ... this. + (btree_get_time): Rename to ... + (man_btree_get_time): ... this. + (btree_set_time): Rename to ... + (man_btree_set_time): ... this. + Update all prototypes and callers for all renames. + (man_btree_close, man_btree_replace, man_btree_insert, man_btree_fetch, + man_btree_exists, man_btree_findkey, man_btree_firstkey, + man_btree_nextkey, man_btree_nextkeydata, man_btree_get_time, + man_btree_set_time): Take man_btree_wrapper parameter rather than DB *. + Update all callers. + + * libdb/db_ndbm.c (ndbm_flclose): Rename to ... + (man_ndbm_close): ... this. + (ndbm_flopen): Rename to ... + (man_ndbm_open): ... this. Copy the given file name before passing it + to dbm_open, since at least GDBM's compatibility implementation declares + that parameter as non-const. Wrap the returned file handle in a + man_ndbm_wrapper structure that remembers the file name. + (ndbm_get_time): Rename to ... + (man_ndbm_get_time): ... this. + (ndbm_set_time): Rename to ... + (man_ndbm_set_time): ... this. + Update all prototypes and callers for all renames. + (man_ndbm_close, man_ndbm_get_time, man_ndbm_set_time): Take + man_ndbm_wrapper parameter rather than DBM *. Update all callers. + + * libdb/mydbm.h (man_ndbm_wrapper): New structure. + (MYDBM_FILE) [NDBM]: Change to man_ndbm_wrapper. + (man_btree_wrapper): New structure. + (MYDBM_FILE) [BTREE]: Change to man_btree_wrapper. + + * libdb/db_lookup.c (gripe_lock): Constify filename parameter. + * libdb/db_storage.h (gripe_lock): Update prototype. + +2019-08-23 Colin Watson + + Recognise eo/ta/uk translations of the NAME section + + (Esperanto, Tamil, and Ukrainian.) + + * src/lexgrog.l (eo_name, ta_name, uk_name): Add. + * NEWS: Document this. + +2019-08-23 Colin Watson + + Remove unused sandbox variables + + We no longer need these, having moved decompression code out of libman. + + * src/accessdb.c, src/catman.c, src/globbing_test.c, src/manpath.c: + Remove "sandbox" global variables. + +2019-08-22 Colin Watson + + Remove unused linkage from whatis + + * src/Makefile.am (whatis_SOURCES): Remove manconv.c and manconv.h. + +2019-08-22 Colin Watson + + Move decompression code out of libman + + Fixes Savannah bug #56734. + + * configure.ac: Remove incorrect Darwin workaround. + * lib/decompress.c: Move to ... + * src/decompress.c: ... here. + * lib/decompress.h: Move to ... + * src/decompress.h: ... here. + * lib/Makefile.am (libman_la_SOURCES): Remove decompress.c and + decompress.h. + (libman_la_LIBADD): Remove $(LIBCOMPRESS). + * lib/README: Remove decompress.*. + * lib/encodings.c: Remove unused #include "decompress.h". + * src/Makefile.am (lexgrog_LDADD, man_LDADD, manconv_LDADD, mandb_LDADD, + zsoelim_LDADD): Add $(LIBCOMPRESS). + (lexgrog_SOURCES, man_SOURCES, manconv_SOURCES, mandb_SOURCES, + zsoelim_SOURCES): Add decompress.c and decompress.h. + * NEWS: Document this. + +2019-08-22 Colin Watson + + Squash warning in order_files stub + + * lib/orderfiles.c [!HAVE_LINUX_FIEMAP_H && !HAVE_POSIX_FADVISE]: Mark + dir and basenamesp arguments as unused. + +2019-08-22 Colin Watson + + Don't save cat pages if --nh/--nj is used + + Fixes Savannah bug #55731. + + * src/man.c (display): Disable cat pages if --no-hyphenation or + --no-justification is used, in effect defining those not to be part of + the canonical state. + * NEWS: Document this. + +2019-08-21 Colin Watson + + sandbox: Allow getrandom, used by Hardened Malloc + + Fixes Savannah bug #56767. + + * lib/sandbox.c (make_seccomp_filter): Allow getrandom. + * NEWS: Document this. + +2019-08-21 Colin Watson + + NEWS: Document EPERM change + + * NEWS: Document change from raising SIGSYS to returning EPERM. + +2019-08-21 Colin Watson + + sandbox: Reorganise using @system-service set + + systemd defines a @system-service set now which covers some of the ones + that were previously isolated here, so reorganise to take account of + that. No functional change. + + * lib/sandbox.c (make_seccomp_filter): Reorganise using systemd's new + @system-service set. + +2019-08-21 Colin Watson + + sandbox: Set default action to EPERM, not TRAP + + Returning EPERM rather than raising SIGSYS is no less secure, and it's + more likely that code injected via LD_PRELOAD will be able to recover + from this somehow. + + * lib/sandbox.c (make_seccomp_filter): Set default action to + SCMP_ACT_ERRNO (EPERM), not SCMP_ACT_TRAP. + +2019-08-14 Colin Watson + + sandbox: Allow sendmsg in the ESET case + + * lib/sandbox.c (make_seccomp_filter): If libesets_pac.so is preloaded, + then allow sendmsg. + * NEWS: Document this. + +2019-08-05 Colin Watson + + * Version: 2.8.6.1. + +2019-08-04 Colin Watson + + Fix missing memory copies in ult_src + + Fixes Debian bug #933802. + + * src/ult_src.c (ult_src): Copy strings before adding them to trace. + +2019-08-03 Colin Watson + + * Version: 2.8.6. + +2019-08-03 Colin Watson + + Update syscall lists from systemd bca5a0eacc + + * lib/sandbox.c (make_seccomp_filter): Add rseq (see + https://github.com/systemd/systemd/issues/12127). + +2019-05-02 Colin Watson + + Improve manual build portability slightly + + * manual/Makefile.am ($(MANUAL).pp, .pp.dvi, .pp.ps, .pp.tdvi, + .tdvi.tps, .pp.cat, .pp.html): Use "mv -f" rather than just "mv", since + Automake seems to prefer that for its own rules. + +2019-05-02 Colin Watson + + Make manual build more robust against failures + + Fixes Savannah bug #56254. + + * manual/Makefile.am ($(MANUAL).pp, .pp.dvi, .pp.ps, .pp.tdvi, + .tdvi.tps, .pp.cat, .pp.html): Write output to *.new files and rename + into place, so that failures are properly retried in future runs. + +2019-03-03 Colin Watson + + Avoid configure error message if nroff is broken + + * m4/man-gnu-nroff.m4 (MAN_PROG_GNU_NROFF): Adjust test arguments + slightly to avoid a spurious error message if nroff is sufficiently + broken that it doesn't produce numeric output for "\n(.g". + +2019-03-03 Colin Watson + + Fix warnings when configuring --without-libseccomp + + * lib/sandbox.c (_sandbox_load): Mark sandbox and permissive parameters + unused when HAVE_LIBSECCOMP is undefined, to avoid warnings from "gcc + -Wunused-parameter". + +2019-03-03 Colin Watson + + Add configure option to disable building manual + + * m4/man-arg-manual.m4: New file. + * configure.ac: Add MAN_ARG_MANUAL. + * manual/Makefile.am: Perform most rules only if BUILD_MANUAL is true. + * manual/intro.me (Arguments to configure): Add --disable-manual. + * README (Non-generic arguments to configure): Update. + * NEWS: Document this. + +2019-03-03 Colin Watson + + * NEWS: Document container type changes. + +2019-02-05 Colin Watson + + Add some missing entries to lib/README + + * lib/README: Add glcontainers.*, orderfiles.*, and sandbox.*. + +2019-02-05 Colin Watson + + Remove pipeline.* from lib/README + + It's been a separate library since 2010. + + * lib/README: Remove pipeline.*. + +2019-02-05 Colin Watson + + Inline lower into name_to_key + + With only one remaining user, it wasn't pulling its weight. + + * libdb/db_lookup.c (name_to_key): Inline the implementation of lower. + * lib/Makefile.am (libman_la_SOURCES): Remove lower.c and lower.h. + * lib/README: Remove lower.*. + * lib/lower.c, lib/lower.h: Remove. + +2019-02-05 Colin Watson + + Simplify case-insensitivity in word_fnmatch + + Using FNM_CASEFOLD saves us from having to lower-case the pattern + manually, and it also fixes the behaviour of "apropos -w" when given a + non-lower-case pattern. + + * lib/wordfnmatch.c (word_fnmatch): Use isalpha and FNM_CASEFOLD rather + than manually lower-casing string or expecting pattern to have already + been lower-cased. + * NEWS: Document this. + +2019-02-05 Colin Watson + + Simplify case-insensitive comparisons in whatis + + We can just use strcasecmp and similar functions rather than + lower-casing comparands manually. + + In some corner cases this may result in matches that would not + previously have been returned (e.g. "whatis -w" with a non-lower-case + pattern). + + * src/whatis.c (parse_name): Use strcasecmp and FNM_CASEFOLD rather than + manually lower-casing dbname or expecting pages to have already been + lower-cased. + (match): Use strcasestr and isalpha rather than manually lower-casing + whatis or expecting page to have already been lower-cased. + (parse_whatis): Remove lowpages parameter; pass pages directly to match + instead. + (do_apropos): Remove lowpages; parse_name and parse_whatis no longer + need it. + +2019-02-04 Colin Watson + + Import Gnulib's strcase module + + We're already using strcasecmp and strncasecmp. + + * bootstrap.conf (gnulib_modules): Add strcase. + +2019-02-04 Colin Watson + + Add missing #include + + * src/straycats.c: Include . + +2019-02-04 Colin Watson + + Use bool for boolean command-line options + + * include/manconfig.h.in (debug_level): Change type to bool. Update all + definitions and users. + * lib/encodings.c (get_roff_encoding): Change type of "found" to bool. + * libdb/db_lookup.c (dblookup_all, dblookup_exact): Change "match_case" + parameter type to bool. Update all callers. + (dblookup_pattern): Change "match_case", "pattern_regex", and + "try_descriptions" parameter types to bool. Update all callers. + * libdb/db_storage.h (dblookup_all, dblookup_exact, dblookup_pattern): + Update prototypes. + + * src/descriptions_store.c (store_descriptions): Change types of + "found_real_page" and "found_external" to bool. + * src/lexgrog_test.c (main): Change types of "some_failed" and "found" + to bool. + * src/man.c (parse_opt): Change types of "apropos" and "whatis" to bool. + (add_roff_line_length): Change "save_cat_p" parameter type to bool *. + Update all callers. + (make_browser): Change "found_percent_s" type to bool. + (display): Change "display_to_stdout" type to bool. + (try_db): Change "found_stale" type to bool. + (local_man_loop): Change "local_mf" type to bool. + (main): Change "found_subpage" type to bool. + * src/manp.c (read_config_file): Change "optional" parameter type to + bool. Update all callers. + * src/manp.h (read_config_file): Update prototype. + + * src/check_mandirs.c (opt_test, force_rescan): Change types to bool. + Update all users. + * src/globbing_test.c (match_case, regex_opt, wildcard): Likewise. + * src/lexgrog_test.c (parse_man, parse_cat, show_whatis, show_filters): + Likewise. + * src/man.c (disable_cache, troff, global_apropos, print_where, + print_where_cat, catman, local_man_file, findall, update, match_case, + regex_opt, wildcard, names_only, no_hyphenation, no_justification, + subpages, ascii, save_cat, ditroff, htmlout): Likewise. + * src/mandb.c (opt_test, force_rescan, check_for_strays, purge, user, + create): Likewise. + * src/manp.c (disable_cache): Likewise. + * src/manpath.c (cat, global): Likewise. + * src/whatis.c (am_apropos, regex_opt, exact, wildcard, require_all, + long_output): Likewise. + +2019-02-04 Colin Watson + + Port roff_warnings to gl_list + + * src/man.c (struct string_llist): Remove. + (parse_opt, make_roff_command): Convert roff_warnings to gl_list. + (main): Initialise roff_warnings. + +2019-02-04 Colin Watson + + Port parse_descriptions to gl_list + + * src/descriptions.c (free_descriptions): Rename to ... + (page_description_free): ... this. Adjust for gl_list's expected + interface. + (parse_descriptions): Convert to gl_list. Return a zero-length list if + whatis is NULL, where previously we returned NULL. + * src/descriptions_store.c (store_descriptions): Convert descs to + gl_list. + * src/descriptions.h (struct page_description): Remove next member. + (parse_descriptions, store_descriptions): Update prototypes. + (free_descriptions): Remove prototype. + * src/lexgrog_test.c (main): Convert descs to gl_list. + * src/straycats.c (check_for_stray): Likewise. Remove conditional, + since parse_descriptions now never returns NULL. + +2019-02-04 Colin Watson + + Improve sandbox_free + + * lib/sandbox.c (sandbox_free): Free sandbox->permissive_ctx too. + +2019-02-04 Colin Watson + + Free seccomp sandbox before normal exit + + This makes valgrind slightly happier. + + * src/lexgrog_test.c (main): Call seccomp_free before exiting. + * src/man.c (main): Likewise. + * src/manconv_main.c (main): Likewise. + * src/mandb.c (main): Likewise. + * src/whatis.c (main): Likewise. + * src/zsoelim_main.c (main): Likewise. + +2019-02-04 Colin Watson + + Port dblookup to gl_list + + * libdb/db_lookup.c (free_mandata_struct): Only free a single structure, + rather than following list pointers. + (split_content): Stop initialising pinfo->next. + (dblookup, dblookup_pattern): Convert to gl_list. Return a zero-length + list to indicate no matches, where previously we returned NULL. + (dblookup_exact): Adjust for changes in dblookup. This function + continues to return a single element rather than a list, since that's + all that its callers need. + * libdb/db_storage.h (struct mandata): Remove next member. + (dblookup_all, dblookup_pattern): Update prototypes. + * src/man.c (db_map_value_free): New function. + (try_db): Convert dblookup_pattern/dblookup_all cache to store gl_lists + or NULL. NULL now means a database open failure and a zero-length list + means no matches in an existing database, rather than vice versa. + * src/whatis.c (do_whatis_section): Convert to gl_list. + +2019-02-03 Colin Watson + + Eliminate #ifdef in straycats.c + + * src/straycats.c (check_for_stray): Replace hand-rolled + FAVOUR_STRAYCATS conditional with an equivalent compare_ids call. + +2019-02-03 Colin Watson + + Add helper functions for common container cases + + * lib/glcontainers.c (new_string_list, new_string_map, new_string_set): + New functions. + * lib/glcontainers.h (new_string_list, new_string_map, new_string_set): + Add prototypes. + + * lib/orderfiles.c (order_files): Use new_string_list. + * src/check_mandirs.c (test_manfile, add_dir_entries): Likewise. + * src/globbing.c (look_for_file, expand_path): Likewise. + * src/man.c (get_section_list): Likewise. + * src/manp.c (get_scetions, get_manpath_from_path, create_pathlist): + Likewise. + * src/straycats.c (check_for_stray): Likewise. + + * libdb/db_gdbm.c (man_gdbm_firstkey): Use new_string_map. + * src/check_mandirs.c (test_manfile): Likewise. + * src/globbing.c (update_directory_cache): Likewise. + * src/man.c (try_db): Likewise. + * src/mandb.c (main): Likewise. + + * libdb/db_btree.c (btree_findkey): Use new_string_set. + * src/whatis.c (main): Likewise. + +2019-02-03 Colin Watson + + Replace hashtable with Gnulib containers + + Since we're using Gnulib's container types anyway, we might as well + reduce the maintenance burden of local code, especially since the result + tends to be more concise. + + * bootstrap.conf (gnulib_modules): Add hash-map, hash-set, xmap, and + xset. + * lib/glcontainers.h (GL_MAP_FOREACH_START, GL_MAP_FOREACH_END): New + macros. + + * lib/orderfiles.c (compare_physical_offsets, order_files): Convert + physical_offsets from a hashtable to a gl_map. + * libdb/db_btree.c (loop_check_hash): Rename to ... + (loop_check): ... this. + (btree_findkey): Convert loop_check from a hashtable to a gl_set. + * libdb/db_gdbm.c (parent_sortkey_hash): Rename to ... + (parent_keys: ... this. + (struct sortkey, parent_sortkey_hashtable_free): Remove. + (sortkey_hashtable_free): Rename to ... + (datum_free): ... this. Adjust for gl_list's expected interface. + (sortkey_compare): Rename to ... + (datum_compare): ... this. Adjust for gl_list's expected interface. + (datum_equals, datum_hash): New functions. + (man_gdbm_firstkey, man_gdbm_nextkey, man_gdbm_close): Convert + parent_keys from a hashtable to a gl_map, and convert its values from + hashtables with manual linking to gl_lists using a hash for fast lookup + by key. + * src/check_mandirs.c (whatis_hash): Rename to ... + (whatis_map): ... this. + (struct whatis_hashent): Rename to ... + (struct whatis): ... this. + (whatis_hashtable_free): Rename to ... + (whatis_free): ... this. Adjust for gl_map's expected interface. + (test_manfile): Convert whatis_map from a hashtable to a gl_map. + * src/globbing.c (struct dirent_hashent): Rename to ... + (struct dirent_names): ... this. + (dirent_hashtable_free): Rename to ... + (dirent_names_free): ... this. Adjust for gl_map's expected interface. + (dirent_hash): Rename to ... + (dirent_map): ... this. + (update_directory_cache): Convert dirent_map from a hashtable to a + gl_map. + * src/man.c (db_hash): Rename to ... + (db_map): ... this. + (db_hashtable_free): Remove. + (try_db, main): Convert db_map from a hashtable to a gl_map. + * src/mandb.c (process_manpath, tried_catdirs_free, purge_catdir, + purge_catdirs, main): Convert tried_catdirs from a hashtable to a + gl_map. + * src/whatis.c (display, main): Convert display_seen from a hashtable to + a gl_set. + + * lib/Makefile.am (libman_la_SOURCES): Remove hashtable.c and + hashtable.h. + * lib/README: Remove hashtable.*. + * lib/hashtable.c, lib/hashtable.h: Remove. + +2019-02-01 Colin Watson + + Port list_extensions to gl_list + + * libdb/db_lookup.c (name_ext_equals): New function. + (list_extensions, dblookup): Convert to gl_list. + * libdb/db_storage.h (struct name_ext): New structure. + (list_extensions): Update prototype. + * libdb/db_delete.c (dbdelete): Convert to gl_list. + +2019-01-31 Colin Watson + + Port ult_src tracing to gl_list + + * src/ult_src.c (ult_trace, free_ult_trace): Remove. + (ult_src): Convert trace handling to gl_list. + * src/ult_src.h (struct ult_trace): Remove. + (ult_src): Update prototype. + (free_ult_trace): Remove. + * src/descriptions_store.c (store_descriptions): Convert to gl_list. + * src/descriptions.h (store_descriptions): Update prototype. + * src/check_mandirs.c (struct whatis_hashent): Change type of trace to + gl_list_t. + (whatis_hashtable_free, test_manfile): Convert to gl_list. + +2019-01-30 Colin Watson + + Use bool in more places in whatis + + * src/whatis.c (use_grep, do_whatis, do_apropos): Change "found" + parameter type to bool *. Update all callers. + (any_set, all_set): Change "found_here" parameter type to bool *. + Update all callers. + (parse_name, parse_whatis): Change "found" and "found_here" parameter + types to bool *. Update all callers. + +2019-01-30 Colin Watson + + Port get_sections to gl_list + + * src/manp.c (get_sections): Convert to gl_list. + * src/manp.h (get_sections): Update prototype. + * src/man.c (is_section, compare_candidates, do_global_apropos, man, + get_section_list): Convert to gl_list. + (compare_candidates): Sort sections missing from section_list to the + end. + (main): Free section_list. + +2019-01-30 Colin Watson + + Use HTTPS URL for libpipeline + + * NEWS, docs/INSTALL.quick: Update libpipeline URL to + https://nongnu.org/libpipeline/. + +2019-01-29 Colin Watson + + Port expand_path to gl_list + + * src/globbing.c (expand_path): Convert to gl_list. + * src/globbing.h (expand_path): Update prototype. + * src/manp.c (def_path, add_dir_to_list, add_dir_to_path_list): Convert + to gl_list. + * src/ult_src.c (find_include): Likewise. + +2019-01-29 Colin Watson + + Fix failure to link libman using the Darwin linker + + Thanks to George Plymale II and John Gardner. + + * configure.ac: Add "-Wl,-flat_namespace,-undefined,suppress" to CFLAGS + on Darwin. + * NEWS: Document this. + +2019-01-29 Colin Watson + + Port order_files and look_for_file to gl_list + + This gets rid of some particularly awful allocation spaghetti in + src/globbing.c. + + * bootstrap.conf (gnulib_modules): Add rbtree-list. + * lib/orderfiles.c (compare_physical_offsets): Expect arguments to be + const char * rather than const char **. + (order_files): Convert to taking a gl_list_t as an input/output argument + rather than an array. In the HAVE_LINUX_FIEMAP_H case, we produce a new + sorted list. + * lib/orderfiles.h (order_files): Update prototype. + * src/globbing.c (clear_glob): Remove. + (match_in_directory): Convert to gl_list. Remove inter-call allocation + and cleanup machinery. + (look_for_file): Convert to gl_list. Remove glob_t cleanup machinery; + the caller is now responsible for freeing the returned list. + * src/globbing.h (look_for_file): Update prototype. + + * src/check_mandirs.c (add_dir_entries, count_glob_matches, + purge_normal): Convert to gl_list. + * src/straycats.c (check_for_stray): Likewise. + + * src/check_mandirs.c (purge_whatis, purge_missing): Convert to gl_list. + Free list returned by look_for_file. + * src/globbing_test.c (main): Likewise. + * src/man.c (try_section, do_global_apropos_section): Likewise. + * src/zsoelim.l (zsoelim_open_file): Likewise. + +2019-01-29 Colin Watson + + Default to --without-systemd* on non-Linux systems + + systemd is unapologetically Linux-specific, so let's not require + non-Linux packages to explicitly turn this off. + + * m4/man-arg-systemdsystemunitdir (MAN_ARG_SYSTEMDSYSTEMUNITDIR): + Default to with_systemdsystemunitdir=no on non-Linux systems. + * m4/man-arg-systemdtmpfilesdir (MAN_ARG_SYSTEMDTMPFILESDIR): Default to + with_systemdtmpfilesdir=no on non-Linux systems. + +2019-01-27 Colin Watson + + Add --quiet to systemd mandb invocation + + Fixes Debian bug #920628. + + * init/systemd/man-db.service.in (ExecStart): Run mandb with --quiet. + * NEWS: Document this. + +2019-01-27 Colin Watson + + Use macros for common cases of list iteration + + * lib/glcontainers.h (GL_LIST_FOREACH_START, GL_LIST_FOREACH_END): New + macros. + * src/catman.c (main): Replace manual list iteration with equivalent + macros. + * src/man.c (do_global_apropos, locate_page_in_manpath): Likewise. + * src/mandb.c (main): Likewise. + * src/manp.c (get_config, print_list, get_sections, def_path, + get_manpath_from_path, create_pathlist, get_mandb_manpath, get_catpath, + is_global_mandir): Likewise. + * src/whatis.c (search): Likewise. + * src/zsoelim.l (zsoelim_open_file): Likewise. + +2019-01-27 Colin Watson + + Rename gl-container-helpers to glcontainers + + This is less annoying to type. + + * lib/gl-container-helpers.c: Rename to ... + * lib/glcontainers.c: ... this. + * lib/gl-container-helpers.h: Rename to ... + * lib/glcontainers.h: ... this. + * lib/Makefile.am (libman_la_SOURCES): Replace gl-container-helpers.c + and gl-container-helpers.h with glcontainers.c and glcontainers.h. + * src/manp.c: Update include. + +2019-01-27 Colin Watson + + Move Gnulib container helpers into common code + + * src/manp.c (string_equals, string_hash, string_free): Move to ... + * lib/gl-container-helpers.c (string_equals, string_hash, plain_free): + ... here (new file). + * lib/gl-container-helpers.h: New file. + * lib/Makefile.am (libman_la_SOURCES): Add gl-container-helpers.c and + gl-container-helpers.h. + +2019-01-26 Colin Watson + + Turn config flags into an enum + + * src/manp.c (enum config_flag): New enumeration. + (struct config_item, def_path, add_config, get_config, get_sections, + def_path): Use enum config_flag. + (describe_flag): New function. + (print_list): Describe flags rather than printing their integer value. + (add_def): Remove flag parameter; expect caller to pass the correct + config_def value instead. Make thing and config_def const. + (add_mandb_map): Remove flag parameter; expect caller to pass the + correct catdir value instead. + (add_to_dirlist): Update calls to add_mandb_map and add_def. + +2019-01-26 Colin Watson + + Port internal configuration storage to gl_list + + * bootstrap.conf (gnulib_modules): Add array-list. + * src/manp.c (struct list): Remove. + (struct config_item): New structure. + (config_item_free): New function. + (add_to_list): Rename to ... + (add_config): ... this. Convert to gl_list. Update all callers. + (get_from_list): Rename to ... + (get_config): ... this. Convert to gl_list. Update all callers. + (iterate_over_list): Remove. + (print_list, get_sections, free_config_file, def_path, + get_manpath_from_path, get_mandb_manpath, get_catpath, + is_global_mandir): Port config list handling to gl_list. + (add_to_dirlist): Rename config parameter to config_file. + (read_config_file): Create empty config list. Rename previous local + config variable to config_file. + +2019-01-26 Colin Watson + + Use Gnulib's lchown function + + Also remove lib/xchown.*; with only one call site, they don't pull their + weight over equivalent inline code. + + * bootstrap.conf (gnulib_modules): Add lchown. + * configure.ac (AC_CHECK_FUNCS): Remove check for lchown. + * lib/Makefile.am (libman_la_SOURCES): Remove xchown.c and xchown.h. + * src/check_mandirs.c (chown_if_possible): Always use lchown rather than + chown, and inline the error check. + + * po/POTFILES.in: Remove lib/xchown.c. + * po/man-db.pot, po/*.po: Update. + +2019-01-26 Colin Watson + + Simplify includes using Gnulib's fcntl module + + * bootstrap.conf (gnulib_modules): Add fcntl. + * configure.ac (AC_CHECK_HEADERS): Remove check for fcntl.h. + * libdb/db_btree.c, libdb/db_ndbm.c, libdb/mydbm.h, src/man.c: Include + unconditionally. + * src/man.c: Remove conditional definitions of R_OK and X_OK; Gnulib's + handles these. + +2019-01-26 Colin Watson + + Replace check_standard_fds with Gnulib's xstdopen + + * bootstrap.conf (gnulib_modules): Add xstdopen. + * src/man.c (check_standard_fds): Remove. + (main): Call xstdopen rather than check_standard_fds. + +2019-01-26 Colin Watson + + Update to Gnulib 20190124 + +2019-01-26 Colin Watson + + Use bool type where appropriate + + Now that we're using anyway due to gl_list (with Gnulib + providing if necessary), it makes sense to use it for our + own functions that have essentially boolean semantics. + + * lib/encodings.c (compatible_encodings, is_roff_device): Return bool. + * lib/pathsearch.c (pathsearch, pathsearch_executable, + directory_on_path): Likewise. + * lib/sandbox.c (search_ld_preload, can_load_seccomp): Likewise. + * lib/security.c (running_setuid): Likewise. + * lib/wordfnmatch.c (word_fnmatch): Likewise. Update all callers. + * src/check_mandirs.c (sanity_check_db): Likewise. + * src/man.c (duplicate_candidates): Likewise. + * src/manp.c (is_global_mandir): Likewise. Update all callers. + * src/whatis.c (suitable_manpath, match): Likewise. + (any_set, all_set): Likewise. Update all callers. + + * lib/encodings.h (is_roff_device): Update prototype. + * lib/pathsearch.h (pathsearch_executable, directory_on_path): Likewise. + * lib/security.h (running_setuid): Likewise. + * lib/wordfnmatch.h (word_fnmatch): Likewise. + * src/manp.h (is_global_mandir): Likewise. + + * src/mandb.c (mandb, process_manpath): Change global_manpath parameter + type to bool. + +2019-01-26 Colin Watson + + Note that some C99 runtime facilities may be used + + * docs/HACKING (Facilities and portability): Note that C99 runtime + facilities that are provided by Gnulib are OK. + +2019-01-26 Colin Watson + + Remove arbitrary limit on manpath size + + Fixes Savannah bug #50324. + + * bootstrap.conf (gnulib_modules): Add hash-pjw-bare, linkedhash-list, + stdbool, and xlist. + * include/manconfig.h.in (MAXDIRS): Remove. + + * src/manp.c (tmplist): Remove. + (string_equals, string_hash, string_free): New functions. + (gripe_overlong_list): Remove. + (insert_override_dir, get_manpath_from_path, add_expanded_dir_to_list, + add_dir_to_list, add_man_subdirs, add_dir_to_path_list, create_pathlist, + free_pathlist): Port manpath list handling to gl_list_t. + * src/catman.c (main): Likewise. + * src/man.c (do_global_apropos, local_man_loop, locate_page_in_manpath, + main): Likewise. + * src/mandb.c (main): Likewise. + * src/whatis.c (suitable_manpath, search, main): Likewise. + * src/zsoelim.l (<>, zsoelim_parse_file, zsoelim_open_file, + zsoelim_stdin, zsoelim_stdin_data_new): Likewise. + * src/zsoelim_main.c (main): Likewise. + + * src/manp.h (create_pathlist, free_pathlist): Update prototypes. + * src/zsoelim.h (zsoelim_open_file, zsoelim_parse_file, + zsoelim_stdin_data_new): Likewise. + + * NEWS: Document this. + +2019-01-26 Colin Watson + + * NEWS: Document previous commit. + +2019-01-26 Colin Watson + + Automatically add more man directories to manpath + + Will Starms reported that, if both ../man and ../share/man directories + (for example) exist relative to a directory on $PATH, then only the + first was considered. + + * src/manp.c (has_mandir): Rename to ... + (add_man_subdirs): ... this. Insert directories as they are found + rather than returning them, and continue even if some have been found. + (get_manpath_from_path): Update call to add_man_subdirs. + +2019-01-08 Colin Watson + + Recommend a distribution-independent bug tracker + + * README: Link to https://savannah.nongnu.org/bugs/?group=man-db for bug + reporting. + +2019-01-05 Colin Watson + + * Version: 2.8.5. + +2019-01-05 Colin Watson + + Upgrade to Gnulib 20190105 + + In line with Gnulib, we now require Autoconf 2.63 and Automake 1.11.2. + + * bootstrap: Sync to Gnulib d271f868a8df9bbec29049d01e056481b7a1a263. + * bootstrap.conf (GNULIB_REVISION): Set to + d271f868a8df9bbec29049d01e056481b7a1a263. + (buildreq): Bump required autoconf version to 2.63 and required automake + version to 1.11.2. + * configure.ac (AM_SILENT_RULES, AM_PROG_AR): Remove conditionals, which + were there for Automake 1.10 support. + (AC_PREREQ): Bump to 2.63. + * NEWS: Document this. + +2019-01-05 Colin Watson + + Use tar --sort=name if available + + * m4/man-tar-sort-name.m4: New file. + * configure.ac: Call MAN_TAR_SORT_NAME. + +2019-01-05 Colin Watson + + Fix distcheck following addition of systemd timer + + * Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Add + --with-systemdsystemunitdir=\$${prefix}/lib/systemd/system. + +2019-01-05 Colin Watson + + Fix distribution of man-db.timer + + Automake's "_DATA" primary defaults to "nodist_", not "dist_". + + * init/systemd/Makefile.am (systemdsystemunit_DATA): Rename to ... + (dist_systemdsystemunit_DATA): ... this. + (nodist_systemdsystemunit_DATA): Rename to ... + (systemdsystemunit_DATA): ... this. + (EXTRA_DIST): Add man-db.timer if INSTALL_SYSTEMD_TIMER is false. + +2019-01-05 Colin Watson + + sandbox: Work around Microsoft SCEP + + This is a proprietary antivirus program and I've only been able to guess + at how to handle it. Note that it is no longer supported by Microsoft + and so users should probably replace it with something else, but I still + want to minimise the number of support requests I get related to it. + + * lib/sandbox.c (make_seccomp_filter): If libscep_pac.so is preloaded, + then allow some system calls related to sockets and System V message + queues. + * NEWS: Document this. + +2018-12-24 Colin Watson + + Use (void *) 0 as a variadic sentinel + + NULL is formally incorrect here since the standard allows it to be an + integer constant expression. + + * lib/decompress.c (decompress_open, decompress_fdopen): Use (void *) + rather than NULL as a sentinel for variadic functions. + * libdb/db_delete.c (dbdelete): Likewise. + * src/catman.c (catman, parse_for_sec, main): Likewise. + * src/check_mandirs.c (add_dir_entries): Likewise. + * src/compression.c (comp_file): Likewise. + * src/filenames.c (make_filename): Likewise. + * src/globbing.c (look_for_file): Likewise. + * src/lexgrog.l (find_name): Likewise. + * src/man.c (do_extern, run_mandb, make_roff_command, make_browser, + setenv_less, add_output_iconv, make_display_command, tmp_cat_filename, + format_display_and_save, format_display, display_catman, display, + local_man_loop): Likewise. + * src/manconv_client.c (add_manconv): Likewise. + * src/manconv_main.c (parse_opt): Likewise. + * src/manp.c (pathappend, add_nls_manpaths, add_system_manpath, + add_dir_to_path_list, get_catpath): Likewise. + * src/straycats.c (check_for_stray, open_catdir, straycats): Likewise. + * src/whatis.c (use_grep, display): Likewise. + +2018-12-06 Colin Watson + + Honour --enable-cache-owner in systemd timer + + * init/systemd/Makefile.am (man-db.service): Substitute + @cache_top_owner@. + * init/systemd/man-db.service.in (ExecStart, User): Use + @cache_top_owner@ rather than hardcoding "man". + +2018-12-06 Colin Watson + + Improve systemd unit commentary + + * init/systemd/man-db.service.in (ExecStart): Add comment. + +2018-12-06 Colin Watson + + Allow disabling installation of systemd components + + * m4/man-arg-systemdtmpfilesdir.m4: Define an INSTALL_SYSTEMD_TMPFILES + Automake conditional (true unless --with-systemdtmpfilesdir=no). + * m4/man-arg-systemdsystemunitdir.m4: Define an INSTALL_SYSTEMD_TIMER + Automake conditional (true unless --with-systemdsystemunitdir=no). + * init/systemd/Makefile.am: Honour INSTALL_SYSTEMD_TMPFILES and + INSTALL_SYSTEMD_TIMER. + +2018-12-06 Colin Watson + + Ship a systemd timer for daily DB maintenance + + Thanks to Christian Göttsche. Fixes Debian bug #858022. + + * m4/man-arg-systemdsystemunitdir.m4: New file. + * configure.ac: Accept --with-systemdsystemunitdir option. + * init/systemd/Makefile.am (EXTRA_DIST): Add man-db.service.in. + (CLEANFILES): Add man-db.service. + (systemdsystemunit_DATA): Install man-db.timer. + (nodist_systemdsystemunit_DATA): Install man-db.service. + (man-db.service): New rule. + * init/systemd/man-db.service.in, init/systemd/man-db.timer: New files. + * .gitignore: Add init/systemd/man-db.service. + * NEWS: Document this. + +2018-11-14 Colin Watson + + Fix incorrect error message + + Reported by Julian Gilbey. Fixes Debian bug #913721. + + * src/man.c (check_standard_fds): Correct error message if stdout is not + open for writing (not "for reading", as previously claimed). + +2018-11-09 Colin Watson + + release.sh: Simplify Lex handling + + release.sh had a hack to ensure that flex-generated scanners are fresh + in release tarballs. This is more easily achieved by configuring with + --enable-maintainer-mode, which causes Automake to enable the Lex + rebuild rule. + + * release.sh: Configure with --enable-maintainer-mode; drop conditional + removals of src/lexgrog.c and src/zsoelim.c. + +2018-11-09 Colin Watson + + lexgrog: Fix handling of \- in RHS of NAME section + + Fixes Debian bug #913351. + + * src/lexgrog.l (MAN_NAME): Split into MAN_NAME (left-hand side) and + MAN_DESC (right-hand side). Most rules remain as before, except that \- + and similar are only handled specially in MAN_NAME and transition to + MAN_DESC, and rules that add a 0x11 marker (indicating the start of a + new whatis definition) transition to MAN_NAME. + (MAN_NAME_AT, MAN_NAME_BSX, MAN_NAME_BX, MAN_NAME_BX_RELEASE, + MAN_NAME_DQ, MAN_NAME_FX, MAN_NAME_NX, MAN_NAME_OX): Rename to + MAN_DESC_*. + (mdoc_text): Transition to MAN_DESC rather than MAN_NAME. + (newline_found): If adding 0x11, transition to MAN_NAME. + * src/tests/lexgrog-3: New file. + * src/tests/Makefile.am (ALL_TESTS): Add lexgrog-3. + * NEWS: Document this. + +2018-11-09 Colin Watson + + * NEWS: Document changes since 2.8.4. + +2018-11-09 Colin Watson + + lexgrog: Add test for multiple whatis definitions + + * src/tests/lexgrog-2: New file. + * src/tests/Makefile.am (ALL_TESTS): Add lexgrog-2. + +2018-11-09 Colin Watson + + lexgrog: Tidy up rules section + + No functional change. + + * src/lexgrog.l: Make more use of start condition scopes. Reindent + rules somewhat to make better use of vertical space. + +2018-11-03 Nikola Forró + + Fix several resource and memory leaks + + * lib/decompress.c (decompress_zlib): Fix fd leak if gzdopen fails. + * lib/encodings.c (find_charset_locale): Free locale if setlocale fails. + * src/man.c (make_roff_command): Free fmt_prog. + * src/mandb.c (process_manpath): Free catpath if manpath is not a + directory. + * src/whatis.c (do_apropos): Free found_here. + +2018-10-27 enolp + + Add Asturian translation + + * po/ast.po: New from Translation Project. + * po/LINGUAS: Add ast. + * man/THANKS: Add translator credit. + +2018-10-27 Pedro Albuquerque + + Update Portuguese manual page translation + + * man/po4a/po/pt.po: Update from Translation Project. + +2018-10-21 Colin Watson + + Add Portuguese manual page translation + + * man/po4a/po/pt.po: New from Translation Project (thanks, Pedro + Albuquerque). + * configure.ac (AC_CONFIG_FILES): Add man/pt/Makefile. + * man/LINGUAS.po4a: Add pt. + * man/Makefile.am (DIST_SUBDIRS): Add pt. + * man/pt/Makefile.am, man/pt/translator.add: New files. + * man/po4a/Makefile.am (POFILES): Add po/pt.po. + * man/po4a/po4a.cfg (po4a_langs): Add pt. + * man/THANKS: Add translator credit. + * .gitignore: Add man/pt/man1, man/pt/man5, and man/pt/man8. + +2018-10-21 Colin Watson + + Switch more language lists to one-per-line format + + * man/LINGUAS.po4a: Switch to one language code per line, so that we + have better diffs in future. + * man/Makefile.am (DIST_SUBDIRS): Likewise. + * man/po4a/cfg (po4a_langs): Likewise. + +2018-10-21 Pedro Albuquerque + + Add Portuguese translation + + * po/pt.po: New from Translation Project. + * po/LINGUAS: Add pt. + * man/THANKS: Add translator credit. + +2018-10-21 Colin Watson + + Switch po/LINGUAS to one-per-line format + + * po/LINGUAS: Switch to one language code per line, so that we have + better diffs in future. + +2018-10-21 Chen Qi + + man-arg-config-file: fix to use config_file + + * m4/man-arg-config-file.m4: Compute config_file_basename based on + config_file, not withval. + +2018-08-20 Colin Watson + + Fail to configure if flex is needed but missing + + Fixes Savannah bug #54541. + + * configure.ac: Issue an error if AC_PROG_LEX didn't find a lexer + generator and either src/lexgrog.c or src/zsoelim.c is missing (as may + be the case when building from a git clone rather than a released + tarball). + +2018-08-02 Colin Watson + + Fix warning from gcc -Wcast-function-type + + This exposed the fact that errors from unlink in the cleanup path were + previously ignored. We now issue a warning in the same way that + commit_tmp_cat does. + + * src/man.c (cleanup_unlink): New function. + (open_cat_stream, close_cat_stream, display_catman): Use cleanup_unlink + rather than an incorrect cast of unlink. + +2018-08-02 Colin Watson + + Fix build with Berkeley DB + + Fixes Savannah bug #54425. + + * libdb/db_btree.c: Include for free. + +2018-07-27 Colin Watson + + Update advertised file size + + * docs/man-db.lsm (Primary-site): Update file size. + +2018-07-27 Colin Watson + + * Version: 2.8.4. + +2018-07-27 Colin Watson + + Work around Gnulib/gettext mismatch + + The versions of gettext infrastructure files installed by gnulib-tool + don't necessarily match our configured AM_GNU_GETTEXT_VERSION, so we + need to fix things up in bootstrap. + + * bootstrap.conf (gnulib_tool_option_extras): Set --po-base to gl/ref-po + rather than gnulib/po. + (bootstrap_post_import_hook): Merge temporary gl/ref-po directory into + gl/po. + +2018-07-27 Colin Watson + + Upgrade to Gnulib 20180726 + + * bootstrap: Sync to Gnulib 900ca5c0b092e50f9f17329feea3fbfe2b6e2139. + * bootstrap.conf (GNULIB_REVISION): Set to + 900ca5c0b092e50f9f17329feea3fbfe2b6e2139. + +2018-07-18 Colin Watson + + Distribute man/es/translator.add + + * man/es/Makefile.am (EXTRA_DIST): Add translator.add. + +2018-07-16 Colin Watson + + sandbox: Improve ESET compatibility further + + * lib/sandbox.c (make_seccomp_filter): If libesets_pac.so is preloaded, + then allow msgset (second argument 0) and msgsnd. + * NEWS: Document this. + +2018-07-15 Colin Watson + + sandbox: Allow some shared memory operations + + These were previously only allowed when ESET File Security is in use, + but the Astrill VPN seems to require something similar, there are + doubtless other such preload hacks, and they're relatively harmless. + + * lib/sandbox.c (make_seccomp_filter): Allow shmat (third argument + SHM_RDONLY), shmctl (second argument IPC_STAT), shmdt, and shmget + regardless of preloads. + * NEWS: Document this. + +2018-06-08 Colin Watson + + Check for external formatter in correct directory + + Check for mandb_nfmt and mandb_tfmt in the manual page hierarchy as + documented, not in the current directory. This was broken by the + working-directory-handling changes in 2.8.3. + + Reported by Josh Triplett. Fixes Debian bug #901007. + + * src/man.c (NFMT_PROG, TFMT_PROG): Remove leading "./". + (make_roff_command): Refactor confusing #ifdef forest. Prefix dir to + TFMT_PROG/NFMT_PROG rather than looking in the current directory. Don't + look for an external formatter at all if dir is NULL. + * NEWS: Document this. + +2018-06-08 Colin Watson + + Define an access(2) wrapper with clearer semantics + + As usual for system calls, access(2) returns zero on success. However, + I generally think of it as "can we access this file in this way", where + boolean semantics would be more convenient, and find it too easy to + invert logic by accident when using the system call directly. Define a + CAN_ACCESS wrapper with boolean semantics. + + * include/manconfig.h.in (CAN_ACCESS): New macro. + * lib/tempfile.c (path_search): Use CAN_ACCESS. + * src/catman.c (check_access): Likewise. + * src/filenames.c (make_filename): Likewise. + * src/man.c (make_roff_command, display): Likewise. + * src/ult_src.c (find_include): Likewise. + * src/whatis.c (use_grep): Likewise. + +2018-06-07 Felipe Castro + + Update Esperanto translation + + * po/eo.po: Update from Translation Project. + +2018-06-01 Francisco Javier F. Serrador + + Update Spanish manual page translation + + * man/po4a/po/es.po: Update from Translation Project. + * man/THANKS: Update translator credit. + +2018-05-29 Colin Watson + + Add po4a-based Spanish manual page translation + + This supersedes the previous whole-file translations, which had not been + properly updated in many years. + + * man/po4a/po/es.po: New from Translation Project (thanks, Francisco + Javier Serrador). + * man/LINGUAS: Remove es. + * man/LINGUAS.po4a: Add es. + * man/es/Makefile.am (PO4A_LINGUA): Set to yes. + (man1_MANS): Add man1/lexgrog.1 and man1/manconv.1. + (man8_MANS): Add man8/accessdb.8. + * man/es/man1/apropos.man1, man/es/man1/man.man1, + man/es/man1/manpath.man1, man/es/man1/whatis.man1, + man/es/man1/zsoelim.man1, man/es/man5/manpath.man5, + man/es/man8/catman.man8, man/es/man8/mandb.man8: Remove. + * man/es/translator.add: New file. + * man/po4a/Makefile.am (POFILES): Add po/es.po. + * man/po4a/po4a.cfg (po4a_langs): Add es. + * man/THANKS: Update translator credit. + * .gitignore: Add man/es/man1, man/es/man5, and man/es/man8. + +2018-05-29 Colin Watson + + Remove useless if-before-free tests + + * lib/hashtable.c (plain_hashtable_free): Remove; this is precisely + equivalent to free. + * lib/hashtable.h (plain_hashtable_free): Remove. + * lib/orderfiles.c (order_files): Use free rather than + plain_hashtable_free. + * libdb/db_btree.c (btree_findkey): Likewise. + + * lib/pathsearch.c (pathsearch, directory_on_path): Remove useless + if-before-free. + * libdb/db_lookup.c (free_mandata_elements): Likewise. + * src/check_mandirs.c (test_manfile, count_glob_matches): Likewise. + * src/descriptions.c (free_descriptions): Likewise. + * src/lexgrog_test.c (main): Likewise. + * src/man.c (display_filesystem, display_database, get_section_list): + Likewise. + * src/manp.c (add_system_manpath): Likewise. + * src/straycats.c (check_for_stray, straycats): Likewise. + * src/ult_src.c (ult_src): Likewise. + +2018-05-29 Colin Watson + + Use Gnulib progname module + + This lets us produce more accurate error messages when programs are + invoked with an absolute path. + + * bootstrap.conf (gnulib_modules): Add progname. + * include/manconfig.h.in (program_name): Remove. + * src/accessdb.c (main): Call set_program_name rather than similar + hand-rolled code. + * src/catman.c (main): Likewise. Don't free program_name. + * src/globbing_test.c (main): Likewise. + * src/lexgrog_test.c (main): Likewise. + * src/man.c (main): Likewise. Don't free program_name. + * src/manconv_main.c (main): Likewise. + * src/mandb.c (main): Likewise. Don't free program_name. + * src/manpath.c (main): Likewise. + * src/tests/fspause.c (main): Likewise. + * src/whatis.c (main): Likewise. + * src/zsoelim_main.c (main): Likewise. + + * src/man.c (manopt_to_env): Run program_name through base_name, since + that's no longer necessarily done up-front. + * src/whatis.c (main): Run program_name through base_name before + comparing it to APROPOS_NAME, since that's no longer necessarily done + up-front. + +2018-05-29 Colin Watson + + Upgrade to Gnulib 20180527 + + * bootstrap.conf (GNULIB_URL): Remove. + (GNULIB_REVISION): Set to 90f289f249a266b1afb9c63e182f5d979d17df5f. + (gnulib_modules): Replace gettext with gettext-h. + (gnulib_tool_option_extras): Remove --no-cache-modules (accidental + leftover from earlier testing). + (local_gl_dir): Set to 'gnulib-local' to avoid confusion with 'gl' as + the local output directory. Remove 'rm -rf gl' hack, now superseded. + (buildreq): Bump minimum autopoint and gettext versions to 0.18.3, + matching previous change to configure.ac. + * configure.ac (AM_PROG_AR, LT_INIT): Move below gl_EARLY. + * patches/argp-domain.patch: Rebase. + * src/tests/Makefile.am (TESTS_ENVIRONMENT): Remove use of + @LOCALCHARSET_TESTS_ENVIRONMENT@, which is no longer needed by Gnulib. + +2018-05-28 Colin Watson + + Switch to bootstrap + + We no longer keep autogenerated files in git. + + * .gitignore: Add **/Makefile, **/Makefile.in, /ABOUT-NLS, /aclocal.m4, + /build-aux, /config.h.in, /configure, /gl, /gnulib, + docs/INSTALL.autoconf, po/Makefile.in.in, po/Makevars, po/Rules-quot, + po/boldquot.sed, po/en@boldquot.header, po/en@quot.header, + po/insert-header.sin, po/quot.sed, and po/remove-potcdate.sin. Remove + docs/Makefile, gnulib/*, init/Makefile, init/systemd/Makefile, + lib/Makefile, libdb/Makefile, man/Makefile, man/*/Makefile, + manual/Makefile, po/Makefile, po/Makefile.in, src/Makefile, + src/tests/Makefile, and tools/Makefile. + * ABOUT-NLS, Makefile.in, aclocal.m4, autogen.sh, build-aux, + config.h.in, configure, docs/INSTALL.autoconf, docs/Makefile.in, gnulib, + init/Makefile.in, init/systemd/Makefile.in, lib/Makefile.in, + libdb/Makefile.in, man/Makefile.in, man/da/Makefile.in, + man/de/Makefile.in, man/es/Makefile.in, man/fr/Makefile.in, + man/id/Makefile.in, man/it/Makefile.in, man/ja/Makefile.in, + man/nl/Makefile.in, man/pl/Makefile.in, man/po4a/Makefile.in, + man/pt_BR/Makefile.in, man/ru/Makefile.in, man/sr/Makefile.in, + man/sv/Makefile.in, man/tr/Makefile.in, man/zh_CN/Makefile.in, + manual/Makefile.in, po/Makefile.in.in, po/Makevars, po/Rules-quot, + po/boldquot.sed, po/en@boldquot.header, po/en@quot.header, + po/insert-header.sin, po/quot.sed, po/remove-potcdate.sin, + src/Makefile.in, src/tests/Makefile.in, tools/Makefile.in: Remove. + + * bootstrap, bootstrap.conf: New files. + * Makefile.am (GNULIB_PO, SUBDIRS, EXTRA_DIST, ACLOCAL_AMFLAGS): Refer + to gl/ rather than gnulib/ (gnulib/ now contains pristine source). + (EXTRA_DIST): Replace autogen.sh with bootstrap and bootstrap.conf. + Replace gnulib/argp-domain.patch with patches/argp-domain.patch. Add + patches/fdutimens-hurd.patch. Remove gnulib/m4/gnulib-cache.m4 and + gnulib/m4/gnulib-tool.m4. + * gnulib/argp-domain.patch: Rename to ... + * patches/argp-domain.patch: ... this. Update target paths. + * gnulib/fdutimens-hurd.patch: Rename to ... + * patches/fdutimens-hurd.patch: ... this. Update target paths. + * configure.ac (AM_GNU_GETTEXT_VERSION): Upgrade to 0.18.3, for + compatibility with current Automake. + (HAVE_GNULIB_PO, AC_CONFIG_FILES): Refer to gl/ rather than gnulib/. + * lib/Makefile.am (libman_la_CPPFLAGS, libman_la_LIBADD): Likewise. + * libdb/Makefile.am (libmandb_la_CPPFLAGS): Likewise. + * src/Makefile.am (AM_CPPFLAGS, LIBMAN): Likewise. + * src/tests/Makefile.am (AM_CPPFLAGS, fspause_LDADD): Likewise. + + * docs/HACKING: Describe new policy. + * release.sh: Call ./bootstrap rather than ./autogen.sh. + +2018-05-17 pan93412 + + Add Traditional Chinese translation + + * po/zh_TW.po: New from Translation Project. + * po/LINGUAS: Add zh_TW. + * man/THANKS: Add translator credit. + +2018-04-22 Colin Watson + + sandbox: Allow sched_getaffinity + + This is used by xz-utils >= 5.2.3 if the --threads=0 option is in use + (perhaps via XZ_DEFAULTS or XZ_OPT). + + Reported by Axel Rohde. + + * lib/sandbox.c (make_seccomp_filter): Allow sched_getaffinity. + * NEWS: Document this. + +2018-04-06 Colin Watson + + Fix invalid man-db.conf with --disable-cache-owner + + Fixes Savannah bug #53575. + + * m4/man-arg-cache-owner.m4: Set and substitute cache_top_owner. + * init/systemd/man-db.conf.in: Substitute cache_top_owner rather than + man_owner. + * init/systemd/Makefile.am (man-db.conf): Likewise. + * NEWS: Document this. + +2018-04-06 Colin Watson + + Remove redundant debugging information + + * lib/decompress.c (decompress_open): Remove filename from + decompress_zlib command name. pipeline_dump already includes this + information from want_infile. + +2018-04-06 Colin Watson + + Rely on decompressors reading from stdin + + This works better with downstream AppArmor confinement of decompressors. + + * lib/decompress.c (decompress_open): Don't pass filename on + decompressor command lines. + * NEWS: Document this. + +2018-04-05 Colin Watson + + * Version: 2.8.3. + +2018-04-05 Colin Watson + + Suppress spurious gettext headers in --help output + + Some of man-db's commands have post-options help text but no pre-options + help text. Unfortunately, the way this works in argp (separating the + two sections using a '\v' character) means that this results in argp + trying to translate the empty string, which produces gettext catalog + headers. The easiest way to suppress this odd behaviour seems to be to + use a help filter function, so do that. + + Reported by Rafael Fontenelle. + + * src/accessdb.c (help_filter): Return NULL for ARGP_KEY_HELP_PRE_DOC. + * src/lexgrog_text.c (help_filter): New function. + (argp): Add help_filter. + * src/whatis.c (help_filter): New function. + (apropos_argp): Add help_filter. + * NEWS: Document this. + +2018-04-05 Colin Watson + + Fix compiler warnings on x32 + + tv_nsec is __syscall_slong_t == long long there, so we need a cast. + + * libdb/db_lookup.c (dbprintf): Cast tv_nsec to long for %ld format. + * libdb/db_store.c (make_content): Likewise. + * src/check_mandirs.c (testmandirs, update_db): Likewise. + * src/man.c (maybe_update_file): Likewise. + +2018-04-04 Colin Watson + + Fix broken test + + * src/tests/man-8: Fix expected output to account for recent change to + locale_macros. + +2018-04-04 Colin Watson + + man: Only change directory in child processes + + This avoids failures due to being unable to change back to the original + working directory. + + Fixes Debian bug #894792. + + * gnulib/m4/gnulib-cache.m4 (gl_MODULES): Remove save-cwd. + * src/man.c (make_display_command): Remove now-unnecessary code to run + the pager in the original working directory. + (chdir_commands): New function. + (format_display): Change directory just for format_cmd and disp_cmd + rather than in-process. + (display): Change directory just for format_cmd rather than in-process. + (main): Remove now-unnecessary code to save and restore the current + working directory. + * NEWS: Document this. + +2018-04-04 Colin Watson + + Upgrade config.guess/config.sub + + * build-aux/config.guess: Upgrade to 2018-02-24. + * build-aux/config.sub: Upgrade to 2018-02-22. + +2018-04-01 Colin Watson + + Fix locale_macros version check for groff RCs + + Thanks to Werner LEMBERG. + + * src/man.c (locale_macros): Tolerate groff release candidates. + * NEWS: Document this. + +2018-03-30 Colin Watson + + sandbox: Allow sibling architectures on x86 etc. + + Fixes Debian bug #891267. + + * lib/sandbox.c (make_seccomp_filter): Allow sibling architectures on + x86/x86_64/x32. + * NEWS: Document this. + +2018-03-17 Colin Watson + + sandbox: Tighten up storage classes + + * lib/sandbox.c (make_seccomp_filter, _sandbox_load): Declare as static. + +2018-03-17 Colin Watson + + sandbox: Allow kill and tgkill outright + + This is unfortunate but unavoidable: groff uses kill to explicitly pass + on SIGPIPE to its child processes, and we can't do any more + sophisticated filtering in seccomp. + + Based on a patch by Paul Wise. Fixes Debian bug #892309. + + * lib/sandbox.c (make_seccomp_filter): Allow kill and tgkill + unconditionally. + (adjust_seccomp_filter): Remove. + (_sandbox_load): Remove call to adjust_seccomp_filter. + * NEWS: Document this. + +2018-03-17 Colin Watson + + sandbox: Allow madvise + + Reported by Tobias Klausmann. + + * lib/sandbox.c (make_seccomp_filter): Allow madvise. + * NEWS: Document this. + +2018-03-02 Francisco Javier Serrador + + Update Spanish translation + + * po/es.po: Update from Translation Project. + * man/THANKS: Add translator credit. + +2018-02-28 Colin Watson + + * Version: 2.8.2. + +2018-02-28 Colin Watson + + sandbox: Handle qemu-user returning EFAULT + + Fixes Debian bug #891109. + + * lib/sandbox.c (_sandbox_load): Interpret EFAULT from seccomp_load as + meaning that seccomp is unavailable, since this can be returned by some + versions of qemu-user. + * NEWS: Document this. + +2018-02-28 Colin Watson + + sandbox: Add some more ESET affordances + + * lib/sandbox.c (make_seccomp_filter): If libesets_pac.so is preloaded, + then allow some shared memory calls and checking for the existence of + other processes. + +2018-02-25 Colin Watson + + sandbox: Work around snoopy + + Fixes Debian bug #890861. + + * lib/sandbox.c (search_ld_preload): Cache /etc/ld.so.preload contents + between calls. + (make_seccomp_filter): Allow some socket-related system calls if + libsnoopy.so is preloaded. + +2018-02-25 Colin Watson + + sandbox: Generalise libesets_pac.so check slightly + + * lib/sandbox.c (make_seccomp_filter): LD_PRELOAD or /etc/ld.so.preload + can just contain "libesets_pac.so" without an explicit path, so make the + search slightly more permissive. + +2018-02-20 Colin Watson + + sandbox: Handle /etc/ld.so.preload + + At least ESET File Security may be configured using /etc/ld.so.preload + rather than the LD_PRELOAD environment variable, so unfortunately we + need to check that too. + + * lib/sandbox.c (search_ld_preload): New function, handling both + LD_PRELOAD and /etc/ld.so.preload. + (can_load_seccomp, make_seccomp_filter): Use search_ld_preload. + +2018-02-19 Colin Watson + + sandbox: Work around ESET File Security + + This is a proprietary antivirus program, so this is only a best guess + from strace output. The choices are to disable the sandbox entirely or + to allow a few socket-related system calls if this antivirus program is + detected, and the latter is probably slightly better. + + Reported by John Sivak. + + * lib/sandbox.c (make_seccomp_filter): If LD_PRELOAD contains the + substring "/libesets_pac.so", then allow some socket-related system + calls so that the preload wrapper can talk to its daemon. + * NEWS: Document this. + +2018-02-19 Colin Watson + + sandbox: Allow ioctl(fd, TIOCGWINSZ) + + Patch from the anonymous reporter of + https://savannah.nongnu.org/bugs/?53183 (though I think is obvious for + copyright purposes given knowledge of the failing system call). + + Fixes Savannah bug #53183 (maybe). + + * lib/sandbox.c (make_seccomp_filter): Allow ioctl(fd, TIOCGWINSZ). + * NEWS: Document this. + +2018-02-14 Colin Watson + + sandbox: Allow kill/tgkill for current process + + xz is multithreaded, so the threading library may need to use tgkill to + pass signals between threads, for example when it receives SIGPIPE. + + Fixes Savannah bug #53143. + + * lib/sandbox.c (SC_ALLOW, SC_ALLOW_ARG_1, SC_ALLOW_ARG_2): Move macro + definitions out of make_seccomp_filter. + (adjust_seccomp_filter): New function. + (sandbox_load): Call adjust_seccomp_filter. + * NEWS: Document this. + +2018-02-09 Colin Watson + + * Version: 2.8.1. + +2018-02-09 Colin Watson + + Use HTTPS URLs where possible + + * Makefile.am, NEWS, README, docs/HACKING, docs/INSTALL.quick, + lib/sandbox.c, manual/misc.me, src/check_mandirs.c, src/man.c, + src/manconv.c, src/tests/man-1, src/tests/man-2, src/tests/mandb-2, + src/tests/mandb-4, src/tests/mandb-5, src/tests/zsoelim-1: Replace + http:// links with https:// equivalents. + * docs/HACKING: Replace git:// link with an https:// equivalent. + +2018-02-09 Colin Watson + + Chase some redirects + + * NEWS: Link to https://bazaar.canonical.com/ rather than + http://bazaar-vcs.org/. + * man/fr/translator.add: Link to https://po4a.org/ rather than + http://po4a.alioth.debian.org/. + +2018-02-08 Colin Watson + + sandbox: Allow mremap + + * lib/sandbox.c (make_seccomp_filter): Allow mremap, which may be used + by iconv when reading files, depending on libc configuration. + * NEWS: Document this. + +2018-02-07 Lars Wendler + + Change libseccomp logic to not be automagic only + + Introduce --without-libseccomp configure option so that users can + disable seccomp even if libseccomp is available on the system. + + The default is unchanged from before this patch. If no + --with(out)-libseccomp has been given on the command line, the macro + looks for presence of libseccomp and uses that if found. + + * m4/man-libseccomp.m4: Guard pkg-config test with a command-line + option. + +2018-02-07 Colin Watson + + * NEWS: Document changes since 2.8.0. + +2018-02-07 Colin Watson + + Reduce number of MAN_OWNER ifdefs + + * lib/security.c (init_security, running_setuid): Define + unconditionally, with stub behaviour if MAN_OWNER is undefined. + * lib/security.h (get_man_owner): Only declare prototype if MAN_OWNER is + defined. + * src/check_mandirs.c (chown_if_possible) [!MAN_OWNER]: Mark path + argument as unused. + * src/lexgrog_test.c (main): Call init_security unconditionally. + * src/man.c (main): Likewise. + * src/manconv_client.c (manconv_pre_exec): Define unconditionally. + (add_manconv): Simplify, since running_setuid is now always defined. + * src/mandb.c (main): Call init_security unconditionally. Use + get_man_owner rather than equivalent inline code. + * src/manp.c (get_def): Define unconditionally. + * src/manp.h (get_def): Drop macro alternative. + +2018-02-07 Colin Watson + + Fix manconv under seccomp when man is setuid + + We must drop privileges before loading the sandbox. + + Reported by Lars Wendler. + + * src/manconv_client.c (manconv_pre_exec): New function. + (manconv_stdin): Move setuid hack to ... + (add_manconv): ... here, now implemented using a custom pre-exec hook. + We no longer have a fall-through if dropping privileges fails, since + that's now harder to do and wasn't really necessary in the first place. + +2018-02-07 Colin Watson + + Refactor do_system_drop_privs + + Now that we have pipecmd_pre_exec, this can be simplified quite a bit. + + * lib/security.c (drop_privs): New function. + (do_system_drop_privs_child, do_system_drop_privs): Remove. + * lib/security.h (drop_privs): Add prototype. + (do_system_drop_privs): Remove prototype. + * src/man.c (make_browser): Add drop_privs pre-exec hook to browser + command. + (format_display): Call browser using pipeline_run rather than + do_system_drop_privs, since it now has a pre-exec hook to drop + privileges. + +2018-02-07 Colin Watson + + Refactor sandbox attachment to be more composable + + The sandbox interface now exposes the necessary load/free primitives, + and callers use them directly with pipecmd_pre_exec. This allows the + sandbox to be composed with other pre-exec hooks. + + * lib/sandbox.c (man_sandbox_op, sandbox_attach, + sandbox_attach_permissive): Remove. + (sandbox_load): Rename to ... + (_sandbox_load): ... this. + (sandbox_load, sandbox_load_permissive): New functions. + (sandbox_free): Expect a man_sandbox * rather than a man_sandbox_op *. + * lib/sandbox.h: Update prototypes. + + * lib/decompress.c (decompress_open, decompress_fdopen): Update sandbox + attachment calls. + * src/lexgrog.l (find_name): Likewise. + * src/man.c (add_col, make_roff_command, add_output_iconv, + make_display_command, open_cat_stream, display_catman): Likewise. + * src/manconv_client.c (add_manconv): Likewise. + * src/straycats.c (check_for_stray): Likewise. + * src/whatis.c (use_grep): Likewise. + +2018-02-07 Colin Watson + + * NEWS: Fix typo in 2.6.5 notes + +2018-02-05 Colin Watson + + Fix seccomp sandbox build on Linux/POWER + + * lib/sandbox.c [HAVE_LIBSECCOMP]: Include , since some + architectures need this for TCGETS as well as . + +2018-02-04 Colin Watson + + * Version: 2.8.0. + +2018-02-04 Colin Watson + + Allow ioctl (..., TCGETS, ...) + + * lib/sandbox.c (make_seccomp_filter): Allow ioctl (..., TCGETS, ...) in + non-permissive mode (ioctl in general is already allowed in permissive + mode). + +2018-02-04 Mario Blättermann + + Update German manual page translation + + * man/po4a/po/de.po: Update from Translation Project. + +2018-02-03 Rafael Fontenelle + + Update Brazilian Portuguese translations + + * po/pt_BR.po, man/po4a/po/pt_BR.po: Update from Translation Project. + * man/THANKS: Update translator email address. + +2018-01-27 Joe Hansen + + Update Danish manual page translation + + * man/po4a/po/da.po: Update from Translation Project. + +2018-01-25 Mario Blättermann + + Update German manual page translation + + * man/po4a/po/de.po: Update from Translation Project. + +2018-01-23 Yuri Kozlov + + Update Russian translations + + * po/ru.po, man/po4a/po/ru.po: Update from Translation Project. + +2018-01-23 Boyuan Yang <073plan@gmail.com> + + Update Simplified Chinese manual page translation + + * man/po4a/po/zh_CN.po: Update from Translation Project. + +2018-01-23 Sebastian Rasmussen + + Update Swedish manual page translation + + * man/po4a/po/sv.po: Update from Translation Project. + +2018-01-23 Rafael Fontenelle + + Update Brazilian Portuguese manual page translation + + * man/po4a/po/pt_BR.po: Update from Translation Project. + +2018-01-22 Colin Watson + + * Version: 2.8.0-pre2. + + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update. + +2018-01-21 Colin Watson + + * Version: 2.8.0-pre1. + +2018-01-16 Colin Watson + + Minor style cleanups + + * src/man.c (sh_lang_first_word, main): Minor style cleanups. + +2018-01-16 Colin Watson + + NEWS: Document previous commit. + +2018-01-16 Neven Sajko + + Add fallback pager if the compile-time default is not executable + + A problem with man-db's man is that in the case of the user giving no + configuration via conf files, argv, or environment variables; man + defaults to less as pager (PAGER); but less may not be present on the + system. Sure, other pagers may be selected in aforementioned ways, but + then the defaults are overridden, making that unsuitable for + install-time configuration. + + This patch makes man check (if that becomes relevant) if PAGER is + executable, further defaulting to cat (which is basically ubiquitous, + being in original Unix, POSIX, and GNU Coreutils) if it is not. Thus + the poor beginner Unix users without less installed will be able to + get man pages. + + * src/man.c (sh_lang_first_word): New function. + (main): Skip configured pager if it is not executable. + * man/man1/man.man1 (Controlling formatted output, ENVIRONMENT): + Document fallback to cat. + * man/replace.sin.in: Substitute %cat%. + +2018-01-16 Colin Watson + + Fix a segfault in 'man -D --help' + + Reported by Jiri Kucera. + + * src/man.c (init_html_pager): New function. + (parse_opt): Call init_html_pager rather than setting html_pager to + NULL. + (help_filter): Assert that browser is non-NULL. + (main): Call init_html_pager rather than doing the same thing directly. + * NEWS: Document this. + +2018-01-03 Colin Watson + + Update Simplified Chinese manual page translation + + * man/po4a/po/zh_CN.po: Update from Translation Project (trivial). + +2018-01-03 Colin Watson + + Upgrade config.guess/config.sub + + * build-aux/config.guess: Upgrade to 2017-11-07. + * build-aux/config.sub: Upgrade to 2017-11-23. + +2018-01-03 Colin Watson + + sandbox: Cope with missing CONFIG_SECCOMP_FILTER + + * lib/sandbox.c (gripe_seccomp_filter_unavailable): New function. + (can_load_seccomp): Return early if seccomp filtering has already been + detected as unavailable. + (sandbox_load): If seccomp_load returns an EINVAL error, assume that the + running kernel doesn't support seccomp filtering and emit a debugging + message rather than failing. + +2018-01-03 Colin Watson + + Allow sync_file_range2 syscall + + * lib/sandbox.c (make_seccomp_filter): Add sync_file_range2. + +2018-01-03 Colin Watson + + Fix seccomp sandbox on Linux/ARM + + * lib/sandbox.c (make_seccomp_filter): Add arm_fadvise64_64 and + arm_sync_file_range. + +2017-12-03 Colin Watson + + Use more conventional bullets in documentation + + * docs/INSTALL.quick, NEWS, README: Use "*" for bullet points instead of + "o". + +2017-12-03 Colin Watson + + Confine most untrusted data handling using seccomp + + Fixes Debian bug #877199. + + * configure.ac: Require libpipeline >= 1.5.0. Call MAN_LIBSECCOMP. + * docs/INSTALL.quick: Bump minimum libpipeline version to 1.5.0. List + libseccomp as recommended. + * lib/Makefile.am (libman_la_CPPFLAGS): Add $(libseccomp_CFLAGS). + (libman_la_SOURCES): Add sandbox.c and sandbox.h. + (libman_la_LDFLAGS): Add $(libseccomp_LIBS). + * lib/sandbox.c: New file. + * lib/sandbox.h: New file. + * m4/man-libseccomp.m4: New file. + + * src/man.c (set_term): Check that process ID matches original before + calling tcsetattr. + (get_term): Record original process ID to work around an arguable bug in + pipecmd_exec. + + * src/lexgrog_test.c (main), src/man.c (main), src/manconv_main.c + (main), src/mandb.c (main), src/zsoelim_main.c (main): Initialise + sandbox. + + * lib/decompress.c (decompress_open, decompress_fdopen): Attach sandbox + to decompression commands. + * src/lexgrog.l (find_name): Attach sandbox to 'col'. + * src/man.c (add_col): Attach sandbox to 'col'. + (make_roff_command): Attach sandbox to 'zsoelim' and to groff-related + programs. + (add_output_iconv): Attach sandbox to 'iconv'. + (make_display_command): Attach sandbox to 'tr'. + (open_cat_stream, display_catman): Attach sandbox to compression + commands. + * src/manconv_client.c (add_manconv): Attach sandbox to manconv_stdin. + * src/straycats.c (check_for_stray): Attach sandbox to 'col'. + * src/whatis.c (use_grep): Attach sandbox to 'grep'. + + * src/accessdb.c, src/catman.c, src/globbing_test.c, src/manpath.c: + Define stub sandbox variable. + + * docs/NEWS: Document this. + +2017-12-02 Colin Watson + + Document more installation requirements + + * docs/INSTALL.quick: List a database library as required, and zlib as + recommended. + +2017-11-22 Colin Watson + + Remove Easter egg entirely + + Six years is a reasonable shelf life for a joke, but I think its time + has passed now. + + * src/man.c (main): Remove Easter egg. + +2017-11-21 Philipp Gesang + + Add section 0 to defaults + + m4/man-arg-sections.m4: Add 0 (zero) to the default list of sections as + advertised in ``configure --help``. + + Cf. commit f3739b9bbde27c702c911ce8a511a499705a25f7 + +2017-11-21 Colin Watson + + Stop Easter egg interfering with non-error cases + + * src/man.c (main): Restrict Easter egg to the case where 'man' is run + without any options or arguments at all (which isn't useful for anything + else), not 'man -w' (which is). + + https://unix.stackexchange.com/questions/405783/why-does-man-print-gimme-gimme-gimme-at-0030 + +2017-11-21 Colin Watson + + Fix formatting error in Simplified Chinese translation + + * man/po4a/po/zh_CN.po: Correct formatting of exit(3tcl) references. + +2017-11-16 Boyuan Yang <073plan@gmail.com> + + Update Simplified Chinese translations + + * po/zh_CN.po, man/po4a/po/zh_CN.po: Update from Translation Project. + * man/THANKS: Add translator credit. + +2017-11-13 Colin Watson + + Fix docs for minimum libpipeline requirement + + * docs/INSTALL.quick: Bump minimum libpipeline version to 1.4.0. + +2017-07-17 Colin Watson + + Fix formatting error in Turkish translation + + * man/po4a/po/tr.po: Translate "\\e-" as itself rather than as "\\(e-". + +2017-07-16 Colin Watson + + Improve --with-systemdtmpfilesdir default + + * m4/man-arg-systemdtmpfilesdir.m4: Get tmpfiles directory location from + pkg-config. + * configure.ac: Call PKG_PROG_PKG_CONFIG early to avoid problems with + conditional use of PKG_* macros. + +2017-07-11 Colin Watson + + Add Turkish manual page translation + + * man/po4a/po/tr.po: New from Translation Project (thanks, Volkan Gezer + and Mesutcan Kurt). + * configure.ac (AC_CONFIG_FILES): Add man/tr/Makefile. + * man/LINGUAS.po4a: Add tr. + * man/Makefile.am (DIST_SUBDIRS): Add tr. + * man/tr/Makefile.am, man/tr/translator.add: New files. + * man/po4a/Makefile.am (POFILES): Add po/tr.po. + * man/po4a/po4a.cfg (po4a_langs): Add tr. + * man/THANKS: Add translator credit. + * .gitignore: Add man/tr/man1, man/tr/man5, and man/tr/man8. + +2017-07-10 Colin Watson + + * NEWS: Document changes since 2.7.6.1. + +2017-07-10 Colin Watson + + gnulib: Import memmem module + + Needed to make the previous commit portable. + +2017-07-10 Colin Watson + + Fix preprocessor handling after insertions + + If man has added prefixes to a page to handle such things as disabling + hyphenation, then it also needs to take account of that when looking for + a preprocessor line at the start of the page. + + Reported by Bjarni Ingi Gislason. Fixes Debian bug #867857. + + * src/man.c (get_preprocessors_from_file): Skip over as many blocks + ending with an .lf macro as there are prefixes. + (get_preprocessors): Pass the number of prefixes through to + get_preprocessors_from_file. + (make_roff_command): Take pp_string as an argument rather than + dbfilters; callers should now call get_preprocessors themselves. + (display): Rename seq_ncmds to prefixes. Call get_preprocessors before + calling make_roff_command. + +2017-07-10 Colin Watson + + Upgrade to Automake 1.15.1. + +2017-07-10 Colin Watson + + Handle \(en escapes in NAME section + + * src/lexgrog.l (MAN_NAME): Treat "\(en" as another synonym for "\-", + and thus as a separator. + +2017-04-08 Volkan Gezer + + Update Turkish translation + + * po/tr.po: Update from Translation Project. + +2017-04-04 Volkan Gezer + + Add Turkish translation + + * po/tr.po: New from Translation Project. + * po/LINGUAS: Add tr. + * man/THANKS: Add translator credit. + +2017-01-29 Felipe Castro + + Update Esperanto translation + + * po/eo.po: Update from Translation Project. + +2017-01-07 Sebastian Rasmussen + + Update Swedish translation + + * po/sv.po: Update from Translation Project. + +2017-01-04 Colin Watson + + Add Brazilian Portuguese manual page translation + + * man/po4a/po/pt_BR.po: New from Translation Project (thanks, Rafael + Fontenelle). + * configure.ac (AC_CONFIG_FILES): Add man/pt_BR/Makefile. + * man/LINGUAS.po4a: Add pt_BR. + * man/Makefile.am (DIST_SUBDIRS): Add pt_BR. + * man/pt_BR/Makefile.am, man/pt_BR/translator.add: New files. + * man/po4a/Makefile.am (POFILES): Add po/pt_BR.po. + * man/po4a/po4a.cfg (po4a_langs): Add pt_BR. + * man/THANKS: Add translator credit. + * .gitignore: Add man/pt_BR/man1, man/pt_BR/man5, and man/pt_BR/man8. + +2016-12-28 Sebastian Rasmussen + + Update Swedish manual page translation + + * man/po4a/po/sv.po: Update from Translation Project. + +2016-12-23 David Prévot + + Update French manual page translation + + * man/po4a/po/fr.po: Update from Translation Project. + +2016-12-23 David Prévot + + Update French translation + + * po/fr.po: Update from Translation Project. + +2016-12-22 Robert Luberda + + Update Polish manual page translation + + * man/po4a/po/pl.po: Update from Translation Project. + +2016-12-22 Robert Luberda + + Update Polish translation + + * po/pl.po: Update from Translation Project. + +2016-12-19 Colin Watson + + Add Serbian manual page translation + + * man/po4a/po/sr.po: New from Translation Project (thanks, МироÑлав + Ðиколић). + * configure.ac (AC_CONFIG_FILES): Add man/sr/Makefile. + * man/LINGUAS.po4a: Add sr. + * man/Makefile.am (DIST_SUBDIRS): Add sr. + * man/sr/Makefile.am, man/sr/translator.add: New files. + * man/po4a/Makefile.am (POFILES): Add po/sr.po. + * man/po4a/po4a.cfg (po4a_langs): Add sr. + * man/THANKS: Add translator credit. + * .gitignore: Add man/sr/man1, man/sr/man5, and man/sr/man8. + +2016-12-19 МироÑлав Ðиколић + + Update Serbian translation + + * po/sr.po: Update from Translation Project. + +2016-12-13 Joe Hansen + + Update Danish manual page translation + + * man/po4a/po/da.po: Update from Translation Project. + +2016-12-13 Colin Watson + + Generate tmpfiles snippet based on cache owner + + man-db.conf should honour --enable-cache-owner rather than hardcoding + "man". + + * init/systemd/man-db.conf: Rename to ... + * init/systemd/man-db.conf.in: ... this. Replace "man" with + "@man_owner@". + * init/systemd/Makefile.am: Generate man-db.conf at build time. + * .gitignore: Add init/systemd/man-db.conf. + +2016-12-13 Colin Watson + + Fix locale macro loading for Chinese + + The intent was always that we should load the macro file corresponding + to just the language part of the page's locale, and the debug output + agreed with this, but the actual implementation did not. Fix this. + + See: https://savannah.gnu.org/bugs/?44941 + + * src/man.c (display): Pass bits.language rather than page_lang to + locale_macros. Adjust memory allocation. + +2016-12-13 Colin Watson + + Rename SECURE_MAN_UID to MAN_OWNER + + The latter had always been defined to the former anyway, and now that + the cache owner can be changed without actually installing setuid the + latter is more descriptive. + + * m4/man-arg-cache-owner.m4: Define MAN_OWNER rather than + SECURE_MAN_UID. Update all users. + * include/manconfig.h.in (MAN_OWNER): Remove definition. + +2016-12-13 Colin Watson + + Mark some parts of .TH sections as untranslatable + + * man/po4a/Locale/Po4a/Manext.pm (translate): Don't translate anything + matching /^%.*%$/ or /^[A-Z]+$/ in .TH sections. + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update. + +2016-12-13 Tianze Wang + + Update Simplified Chinese manual page translation + + * man/po4a/po/zh_CN.po: Update from Translation Project. + * man/THANKS: Update. + +2016-12-13 Trần Ngá»c Quân + + Update Vietnamese translation + + * po/vi.po: Update from Translation Project. + +2016-12-13 Colin Watson + + Correct syntax of Danish manual page translation + + * man/po4a/po/da.po: Fix a couple of font specifications. + +2016-12-13 Rafael Fontenelle + + Update Brazilian Portuguese translation + + * po/pt_BR.po: Update from Translation Project. + * man/THANKS: Update. + +2016-12-13 Joe Hansen + + Update Danish manual page translation + + * man/po4a/po/da.po: Update from Translation Project. + +2016-12-12 Joe Hansen + + Update Danish translation + + * po/da.po: Update from Translation Project. + +2016-12-12 Mario Blättermann + + Update German manual page translation + + * man/po4a/po/de.po: Update from Translation Project. + +2016-12-12 Mario Blättermann + + Update German translation + + * po/de.po: Update from Translation Project. + * man/THANKS: Update. + +2016-12-12 Colin Watson + + * Version: 2.7.6.1. + +2016-12-12 Colin Watson + + Correct installation of Swedish manual pages + + * man/sv/Makefile.am (LINGUA): Set to sv, not nl. + * NEWS: Document this. + +2016-12-12 Colin Watson + + * NEWS: Document previous change. + +2016-12-12 Colin Watson + + Don't chmod CACHEDIR.TAG if it doesn't exist + + The containing directory might reasonably not exist. Fixes Debian + bug #847810. + + * src/mandb.c (mandb): Only chown/chmod CACHEDIR.TAG if it exists. + +2016-12-11 Colin Watson + + * Version: 2.7.6. + +2016-12-11 Colin Watson + + Fix systemd tmpfiles group/perms of /var/cache/man + + * init/systemd/man-db.conf: Change mode to 0755 and group to man. + +2016-12-11 Colin Watson + + Fix Polish mandb(8) "cannot adjust line" warnings + + * man/man8/mandb.man8 (DATABASE CACHES): Set a width of 20em for the + "Type" column. + +2016-12-11 Colin Watson + + Drop documentation of gdbm < 1.6 + + gdbm 1.6 was released in 1993; it's no longer necessary to document + mandb's behaviour with older versions. + + * man/man8/mandb.man8 (DATABASE CACHES): Remove "GNU gdbm v < 1.6" row. + Simplify "GNU gdbm v >= 1.6" to "GNU gdbm". Update all translations. + +2016-12-11 Colin Watson + + Fix table rendering with po4a 0.47 + + * man/po4a/Locale/Po4a/Manext.pm (initialize): Drop unused assignment. + (shiftline, pushline): Pass through to superclass if po4a version >= + 0.47. + (translate): With po4a >= 0.47, don't process text blocks since po4a now + does that, but handle @-separation of columns and remove trailing + newlines from translatable strings. + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update (line + numbers only). + * NEWS: Document this. + +2016-12-11 Colin Watson + + Fix distcheck following cache-owner/setuid changes + + We previously ignored chown failures on "make install", but that's not + really correct. Instead, configure with --disable-setuid during + distcheck. + + * Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Add --disable-setuid. + +2016-12-11 Colin Watson + + Update translation files + + * po/man-db.pot, po/*.po: Update. + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update. + +2016-12-11 Colin Watson + + * NEWS: Document changes since 2.7.5. + +2016-12-11 Mihail Konev + + src/tests: Use /tmp for temporary directories + + Reduces disk reads/writes made by 'make check -C src'. + + Fall back to ./tmp-* if 'mktemp -d' fails. + +2016-12-10 Colin Watson + + Eliminate dangerous setgid-root directories + + man-db has created its cache directories as setgid root for nearly 20 + years. This seems to have originated in https://bugs.debian.org/26002. + However, this has some dangerous consequences, such as: + + http://www.halfdog.net/Security/2015/SetgidDirectoryPrivilegeEscalation/ + + It seems best to arrange for cache files and directories to be man:man + rather than man:root. To do this reliably, as well as adjusting various + chown and chmod calls, we make man and mandb be setgid man as well as + setuid man (except in the --disable-setuid case). This is a much + simpler and safer solution to the original problem, and doesn't + introduce any interesting new privilege since the man group's only real + purpose is to be the man user's primary group and nothing in cache + directories is group-writeable. + + * configure.ac (AC_CHECK_FUNCS): Add lchown. + * lib/security.c (init_security): Record initial real and effective + group IDs as well as user IDs. + (drop_effective_privs, regain_effective_privs): Update gid. + * lib/xchown.c (xlchown) [HAVE_LCHOWN]: New function. + * lib/xchown.c (xlchown) [HAVE_LCHOWN]: Add prototype. + * m4/man-arg-setuid.m4: Set man_mode to 6755 rather than 4755 in the + --enable-setuid case. + * src/Makefile.am (install-exec-hook): Check for man_mode being 6755 + rather than 4755. Set the group of man and mandb as well as their + owner. + * src/check_mandirs.c (chown_if_possible): New function. This is + somewhat more careful than previous implementations, changes the group + as well as the user if possible, and prefers lchown if it is available. + (mkcatdirs): Drop S_ISGID from cat directories. Use chown_if_possible. + (fix_permissions, fix_permissions_tree): New functions to remove setgid + bit from existing cat directories. + (testmandirs): Call fix_permissions_tree. + * src/check_mandirs.h (chown_if_possible): Add prototype. + * src/man.c (commit_tmp_cat): Set cat file group as well as owner. + * src/mandb.c (check_chown): Remove. + (do_chown): Stop taking a uid parameter. Use chown_if_possible. + (mandb): Use chown_if_possible for CACHEDIR.TAG. Set ownership and + permissions of CACHEDIR.TAG even if it already exists. + (process_manpath): Set ownership of database files even if they have not + been changed. + +2016-12-10 Colin Watson + + Make --disable-cache-owner imply --disable-setuid + + * m4/man-arg-setuid.m4: Set man_mode="755" if --disable-cache-owner was + given and neither --enable-setuid nor --disable-setuid was given. + +2016-12-10 Colin Watson + + Update manual for cache-owner/setuid changes + + * manual/intro.me (Arguments to configure): Add --enable-cache-owner and + --disable-cache-owner. Remove --enable-setuid[=ARG]. Adjust + description of --disable-setuid. + * manual/misc.me (Modes of operation): Add --disable-cache-owner to the + non-setuid modes. Mention --enable-setuid rather than + --enable-setuid=USER. + * README (Non-generic arguments to configure): Update. + +2016-12-10 Colin Watson + + Allocate dbpaths on the heap rather than the stack + + process_manpath's stack may have gone out of scope by the time cleanup + functions are called. + + * src/mandb.c (cleanup): Free dbpaths. + (process_manpath): Allocate dbpaths on the heap. + +2016-12-10 Colin Watson + + Handle cleanup stack more safely + + If push_cleanup was called unexpectedly between a + push_cleanup/pop_cleanup pair, then the pop_cleanup would remove the + wrong cleanup function and chaos could ensue. Avoid this by being more + precise about which cleanup function should be popped. + + * lib/cleanup.c (pop_cleanup): Take "fun" and "arg" arguments. Pop the + topmost matching function from the stack, rather than just the topmost + function. Update all callers and prototypes. + +2016-12-09 Colin Watson + + Upgrade config.guess/config.sub + + * build-aux/config.guess: Upgrade to 2016-10-02. + * build-aux/config.sub: Upgrade to 2016-11-04. + +2016-12-09 Colin Watson + + Separate cache owner from --enable-setuid option + + It's useful to have a notion of the cache owner even when man is not + installed setuid. --enable-setuid no longer takes an argument, and the + owner is now set by the --enable-cache-owner option instead. + + * m4/man-arg-cache-owner.m4: New file. + * m4/man-arg-setuid.m4: Stop accepting an argument. Only set man_mode, + not man_owner. + * configure.ac: Call MAN_ARG_CACHE_OWNER. + * src/Makefile.am (install-exec-hook): Only chown man and mandb if + man_mode is 4755 (as well as the existing test for man_owner being + non-empty). + +2016-11-21 Colin Watson + + Restore ylwrap to distribution + + * Makefile.in (am__DIST_COMMON): Regenerate to add build-aux/ylwrap back + again, since it mysteriously went missing in the last regeneration. + +2016-11-21 Colin Watson + + Update translation files + + * po/man-db.pot, po/*.po: Update. + +2016-11-21 Colin Watson + + Upgrade to Libtool 2.4.6-2 (from Debian) + +2016-11-21 Colin Watson + + Upgrade config.guess/config.sub + + * build-aux/config.guess: Upgrade to 2016-04-02. + * build-aux/config.sub: Upgrade to 2016-03-30. + +2016-11-20 Mihail Konev + + src/tests: Fix testsuite + + * src/tests/man-9: Set MANPATH. + +2016-11-20 Mihail Konev + + man(1): Fix gcc warnings + + * lib/xchown.c: New file. + * lib/xchown.h: New file. + * lib/Makefile.am (libman_la_SOURCES): Add xchown.c and xchown.h. + * po/POTFILES.in: Add lib/xchown.c. + * src/check_mandirs.c (mkcatdirs): Call xchown instead of chown. + * src/man.c (format_display): Ignore errors from chdir ("/"). + +2016-11-20 Colin Watson + + Make split_page_name allocate its own memory + + * src/man.c (split_page_name): Allocate *ret_name and *ret_section here. + Simplify using xstrdup and xstrndup. + (man): Remove allocation of page_name and page_section. + +2016-11-20 Mihail Konev + + man(1): add .N names + + `man chmod.2` is now the same as `man 2 chmod` + + * src/man.c (split_page_name): New function. + (locate_page_in_manpath): New function. + (man): Factor out common locate_page loop into locate_page_in_manpath. + Add name/section splitting logic. + * src/tests/man-11: New file. + * src/tests/Makefile.am (ALL_TESTS): Add man-11. + * man/man1/man.man1 (SYNOPSIS): Document .
form. + (EXAMPLES): Likewise. + +2016-10-04 Colin Watson + + Fix formatting error in Swedish translation + + * man/po4a/po/sv.po: Translate "\\(rq" as itself rather than as "\\(". + +2016-10-04 Colin Watson + + Rename some anomalous x* functions + + The usual (though not universal) pattern in gnulib is for xfoo to mean + "foo or exit". Rename x* to check_* so that they don't conflict with + this. + + * src/mandb.c (xremove): Rename to ... + (check_remove): ... this. + (xrename): Rename to ... + (check_rename): ... this. + (xchmod): Rename to ... + (check_chmod): ... this. + (xchown): Rename to ... + (check_chown): ... this. + +2016-05-16 Colin Watson + + man(1): Fix incorrect font + + * man/man1/man.man1 (SYNOPSIS): Make "--regex" bold. Thanks to Paul + Townsend. + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update; unfuzzy all + translations. + +2016-05-16 Colin Watson + + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update. + +2016-02-04 Colin Watson + + Note caveat with "man -K" + + * man/man1/man.man1 (Main modes of operation): Note that -K searches + page source. Fixes Debian bug #813665. + +2016-01-02 Sebastian Rasmussen + + * po/sv.po: Add missing translator credit comment. + +2016-01-02 Colin Watson + + Fix warnings with Perl 5.22 + + * man/po4a/Locale/Po4a/Manext.pm (shiftline, translate): Escape braces + in regular expressions. + +2016-01-02 Colin Watson + + Add Swedish manual page translation + + * man/po4a/po/sv.po: New from Translation Project (thanks, Sebastian + Rasmussen). + * configure.ac (AC_CONFIG_FILES): Add man/sv/Makefile. + * man/LINGUAS.po4a: Add sv. + * man/Makefile.am (DIST_SUBDIRS): Add sv. + * man/sv/Makefile.am, man/sv/translator.add: New files. + * man/po4a/Makefile.am (POFILES): Add po/sv.po. + * man/po4a/po4a.cfg (po4a_langs): Add sv. + * man/THANKS: Add translator credit. + * .gitignore: Add man/sv/man1, man/sv/man5, and man/sv/man8. + +2015-12-31 Colin Watson + + Upgrade to pkg-config 0.29. + +2015-12-26 Sebastian Rasmussen + + Update Swedish translation + + * po/sv.po: Update from Translation Project. + * man/THANKS: Add translator credit. + +2015-12-07 Colin Watson + + Simplify database path handling in mandb + + * src/mandb.c (struct dbpaths): Unconstify xtmpfile. + (finish_up): Free dbpaths->xtmpfile. + (cleanup): Update header comment. Remove unnecessary checks before + frees. Free all database paths for all database types, not just + GDBM. Free dbpaths->xtmpfile. + (mandb): Copy content of database to dbpaths->xtmpfile rather than + just copying the pointer. + +2015-12-07 Colin Watson + + Move some database paths out of global variables + + * src/mandb.c (struct dbpaths): New structure. + (finish_up, do_chown, cleanup_sigsafe, cleanup, mandb): Take dbpaths + argument. + (process_manpath): Allocate dbpaths on the stack, zero it, and pass + it to functions that need it. + +2015-12-07 Colin Watson + + Remove lots of unnecessary inline qualifiers + + It's 2015. The compiler almost certainly knows better than we do. + + * lib/security.c (gripe_set_euid): Remove inline qualifier. + * libdb/db_btree.c (btree_findkey): Likewise. + * libdb/mydbm.h (gdbm_exists): Likewise. + * src/catman.c (catman): Remove obsolete comment. + (add_arg, check_access): Remove inline qualifier. + * src/check_mandirs.c (add_dir_entries): Likewise. + * src/man.c (gripe_system, gripe_no_man, manopt_to_env, escape_less, + is_section, do_prompt, gripe_converting_name): Likewise. + * src/mandb.c (xremove, xrename, xchmod, finish_up, xchown, + do_chown, update_db_wrapper): Likewise. + * src/manp.c (gripe_reading_mp_config, gripe_stat_file, + gripe_not_directory, has_mandir, fsstnd): Likewise. + * src/whatis.c (do_whatis_section): Likewise. + +2015-11-06 Colin Watson + + Belatedly update NEWS date. + + * Version: 2.7.5. + + * NEWS: Document changes since 2.7.4. + +2015-11-06 Colin Watson + + Build text manual with LC_ALL=C + + nroff's UTF-8 output is a bit wonky in this case, but ASCII will do + fine. + + * manual/Makefile.am (.pp.cat): Set LC_ALL=C. + +2015-11-05 Colin Watson + + Disable roff input insertion with --recode + + Reported by Bjarni Ingi Gislason. Fixes Debian bug #751795. + + * src/man.c (display): Don't insert roff input for --no-hyphenation, + --no-justification, or locale macros when the --recode option is used. + +2015-11-05 Colin Watson + + Adjust line number when inserting extra roff input + + Reported by Bjarni Ingi Gislason. Fixes Debian bug #789219. + + * src/man.c (heirloom_line_length, disable_hyphenation, + disable_justification, locale_macros): Emit ".lf 1" after inserted roff + input. + * src/zsoelim.l: Accept .lf without a file name argument. + +2015-10-19 Colin Watson + + Make a mandb error message clearer + + * src/mandb.c (xcopy): Say which file name we failed to fopen. + +2015-10-08 Colin Watson + + Fix Plural-Forms header in Catalan translation + + * po/ca.po (Plural-Forms): Add missing semicolon. + +2015-10-08 Colin Watson + + * Version: 2.7.4. + +2015-10-08 Colin Watson + + man: Honour MANWIDTH in conjunction with -Z + + * src/man.c (get_roff_line_length): Also consider line_length if + ditroff is set. + (make_roff_command): Try add_roff_line_length regardless of troff. + The line length is passed to the macro package, not to the output + device, although get_roff_line_length will still sometimes not use + it (e.g. if using the "ps" device). Fixes Debian bug #801241. + * NEWS: Document this. + +2015-10-08 Colin Watson + + man: Exit 3 if formatter exits non-zero + + * src/man.c (format_display): Keep track of exit statuses from both + format_cmd and disp_cmd, and exit CHILD_FAIL if either is non-zero + and non-SIGPIPE. Fixes Debian bug #801261. + * NEWS: Document this. + +2015-09-22 Colin Watson + + Fix replace.sed prerequisite syntax + + Suffix rules may not have prerequisites. Thanks to Nikola Forró; fixes + Fedora bug #1263930. + + * man/Rules.man: Declare dependency of $(MANS) on replace.sed + separately rather than trying to do so in suffix rules. + * NEWS: Document this. + +2015-09-22 Colin Watson + + Fix crash in manpath deduplication + + * src/manp.c (create_pathlist): Handle NULL return from + canonicalize_file_name. + * NEWS: Document this. + +2015-09-22 Colin Watson + + Upgrade config.guess/config.sub + + * build-aux/config.guess, build-aux/config.sub: Upgrade to + 2015-08-20. + +2015-09-21 Nikola Forró + + Fix typos in italian manpath man page + +2015-09-16 zwpwjwtz + + Update Simplified Chinese manual page translation + + * man/po4a/po/zh_CN.po: Update from Translation Project. + * man/THANKS: Add translator credit. + +2015-09-09 Colin Watson + + * Version: 2.7.3. + +2015-09-09 Colin Watson + + Pacify gcc -Wlogical-not-parentheses + + * src/man.c (find_cat_file): Add extra parentheses around + logical-not on the LHS of a comparison. + * lib/util.c (is_changed): Likewise in header comment. + +2015-09-09 OGAWA Hirofumi + + Restore the ability to use 'man -a' noninteractively + + Fixes Debian bug #798094. + + * src/man.c (do_prompt): Return 0 immediately (i.e. view) if neither + stdin nor stdout is a tty. + * NEWS: Document this. + +2015-09-09 Mike Frysinger + + Fix crash when current directory is unreadable + + Fixes Savannah bug #45861. + + * src/man.c (make_display_command): Check have_cwd before trying to + use cwd. + * NEWS: Document this. + +2015-09-09 Colin Watson + + Document squeeze-blank-lines fix + + * NEWS: Document Rafael's squeeze-blank-lines fix. + +2015-09-09 Colin Watson + + Fix use-after-free in ult_src + + Reported by Hanno Boeck. Fixes Savannah bug #45854. + + * src/ult_src.c (ult_src): Take a copy of base when recursing rather + than passing it directly as the new name argument, since it may be + freed by the recursive call. + * NEWS: Document this. + +2015-09-09 Colin Watson + + Remove unnecessary check before free + + * src/ult_src.c (ult_src): Don't check whether base is non-NULL + before freeing it. + +2015-08-30 Rafael Kitover + + Squeeze blank lines internally instead of pager -s + + Add a pipecmd in make_display_command to combine multiple blank lines in + the output into one, which is what e.g. less -s does. + + Stop automatically appending -s to pager command in configure. + + Fixes Debian bug #796584. + + * configure.ac: Stop automatically appending -s to pager command. + * src/man.c (squeeze_blank_lines): New function. + (make_display_command): Add squeeze_blank_lines to display pipeline. + +2015-08-29 Colin Watson + + Make sure CACHEDIR.TAG has correct ownership + + * src/mandb.c (mandb): Change CACHEDIR.TAG's owner to + man_owner->pw_uid when running as root in global manpaths. + (process_manpath): Pass global_manpath to mandb. + +2015-08-29 Colin Watson + + Rewrite CACHEDIR.TAG and databases if they cannot be read + + Fixes Debian bug #797019. + + * src/mandb.c (mandb): Rewrite CACHEDIR.TAG and databases if they + cannot be read (probably due to incorrect ownership). + * NEWS: Document this. + +2015-08-22 Colin Watson + + Try to get terminal width from /dev/tty + + If man is running within something like lesspipe, then there may be + a current tty that neither stdin nor stdout points to. Try to get + hold of it using /dev/tty. Fixes Fedora bug #1255930. + + * lib/linelength.c (get_line_length): Try /dev/tty before either + stdout or stdin. + * NEWS: Document this. + +2015-08-16 Colin Watson + + * Version: 2.7.2. + +2015-08-16 Jordi Mallach + + * po/ca.po: Update from Translation Project. + +2015-08-16 Colin Watson + + Upgrade to Automake 1:1.15-3 (from Debian). + + * NEWS: Document a couple more changes since 2.7.1. + +2015-08-02 Colin Watson + + Upgrade to Automake 1.15. + +2015-08-02 Colin Watson + + Fix inaccurate description of "man -f" + + It's equivalent to "whatis", not "whatis -r". Fixes Fedora + bug #1249377. + + * man/man1/man.man1 (EXAMPLES): "man -k" and "man -f" are equivalent to + "apropos" and "whatis" respectively, not "apropos -r" and "whatis -r". + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update; unfuzzy all + translations. + +2015-08-02 Lauri Nurmi + + * po/fi.po: Update from Translation Project. + +2015-04-08 Colin Watson + + Allow using GDBM's NDBM compatibility layer + + This isn't very useful in practice since anyone using this could just + use GDBM directly instead, but it's helpful for testing. + + * configure.ac: Check for gdbm-ndbm.h and libgdbm_compat. + +2015-04-08 Colin Watson + + Clean up freeing of datum structures + + * libdb/mydbm.h (MYDBM_FREE): Remove. + (MYDBM_FREE_DPTR): New macro. This zeros the data pointer to avoid + double-free problems. + * libdb/db_delete.c (dbdelete): Use MYDBM_FREE_DPTR. + * libdb/db_gdbm.c (man_gdbm_open_wrapper, sortkey_hashtable_free): + Likewise. + * libdb/db_lookup.c (dblookup, dblookup_pattern): Likewise. + * libdb/db_store.c (dbstore): Likewise. + * libdb/db_ver.c (dbver_rd, dbver_wr): Likewise. + * src/accessdb.c (main): Likewise. + * src/catman.c (parse_for_sec): Likewise. + * src/check_mandirs.c (sanity_check_db, purge_pointers, purge_missing): + Likewise. + * src/whatis.c (do_apropos): Likewise. + +2015-04-08 Colin Watson + + Stop storing the database handle in a global variable + + Fixes Ubuntu bug #1304261. + + * libdb/db_delete.c (dbdelete): Take a dbf parameter. Update all + callers and prototypes. + * libdb/db_lookup.c (dblookup, dblookup_all, dblookup_exact, + dblookup_pattern): Likewise. + * libdb/db_store.c (replace_if_necessary, dbstore): Likewise. + * src/check_mandirs.c (test_manfile, add_dir_entries, sanity_check_db, + purge_pointers, purge_normal, purge_whatis): Likewise. + * src/descriptions_store.c (store_descriptions): Likewise. + * src/straycats.c (check_for_stray, open_catdir): Likewise. + * src/whatis.c (resolve_pointers, display, do_whatis_section, do_whatis, + do_apropos): Likewise. + + * src/accessdb.c (main): Declare dbf here rather than at file scope. + * src/catman.c (parse_for_sec): Likewise. + * src/check_mandirs.c (testmandirs, update_db_time, update_db, + purge_missing): Likewise. + * src/man.c (dbdelete_wrapper, try_db): Likewise. + * src/mandb.c (update_one_file): Likewise. + * src/straycats.c (straycats): Likewise. + * src/whatis.c (search): Likewise. + + * libdb/mydbm.h (dbf): Remove. + * src/catman.c (dbf): Rename to ... + (dbf_close_post_fork): ... this. + (rdopen_db): Merge into ... + (parse_for_sec): ... here. + +2015-03-05 Colin Watson + + man: Avoid dubious use of freopen to reopen base streams + + freopen doesn't actually work properly when base streams have been + closed (at least with glibc), and it seems better to simply refuse to + operate in such a non-conforming environment. + + * src/man.c (check_standard_fds): New function. + (main): Call it rather than using freopen. + +2014-11-16 Colin Watson + + Allow building from git without gnulib-tool + + Since we don't want to keep Gnulib translations in revision control, + we need gnulib-tool on $PATH when generating the build system in + order to fetch them, but it's unnecessarily awkward to require + everyone to have this just in order to build man-db from git. Allow + building without this, although it is still required for "make + dist". + + * configure.ac: No longer issue an error if gnulib/po/Makefile.in.in + is missing. Instead, set the Automake conditional HAVE_GNULIB_PO to + true if and only if gnulib/po/POTFILES.in exists, and only create + gnulib/po/Makefile.in if gnulib/po/Makefile.in.in exists. + * Makefile.am (SUBDIRS): Only include gnulib/po if HAVE_GNULIB_PO is + true. + +2014-11-14 Colin Watson + + apropos/whatis: Don't truncate names if long output was requested + + * src/whatis.c (display): Leave page_name intact if long_output is + true. Reported by Calle Erlandsson. + +2014-11-11 David Prévot + + * man/po4a/po/fr.po: Update from Translation Project. + +2014-11-08 Colin Watson + + Pass -l through to apropos/whatis + + Fixes Fedora bug #1161747. + + * src/man.c (do_extern): Pass the -l option through. + +2014-11-07 Colin Watson + + * Version: 2.7.1. + +2014-10-27 Colin Watson + + Send 'man -a' prompts to /dev/tty + + Fixes Debian bug #766113. + + * src/man.c (locale_macros): Write prompts to and read replies from + /dev/tty, rather than stderr and stdin respectively. + * NEWS: Document this. + +2014-10-27 Colin Watson + + Make man run correctly from a deleted directory + + Fixes Debian bug #764384. + + * gnulib: Import save-cwd module. + * src/man.c (make_display_command): Use pipecmd_fchdir rather than + pipecmd_chdir if the working directory was saved using a file + descriptor. + (format_display, main): Save current working directory using + save_cwd rather than xgetcwd. + (format_display, local_man_loop, main): Restore previous working + directory using restore_cwd rather than chdir. + * src/tests/man-10: New file. + * src/tests/Makefile.am (TESTS_ENVIRONMENT): Insert the parent + directory into $PATH using an absolute path rather than a relative + one. Export abs_top_builddir rather than top_builddir. + (ALL_TESTS): Add man-10. + * src/tests/testlib.sh (init): Set abstmpdir. Adjust tests to use + this where applicable. + (run): Call libtool using an absolute path. + (skip): Remove abstmpdir. + (finish): Remove abstmpdir rather than tmpdir. + * configure.ac: Require libpipeline >= 1.4.0. + * NEWS: Document this. + +2014-10-22 Colin Watson + + NEWS: Document recent Solaris portability changes + +2014-10-22 Colin Watson + + Fix linking of fspause on Solaris + + * src/tests/fspause.c (main): Set program_name. Patch by Peter Bray. + +2014-10-22 Colin Watson + + autogen.sh: Avoid "export VARIABLE=value" syntax + + Older Solaris shells do not support this. Patch by Peter Bray. + +2014-10-22 Colin Watson + + gnulib: Import strcasestr module. + + Suggested by Peter Bray. + +2014-10-05 Joe Hansen + + * man/po4a/po/da.po: Update from Translation Project. + +2014-09-27 Colin Watson + + * Version: 2.7.0.2. + +2014-09-27 Colin Watson + + Work around lack of UTIME_* on GNU/Hurd + + * gnulib/fdutimens-hurd.patch: New file. + * autogen.sh: Apply gnulib/fdutimens-hurd.patch. + * NEWS: Document this. + +2014-09-27 Colin Watson + + Avoid using or double-closing closed database handles + + Thanks to Andreas Radke and Bruce Dubbs for reporting, and to + Andreas Radke for testing. + + * src/check_mandirs.c (testmandirs): Close dbf if necessary before + (re-)opening it. Zero out dbf after closing it. + (update_db_time, purge_missing): Zero out dbf after closing it. + * src/man.c (dbdelete_wrapper, try_db): Likewise. + * src/mandb.c (update_one_file): Likewise. + * src/straycats.c (straycats): Likewise. + * src/whatis.c (search): Likewise. + * NEWS: Document this. + +2014-09-24 Colin Watson + + * Version: 2.7.0.1. + + * Makefile.am (EXTRA_DIST): Add gnulib/m4/sockpfaf.m4. + +2014-09-23 Colin Watson + + Fix tests when build fs does not support high-precision timestamps + + * gnulib: Import nanosleep module. + * configure.ac: Remove STAT_HAS_NSEC substitution. + * src/tests/Makefile.am (TESTS_ENVIRONMENT): Stop exporting + STAT_HAS_NSEC. + (AM_CPPFLAGS, AM_CFLAGS, check_PROGRAMS, fspause_SOURCES, + fspause_LDADD): Add. + * src/tests/fspause.c: New file. + * src/tests/mandb-2, src/tests/mandb-3, src/tests/mandb-4, + src/tests/mandb-5: Call ./fspause rather than next_second. + * src/tests/testlib.sh (next_second): Remove. + * .gitignore: Add src/tests/.deps and src/tests/fspause. + * NEWS: Document this. + +2014-09-22 Colin Watson + + * Version: 2.7.0. + +2014-09-19 Yuri Kozlov + + * man/po4a/po/ru.po: Update from Translation Project. + +2014-09-18 Mario Blättermann + + * man/po4a/po/de.po: Update from Translation Project. + +2014-09-18 Robert Luberda + + * man/po4a/po/pl.po: Update from Translation Project. + +2014-09-18 Colin Watson + + Move zsoelim to pkglibexecdir + + This avoids clashes with other packages; for example, Slackware's groff + package installs zsoelim as a symlink to soelim. + + * src/Makefile.am (bin_PROGRAMS): Move zsoelim to ... + (pkglibexec_PROGRAMS): ... here. + (AM_CPPFLAGS): Adjust ZSOELIM definition to match. + * NEWS: Document this. + +2014-09-18 Colin Watson + + Rename SOELIM definition to ZSOELIM for clarity + + * src/Makefile.am (AM_CPPFLAGS): Define ZSOELIM rather than SOELIM. + * src/man.c (make_roff_command): Use ZSOELIM rather than SOELIM. + +2014-09-17 Colin Watson + + Make sure that generated shared libraries have no undefined symbols + + Based on a change found in + https://github.com/Alexpux/MSYS2-packages/tree/master/man-db. + + * lib/Makefile.am (libman_la_LDFLAGS): Add -no-undefined. + * libdb/Makefile.am (libmandb_la_LDFLAGS): Add -no-undefined. + +2014-09-17 Colin Watson + + Correct a couple of comments in m4/man-arg-*.m4 + + * m4/man-arg-automatic-update.m4: Correct header comment. + * m4/man-arg-systemdtmpfilesdir.m4: Likewise. + +2014-09-17 Colin Watson + + Fix "cannot adjust line" warning when formatting db.me + + * manual/db.me (Contents of an index database): Insert several + zero-width break points in descriptions of entry formats. + +2014-09-17 Colin Watson + + Show a better error message if no browser is configured + + Fixes Savannah bug #37814. + + * src/man.c (format_display): Adjust error message if html_pager is + NULL or the empty string. + * NEWS: Document this. + +2014-09-17 Colin Watson + + Don't store canonicalised versions of manpath elements + + We still compare canonicalised versions, but don't store them. + Storing them results in looking up the wrong catpath in the case + where one of the configured MANDB_MAP entries is a symlink. + + Broken by commit 01e5a4febfc7b6cd53991455315ae7744c8f31dd; fixes + Fedora bug #1043401. + + * src/manp.c (create_pathlist): Compare canonicalised versions of + manpath elements, but don't store them. + * NEWS: Document this. + +2014-09-16 Colin Watson + + Don't use pointed-to name as title for database-located pages + + For a pointer record, the pointed-from name is a legitimate alias + for the located page, and is likely to be closer to the name that + the user requested. + + Fixes Debian bug #709405. + + * src/man.c (display_database): Don't use the pointed-to name to + construct the title for display. + +2014-09-16 Colin Watson + + * Version: 2.7.0-pre1. + +2014-09-16 Colin Watson + + Fix distcheck following addition of systemd tmpfiles snippet + + * Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Add + --with-systemdtmpfilesdir=\$${prefix}/lib/tmpfiles.d. + +2014-09-16 Bjarni Ingi Gislason + + Formatting improvements to man(1) + + Fixes Debian bug #726266. + + * man/man1/man.man1: Protect "." at beginning or end of strings with + "\&". Start sentences on new lines. Insert italic corrections + between adjacent italic and roman characters. Use double quotation + marks around arguments rather than placing "\ " between strings. + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update. + +2014-09-16 Colin Watson + + Prioritise COLUMNS above TIOCGWINSZ + + Fixes Ubuntu bug #1315282. + + * lib/linelength.c (get_line_length): Prioritise COLUMNS above + TIOCGWINSZ. + * man/man1/apropos.man1 (DESCRIPTION): Describe new terminal width + priorities. + * man/man1/man.man1 (DESCRIPTION): Likewise. + * man/man1/whatis.man1 (DESCRIPTION): Likewise. + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update. + * NEWS: Document this. + +2014-09-16 Colin Watson + + Use xnrealloc rather than xrealloc in a few more places + + * src/catman.c (parse_opt): Use xnrealloc rather than xrealloc. + * src/globbing.c (update_directory_cache): Likewise. + * src/ult_src.c (ult_trace): Likewise. + +2014-09-16 Colin Watson + + Order files by first physical extent before reading + + Inspired by a similar change in dpkg. This takes 'mandb -c' from + 104 to 32 seconds in a test installation, and 'man -K' from 74 to 38 + seconds. On non-Linux systems where FIEMAP is not available, use + posix_fadvise instead to preload files. + + Fixes Debian bug #574410. + + * gnulib: Import nonblocking and openat modules. + * configure.ac: Check for and posix_fadvise. + * lib/orderfiles.c: New file. + * lib/orderfiles.h: New file. + * lib/Makefile.am (libman_la_SOURCES): Add orderfiles.c and + orderfiles.h. + * src/check_mandirs.c (add_dir_entries): Order files before reading + them. + * src/man.c (try_section, do_global_apropos_section): Likewise. + * src/straycats.c (check_for_stray): Likewise. + * NEWS: Document this. + +2014-09-16 Colin Watson + + * NEWS: Document a couple more changes since 2.6.7.1. + +2014-09-15 Colin Watson + + Merge convert_name into man.c + + * src/convert_name.c (gripe_converting_name): Move to ... + * src/man.c (gripe_converting_name): ... here. + * src/convert_name.c (convert_name): Move to ... + * src/man.c (convert_name): ... here. Make static. + * src/convert_name.h: Remove. + * src/Makefile.am (man_SOURCES): Remove convert_name.c and + convert_name.h. + * po/POTFILES.in: Remove src/convert_name.c. + * po/man-db.pot, po/*.po: Update. + +2014-09-15 Colin Watson + + * tools/README: Update heading to reflect moves to build-aux. + +2014-09-15 Colin Watson + + Make a few libdb functions static + + * libdb/db_lookup.c (copy_if_set, split_data): Make static. + (make_content): Move to ... + * libdb/db_store.c (make_content): ... here. Make static. + * libdb/db_storage.h (split_data, make_content, copy_if_set): Remove + prototypes. + +2014-09-15 Colin Watson + + Make various functions static + + These functions are only used within the same compilation unit, so + have no need for external linkage. + + * src/check_mandirs.c (sanity_check_db): Make static. + * src/mandb.c (is_lang_dir, tried_catdirs_free, purge_catdir, + purge_catsubdirs, purge_catdirs): Likewise. + * src/zsoelim.l (try_compressed): Likewise. + +2014-09-15 Colin Watson + + Remove unused code in lexgrog + + * src/lexgrog.l (rule_profile): Remove unused function and + associated global declarations. + +2014-09-15 Colin Watson + + Reorder functions in man to remove need for header file + + man.h was only needed because of some poor function ordering in man.c. + Reorder functions so that definition comes before use, except in one + case of mutual recursion. + + * src/man.c (main): Move to end of file. + (local_man_loop): Move to immediately before man. + (man): Add a prototype declaration just before local_man_loop, to + cope with mutual recursion. + (do_prompt): Move to immediately above display. + * src/man.h: Remove. + * src/Makefile.am (man_SOURCES): Remove man.h. + +2014-09-15 Colin Watson + + Move argument handling out of configure to new MAN_ARG_* macros + + * m4/man-arg-automatic-create.m4, m4/man-arg-automatic-update.m4, + m4/man-arg-cats.m4, m4/man-arg-config-file.m4, m4/man-arg-db.m4, + m4/man-arg-device.m4, m4/man-arg-mandirs.m4, + m4/man-arg-override-dir.m4, m4/man-arg-sections.m4, + m4/man-arg-setuid.m4, m4/man-arg-systemdtmpfilesdir.m4, + m4/man-arg-undoc.m4: New files. + * configure.ac: Call new macros rather than inlining argument + handling. + +2014-09-15 Colin Watson + + * build-aux/config.sub: Upgrade to 2014-09-11. + +2014-09-12 Colin Watson + + Simplify handling using Gnulib + + * gnulib: Import dirent module. + * configure.ac: Remove obsolescent AC_HEADER_DIRENT macro. + * src/check_mandirs.c: Simplify a large conditional block to + "#include ". + * src/straycats.c: Likewise. + * src/ult_src.c: Likewise. + +2014-09-12 Colin Watson + + Remove old and broken FAST_BTREE code + + This was marked as experimental and broken when I took over man-db + 13 years ago, and I've hardly touched it. There's no point in + keeping it around. + + * include/manconfig.h.in (FAST_BTREE): Remove commented definition. + * libdb/db_btree.c (test_insert, gripe_get, dbstore, dblookup): + Remove. + (btree_flopen): Expand B_FLAGS macro. + (btree_replace): Remove FAST_BTREE case. + * libdb/db_lookup.c (dblookup): Define unconditionally. + * libdb/db_store.c (dbstore): Likewise. + +2014-09-11 Colin Watson + + Speed up the test suite if we have high-precision file timestamps + + * configure.ac: Substitute STAT_HAS_NSEC as "yes" or "no" depending + on whether high-precision file timestamps are available. + * src/tests/Makefile.am (TESTS_ENVIRONMENT): Export STAT_HAS_NSEC to + tests. + * src/tests/testlib.sh (next_second): Do nothing if STAT_HAS_NSEC is + "yes". + +2014-09-11 Colin Watson + + Use high-precision timestamps for manual pages + + * lib/util.c (is_changed): Compare high-precision timestamps. + * libdb/db_storage.h (FIELDS): Increment to 10. + (struct mandata): Change "time_t _st_mtime" to "struct timespec + mtime". + * libdb/db_lookup.c (dbprintf): Update mtime display. + (split_content): Store two fields for the mtime (seconds and + nanoseconds). + (make_content): Expect two fields for the mtime. + * libdb/db_store.c (replace_if_necessary): Compare high-precision + timestamps. + * src/check_mandirs.c (test_manfile): Likewise. + * src/man.c (maybe_update_file): Likewise. + * src/straycats.c (check_for_stray): Update initialisation of struct + mandata. + * src/tests/testlib.sh (accessdb_filter): Adjust for new format. + * manual/db.me (Contents of an index database): Describe new format. + (Example database): Update example output. + * NEWS: Document this. + +2014-09-10 Colin Watson + + Move database mtime out of the database into file metadata + + This makes the database reproducible between installations, as long + as the underlying database has predictable behaviour and the set of + installed manual pages (including their timestamps) remains + identical. As a bonus, we now use high-precision times in several + places. + + Fixes Debian bug #760895. + + * gnulib: Import futimens and timespec modules. + * libdb/db_btree.c (btree_get_time, btree_set_time): New functions. + * libdb/db_gdbm.c (man_gdbm_get_time, man_gdbm_set_time): New + functions. + * libdb/db_ndbm.c (ndbm_get_time, ndbm_set_time): New functions. + * libdb/mydbm.h (man_gdbm_get_time, man_gdbm_set_time, + ndbm_get_time, ndbm_set_time, btree_get_time, btree_set_time): Add + prototypes. + (MYDBM_GET_TIME, MYDBM_SET_TIME): New macros. + * src/check_mandirs.c (testmandirs, create_db, count_glob_matches, + purge_normal, purge_whatis, purge_missing): Use high-precision + times. + (update_db_time): Set file modification times rather than updating a + database row. + (create_db, purge_missing): Get database file modification times + rather than fetching a database row. + (purge_missing): If the new will_run_mandb argument is true, reset + the database mtime to its value before purging; this ensures that + mandb will still run as expected afterwards. + * src/check_mandirs.h (purge_missing): Update prototype. + * src/mandb.c (xcopy): Copy access and modification times. + (process_manpath): Work out in advance of purging whether we will + need to run mandb, and pass that to purge_missing. + * include/manconfig.h.in (VER_ID): Bump to 2.5.0. + (KEY): Remove. + + * man/man8/accessdb.man8 (DESCRIPTION), man/it/man8/accessdb.man8 + (DESCRIZIONE): Remove sample output, as it is of limited usefulness + compared to how awkward it is to maintain, especially in text + intended for translation. + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update. + * manual/db.me (Contents of an index database): Remove mention of + $mtime$. + (Example database): Remove $mtime$. Update $version. + + * NEWS: Document this. Bump version to 2.7.0 to correspond to the + database version change. + +2014-09-09 Colin Watson + + Make update_db_time static + + * src/check_mandirs.c (update_db_time): Make this static; its only + uses are within the same file. + * src/check_mandirs.h (update_db_time): Remove prototype. + +2014-09-09 Colin Watson + + Remove unused reset_db_mtime function + + * src/check_mandirs.c (reset_db_mtime): Remove. This function has + been unused since man-db 2.4.2. + * src/check_mandirs.h (reset_db_mtime): Remove prototype. + * src/man.c: Stop including "check_mandirs.h". + +2014-09-09 Colin Watson + + Don't purge entries from databases that fail sanity checks + + * src/check_mandirs.c (purge_missing): Return early if + sanity_check_db fails, for instance in the case of a version + mismatch. + +2014-09-09 Colin Watson + + Switch away from obsolescent utime function + + POSIX.1-2008 marks utime as obsolescent. Switch to variants of the + futimens/utimensat family instead, via Gnulib. Use higher-precision + times for cat pages. + + * gnulib: Import stat-time and utimens modules. + * src/man.c (man_modtime): Change type to struct timespec. + (commit_tmp_cat): Use utimens rather than utime. + (display): Store a higher-precision modification timestamp for + man_file. + +2014-09-09 Colin Watson + + catman: Honour program name transformations + + * src/catman.c (parse_for_sec): Execute MAN rather than "man". + +2014-09-08 Colin Watson + + * man/po4a/po/da.po: Fix po4a syntax error. + +2014-09-08 Colin Watson + + Various autotools upgrades + + * aclocal.m4: Upgrade to pkg-config 0.28. + * build-aux/config.guess: Upgrade to 2014-03-23. + * build-aux/config.sub: Upgrade to 2014-05-01. + * build-aux/ltmain.sh: Upgrade to Libtool 2.4.2-1.10 (from Debian). + +2014-08-30 Joe Hansen + + * man/po4a/po/da.po: Update from Translation Project. + +2014-08-12 Arif E. Nugroho + + * man/po4a/po/id.po: Update from Translation Project. + +2014-08-11 Arif E. Nugroho + + * po/id.po: Update from Translation Project. + +2014-06-18 Colin Watson + + Fix cat page parsing (Debian bug #751934) + + * src/lexgrog.l (find_name): Run "col -b -p -x" over cat pages if + possible before parsing them. + +2014-06-17 Colin Watson + + Add systemd tmpfiles snippet to clean up old cat files after a week + + Fixes Fedora bug #1110274. + + * configure.ac: Accept --with-systemdtmpfilesdir option. + (AC_CONFIG_FILES): Add init/Makefile and init/systemd/Makefile. + * Makefile.am (SUBDIRS): Add init. + * init/Makefile.am: New file. + * init/systemd/Makefile.am: New file. + * init/systemd/man-db.conf: New file. + * .gitignore: Add init/Makefile and init/systemd/Makefile. + +2014-06-17 Colin Watson + + Squash false positive from -Wmaybe-uninitialized + + * src/globbing.c: Initialise pattern_start. + +2014-04-10 Colin Watson + + * Version: 2.6.7.1. + +2014-04-10 Colin Watson + + Remove test suite dependency on realpath(1) + + * src/tests/mandb-7: Prepend "$(pwd -P)/" to $tmpdir in + configuration files rather than calling realpath. + * NEWS: Document this. + +2014-04-10 Colin Watson + + * Version: 2.6.7. + + * Makefile.am (EXTRA_DIST): Add gnulib/argp-domain.patch. + +2014-04-10 Peter Schiffer + + Only create a cache directory tag if catpath != manpath + + * src/mandb.c (mandb): Don't create CACHEDIR.TAG if the catpath is + equal to the manpath. + * src/tests/mandb-7: New file. + * src/tests/Makefile.am (ALL_TESTS): Add mandb-7. + * NEWS: Document this. + +2014-04-10 Colin Watson + + Make cache directory tag creation more readable + + * src/mandb.c (mandb): Move cache directory tag string to ... + (CACHEDIR_TAG): ... here (new macro). + +2014-03-26 Colin Watson + + Run the pager in man's original working directory + + Reported by Peng Yu. + + * src/man.c (make_display_command): Set pager_cmd's working + directory to man's original working directory. + * configure.ac: Require libpipeline >= 1.3.0. + * NEWS: Document this. + +2014-03-26 Colin Watson + + Upgrade to Automake 1:1.14.1-3 (from Debian). + +2014-03-20 Mario Blättermann + + Update German manual page translation + + * man/po4a/po/de.po: Update from Translation Project. + * man/THANKS: Add translator credit. + +2014-03-17 Robert Luberda + + * man/po4a/po/pl.po: Update from Translation Project. + +2014-02-20 Colin Watson + + Move Autotools auxiliary build files from tools to build-aux. + + This keeps man-db's own tools separate, reducing confusion, and + "build-aux" is a more conventional location for the Autotools files. + +2014-02-18 Colin Watson + + Upgrade to Gnulib 20140202 and Libtool 2.4.2-1.7 (from Debian). + + * lib/appendstr.c (appendstr): Use size_t type for string lengths. + +2014-01-23 Colin Watson + + Improve compatibility with archaic shells + + * src/tests/man-5: Assign and export shell variables in two steps, + for improved compatibility with some archaic shells. + * src/tests/man-7: Likewise. + * src/tests/man-8: Likewise. + * src/tests/zsoelim-1: Likewise. + +2014-01-23 Colin Watson + + Fix test failure with --enable-undoc + + * src/man.c (gripe_no_man): Don't print "See ... for help" message + when MAN_TEST_DISABLE_UNDOCUMENTED is set in the environment. + * src/tests/man-7: Export MAN_TEST_DISABLE_UNDOCUMENTED=1. + * NEWS: Document this. + +2014-01-23 Colin Watson + + * Version: 2.6.6. + + * man/po4a/Makefile.am (all-local): Make staging files writeable. + + * README: Update copyright to 2014. + +2014-01-23 Colin Watson + + Tidy up override directory support slightly + + * src/manp.c (insert_override_dir): Drop braces. + (get_manpath_from_path): Standardise whitespace. + * src/tests/Makefile.am (TESTS_ENVIRONMENT): Use Automake-generated + substitution rather than substituting @override_dir@ again. + +2014-01-23 Peter Schiffer + + Add support for override directory in search path + + * configure.ac: Add --with-override-dir option. + * include/manconfig.h.in (OVERRIDE_DIR): New definition. + * src/manp.c (insert_override_dir): New function. + (get_manpath_from_path): Call it before add_dir_to_list. + * src/tests/man-9: New file. + * src/tests/Makefile.am (TESTS_ENVIRONMENT): Set and export + OVERRIDE_DIR. + (ALL_TESTS): Add man-9. + * NEWS: Document this. + +2014-01-23 Colin Watson + + Upgrade to Automake 1.14.1 and Libtool 2.4.2-1.6 (from Debian). + +2014-01-19 Akihiro Sagawa + + Fix macro and hyphenation language handling + + * src/man.c (display): Don't free page_lang if it's going to be used + by locale_macros. + * src/tests/man-8: New file. + * src/tests/Makefile.am (ALL_TESTS): Add man-8. + * NEWS: Document this. + +2014-01-19 David Prévot + + * man/po4a/po/fr.po: Update from Translation Project. + +2014-01-18 Joe Hansen + + * man/po4a/po/da.po: Update from Translation Project. + +2014-01-16 Yuri Kozlov + + * man/po4a/po/ru.po: Update from Translation Project. + +2014-01-16 Colin Watson + + * Version: 2.6.6-pre2. + +2014-01-16 МироÑлав Ðиколић + + Add Serbian translation + + * po/sr.po: New from Translation Project. + * po/LINGUAS: Add sr. + * man/THANKS: Add translator credit. + +2014-01-15 Colin Watson + + * man/po4a/po: Update. + +2014-01-15 Peter Schiffer + + Synchronise manual pages with usage messages + + * man/man1/apropos.man1 (SYNOPSIS): Replace -h with -?. + (OPTIONS): Likewise. Add --usage. + * man/man1/lexgrog.man1 (SYNOPSIS): Add -d. Replace -h with -?. + (OPTIONS): Likewise. Add --usage. + * man/man1/man.man1 (SYNOPSIS): Replace -h with -?. + (OPTIONS): Likewise. Add --path (alias for -w). Add --usage. + * man/man1/manpath.man1 (SYNOPSIS): Replace -h with -?. + (OPTIONS): Likewise. Add --usage. + * man/man1/whatis.man1 (SYNOPSIS): Replace -h with -?. + (OPTIONS): Likewise. Add --usage. + * man/man8/accessdb.man8 (SYNOPSIS): Add -d. Replace -h with -?. + (OPTIONS): Likewise. Add --usage. + * man/man8/catman.man8 (SYNOPSIS): Replace -h with -?. + (OPTIONS): Likewise. Add --usage. + * man/man8/mandb.man8 (SYNOPSIS): Replace -h with -?. + (OPTIONS): Likewise. Add --usage. + +2014-01-15 Colin Watson + + Fix memory leaks related to make_filename + + * src/check_mandirs.c (test_manfile): Remove now-redundant stat. + Free abs_filename. + * src/man.c (display_filesystem): Consolidate return paths. + Consistently free filename. + (display_database): Free file after using it. + (maybe_update_file): Likewise. + +2014-01-15 Peter Schiffer + + Silence error messages for stale database entries (Fedora bug #841431) + + * src/filenames.c (make_filename): Return NULL if the resulting file + is not readable. Update all callers to handle NULL returns. + * src/tests/man-7: New file. + * src/tests/Makefile.am (ALL_TESTS): Add man-7. + * NEWS: Document this. + +2014-01-15 Colin Watson + + * src/tests/man-5, src/tests/man-6: Mark executable. + +2014-01-13 Robert Luberda + + * man/po4a/po/pl.po: Update from Translation Project. + +2014-01-13 Colin Watson + + Fix domain handling in argp + + * gnulib/argp-domain.patch: New file. + * autogen.sh: Apply gnulib/argp-domain.patch. + * NEWS: Document this. + +2014-01-12 Trần Ngá»c Quân + + * po/vi.po: Update from Translation Project. + +2014-01-11 David Prévot + + * man/po4a/po/fr.po: Update from Translation Project. + +2014-01-11 Yuri Kozlov + + * man/po4a/po/ru.po: Update from Translation Project. + +2014-01-10 Colin Watson + + * Version: 2.6.6-pre1. + +2014-01-10 Colin Watson + + Don't update man/po4a/po/ when nothing has changed + + * man/po4a/Makefile.am (DOMAIN): New variable. + (EXTRA_DIST): Use $(DOMAIN). + (STAGING): New variable. + (PO4A_ARGS): Set new "podir" variable. + (RUN_PO4A): New variable. + (all-local): Abbreviate using RUN_PO4A. Copy POT/PO files to + $(STAGING) before running po4a, to avoid updating the master files. + (update-po): Move to ... + (update-po-real): ... here. Abbreviate using RUN_PO4A. Add + --force, since this target is only called when we really want to + update. Copy POT/PO files to $(STAGING) before running po4a, and + only copy them back if the POT file has changed by more than just + the POT-Creation-Date. + (update-po): New rule. Call update-po-real if and only if srcdir = + builddir. + (clean-local): New rule. Remove $(STAGING). + * man/po4a/po4a.cfg (po4a_paths): Refer to $(podir) rather than + $(srcdir)/po4a/po. + * release.sh: Stop removing man/po4a/po/man-db-manpages.pot; this + should no longer be necessary. + +2014-01-03 victory + + * po/ja.po: Update from Translation Project. + +2013-12-09 Colin Watson + + Make it easier to prove that catman option parsing is safe + + * src/catman.c (parse_opt): Check sections before assigning to + sections[i]. (Already always safe, but this makes it easier to + prove.) + +2013-12-09 Colin Watson + + Update documentation for git. + + * docs/HACKING (Sending patches): Suggest 'git diff'. + (Revision control): Update for git. Remove comment about + ChangeLog handling for branches. + * NEWS: Document switch to git. + +2013-12-09 Colin Watson + + gnulib: Import gnupload module. + +2013-12-09 Colin Watson + + Automatically generate ChangeLog from git + + * ChangeLog: Move to ... + * ChangeLog-2013: ... here. + * Makefile.am (EXTRA_DIST): Add ChangeLog-2013. + (dist-hook): Add gen-ChangeLog. + (gen-ChangeLog): New rule, based on that in coreutils. + * gnulib: Import gitlog-to-changelog module. diff --git a/ChangeLog-2013 b/ChangeLog-2013 new file mode 100644 index 0000000..1a5b00d --- /dev/null +++ b/ChangeLog-2013 @@ -0,0 +1,13184 @@ +Mon Dec 9 00:49:22 GMT 2013 Colin Watson + + * .bzrignore: Move to ... + * .gitignore: ... here, adjusting for differences between bzr and + git. + * Makefile.am (EXTRA_DIST): Replace .bzrignore with .gitignore. + * gnulib: Add --no-vc-files. + +Wed Nov 27 11:54:17 GMT 2013 Colin Watson + + * configure.ac: Only call AC_PROG_AR if it is defined, to restore + compatibility with Automake 1.10. + * NEWS: Document this. + +Wed Nov 27 11:48:29 GMT 2013 Colin Watson + + Upgrade to Automake 1.14 and Gnulib 20130805. + +Sat Nov 9 16:21:05 GMT 2013 Colin Watson + + * src/tests/man-4: Remove non-portable uses of "echo -n". Reported + by TheSin. + +Mon Jul 8 03:00:20 BST 2013 Colin Watson + + * src/check_mandirs.c (gripe_rwopen_failed, update_db_time): + Downgrade EAGAIN/EWOULDBLOCK errors from attempts to open a + database read-write to debug messages (Debian bug #684235). + +Mon Jul 8 02:26:07 BST 2013 Colin Watson + + * man/man1/whatis.man1 (NAME): Clarify that whatis displays one-line + descriptions, rather than e.g. the contents of DESCRIPTION + sections (Debian bug #713992). + +Mon Jul 8 02:15:52 BST 2013 Colin Watson + + Reimplement 'apropos --and' in a way that works with the + optimisations introduced in 2.6.2 (Debian bug #678670). + + * src/whatis.c (any_set, all_set): New functions. + (parse_name, parse_whatis): Take an additional found_here + parameter and set its elements. Return void. + (do_apropos): Combine results from parse_name and parse_whatis + properly according to whether --and is set, rather than relying on + counters that will only ever coincidentally match the number of + search keywords. + (main): Remove apropos_seen hash table. + * NEWS: Document this. + +Mon Jul 8 01:30:56 BST 2013 Colin Watson + + * src/man.c (format_display): Simplify using xasprintf. + * src/whatis.c (do_apropos): Likewise. + +Mon Jul 8 00:29:00 BST 2013 Colin Watson + + * man/po4a/po/zh_CN.po: Fix po4a syntax errors. + +Sun Jul 7 22:53:02 BST 2013 Wylmer Wang + + * man/po4a/po/zh_CN.po: Update from Translation Project. + +Fri Jun 28 06:13:17 BST 2013 Colin Watson + + * lib/encodings.c (find_charset_locale): Attempt fallback locales + even if /usr/share/i18n/SUPPORTED exists. (It may exist but none + of the UTF-8 locales mentioned it in may be present; nevertheless, + C.UTF-8 may be available.) + +Thu Jun 27 11:38:56 BST 2013 Colin Watson + + * Version: 2.6.5. + +Thu Jun 27 11:34:40 BST 2013 Colin Watson + + * src/mandb.c (xcopy): Allocate buf on the heap, as 32768 bytes may + be too large for some stacks. Reported by Coverity via Peter + Schiffer. + +Thu Jun 27 10:47:13 BST 2013 Colin Watson + + * docs/HACKING: Mention that xasprintf may be more readable than + appendstr. + * include/manconfig.h.in (mkdbname): Rephrase using xasprintf. + * lib/decompress.c (decompress_open): Likewise. + * lib/pathsearch.c (pathsearch): Likewise. + * lib/tempfile.c (create_tempdir): Likewise. + * lib/util.c (remove_directory): Likewise. + * src/check_mandirs.c (add_dir_entries, mkcatdirs): Likewise. + * src/compression.c (comp_file): Likewise. + * src/convert_name.c (convert_name): Likewise. + * src/globbing.c (make_pattern, match_in_directory, look_for_file): + Likewise. + * src/man.c (parse_opt, display_filesystem, display_database, + do_global_apropos_section): Likewise. + * src/manconv_client.c (add_manconv): Likewise. + * src/mandb.c (mandb, process_manpath, purge_catsubdirs, + purge_catdirs, main): Likewise. + * src/manp.c (pathappend, get_nls_manpath, get_manpath, + read_config_file, has_mandir): Likewise. + * src/ult_src.c (ult_hardlink): Likewise. + * src/whatis.c (simple_convert, use_grep, display, main): Likewise. + * src/zsoelim.l (zsoelim_open_file): Likewise. + + * src/accessdb.c (parse_opt): Use mkdbname to construct default + database path. + +Thu Jun 27 09:43:35 BST 2013 Peter Schiffer + + * lib/encodings.c (get_locale_charset): Free saved_locale. + * src/check_mandirs.c (testmandirs): Close directory handle on + early-return paths. + * src/man.c (local_man_loop): Free locale_manpath's argument after + call. + (main): Likewise. Free cwd, internal_locale, and program_name + before calling gripe_no_name. Free database before exiting. + (format_display) [TROFF_IS_GROFF]: Free old_cwd. + (display) [TROFF_IS_GROFF]: Free page_lang. + (display): Free formatted_encoding. + (find_cat_file): Free cat_dir. + (try_section): Free info and info_buffer if they weren't added to + the candidates. + (display_filesystem): Free title and filename. + (try_db): Free database before setting it. + (man): Free each candidate using free_candidate, not free. + * src/manp.c (get_nls_manpath): Free manpathlist_copy. + (add_nls_manpaths): Free locales_copy. + (add_to_dirlist): Free buf before returning. + * src/whatis.c (suitable_manpath): Free locale_manpath's argument + after call. + (do_whatis): Free page on early-continue path. + +Thu Jun 27 09:38:35 BST 2013 Colin Watson + + * src/manp.c (add_nls_manpaths): Duplicate manpathlist in the case + where locales is NULL or empty, allowing the manpathlist parameter + to be made const. + * src/manp.h (add_nls_manpaths): Update prototype. + * src/man.c (locale_manpath): Make manpath parameter const. + * src/whatis.c (locale_manpath): Likewise. + +Thu Jun 27 09:25:19 BST 2013 Colin Watson + + * src/man.c (get_preprocessors_from_file): Return a non-const string + rather than keeping a static copy. + (get_preprocessors): Return a non-const string. + (make_roff_command): Free the return value of get_preprocessors + before returning. + +Thu Jun 27 08:39:26 BST 2013 Colin Watson + + * src/manconv_client.c (add_manconv): Don't allocate codes until + after checking for the UTF-8/UTF-8 early-return case. + +Thu Jun 27 00:09:48 BST 2013 Colin Watson + + * lib/encodings.c (find_charset_locale): Fix memory leaks. + +Thu Jun 27 00:07:09 BST 2013 Peter Schiffer + + * src/check_mandirs.c (testmandirs): Check return value of chdir. + +Wed Jun 26 22:41:22 BST 2013 Peter Schiffer + + * lib/encodings.c (find_charset_locale): Fall back to C.UTF-8 then + en_US.UTF-8 if /usr/share/i18n/SUPPORTED does not exist, the + requested character set is UTF-8, and the current LC_CTYPE locale + is not UTF-8 (Fedora bug #657409). + * src/tests/man-6: New file. + * src/tests/Makefile.am (ALL_TESTS): Add man-6. + * NEWS: Document this. + +Wed Jun 26 22:33:00 BST 2013 Colin Watson + + * configure.ac: Move check for whether nroff supports warning + control down below check for whether troff is groff, otherwise it + always returns false. Reported by Niels Thykier. + * NEWS: Document this. + +Sun Jun 23 22:50:24 BST 2013 Colin Watson + + * Version: 2.6.4. + +Sun Jun 23 22:44:19 BST 2013 Colin Watson + + Upgrade to Gnulib 20130623. + +Sun Jun 23 21:21:13 BST 2013 Peter Schiffer + Colin Watson + + Search the full manpath when expanding manual pages that consist + only of a .so directive (Fedora bug #693458). + + * src/ult_src.c (find_include): New function, handling manpath + search where necessary. + (ult_src): Call it when a .so directive is found. + * src/Makefile.am (lexgrog_SOURCES): Add globbing.c and globbing.h. + * src/tests/man-5: New file. + * src/tests/Makefile.am (ALL_TESTS): Add man-5. + * NEWS: Document this. + +Sun Jun 23 21:15:45 BST 2013 Colin Watson + + * src/tests/mandb-3: Don't rely on ".so test.1" not working. + +Sun Jun 23 14:35:51 BST 2013 Colin Watson + + * src/manp.c (def_path): Expand wildcards in MANDATORY_MANPATH. + +Sun Jun 23 14:29:34 BST 2013 Colin Watson + + * src/manp.c (guess_manpath): Honour MAN_TEST_DISABLE_PATH + environment variable, allowing the test suite to disable PATH + handling. (May change without notice.) + (read_config_file): Honour MAN_TEST_DISABLE_SYSTEM_CONFIG + environment variable, allowing the test suite to disable reading + the system configuration file. (May change without notice.) + * src/tests/testlib.sh: Set MAN_TEST_DISABLE_SYSTEM_CONFIG=1. + * src/tests/man-4: Set MAN_TEST_DISABLE_PATH=1. + +Sun Jun 23 12:28:19 BST 2013 Colin Watson + + * src/ult_src.c (test_for_include): Return NULL immediately if + buffer is NULL. + (ult_src): Use this to remove a level of indentation. + +Sun Jun 23 11:14:27 BST 2013 Colin Watson + + Upgrade to Automake 1.13.3. + +Fri Jun 14 09:53:47 BST 2013 Robert Luberda + + * man/po4a/po/pl.po: Update from Translation Project. + +Tue Jun 11 12:44:24 BST 2013 Colin Watson + + * man/po4a/po/zh_CN.po: New from Translation Project (thanks, Wylmer + Wang). + * configure.ac (AC_CONFIG_FILES): Add man/zh_CN/Makefile. + * man/LINGUAS.po4a: Add zh_CN. + * man/Makefile.am (DIST_SUBDIRS): Add zh_CN. + * man/zh_CN/Makefile.am, man/zh_CN/translator.add: New files. + * man/po4a/Makefile.am (POFILES): Add po/zh_CN.po. + * man/po4a/po4a.cfg (po4a_langs): Add zh_CN. + * man/THANKS: Add translator credit. + * .bzrignore: Add man/zh_CN/man1, man/zh_CN/man5, and + man/zh_CN/man8. + +Thu Jun 6 12:24:27 BST 2013 Colin Watson + + * configure.ac: Check whether tbl supports the 'x' format character + (e.g. versions of groff before 1.20), and substitute TBL_X_FORMAT + accordingly. + * man/replace.sin.in: Replace "l lx." with "l l." if tbl does not + support the 'x' format character. + +Thu Jun 6 12:03:59 BST 2013 Colin Watson + + * configure.ac: Add a check for whether 'nroff -wmac' works. + * src/man.c (default_roff_warnings, roff_warnings): Define if + NROFF_WARNINGS is defined, rather than TROFF_IS_GROFF. + (options): Hide the --warnings option unless NROFF_WARNINGS is + defined. + (parse_opt, make_roff_command): Handle the --warnings option if + NROFF_WARNINGS is defined, rather than TROFF_IS_GROFF. + +Thu Jun 6 11:11:36 BST 2013 Colin Watson + + * configure.ac: Set MANDIR_LAYOUT using AC_SUBST as well as + AC_DEFINE/AC_DEFINE_UNQUOTED. + * src/tests/Makefile.am (TESTS_ENVIRONMENT): Export MANDIR_LAYOUT. + * src/tests/testlib.sh (skip): New function. + * src/tests/man-3: Skip unless the GNU layout is in use. + +Thu Jun 6 10:57:17 BST 2013 Colin Watson + + * src/tests/man-1, src/tests/man-2, src/tests/man-3, + src/tests/man-4, src/tests/mandb-1, src/tests/mandb-2, + src/tests/mandb-3, src/tests/mandb-4, src/tests/mandb-5, + src/tests/mandb-6, src/tests/whatis-1, src/tests/zsoelim-1: Export + MANPATH separately rather than trying to set it just for the 'run' + function. The latter approach does not seem to work reliably in + FreeBSD's /bin/sh. + * src/tests/testlib.sh: Stop exporting MANPATH here. + +Thu Jun 6 09:37:46 BST 2013 Colin Watson + + * configure.ac: Use BSD layout on *-*bsd* (e.g. FreeBSD), not just + *-bsd*. + Test for Berkeley DB in libc, as is the case on FreeBSD. + +Thu Jun 6 09:36:09 BST 2013 Colin Watson + + * src/check_mandirs.c (purge_missing) [NDBM]: Check for the + existence of DATABASE.dir rather than DATABASE. + +Thu Jun 6 09:32:24 BST 2013 Colin Watson + + * src/catman.c (add_arg): MYDBM_DSIZE may return size_t; cast (for + the cases where it returns int instead) and format using %zu + rather than %d. + +Thu Jun 6 09:01:46 BST 2013 Trần Ngá»c Quân + + * po/vi.po: Update from Translation Project. + +Thu Jun 6 02:51:15 BST 2013 Colin Watson + + * src/tests/testlib.sh: Export LC_ALL and MANPATH, for the benefit + of shells that do not automatically re-export variables they + receive in their environment. + +Thu Jun 6 02:50:25 BST 2013 Colin Watson + + * src/descriptions_store.c (store_description): Format size_t using + %zu, not %d. + +Thu Jun 6 02:40:10 BST 2013 Colin Watson + + * src/tests/manconv-2, src/tests/manconv-3: Use octal escapes rather + than hexadecimal escapes; the latter are not portable to all + printf(1) implementations. + +Thu Jun 6 01:49:32 BST 2013 Colin Watson + + * man/Rules.man (TESTS_ENVIRONMENT): Quote variable assignments. + +Thu Jun 6 01:43:29 BST 2013 Colin Watson + + * man/Rules.man (TESTS_ENVIRONMENT): Move environment variable + settings here, rather than using non-portable 'export'. + +Thu Jun 6 01:39:29 BST 2013 Colin Watson + + * docs/INSTALL.quick: Reformat external package requirements as a + bullet list. Add flex >= 2.5.30. + +Thu Jun 6 01:32:19 BST 2013 Colin Watson + + * tools/config.guess: Update to 2013-05-16. + * tools/config.sub: Update to 2013-04-24. + +Tue Jun 4 09:38:08 BST 2013 David Prévot + + * man/po4a/po/fr.po: Update from Translation Project. + +Mon Jun 3 22:59:03 BST 2013 Yuri Kozlov + + * man/po4a/po/ru.po: Update from Translation Project. + +Mon Jun 3 13:06:43 BST 2013 Colin Watson + + * Version: 2.6.4-pre1. + +Mon Jun 3 12:39:22 BST 2013 Colin Watson + + * NEWS: Document changes since 2.6.3. + +Mon Jun 3 12:18:55 BST 2013 Colin Watson + + * manual/files.me (NLS manual pages): Wrap a table cell to avoid a + line-width warning from nroff. + +Mon Jun 3 12:07:35 BST 2013 Colin Watson + + Quieten most warnings from compiling Gnulib (Debian bug #668429). + + * configure.ac: Add gl_WARN_ADD results to WARN_CFLAGS rather than + CFLAGS. + * lib/Makefile.am (AM_CFLAGS): Add $(WARN_CFLAGS). + * libdb/Makefile.am (AM_CFLAGS): Likewise. + * src/Makefile.am (AM_CFLAGS): Likewise. Move $(libpipeline_CFLAGS) + here from AM_CPPFLAGS. + +Mon Jun 3 00:01:47 BST 2013 Colin Watson + + * src/tests/Makefile.am (AM_LOG_FLAGS): Force each test to run with + the configure-detected shell. + +Thu May 30 12:57:50 BST 2013 Peter Schiffer + Colin Watson + + Add support for wildcards in MANPATH (Fedora bug #677669). + + * src/Makefile.am (catman_SOURCES, manpath_SOURCES, whatis_SOURCES): + Add globbing.c and globbing.h. + * src/globbing.c (expand_path): New function. + * src/globbing.h (expand_path): Add prototype. + * src/manp.c (add_dir_to_list): Rename to ... + (add_expanded_dir_to_list): ... this. + (add_dir_to_list): New function, expanding wildcards and wrapping + add_expanded_dir_to_list. + (add_dir_to_path_list): Expand wildcards. + * src/tests/man-4: New file. + * src/tests/Makefile.am (ALL_TESTS): Add man-4. + +Thu May 30 11:51:54 BST 2013 Colin Watson + + * Makefile.am (EXTRA_DIST): Remove gnulib/gets.patch. + +Thu 30 May 11:42:29 BST 2013 Colin Watson + + Upgrade to Automake 1.13.2 and Gnulib 20130529. + + * .bzrignore: Add gnulib/lib/locale.h, man/**/*.log, man/**/*.trs, + src/tests/*.log, and src/tests/*.trs. + * autogen.sh: Drop gnulib/gets.patch backport. + * gnulib/gets.patch: Remove. + * configure.ac (AM_INIT_AUTOMAKE): Set minimum Automake version to + 1.11. Add parallel-tests option for compatibility with 1.11. + * man/Rules.man (TESTS_ENVIRONMENT): Move to ... + (LOG_COMPILER): ... this. + * src/tests/Makefile.am (TESTS_ENVIRONMENT): Rewrite as a list of + variable exports rather than as a command prefix, for + compatibility with parallel-tests. + +Tue May 14 22:55:09 BST 2013 Colin Watson + + * src/lexgrog.l: Define YY_NO_INPUT, suppressing a -Wunused-function + warning from GCC (thanks, Bjarni Ingi Gislason). + * src/zsoelim.l: Likewise. + +Tue May 7 15:27:28 BST 2013 Colin Watson + + * src/man.c (escape_less): Revert handling of incompatible option + string escaping in less 456. That change was reverted upstream in + less 457. + +Sun Mar 3 14:22:32 GMT 2013 Felipe Castro + + * po/eo.po: New from Translation Project. + * po/LINGUAS: Add eo. + * man/THANKS: Add translator credit. + +Sun Mar 3 14:19:38 GMT 2013 Robert Luberda + + * po/pl.po: Update from Translation Project. + * man/po4a/po/pl.po: Likewise. + +Tue Jan 29 13:15:26 GMT 2013 Will + + * src/manp.c (add_to_dirlist): Increase key length to handle buried + binutils manual page paths. + +Mon Jan 21 11:20:48 GMT 2013 Colin Watson + + * configure.ac (AC_HEADER_SYS_WAIT): Remove; no longer used. + +Mon Jan 21 11:04:44 GMT 2013 Colin Watson + + Upgrade to Libtool 2.4.2-1.2 (from Debian). + +Sat Dec 22 13:59:14 GMT 2012 Colin Watson + + Document default section list in manual pages (Debian bug #611007). + + * man/replace.sin.in: Substitute %sections%. + * man/man1/man.man1 (DESCRIPTION): Fix misplaced comma. Document + configured list of sections rather than simply saying "a + pre-defined order". + (ENVIRONMENT): Document default for $MANSECT. + * man/man8/catman.man8 (ENVIRONMENT): Likewise. + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update. + +Fri Dec 21 21:29:27 GMT 2012 Colin Watson + + * src/man.c (main): Use $MANLESS as the default for prompt_string if + the -r option was not used. + (setenv_less): Remove code to copy $MANLESS verbatim into $LESS. + * man/man1/man.man1 (Controlling formatted output, ENVIRONMENT): + Describe new behaviour of $MANLESS. + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update. + +Sun Dec 16 12:00:55 GMT 2012 Colin Watson + + * src/man.c (escape_less): Handle incompatible change to option + string escaping in less 456. Reported by Vincent Lefevre. + +Sat Dec 15 10:49:46 GMT 2012 Joe Hansen + + * man/po4a/po/da.po: Update from Translation Project. + +Sat Nov 24 22:42:01 GMT 2012 Colin Watson + + * man/po4a/po/da.po: New from Translation Project (thanks, Joe + Hansen). + * configure.ac (AC_CONFIG_FILES): Add man/da/Makefile. + * man/LINGUAS.po4a: Add da. + * man/Makefile.am (DIST_SUBDIRS): Add da. + * man/da/Makefile.am, man/da/translator.add: New files. + * man/po4a/Makefile.am (POFILES): Add po/da.po. + * man/po4a/po4a.cfg (po4a_langs): Add da. + * man/THANKS: Credit Joe Hansen with man/da as well as da.po. + * .bzrignore: Add man/da/man1, man/da/man5, and man/da/man8. + +Mon Sep 17 23:22:48 BST 2012 Colin Watson + + * Version: 2.6.3. + +Mon Sep 17 23:20:19 BST 2012 Colin Watson + + Stop distributing .tar.gz, as promised in the release notes for + 2.6.2. + + * configure.ac (AM_INIT_AUTOMAKE): Add no-dist-gzip. + * docs/man-db.lsm (Primary-site): Drop .tar.gz size. + +Mon Sep 17 22:53:40 BST 2012 Colin Watson + + * autogen.sh, release.sh: Use 'set -e' rather than '#! /bin/sh -e', + to avoid accidents when debugging with 'sh -x'. + +Mon Sep 17 22:53:14 BST 2012 Colin Watson + + * Makefile.am (EXTRA_DIST): Add gnulib/gets.patch. + +Mon Sep 17 22:33:41 BST 2012 Colin Watson + + * configure.ac: Use AM_PROG_AR before LT_INIT, for compatibility + with Automake 1.12. + * NEWS: Document this. + +Mon Sep 17 22:28:27 BST 2012 Colin Watson + + Backport Gnulib commit 66712c23388e93e5c518ebc8515140fa0c807348 to + stop assuming gets (Savannah bug #37255). + + * gnulib/gets.patch: New file. + * autogen.sh: Apply gnulib/gets.patch. + * NEWS: Document this. + +Mon Sep 17 22:07:02 BST 2012 Colin Watson + + Upgrade to Automake 1.11.6. + +Thu Aug 16 12:08:48 BST 2012 Trần Ngá»c Quân + + * po/vi.po: Update from Translation Project. + * man/THANKS: Update. + +Mon Jun 18 13:37:45 BST 2012 Colin Watson + + * Version: 2.6.2. + * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update. + +Mon Jun 18 13:34:31 BST 2012 Ville Skyttä + + * configure.ac: Add elinks and w3m to list of HTML browsers to + search for. + +Mon Jun 18 13:02:06 BST 2012 Colin Watson + + * configure.ac: Adjust indentation. Set unlzma to empty if xz is + found. + +Mon Jun 18 12:56:56 BST 2012 Ville Skyttä + + * configure.ac: Only check for lzma if xz is not found. + * include/comp_src.h.in (comp_list): Likewise. + +Mon Jun 18 11:40:27 BST 2012 Colin Watson + + * configure.ac (AM_INIT_AUTOMAKE): Distribute tarballs compressed + using xz as well as gzip. + +Mon Jun 18 11:24:30 BST 2012 Colin Watson + + * src/whatis.c (main): Make the global configuration file optional + if a user configuration file was supplied. Fixes test suite. + +Mon Jun 18 10:59:41 BST 2012 Colin Watson + + * README (Copyright and licensing): Update FSF copyright years. + +Mon Jun 18 10:55:53 BST 2012 Colin Watson + + Upgrade to Autoconf 2.69, Automake 1.11.5, and Gnulib + 20120404-stable. + +Mon Jun 18 04:20:41 BST 2012 Colin Watson + + Avoid fatal errors when opening a 64-bit GDBM database from a 32-bit + process (Ubuntu bug #1001189). + + * libdb/db_gdbm.c (trap_error): New function. + (man_gdbm_open_wrapper): Rearrange interface to call gdbm_open + rather than taking its return value as an argument. Fetch a test + value from the database after opening it, inside a setjmp/longjmp + guard to prevent GDBM from exiting. + * include/mydbm.h (man_gdbm_open_wrapper): Update prototype. + (MYDBM_CTRWOPEN, MYDBM_CRWOPEN, MYDBM_RWOPEN, MYDBM_RDOPEN): + Update man_gdbm_open_wrapper calls, since it now calls gdbm_open + itself. + * NEWS: Document this. + +Mon May 14 16:40:00 PDT 2012 Colin Watson + + * NEWS: The fix for Ubuntu bug #927028 also fixed Debian bug #672661 + along the way. Document this. + +Fri May 4 15:36:58 BST 2012 Martin Eberhard Schauer + + * man/po4a/po/de.po: Update from Translation Project. + +Thu Apr 26 09:28:44 BST 2012 Arun Persaud + + * po/de.po: Update from Translation Project. + +Thu Apr 19 11:19:19 BST 2012 Arun Persaud + + * po/de.po: Update from Translation Project. + * man/THANKS: Update. + +Sun Apr 8 09:43:11 BST 2012 Marek ÄŒernocký + + * po/cs.po: Update from Translation Project. + +Mon Mar 19 10:57:16 GMT 2012 Joe Hansen + + * po/da.po: Update from Translation Project. + +Mon Feb 27 13:26:47 GMT 2012 Colin Watson + + * src/whatis.c (main): Move locale manpath expansion to ... + (locale_manpath): ... here (new function). + (suitable_manpath): New function. + (do_whatis): If a page contains a slash and is a path to an + executable on $PATH, then look up its base name only in + appropriate manual hierarchies. + (search): Pass current manpath entry to do_whatis. + * src/tests/whatis-1: New file. + * src/tests/Makefile.am (ALL_TESTS): Add whatis-1. + * NEWS: Document this. + +Wed Feb 22 03:04:45 GMT 2012 Colin Watson + + Optimise apropos when given many arguments (Ubuntu bug #927028). + + * src/whatis.c (use_grep, do_whatis, parse_name, parse_whatis, + do_apropos, search): Operate on multiple pages. + (use_grep, do_whatis, do_apropos): Update an output array rather + than returning an int. + (parse_name, parse_whatis): Update an output array as well as + returning an int. + (display, do_whatis_section): Constify page argument. + (match): Constify lowpage and whatis arguments. + (main): Process all arguments using a single call to search. + * NEWS: Document this. + +Wed Feb 22 02:46:22 GMT 2012 Colin Watson + + * lib/encodings.c (fallback_source_encoding, fallback_roff_encoding, + fallback_less_charset): Save memory by declaring as const char[] + rather than const char * (see http://glandium.org/blog/?p=2361). + (find_charset_locale): Likewise for supported_path. + * src/man.c (default_roff_warnings): Likewise. + +Sat Feb 18 09:34:42 GMT 2012 Colin Watson + + * lib/hashtable.c (hashtable_lookup_structure): Make return type + more precise. + * lib/hashtable.h (hashtable_lookup_structure): Update prototype. + +Thu Feb 16 10:55:05 GMT 2012 Colin Watson + + * Makefile.am (EXTRA_DIST): Add gnulib/m4/math_h.m4. + +Tue Feb 14 12:18:50 GMT 2012 Colin Watson + + * Version: 2.6.1. + * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update. + +Thu Feb 9 08:44:09 GMT 2012 Colin Watson + + Upgrade to Automake 1.11.3. + +Thu Feb 9 08:16:12 GMT 2012 Colin Watson + + * src/lexgrog.l, src/zsoelim.l: Ensure that config.h is included at + the very top of the scanner, before any other headers. This + should fix a compilation problem on Solaris reported by Clark J. + Wang. + +Wed Feb 8 14:07:41 GMT 2012 Joe Hansen + + * po/da.po: Update from Translation Project. + +Tue Feb 7 00:20:51 GMT 2012 Colin Watson + + * docs/INSTALL.quick: Document requirement for libiconv >= 1.8 on + non-glibc systems. + +Mon Feb 6 23:00:33 GMT 2012 David Prévot + + * man/po4a/po/fr.po, po/fr.po: Update from Translation Project. + +Mon Feb 6 22:57:12 GMT 2012 Yuri Kozlov + + * man/po4a/po/ru.po, po/ru.po: Update from Translation Project. + +Mon Feb 6 10:45:22 GMT 2012 Colin Watson + + * FAQ: New file. + * Makefile.am (dist_noinst_DATA): Add FAQ. + +Sun Feb 5 21:59:39 GMT 2012 Colin Watson + + * README (Notice to users of man-db version 2.2 or 2.2.1): Remove + this section. The chances of anyone still running man-db versions + from 1995 seem remote in the extreme. + +Sun Feb 5 21:57:49 GMT 2012 Colin Watson + + * release.sh: Make sure that src/lexgrog.c and src/zsoelim.c are + fresh. + +Sun Feb 5 15:36:52 GMT 2012 Colin Watson + + * README (Copyright and licensing): New year. + +Sun Feb 5 13:14:42 GMT 2012 Colin Watson + + * manual/README: Fix spelling mistake. + +Sun Feb 5 02:11:04 GMT 2012 Colin Watson + + * Version: 2.6.1-pre1. + * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update. + +Sun Feb 5 01:34:14 GMT 2012 Colin Watson + + Fix 'make distcheck' to pass with Automake 1.11.2. + + * Makefile.am (distuninstallcheck_listfiles): Ignore the + configuration file, which is deliberately left in place on + uninstall. + * configure.ac (AM_INIT_AUTOMAKE): Add -Wno-override. + * src/Makefile.am (EXTRA_DIST): Force distribution of lexgrog.c and + zsoelim.c. + +Sun Feb 5 00:53:23 GMT 2012 Colin Watson + + * docs/HACKING (Revision control): Recommend 'bzr branch' rather + than 'bzr get'; the latter is apparently deprecated in bzr 2.4. + +Sat Feb 4 23:38:15 GMT 2012 David Prévot + + * man/man1/apropos.man1 (SEE ALSO), man/man1/lexgrog.man1 (SEE + ALSO), man/man1/man.man1 (SEE ALSO), man/man1/manconv.man1 (SEE + ALSO), man/man1/manpath.man1 (SEE ALSO), man/man1/whatis.man1 (SEE + ALSO), man/man1/zsoelim.man1 (SEE ALSO), man/man8/catman.man8 (SEE + ALSO), man/man8/mandb.man8 (SEE ALSO): Alphabetise references and + remove trailing full stops, per man-pages(7) (Debian bug #651482). + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update. + +Sat Feb 4 23:27:39 GMT 2012 Marek ÄŒernocký + + * po/cs.po: Update from Translation Project. + * man/THANKS: Update. + +Sat Feb 4 23:10:58 GMT 2012 Colin Watson + + * libdb/db_lookup.c (split_data): Use ngettext to translate strings + containing plural forms (Savannah bug #34968). + * src/lexgrog.l (too_big): Likewise. + * src/mandb.c (main): Likewise. + * po/man-db.pot, po/*.po: Update. + +Sat Feb 4 21:44:47 GMT 2012 Colin Watson + + * src/man.c (options): Add --path as an alias for -w. + (main): Running 'man -w' (etc.) without a name now prints the + manpath, for compatibility with other man implementations. + * NEWS: Document this. + +Thu Feb 2 18:05:16 GMT 2012 Colin Watson + + * include/comp_src.h.in (comp_list): Don't handle .lzma files using + lzip. Requested by Matias A. Fonzo. + +Thu Feb 2 01:51:18 GMT 2012 Colin Watson + + Fix some errors spotted by the clang static analyser. Some just + needed to be suppressed, but there were two real bugs. + + * src/manconv.c (try_iconv): Make sure outptr is always initialised, + even in the corner case where we convert some input text but don't + get any UTF-8 text in return. + * src/manp.c (get_catpath): Handle manpaths not containing a slash. + + * src/convert_name.c: Mark as non-returning, and add an abort after + error (FATAL) to help the compiler prove this. + * src/man.c (format_display): Add an assert to help clang prove that + old_cwd is always non-NULL when used. + * src/ult_src.c: Add asserts to help clang prove that buf is always + non-NULL when used. + +Thu Feb 2 00:02:07 GMT 2012 Matias A. Fonzo + + Add support for Lzip-compressed manual pages. + + * configure.ac: Check for lzip. Don't test for lzma if lzip is + present, as was already the case for xz. + * include/comp_src.h.in (comp_list): Add lzip. + * include/manconfig.h.in: Define UNLZIP. + * NEWS: Document this. + +Wed Feb 1 23:25:03 GMT 2012 Colin Watson + + Upgrade to Automake 1.11.2 and Gnulib 20111211-stable. + + * gnulib: Import closedir, fstat, and opendir modules. + +Wed Nov 2 14:33:18 GMT 2011 Robert Luberda + + * man/po4a/po/pl.po: Update from Translation Project. + +Sun Oct 9 23:32:41 BST 2011 Colin Watson + + * lib/hashtable.c (null_hashtable_free): Use ATTRIBUTE_UNUSED to + appease compiler warnings rather than assigning an argument to + itself. + * src/mandb.c (cleanup_sigsafe, cleanup): Likewise. + +Sun Oct 9 23:14:11 BST 2011 Colin Watson + + * src/man.c (get_roff_line_length, add_roff_line_length): Only + compile if either TROFF_IS_GROFF or HEIRLOOM_NROFF is defined. + Spotted by cppcheck. + +Sun Oct 9 22:50:36 BST 2011 Colin Watson + + * src/manp.c (add_to_dirlist): Read lines from configuration file + using getline rather than fgets with a fixed-size buffer. + +Sun Oct 9 22:42:00 BST 2011 Colin Watson + + * gnulib: Import getline module (used in lib/encodings.c). + +Sun Oct 9 22:26:15 BST 2011 Colin Watson + + * man/es/man8/accessdb.man8: Remove; this is simply an out-of-date + copy of the English page. Reported by KÅ™iÅ¡tof Želechovski. + * man/es/Makefile.am (man8_MANS): Remove man8/accessdb.8. + +Sun Oct 9 22:21:19 BST 2011 Colin Watson + + Upgrade to Gnulib 20110908-stable. + +Sun Oct 9 00:24:22 BST 2011 Peter Schiffer + + * src/filenames.c (filename_info): Zero-initialise the contents of + info to avoid a double-free in store_descriptions (Fedora bug + #702904). + * src/tests/mandb-6: New file. + * src/tests/Makefile.am (ALL_TESTS): Add mandb-6. + * NEWS: Document this. + +Sun Oct 9 00:16:25 BST 2011 Colin Watson + + * NEWS: Update. + +Sat Oct 8 23:34:26 BST 2011 Colin Watson + + Convert the German manual pages translation to po4a. + + * man/po4a/po/de.po: New from Translation Project (thanks, Martin + Eberhard Schauer). + * man/LINGUAS: Remove de. + * man/LINGUAS.po4a: Add de. + * man/de/man1, man/de/man5, man/de/man8: Remove. + * man/de/Makefile.am (PO4A_LINGUA): Set to yes. + (EXTRA_DIST): Add translator.add. + (man1_MANS): Add man1/lexgrog.1 and man1/manconv.1. + * man/po4a/Makefile.am (POFILES): Add po/de.po. + * man/po4a/po4a.cfg (po4a_langs): Add de. + * man/THANKS: Credit Martin Schauer with man/de as well as de.po. + * .bzrignore: Add man/de/man1, man/de/man5, and man/de/man8. + +Sat Oct 8 17:11:08 BST 2011 Yasuaki Taniguchi + + * po/ja.po: Update from Translation Project. + +Sat Oct 8 17:09:41 BST 2011 Colin Watson + + * man/THANKS: Consolidate duplicated credit. + +Sat Oct 8 17:07:17 BST 2011 Colin Watson + + Convert the Japanese manual pages translation to po4a. + + * man/po4a/po/ja.po: New from Translation Project (thanks, Yasuaki + Taniguchi). + * man/LINGUAS: Remove ja. + * man/LINGUAS.po4a: Add ja. + * man/ja/man1, man/ja/man5, man/ja/man8: Remove. + * man/ja/Makefile.am (PO4A_LINGUA): Set to yes. + (EXTRA_DIST): Add translator.add. + (man1_MANS): Add man1/lexgrog.1 and man1/manconv.1. + * man/po4a/Makefile.am (POFILES): Add po/ja.po. + * man/po4a/po4a.cfg (po4a_langs): Add ja. + * man/THANKS: Add Yasuaki Taniguchi. + * .bzrignore: Add man/ja/man1, man/ja/man5, and man/ja/man8. + +Sun Sep 18 18:28:37 BST 2011 Colin Watson + + * src/tests/mandb-5: Make executable. + +Sat Sep 17 13:28:33 BST 2011 Colin Watson + + * docs/HACKING (Revision control): man-db's Bazaar repository now + requires bzr 1.16 or later. + +Mon Sep 5 11:29:53 BST 2011 Colin Watson + + * src/mandb.c: Include "xvasprintf.h" for xasprintf. + +Mon Aug 8 14:00:32 BST 2011 Colin Watson + + * src/mandb.c (mandb): Create a cache directory tag, per + http://www.brynosaurus.com/cachedir/ ("Cache Directory Tagging + Standard"). Suggested by Josh Triplett (Debian bug #637046). + +Fri Jul 8 13:27:41 BST 2011 Colin Watson + + * src/mandb.c (xcopy): Use a 32KiB buffer when copying files, rather + than a 1KiB buffer. This seems somewhat faster (although it's + hard to tell on an SSD!). + +Fri Jul 8 12:49:46 BST 2011 Colin Watson + + Upgrade to Gnulib 20110609-stable. + +Thu Jun 16 12:18:08 BST 2011 Colin Watson + + * libdb/db_btree.c, libdb/db_ndbm.c: Stop including "flock.h", + removed in 2.6.0. Reported by Maciej Mrozowski. Include + unconditionally, since Gnulib now provides it. + * NEWS: Document this. + +Mon Jun 6 11:25:28 BST 2011 Colin Watson + + * man/po4a/Locale/Po4a/Manext.pm (translate): Exclude a number of + untranslatable table entries from translation. + +Mon Jun 6 10:36:01 BST 2011 David Prévot + + * man/po4a/po/fr.po: Update from Translation Project. + +Mon Jun 6 10:34:26 BST 2011 Colin Watson + + * man/man8/accessdb.man8 (NAME): Remove trailing full stop + (suggested by David Prévot). Unfuzzy all translations. + +Mon Jun 6 10:06:09 BST 2011 Colin Watson + + * src/straycats.c (check_for_stray): Pass mandir_base as base + argument to store_descriptions, not mandir. Regression introduced + in man-db 2.6.0 (r1309). + +Sat Jun 4 07:33:36 BST 2011 Colin Watson + + * src/straycats.c (check_for_stray): When invoking col, try to + ensure that LC_CTYPE is set to a UTF-8 locale (Arch Linux bug + #18722). + +Fri Jun 3 10:05:45 BST 2011 David Prévot + + * man/po4a/po/fr.po: Update from Translation Project. + +Tue May 31 01:04:26 BST 2011 Colin Watson + + * lib/encodings.c (get_locale_charset): Eliminate ctype variable, + which was set but not used. + * src/man.c (make_roff_command): Preprocess out code to set + using_tbl if GNU_NROFF is defined, since that code is only used if + it is not defined. + +Tue May 31 00:59:01 BST 2011 Colin Watson + + * src/man.c (locale_macros): Add a backslash to the end of the .if + line, to avoid adding a blank line to the output (Debian bug + #628639). + +Fri May 20 16:35:02 BST 2011 Yasuaki Taniguchi + + * po/ja.po: Update from Translation Project. + +Wed May 18 17:25:46 BST 2011 Yasuaki Taniguchi + + * po/ja.po: Update from Translation Project. + * man/THANKS: Update. + +Fri May 13 16:11:07 BST 2011 Martin Eberhard Schauer + + * po/de.po: Update from Translation Project. + +Sat Apr 23 18:54:06 BST 2011 Colin Watson + + * src/Makefile.am (SUBDIRS): Build this directory before tests/, so + that 'make check' works even if 'make' has not been run. + +Sat Apr 23 18:00:34 BST 2011 Colin Watson + + Upgrade to Autoconf 2.68 and Gnulib 20110412-stable. + +Wed Apr 13 11:22:39 BST 2011 Colin Watson + + * Version: 2.6.0.2. + * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update. + +Wed Apr 13 10:26:07 BST 2011 Colin Watson + + * src/descriptions.c (parse_descriptions): Once we've seen at least + one record, ignore any further records that don't include a whatis + description, as they tend to be noise (Arch Linux bug #22866). + * NEWS: Document this. + +Tue Apr 12 14:10:17 BST 2011 Jordi Mallach + + * po/ca.po: Update from Translation Project. + +Tue Apr 12 14:03:38 BST 2011 Colin Watson + + * src/check_mandirs.c (test_manfile): whatis->whatis may be NULL in + the case of an empty page. Guard against this (Debian bug + #622104). + * src/tests/mandb-5: New file. + * src/tests/Makefile.am (ALL_TESTS): Add mandb-5. + * NEWS: Document this. + +Sun Apr 10 22:09:10 BST 2011 Colin Watson + + * Version: 2.6.0.1. + * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update. + +Sun Apr 10 14:45:52 BST 2011 Colin Watson + + * src/manp.c (read_config_file): Read a user-specified configuration + file even if HOME is unset. + * NEWS: Document this. + +Sun Apr 10 02:10:56 BST 2011 Colin Watson + + * src/descriptions_store.c (store_descriptions): Ensure that the + target of a symlink or .so chain is always recorded as a real + page. Fixes mandb-2 test failures. + * NEWS: Document this. + +Sun Apr 10 01:55:28 BST 2011 Colin Watson + + * src/tests/mandb-2: Test the case where a manual page changes from + a symbolic link to a regular file, as well as vice versa. + +Sat Apr 9 13:30:16 BST 2011 Colin Watson + + * Version: 2.6.0. + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po, po/man-db.pot, + po/*.po: Update. + +Sat Apr 9 13:21:08 BST 2011 Colin Watson + + Upgrade to Libtool 2.4. + +Sat Apr 9 12:56:02 BST 2011 Colin Watson + + * man/man1/man.man1 (Controlling formatted output): Wrap first cell + in --ascii translation table. + * man/man8/mandb.man8 (DATABASE CACHES): Wrap second cell in + database type table. + * man/po4a/Locale/Po4a/Manext.pm (shiftline): Fix T} detection. + * man/po4a/po/ru.po: Don't translate "\\*[softhyphen]". + +Sat Apr 9 11:52:20 BST 2011 Colin Watson + + * man/man1/man.man1 (DESCRIPTION): Typeset ellipses in roman rather + than bold (thanks, David Prévot). + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update. + Manually unfuzzy translations. + +Sat Apr 9 11:42:51 BST 2011 Robert Luberda + + * man/po4a/po/pl.po: Update from Translation Project. + * po/pl.po: Likewise. + +Sat Apr 9 11:38:52 BST 2011 Yuri Kozlov + + * man/po4a/po/ru.po: Update from Translation Project. + +Thu Apr 7 12:46:34 BST 2011 Colin Watson + + * lib/cleanup.c (do_cleanups): Set tos and nslots to 0 before + freeing stack, in case do_cleanups_sigsafe is called again from a + signal handler (Fedora bug #694332). + * NEWS: Document this. + +Sat Apr 2 12:20:30 BST 2011 David Prévot + + * po/fr.po: Update from Translation Project. + +Mon Mar 28 17:59:45 BST 2011 Yuri Kozlov + + * po/ru.po: Update from Translation Project. + +Mon Mar 28 17:40:36 BST 2011 Colin Watson + + * gnulib: Import flock module. + * lib/Makefile.am (libman_la_SOURCES): Remove flock.h. + * lib/README: Remove flock.*. + * lib/flock.c, lib/flock.h: Remove. + +Mon Mar 28 13:07:50 BST 2011 Colin Watson + + * libdb/mydbm.h (btree_close, btree_exists, btree_fetch, + btree_firstkey, btree_nextkey, btree_replace, btree_nextkeydata): + Drop inline specifier; these functions are typically used from + different translation units from their definitions. + +Mon Mar 28 12:59:54 BST 2011 Colin Watson + + * configure.ac: Add support for db5. + * NEWS: Document this. + +Mon Mar 28 12:26:54 BST 2011 Colin Watson + + * configure.ac: Apply correct M4 quotation throughout. + * m4/man-bdb.m4: Likewise. + * m4/man-gnu-nroff.m4: Likewise. + * m4/man-linguas.m4: Likewise. + * m4/man-trans-subst.m4: Likewise. + + * m4/man-bdb.m4: Use AS_VAR_IF rather than AS_IF plus AS_VAR_GET. + +Mon Mar 28 11:15:16 BST 2011 Joe Hansen + + * po/da.po: Update from Translation Project. + +Mon Mar 28 11:12:38 BST 2011 David Prévot + + * man/po4a/po/fr.po: Update from Translation Project. + * man/THANKS: Update. + +Mon Mar 28 11:09:19 BST 2011 David Prévot + + * po/fr.po: Update from Translation Project. + +Mon Mar 28 11:06:04 BST 2011 Colin Watson + + * m4/man-gcc-warning.m4: Remove. + * gnulib: Import warnings module. + * configure.ac: Replace MAN_GCC_WARNING with gl_WARN_ADD. + +Sun Mar 27 18:25:25 BST 2011 Colin Watson + + * Version: 2.6.0-pre1. + * po/man-db.pot, po/*.po: Update. + * man/po4a/po/man-db-manpages.pot: Update. + +Thu Mar 24 12:46:38 GMT 2011 Colin Watson + + * lib/security.c (do_system_drop_privs_child): Remove unused + variable. + +Thu Mar 24 12:43:51 GMT 2011 Colin Watson + + * src/man.c (lang): Make non-const. + (local_man_loop): Free lang after calling display. + (display_filesystem): Likewise. + (display_database): Likewise. + (do_global_apropos_section): Ensure lang is set while calling + display. + * NEWS: Document this. + +Thu Mar 24 01:22:00 GMT 2011 Colin Watson + + Help novices find their way around. See + http://brainstorm.ubuntu.com/idea/25975. + + * src/man.c (main): Add "(press h for help or q to quit)" to the + default less prompt string. + * man/man1/man.man1 (Controlling formatted output): Update + documentation. + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update. + * NEWS: Document this. + +Thu Mar 24 01:03:13 GMT 2011 Colin Watson + + Rewrite all remaining subprocess handling in terms of libpipeline. + + * lib/security.c (do_system_drop_privs_child): New function. + (do_system_drop_privs): Rewrite using libpipeline. + * src/catman.c (post_fork): New function. + (catman): Rewrite using libpipeline. + (add_arg): Rewrite as a wrapper around pipecmd_arg. + (do_catman): Remove. + (reset_cursor): Remove. + (parse_for_sec): Use libpipeline for subprocess handling. + (main): Install custom post-fork handler. + * src/man.c (gripe_no_man) [_AIX || __sgi]: Rewrite vendor fallback + using libpipeline. + * src/Makefile.am (catman_LDADD): Add $(libpipeline_LIBS). + + * src/catman.c (main): Duplicate the output of setlocale if + non-NULL. + + * configure.ac (AC_FUNC_VFORK): Remove. + (AC_REPLACE_FUNCS): Remove waitpid. + * gnulib: Remove waitpid module. + * lib/README: Remove waitpid.c. + * lib/waitpid.c: Remove. + +Sun Mar 20 12:58:42 GMT 2011 Colin Watson + + Remove the need for our patched version of xstrdup. + + * lib/encodings.c (get_locale_charset): Check return value of + setlocale before passing to xstrdup. + (find_charset_locale): Likewise. + * lib/pathsearch.c (pathsearch): Check return value of getenv before + passing to xstrdup. + (pathsearch_executable): Likewise. + * lib/tempfile.c (create_tempdir): Adjust appendstr call to avoid + needing to pass return value of path_search to xstrdup. + * src/check_mandirs.c (test_manfile): Don't pass NULL lg.whatis to + xstrdup. + * src/descriptions.c (parse_descriptions): Don't pass NULL + head->whatis to xstrdup. + * src/man.c (main): Check return value of setlocale before passing + to xstrdup. + (add_col): Only call find_charset_locale if locale_charset is + non-NULL. + (add_candidate): Don't pass NULL ult to xstrdup. + * src/manp.c (read_config_file): Adjust appendstr call to avoid + needing to pass return value of getenv to xstrdup. + * src/whatis.c (do_apropos): Don't pass NULL info.whatis to xstrdup. + (main): Check return value of setlocale before passing to xstrdup. + * src/zsoelim.l (zsoelim_stdin_data_new): Don't pass NULL path to + xstrdup. + + * Makefile.am (EXTRA_DIST): Remove gnulib/lib/xmalloc.c.orig and + gnulib/lib/xmalloc.patch. + * autogen.sh: Stop applying gnulib/lib/xmalloc.patch. + * gnulib/lib/xmalloc.c.orig, gnulib/lib/xmalloc.patch: Remove. + +Sun Mar 20 01:39:41 GMT 2011 Colin Watson + + * gnulib: Import waitpid module. + +Sun Mar 20 01:31:33 GMT 2011 Colin Watson + + Upgrade to Gnulib 20110216-stable. + +Tue Mar 15 10:55:52 GMT 2011 Colin Watson + + * include/manconfig.h.in (STD_SECTIONS): Add section 0 between 3 and + 2, matching a change in man-db 2.5.6. + +Tue Mar 15 10:52:58 GMT 2011 Colin Watson + + * src/man.c (compare_candidates): If the user asked for an explicit + section, sort exact matches first (Fedora bug #684977). + * src/tests/man-3: New file. + * src/tests/Makefile.am (ALL_TESTS): Add man-3. + * NEWS: Document this. + +Tue Mar 15 10:48:19 GMT 2011 Colin Watson + + * src/manp.c (add_sections): Put user entries in a separate list. + (get_sections): If any user entries are present, use them rather + than system entries. + (add_to_dirlist): Pass user to add_sections. + * NEWS: Document this. + +Mon Mar 14 10:55:39 GMT 2011 Joe Hansen + + * po/da.po: Update from Translation Project. + * man/THANKS: Update. + +Wed Mar 2 11:12:13 GMT 2011 Colin Watson + + * src/mandb.c (main): Reset SIGPIPE to SIG_DFL on startup, to avoid + noisy output in the event that mandb was started from a context + where SIGPIPE was ignored (e.g. Fedora bug #649674). + * NEWS: Document this. + +Tue Jan 25 00:20:29 GMT 2011 Colin Watson + + * src/lexgrog.l (MAN_NAME): Consider .PD requests as paragraph + breaks, to work around poor lexical analysis that causes them to + be matched as .P and emit a stray trailing "D" (Debian bug + #611012). + +Sun Jan 23 23:50:38 GMT 2011 Colin Watson + + * Makefile.am (EXTRA_DIST): Remove gnulib/m4/sockpfaf.m4, which was + removed along with the internal copy of libpipeline. + * man/po4a/Makefile.am (EXTRA_DIST): Add Locale/Po4a/Manext.pm. + (PO4A_ENVIRONMENT): Set PERL5LIB to $(srcdir), not `pwd`. + +Sun Jan 23 17:01:51 GMT 2011 Colin Watson + + * man/man1/apropos.man1 (OPTIONS), man/man1/lexgrog.man1 (OPTIONS), + man/man1/man.man1 (OPTIONS), man/man1/manconv.man1 (OPTIONS), + man/man1/manpath.man1 (OPTIONS), man/man1/whatis.man1 (OPTIONS), + man/man1/zsoelim.man1 (OPTIONS), man/man8/accessdb.man8 (OPTIONS), + man/man8/catman.man8 (OPTIONS), man/man8/mandb.man8 (OPTIONS): + Print commas in roman rather than bold. Based on a patch from + David Prévot (Debian bug #600002). + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update. + Manually unfuzzy translations. + +Mon Jan 10 20:08:03 GMT 2011 Colin Watson + + If mandb sees that A is a symlink to B, it should never store a + whatis reference for B (Debian bug #204249). + + * src/check_mandirs.c (whatis_hashtable_free): New function. + (test_manfile): Change whatis_hash free function to + whatis_hashtable_free. Fetch an ult_trace structure from ult_src, + record it in whatis_hash in the case of a cache miss, and pass it + to store_descriptions. + * src/descriptions_store.c (is_prefix): New function. + (store_descriptions): Add path and trace parameters. Update all + callers. + * src/descriptions.h (store_descriptions): Update prototype. Count + a match for any name in the provided ult_trace structure as + indicating that we shouldn't create a whatis reference. If a name + matches a trace entry outside the current manual hierarchy, skip + that name entirely. + * src/ult_src.c (ult_trace, free_ult_trace): New functions. + (ult_src): Add trace parameter. Record each file name we + encounter in the trace. Update all callers. + * src/ult_src.h (ult_src): Update prototype. + (free_ult_trace): Add prototype. + * src/Makefile.am (lexgrog_SOURCES): Add filenames.c and + filenames.h. + + * src/tests/mandb-2: Test two-level symlinks. + * src/tests/mandb-4: New file. + * src/tests/Makefile.am (ALL_TESTS): Add mandb-4. + +Mon Jan 10 16:20:22 GMT 2011 Colin Watson + + * man/man1/man.man1 (DESCRIPTION), man/de/man1/man.man1 + (BESCHREIBUNG), man/es/man1/man.man1 (DESCRIPCIÓN), + man/it/man1/man.man1 (DESCRIZIONE), man/ja/man1/man.man1 (説明): + Enclose long table cells in T{ T}. + * man/po4a/Locale/Po4a/Manext.pm: New file, to let us translate + individual table cells separately. + * man/po4a/Makefile.am: Run po4a with PERL5LIB=`pwd`. + * man/po4a/po4a.cfg: Change type to manext. + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update. + * man/check-man: Stop ignoring "table wider than line width" + warnings. + * NEWS: Document this. + +Sat Jan 8 18:21:07 GMT 2011 Colin Watson + + * po/POTFILES.in: Remove lib/pipeline.c (file removed) and + src/descriptions.c (no translatable strings). + * po/man-db.pot, po/*.po: Update. + +Sat Jan 8 18:14:18 GMT 2011 Colin Watson + + Remove obsolete cat* subdirectories as well as NLS subdirectories. + + * src/mandb.c (process_manpath): Store the manpath in tried_catdirs + along with whether it has been seen. + (tried_catdirs_free): New function. + (purge_catdir): Improve message. + (purge_catsubdirs): New function. + (purge_catdirs): Adjust tried_catdirs handling. Call + purge_catsubdirs for both top-level catdirs and NLS catdirs. + (main): Set tried_catdirs free function to tried_catdirs_free. + * NEWS: Document this. + +Sat Jan 8 11:42:13 GMT 2011 Colin Watson + + Remove obsolete NLS subdirectories of cat directories (Debian bug + #558804). + + * lib/hashtable.c (hashtable_iterate): New function. + * lib/hashtable.h (hashtable_iterate): Add prototype. + + * lib/util.c (remove_directory): Add recurse parameter. Add missing + closedir calls. + * include/manconfig.h.in (remove_directory): Update prototype. + * src/man.c (format_display): Update remove_directory callers. + + * src/mandb.c (process_manpath): Add catpath to tried_catpath hash. + Check that manpath exists and is a directory here rather than in + the caller. + (is_lang_dir, purge_catdir, purge_catdirs): New functions. + (main): Create and free tried_catdirs. Move manpath stat checks + to process_manpath. Call purge_catdirs after all manpath entries + have been processed. + + * NEWS: Document this. + +Fri Jan 7 23:49:55 GMT 2011 Colin Watson + + * src/man.c (format_display_and_save): Drop SIGPIPE handling. + pipeline_pump handles this itself, and doing it here means that + SIGPIPE is incorrectly ignored in subprocesses (Debian bug + #597756). + +Fri Jan 7 23:25:39 GMT 2011 Colin Watson + + * src/man.c (make_roff_command): Use running_setuid. + * src/manp.c (get_def): Likewise. + +Tue Jan 4 11:09:00 GMT 2011 Colin Watson + + * lib/security.c (running_setuid): New function. + * lib/security.h (running_setuid): Add prototype. + * src/manconv_client.c (manconv_stdin): If running setuid, exec + manconv as an external process, since iconv_open is not guaranteed + to work correctly in setuid processes. + + * configure.ac: Require libpipeline >= 1.1.0. + * docs/INSTALL.quick: Document increased version requirement. + + * NEWS: Document this. + +Mon Jan 3 03:02:50 GMT 2011 Colin Watson + + Add basic support for the Heirloom Documentation Tools. + + * m4/man-heirloom-nroff.m4: New file. + * configure.ac: Call MAN_PROG_HEIRLOOM_NROFF. If successful and an + nroff macro was found, prepend -mg -msafe -mpadj to the nroff and + troff options. + * lib/encodings.c (charset_table) [HEIRLOOM_NROFF]: Disable latin1 + and nippon devices. + (device_table) [HEIRLOOM_NROFF]: Add locale device. + * src/man.c (heirloom_line_length) [HEIRLOOM_NROFF]: New function. + (add_roff_line_length): Optionally return a command, which should + be inserted before troff. + (add_roff_line_length) [HEIRLOOM_NROFF]: Support Heirloom, which + needs text inserted at the start of the input. + (make_roff_command) [HEIRLOOM_NROFF]: Use locale device instead of + utf8 in UTF-8 locales. Handle add_roff_line_length return value. + Unset TROFFMACS if running setuid. + (make_browser): Compile only if TROFF_IS_GROFF. + (format_display): Only declare variables related to HTML output if + TROFF_IS_GROFF. + * src/tests/zsoelim-1: Ignore .ll and .lt lines inserted by + heirloom_line_length. + * NEWS: Document this. + +Mon Jan 3 00:56:55 GMT 2011 Colin Watson + + * src/manp.c (get_manpath_from_path): Return an empty string rather + than asserting if no path elements with corresponding manpaths + were found (Debian bug #608490). + * src/man.c (local_man_loop): Skip executable processing if no + useful manpath was returned. + * src/tests/man-2: New test for this bug. + * src/tests/Makefile.am (ALL_TESTS): Add man-2. + + * README (Copyright and licensing): New year. + +Thu Dec 23 16:00:06 GMT 2010 Colin Watson + + * src/check_mandirs.c (testmandirs): Make output neater when stderr + is not a tty. Suggested by C W Rose. + * NEWS: Document this. + +Thu Dec 23 15:50:39 GMT 2010 Colin Watson + + * src/lexgrog.l (glyphs, perldocs): Remove terminating NULL entries; + these arrays are handled using bsearch with an explicit length, + and NULL-terminating them causes crashes. + +Mon Dec 20 00:41:04 GMT 2010 Colin Watson + + * src/catman.c (main): Initialise locale using the LC_MESSAGES + category rather than LC_ALL. glibc returns a composite name for + the latter. + * lib/util.c (init_locale): Return void instead of returning the + result of setlocale. + * include/manconfig.h.in (init_locale): Update prototype. + +Sun Dec 19 16:10:35 GMT 2010 Colin Watson + + * gnulib: Import idpriv-drop and idpriv-droptemp modules. + * configure.ac: Stop checking for seteuid, setreuid, and setresuid. + * lib/security.c (POSIX_SAVED_IDS, SET_EUID, SWAP_UIDS): Remove in + favour of idpriv.h. + (drop_effective_privs): Use idpriv_temp_drop. + (regain_effective_privs): Use idpriv_temp_restore. + (do_system_drop_privs): Use idpriv_drop. Drop saved-IDs case; + avoiding a fork doesn't justify having two code paths. + +Sun Dec 5 20:58:10 GMT 2010 Colin Watson + + Provide byte positions in manconv errors (Debian bug #562789). + + * src/manconv.c (locate_error): New function. + (try_iconv): Skip over processed input data after handling errors. + Use locate_error to produce exact byte positions for conversion + errors. + +Thu Dec 2 23:54:03 GMT 2010 Colin Watson + + Allow passing multiple sections to whatis and apropos (Debian bug + #571285). + + * src/whatis.c (options): Allow spelling --section as --sections; + this is now the preferred long spelling. Document that the + argument may be colon-separated. + (split_sections): New function. + (parse_opt): Pass -s argument through split_sections. + (do_whatis): Move most logic to ... + (do_whatis_section): ... here. + (do_whatis): Iterate over sections, calling do_whatis_section for + each. + (do_apropos): Test all requested sections. + * man/man1/apropos.man1 (SYNOPSIS, OPTIONS), man/man1/whatis.man1 + (SYNOPSIS, OPTIONS): Document new semantics. + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update. + * NEWS: Document this. + +Thu Dec 2 23:32:07 GMT 2010 Colin Watson + + * src/whatis.c (parse_opt): Make -f and -k force program identity to + whatis and apropos respectively. This is useful when running + directly from the build tree, since libtool makes it hard to + detect the program name correctly. + +Thu Dec 2 19:28:06 GMT 2010 Colin Watson + + * src/catman.c (parse_for_sec): Format ARG_MAX - arg_size using %zd. + * src/manp.c (has_mandir): Cast printf field precisions to int. + (create_pathlist): Use %td to format pointer differences. + +Thu Dec 2 19:23:36 GMT 2010 Colin Watson + + * src/man.c (make_display_command): Make sure the returned pipeline + is never NULL; this causes crashes later. + +Thu Dec 2 12:33:43 GMT 2010 Colin Watson + + * src/man.c (make_display_command): Don't start a pager if standard + output is not a tty (Fedora bug #658132). + * NEWS: Document this. + +Thu Dec 2 00:31:31 GMT 2010 Colin Watson + + Handle roff named glyphs and perldoc strings in NAME sections + (Debian bug #601025). + + * src/lexgrog.l (glyphs, perldocs): New arrays. + (MAN_NAME): Call newline_found on encountering \& at the start of + a line. Call add_glyph_to_whatis on roff named glyphs, and + add_perldoc_to_whatis on perldoc strings. + (compare_macro, add_macro_to_whatis, add_glyph_to_whatis, + add_perldoc_to_whatis): New functions. + * NEWS: Document this. + +Wed Dec 1 22:24:51 GMT 2010 Colin Watson + + Improve .so searching (Debian bug #503472). + + * src/Makefile.am (zsoelim_SOURCES): Add manp.c and manp.h. + * src/zsoelim.l (zsoelim_parse_file): Take manpathlist and + parent_path arguments, and save those to pass on to + zsoelim_open_file. + (try_compressed): New function, split out from zsoelim_open_file. + (zsoelim_open_file): Take manpathlist and parent_path arguments. + Rearrange search logic as follows: (1) if there is no parent_path, + try opening directly; (2) look up filename within each manpath + entry, treating filenames without directory parts as full manual + page lookups; (3) if there is a parent_path, try opening directly. + (zsoelim_stdin): Pass path and manpathlist from input data to + zsoelim_open_file and zsoelim_parse_file. + (zsoelim_stdin_data_new, zsoelim_stdin_data_free): New functions. + * src/zsoelim.h (zsoelim_open_file, zsoelim_parse_file): Update + prototypes. + (zsoelim_stdin_data_new, zsoelim_stdin_data_free): Add prototypes. + * src/zsoelim_main.c (main): Initialise locale and manpath. Pass + manpath to zsoelim_open_file and zsoelim_parse_file. + * src/man.c (main): Calculate manpath before handling -l option. + (make_roff_command): Pass dir and manpathlist to zsoelim_stdin. + * src/tests/zsoelim-1: New test. + * src/tests/Makefile.am (ALL_TESTS): Add zsoelim-1. + * NEWS: Document this. + + * src/manp.c (get_def): If not setuid, make this identical to + get_def_user. + * src/manp.h (get_def): Likewise. + +Wed Dec 1 14:15:34 GMT 2010 Colin Watson + + * lib/security.c (do_system_drop_privs): Copy-edit header comment, + and update it for libpipeline. + +Mon Nov 29 17:48:29 GMT 2010 Colin Watson + + Remove obsolete versions of lexgrog. They're still available in + revision control if people want them. + + * src/Makefile.am (EXTRA_DIST): Remove. + * src/README.lexgrog, src/lexgrog.l-2.3.8, src/lexgrog.l-2.4a, + src/lexgrog.l.new: Remove. + +Sun Nov 28 15:01:21 GMT 2010 Colin Watson + + Remove internal copy of libpipeline. + + * configure.ac: Remove --enable-socketpair-pipe and + --with-external-pipeline options. Remove INTERNAL_PIPELINE + Automake conditional. Check for libpipeline unconditionally. + * docs/INSTALL.quick: Mention the need to install libpipeline. + * gnulib: Remove strsignal and sys_select modules. + * lib/Makefile.am (libman_la_SOURCES): Never add pipeline.c or + pipeline.h. + * lib/pipeline.c, lib/pipeline.h: Remove. + * m4/man-socketpair.m4: Remove. + * NEWS: Document this. Bump to 2.6.0. + +Thu Nov 18 13:46:04 GMT 2010 Colin Watson + + Reducing linkage when we switched to libtool caused build failures + with versions of GNU ld that default to --no-copy-dt-needed-entries. + Partially revert these changes, this time taking care to directly + link programs against libraries if and only if they use symbols from + those libraries directly (otherwise, the linkage from libman.la and + libmandb.la should be sufficient). + + * src/Makefile.am (LIBMAN): Add $(top_builddir)/gnulib/lib/libgnu.la + and @LTLIBINTL@. + (LIBMANDB): Add $(LIBMAN) and $(DBLIBS). + (lexgrog_LDADD, man_LDADD, manconv_LDADD, mandb_LDADD): Add + $(libpipeline_LIBS) and $(LTLIBICONV). + (whatis_LDADD, zsoelim_LDADD): Add $(libpipeline_LIBS). + * NEWS: Document this. + +Wed Nov 17 11:43:30 GMT 2010 Colin Watson + + * Version: 2.5.9. + * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update. + +Wed Nov 17 11:34:36 GMT 2010 Colin Watson + + * lib/util.c (init_locale): Avoid warnings if configured with + --disable-nls. Remove arguments, since this was only ever called + as 'init_locale (LC_ALL, "")' anyway, and that required callers to + explicitly include . Update all callers. + * include/manconfig.h.in (init_locale): Update prototype. + +Wed Nov 17 11:22:28 GMT 2010 Colin Watson + + * src/check_mandirs.c (test_manfile): Revert changes to this + function from 2010-11-14. Explicitly deleting bad links from the + database was overly sensitive to directory ordering, and caused + test failures on some systems. + * NEWS: Document this. + +Mon Nov 15 22:34:57 GMT 2010 Colin Watson + + * Version: 2.5.8. + * man/po4a/po/man-db-manpages.pot, po/man-db.pot, po/*.po: Update. + +Mon Nov 15 22:22:47 GMT 2010 Colin Watson + + * man/Rules.man (distclean-hook): Rename to ... + (distclean-local): ... this, and fix syntax so that it actually + works. + +Mon Nov 15 21:38:04 GMT 2010 Colin Watson + + * src/man.c (local_man_loop): Simplify and improve code to make a + temporary copy of manpathlist, in order that it can't free + unallocated memory (may fix Savannah bug #31633). + +Mon Nov 15 13:48:26 GMT 2010 Colin Watson + + * man/po4a/Makefile.am (clean-local): Remove; distclean-hook in + man/Rules.man already takes care of this (thanks, Denis Barbier). + +Sun Nov 14 22:12:21 GMT 2010 Colin Watson + + Prevent repeated rescans when a link is broken. Thanks to Daniel + Isenmann for debugging information. + + * src/check_mandirs.c (test_manfile): Explicitly delete bad links + from the database. + (count_glob_matches, purge_whatis, purge_missing): Extract the + database mtime, and ignore any pages at least as old as that for + the purposes of deciding whether a whatis entry has been replaced + by a real page. + * src/tests/mandb-3: New test. + * src/tests/Makefile.am (ALL_TESTS): Add mandb-3. + * NEWS: Document this. + +Wed Nov 3 23:40:25 GMT 2010 Jordi Mallach + + * po/ca.po: Update from Translation Project. + +Wed Nov 3 20:27:46 GMT 2010 Colin Watson + + * src/catman.c (parse_for_sec): Explicitly pass -S before section + number, to reduce ambiguity. + * src/man.c (main): In catman mode, never try to guess whether a + page argument is a section, as it's too easy to get this wrong + (Ubuntu bug #664211). + +Fri Oct 29 07:25:44 BST 2010 Colin Watson + + * lib/pipeline.h (pipeline_install_post_fork): Clarify that this is + run in the child process. + (pipeline_wait_all): Clarify that SIGPIPE is considered equivalent + to exiting zero. + +Fri Oct 29 06:18:31 BST 2010 Colin Watson + + * lib/pipeline.c (pipecmd_new_sequencev): New function. + (pipecmd_new_sequence): Rewrite in terms of pipecmd_new_sequence. + (pipeline_new_command_argv): New function. + (pipeline_new_command_args): Rewrite in terms of + pipeline_new_command_argv. + (pipeline_command_argv): New function. + (pipeline_command_args): Rewrite in terms of + pipeline_command_argv. + * lib/pipeline.h (pipecmd_new_sequencev, pipeline_new_command_argv, + pipeline_command_argv): Add prototypes. + +Fri Oct 29 05:28:33 BST 2010 Colin Watson + + * lib/pipeline.c (pipeline_wait): Rename to ... + (pipeline_wait_all): ... this. Return 127 rather than 1 if + closing the pipeline output fails. Return 127 if a command other + than the last one fails. Return the statuses and the number of + statuses in new output parameters if they are non-NULL. + (pipeline_wait): Add new wrapper function. + * lib/pipeline.h (pipeline_wait_all): Add prototype. + +Fri Oct 29 03:50:16 BST 2010 Colin Watson + + * lib/pipeline.c (pipeline_new): Default ignore_signals to 0. + * lib/decompress.c (decompress_open, decompress_fdopen): Remove + redundant calls to pipeline_ignore_signals. + * src/man.c (make_browser): Explicitly ignore SIGINT and SIGQUIT + when running the browser. + (make_display_command): Explicitly ignore SIGINT and SIGQUIT when + running the pager. + +Fri Oct 29 03:28:57 BST 2010 Colin Watson + + * lib/pipeline.c, lib/pipeline.h: Rename command to pipecmd, + command_* to pipecmd_*, and COMMAND_* to PIPECMD_*. Update all + callers. + +Fri Oct 29 03:24:10 BST 2010 Colin Watson + + * man/po4a/po/nl.po: Use I<> rather than U<>. + +Tue Oct 26 12:43:45 BST 2010 Erwin Poeze + + * man/po4a/po/nl.po: Update from Translation Project. + +Tue Oct 26 12:40:12 BST 2010 Martin Schauer + + * po/de.po: Update from Translation Project. + * man/THANKS: Update. + +Mon Oct 25 17:59:01 BST 2010 Colin Watson + + * lib/pipeline.c (pipeline_install_post_fork): New function. + (pipeline_start): Call post-fork handler rather than hardcoding + pop_all_cleanups. + * lib/pipeline.h (pipeline_install_post_fork): Add prototype. + + * src/lexgrog_test.c (main), src/man.c (main), src/manconv_main.c + (main), src/mandb.c (main), src/whatis.c (main), + src/zsoelim_main.c (main): Install pop_all_cleanups as a post-fork + handler. + +Mon Oct 25 16:18:08 BST 2010 Colin Watson + + * lib/pipeline.c (command_unsetenv): New function. + (command_dup, command_dump, command_tostring): Check for NULL + cmd->env[i].value. + (command_start_child): If cmd->env[i].value is NULL, call unsetenv + rather than setenv. + * lib/pipeline.h (command_unsetenv): Add prototype. + +Sun Oct 24 23:37:08 BST 2010 Colin Watson + + Allow building with an external libpipeline. + + * configure.ac: Add --with-external-pipeline option. + * lib/Makefile.am (libman_la_CPPFLAGS): Add $(libpipeline_CFLAGS). + (libman_la_SOURCES): Include pipeline.c and pipeline.h only + conditionally. + (libman_la_LDFLAGS): Add $(libpipeline_LIBS). + * src/Makefile.am (AM_CPPFLAGS): Add $(libpipeline_CFLAGS). + * NEWS: Document this. + +Sun Oct 24 21:15:07 BST 2010 Colin Watson + + * lib/pipeline.c (command_start_child): Add trailing newline to + "nice failed" debug message. + +Sun Oct 24 21:10:20 BST 2010 Colin Watson + + Make command and pipeline opaque types. + + * lib/pipeline.c (command_nice, command_discard_err, + pipeline_get_ncommands, pipeline_get_command, + pipeline_set_command, pipeline_want_in, pipeline_want_out, + pipeline_want_infile, pipeline_want_outfile, + pipeline_ignore_signals): New functions. + * lib/pipeline.h (command_nice, command_discard_err, + pipeline_get_ncommands, pipeline_get_command, + pipeline_set_command, pipeline_want_in, pipeline_want_out, + pipeline_want_infile, pipeline_want_outfile, + pipeline_ignore_signals): Add prototypes. + + * lib/pipeline.h (enum command_tag, struct command_env, struct + command, struct pipeline): Move to ... + * lib/pipeline.c (enum command_tag, struct command_env, struct + command, struct pipeline): ... here. + + Redirections are now handled slightly differently internally, + allowing redirection from/to fd 0. + + * lib/pipeline.c (pipeline_new, pipeline_join): Set redirect_in and + redirect_out. + (pipeline_connect): Use pipeline_want_in and pipeline_want_out. + Check source->redirect_out. + (pipeline_start): Handle new redirection semantics. + + * lib/decompress.c (decompress_open, decompress_fdopen): Use new + accessor functions rather than accessing pipeline fields directly. + * src/man.c (make_display_command, discard_stderr, open_cat_stream, + format_display, display_catman, display): Likewise. + +Sun Oct 24 21:04:45 BST 2010 Colin Watson + + * lib/pipeline.c (pipeline_run): This would be a more convenient + wrapper for the common case if it freed the pipeline as well, so + do that. (Callers that don't want this should call pipeline_start + and pipeline_wait separately.) + * lib/pipeline.h (pipeline_run): Update comment. + * lib/security.c (do_system_drop_privs): Consistently free the + supplied pipeline, and document doing so. + * src/man.c (format_display): Remove pipeline_free after + do_system_drop_privs. + * src/whatis.c (use_grep): Remove pipeline_free after pipeline_run. + +Sun Oct 24 21:03:25 BST 2010 Colin Watson + + * lib/pipeline.c (pipeline_new_command_args): New function. + * lib/pipeline.h (pipeline_new_command_args): Add prototype. + * src/man.c (make_browser): Use it. + +Sun Oct 24 20:59:27 BST 2010 Colin Watson + + * lib/pipeline.c (pipeline_run): New function. + * lib/pipeline.h (pipeline_run): Add prototype. + * lib/security.c (do_system_drop_privs): Use it. + * src/man.c (do_extern, run_mandb): Likewise. + * src/whatis.c (use_grep): Likewise. + +Sun Oct 24 20:56:00 BST 2010 Colin Watson + + * lib/pipeline.h (pipeline_pump): Mention in comment that arguments + must be NULL-terminated. + +Sun Oct 24 20:55:10 BST 2010 Colin Watson + + * lib/pipeline.h (pipeline_new_commandv): Fix comment. + +Sat Oct 23 20:52:24 BST 2010 Colin Watson + + * configure.ac (AC_TYPE_SIGNAL): Remove (unused). + +Tue Oct 12 11:16:31 BST 2010 Colin Watson + + * lib/util.c (init_locale): New function. + * include/manconfig.h.in (init_locale): Add prototype. + * src/Makefile.am (AM_CPPFLAGS): Move -DLOCALEDIR to ... + * lib/Makefile.am (libman_la_CPPFLAGS): ... here. + + * src/accessdb.c (main), src/catman.c (main), src/globbing_test.c + (main), src/lexgrog_test.c (main), src/man.c (main), + src/manconv_main.c (main), src/mandb.c (main), src/manpath.c + (main), src/whatis.c (main), src/zsoelim.c (main): Use + init_locale. + + * lib/util.c (init_locale): Suppress warning message if + DPKG_RUNNING_VERSION is set in the environment. + * NEWS: Document this. + +Mon Oct 11 09:38:03 BST 2010 Colin Watson + + * docs/HACKING (Revision control): Update for restored bzr+ssh + access. + +Mon Oct 11 09:36:55 BST 2010 Colin Watson + + * .bzrignore: Remove tools/config.rpath.*, which hasn't been needed + here since 2009-04-14. + +Tue Oct 5 11:48:57 BST 2010 Colin Watson + + * man/po4a/Makefile.am (clean-local): Don't use 'po4a + --rm-translations', since it sometimes updates PO/POT files and + the obvious workaround for that breaks 'make distcheck'. + Reimplement it by hand instead. + +Tue Oct 5 10:59:02 BST 2010 Colin Watson + + * man/check-man: Use libtool to run man from the build tree. + +Tue Oct 5 10:36:35 BST 2010 Colin Watson + + It turns out that AM_GNU_GETTEXT([use-libtool]) is unsupported. + Switch to external libintl instead. + + * configure.ac (AM_GNU_GETTEXT): Set external. + (AC_CONFIG_FILES): Remove intl/Makefile. + * Makefile.am (SUBDIRS): Remove intl. + (EXTRA_DIST): Add gnulib/m4/glibc2.m4, gnulib/m4/intdiv0.m4, + gnulib/m4/intl.m4, gnulib/m4/intmax.m4, gnulib/m4/inttypes-pri.m4, + gnulib/m4/lcmessage.m4, gnulib/m4/printf-posix.m4, + gnulib/m4/uintmax_t.m4, and gnulib/m4/visibility.m4. + * intl: Remove. + * lib/Makefile.am (libman_la_CPPFLAGS): Remove + -I$(top_builddir)/intl. + * libdb/Makefile.am (libmandb_la_CPPFLAGS): Likewise. + * src/Makefile.am (AM_CPPFLAGS): Likewise. + * .bzrignore: Remove intl/Makefile, intl/charset.alias, + intl/libgnuintl.h, intl/libintl.h, intl/ref-add.sed, and + intl/ref-del.sed. + * NEWS: Document this. + +Tue Oct 5 01:05:24 BST 2010 Colin Watson + + * configure.ac (AM_GNU_GETTEXT): Set use-libtool. + +Tue Oct 5 00:11:23 BST 2010 Colin Watson + + * lib/Makefile.am (libman_la_LIBADD): Include @LTLIBINTL@ rather + than @LIBINTL@. + * src/Makefile.am (whatis_LDADD): Include $(LTLIBICONV) rather than + $(LIBICONV). + +Mon Oct 4 23:56:36 BST 2010 Colin Watson + + * po/POTFILES.in: Add lib/security.c. Remove src/fake_security.c + and src/security.c. + * po/man-db.pot, po/*.po: Update. + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update. + +Sun Oct 3 23:57:45 BST 2010 Colin Watson + + * lib/pipeline.c (command_argf): New function. + * lib/pipeline.h (command_argf): Add prototype. + * src/man.c (add_roff_line_length): Use it, reducing need for + temporary local variables. + (make_roff_command): Likewise. + +Sun Oct 3 23:30:06 BST 2010 Colin Watson + + * src/man.c (setenv_less): Take a command argument. Set environment + variables only for that command, not globally. + (make_display_command): Call setenv_less on the command + constructed from pager. + +Sun Oct 3 22:34:13 BST 2010 Colin Watson + + * lib/pipeline.c (reap_children, pipeline_sigchld, + pipeline_install_sigchld): Move above pipeline_start. + (pipeline_install_sigchld): Make static. Return immediately if + already installed. + (pipeline_start): Call pipeline_install_sigchld. + * lib/pipeline.h (pipeline_start): Document that this installs a + SIGCHLD handler. + (pipeline_install_sigchld): Remove prototype. + * src/lexgrog_test.c (main), src/man.c (main), src/manconv_main.c + (main), src/mandb.c (main), src/whatis.c (main), + src/zsoelim_main.c (main): Stop calling pipeline_install_sigchld. + +Thu Sep 30 16:01:22 BST 2010 Colin Watson + + Convert the French manual pages translation to po4a. + + * man/LINGUAS: Remove fr. + * man/LINGUAS.po4a: Add fr. + * man/fr/man1, man/fr/man5, man/fr/man8: Remove. + * man/fr/Makefile.am (PO4A_LINGUA): Set to yes. + (EXTRA_DIST): Add translator.add. + (man1_MANS): Add man1/manconv.1. + * man/po4a/Makefile.am (POFILES): Add po/fr.po. + * man/po4a/po4a.cfg (po4a_langs): Add fr. + * man/THANKS: Add David Prévot. + * .bzrignore: Add man/fr/man1, man/fr/man5, and man/fr/man8. + +Thu Sep 30 15:44:46 BST 2010 David Prévot + + * po/fr.po: Update from Translation Project. + * man/po4a/po/fr.po: New from Translation Project. + * man/fr/translator.add: New file. + +Mon Sep 27 19:06:10 BST 2010 Colin Watson + + Move util to libman. + + * src/util.c: Move to ... + * lib/util.c: ... here. + * lib/Makefile.am (libman_la_SOURCES): Add util.c. + * src/Makefile.am (accessdb_SOURCES, catman_SOURCES, + globbing_SOURCES, lexgrog_SOURCES, man_SOURCES, mandb_SOURCES, + manpath_SOURCES, whatis_SOURCES, zsoelim_SOURCES): Remove util.c. + * lib/README: Add util.c. + +Mon Sep 27 00:50:37 BST 2010 Colin Watson + + * gnulib/m4/gnulib-cache.m4: Remove obsolete modules atexit, memcmp, + and strcspn. + +Mon Sep 27 00:24:50 BST 2010 Colin Watson + + Move security to libman. + + * src/security.c: Move to ... + * lib/security.c: ... here. + * src/security.h: Move to ... + * lib/security.h: ... here. + * lib/Makefile.am (libman_la_SOURCES): Add security.c and + security.h. + * src/Makefile.am (lexgrog_SOURCES): Remove fake_security.c and + security.h. + (man_SOURCES, mandb_SOURCES): Remove security.c and security.h. + * lib/README: Add security.*. + * src/lexgrog_test.c: Call init_security, so that we can use generic + security functions rather than fake_security. + * src/fake_security.c: Remove. + + * lib/security.c (do_system_drop_privs): Unroll calls to do_system + into calls to pipeline_start and pipeline_wait. + * src/whatis.c (use_grep): Likewise. + * src/util.c (do_system): Remove. + * include/manconfig.h.in (do_system): Remove. + + * src/*.c: Update #include grouping for movements to libman. + +Sun Sep 26 23:53:08 BST 2010 Colin Watson + + Get the tests working again following the switch to libtool. + + * src/tests/Makefile.am (TESTS_ENVIRONMENT): Remove CLEANPATH. + * src/tests/man-1, src/tests/mandb-1, src/tests/mandb-2: Set MANPATH + rather than using run_clean_path; running with a stripped-down + PATH is risky in general and breaks libtool in particular. + * src/tests/testlib.sh (run_clean_path): Remove. + + * src/tests/Makefile.am (TESTS_ENVIRONMENT): Add top_builddir. + * src/tests/testlib.sh (run): New function. + * src/tests/lexgrog-1, src/tests/man-1, src/tests/manconv-1, + src/tests/manconv-2, src/tests/manconv-3, src/tests/mandb-1, + src/tests/mandb-2, src/tests/testlib.sh (accessdb_filter): Use run + when running programs from the build tree. + +Sun Sep 26 23:25:31 BST 2010 Colin Watson + + Move encodings to libman. + + * src/encodings.c: Move to ... + * lib/encodings.c: ... here. + * src/encodings.h: Move to ... + * lib/encodings.h: ... here. + * lib/Makefile.am (libman_la_SOURCES): Add encodings.c and + encodings.h. + * src/Makefile.am (lexgrog_SOURCES, man_SOURCES, manconv_SOURCES, + mandb_SOURCES, manpath_SOURCES): Remove encodings.c and + encodings.h. + * lib/README: Add encodings.*. + +Sun Sep 26 23:15:00 BST 2010 Colin Watson + + * src/encodings.c (struct manconv_codes, manconv_stdin, + free_manconv_codes, add_manconv): Move to ... + * src/manconv_client.c: ... here (new file). + * src/encodings.h (add_manconv): Move to ... + * src/manconv_client.h: ... here (new file). + * src/lexgrog.l, src/man.c, src/straycats.c: Include + manconv_client.h. + * src/Makefile.am (lexgrog_SOURCES, man_SOURCES, mandb_SOURCES): Add + manconv_client.c and manconv_client.h. + + * src/manp.c: Remove unnecessary inclusion of encodings.h. + +Sun Sep 26 22:59:54 BST 2010 Colin Watson + + * src/compression.c: Remove unnecessary inclusion of security.h. + * src/ult_src.c: Likewise. + +Sun Sep 26 22:47:02 BST 2010 Colin Watson + + * src/manp.c (mkcatdirs): Move to ... + * src/check_mandirs.c (mkcatdirs): ... here, as it's only used by + testmandirs. Removes dependency of manp.c on security.h. + * src/manp.h (mkcatdirs): Remove prototype. + * src/Makefile.am (catman_SOURCES, manpath_SOURCES, whatis_SOURCES): + Remove fake_security.c. + +Sun Sep 26 22:34:17 BST 2010 Colin Watson + + * src/security.c (remove_with_dropped_privs): Remove; no longer + used. + * src/fake_security.c (remove_with_dropped_privs): Likewise. + * src/security.h (remove_with_dropped_privs): Likewise. + +Sun Sep 26 22:23:26 BST 2010 Colin Watson + + * lib/Makefile.am (libman_la_LIBADD): Use $(LTLIBOBJS) rather than + $(LIBOBJS). + +Sun Sep 26 22:08:39 BST 2010 Colin Watson + + Build libman and libmandb as shared libraries, reducing our + installed footprint by about 200K. + + * configure.ac: Add LT_INIT. Move AC_GNU_SOURCE up to above it. + Remove redundant AC_PROG_RANLIB. + * gnulib/m4/gnulib-cache.m4: Enable libtool support. + * gnulib/m4/libtool.m4, gnulib/m4/ltoptions.m4, + gnulib/m4/ltsugar.m4, gnulib/m4/ltversion.m4, + gnulib/m4/lt~obsolete.m4, tools/ltmain.sh: New files, created by + libtoolize. + * autogen.sh: Export LIBTOOLIZE_OPTIONS=--quiet. + * lib/Makefile.am: Switch to libtool. Add ../gnulib/lib/libgnu.la, + $(LIBCOMPRESS), and @LIBINTL@ to LIBADD. Install the library in + $(pkglibdir), and instruct libtool to set an RPATH on binaries + built against this library. + * libdb/Makefile.am: Switch to libtool. Add ../lib/libman.la to + LIBADD. Install the library in $(pkglibdir), and instruct libtool + to set an RPATH on binaries built against this library. + * src/Makefile.am (LIBMAN): Reduce to libman. + (LIBMANDB): Reduce to libmandb. + (accessdb_LDADD, catman_LDADD, globbing_LDADD, lexgrog_LDADD, + man_LDADD, manconv_LDADD, mandb_LDADD, manpath_LDADD, + whatis_LDADD, zsoelim_LDADD): Remove dependencies of libman and + libmandb. + * .bzrignore: Add **/*.la, **/*.lo, **/.libs, and ./libtool. + * NEWS: Document this. + + Avoid symbol clashes between libgnu and libman. + + * lib/hashtable.c (null_hash_free, plain_hash_free, hash_create, + hash_lookup_structure, hash_lookup, hash_install, hash_remove, + hash_free): Rename to ... + (null_hashtable_free, plain_hashtable_free, hashtable_create, + hashtable_lookup_structure, hashtable_lookup, hashtable_install, + hashtable_remove, hashtable_free): ... these. Update all callers + and prototypes. + * lib/hashtable.h (hash_free_ptr): Rename to ... + (hashtable_free_ptr): ... this. Update all users. + +Thu Sep 16 13:53:11 BST 2010 Robert Luberda + + * man/po4a/po/pl.po: Update from Translation Project. + +Tue Aug 17 15:31:38 BST 2010 Colin Watson + + * man/po4a/Makefile.am (clean-local): Make sure not to change PO or + POT files when removing generated translations. + +Tue Aug 17 15:26:12 BST 2010 Colin Watson + + Upgrade to Autoconf 2.67. + +Tue Aug 17 14:29:53 BST 2010 Colin Watson + + * src/man.c (display_catman): Add iconv to format_cmd before adding + a compressor. + * NEWS: Document this. + +Tue Aug 17 14:22:06 BST 2010 Colin Watson + + * src/man.c (add_output_iconv): Make static. + +Tue Jul 20 08:18:41 BST 2010 Colin Watson + + Upgrade to Gnulib 20100704. + + * configure.ac (AM_GNU_GETTEXT_VERSION): Upgrade to gettext 0.18.1. + +Wed May 19 12:38:31 BST 2010 Colin Watson + + * src/descriptions.c (parse_descriptions): Free record. + * src/encodings.c (check_preprocessor_encoding): Free directive. + (manconv_stdin): Free p. + * src/lexgrog_test.c (main): Free lg.filters and lg.whatis. + +Thu May 13 11:45:02 CEST 2010 Clytie Siddall + + * po/vi.po: Update from Translation Project. + +Mon May 10 09:42:41 CEST 2010 Yuri Kozlov + + * man/po4a/po/ru.po: Update from Translation Project. + +Sun May 9 07:37:14 BST 2010 Colin Watson + + * Version: 2.5.8-pre1. + * release.sh: Remove man/po4a/po/man-db-manpages.pot before running + 'make distcheck', to force it to be regenerated with the current + version number. + * man/po4a/Makefile.am: Make po/man-db-manpages.pot depend on + update-po, rather than using dist-hook which is too late. + * po/man-db.pot, po/*.po: Update. + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update. + +Sat May 8 15:39:49 BST 2010 Colin Watson + + * src/filenames.c (filename_info): Explicitly fail if the extension + is zero-length. + +Sat May 8 15:35:17 BST 2010 Colin Watson + + * src/filenames.c (filename_info): Allow section and extension to + differ as long as the first character is the same. (This is my + understanding of what the code was originally meant to do, but it + only worked if the section was exactly one character long.) + +Tue Apr 27 11:02:48 BST 2010 Colin Watson + + Upgrade to Gnulib 20100424. + +Fri Apr 2 20:44:11 BST 2010 Ville Skyttä + + * configure.ac: Only test for lzma if xz is missing. Add xz to list + of compressors checked when deciding whether to define COMP_CAT or + COMP_SRC. + * include/comp_src.h.in (comp_list): If xz is available, use it for + .lzma files in preference. + +Fri Apr 2 20:26:41 BST 2010 Ville Skyttä + + * include/comp_src.h.in (comp_list): If compress is not available, + use gzip to handle .Z files. + +Mon Mar 29 09:36:00 BST 2010 Clytie Siddall + + * po/vi.po: Update from Translation Project. + +Wed Mar 24 11:04:46 GMT 2010 Colin Watson + + Fix build regression when GNU_NROFF is undefined (Savannah bug + #29318). + + * src/man.c (add_col): New function, split out from + make_display_command. + (make_roff_command): Reinstate tbl/col logic here, as by the time + we get to make_display_command we've forgotten whether tbl was + used. + (make_display_command): Remove tbl/col logic, useless here. Use + add_col. + +Sun Mar 21 21:59:54 GMT 2010 Tanguy Ortolo + + * src/man.c (main): Try underscore-separated subpages as well as + hyphen-separated ones (Debian bug #574641). + * man/man1/man.man1 (Finding manual pages): Document this. + * NEWS: Document this. + +Wed Mar 17 10:26:44 GMT 2010 Colin Watson + + * gnulib: Import localcharset module. + * src/encodings.c (struct charset_entry): Rename locale_charset to + charset_from_locale. Update all users. + (struct less_charset_entry): Likewise. + (get_locale_charset): Use locale_charset function from Gnulib, + rather than dealing with nl_langinfo and the fallback ourselves. + (get_default_device): Rename locale_charset parameter to + charset_from_locale. + (get_less_charset): Likewise. + (get_jless_charset): Likewise. + * src/tests/Makefile.am (TESTS_ENVIRONMENT): Add + @LOCALCHARSET_TESTS_ENVIRONMENT@. + +Sat Mar 13 22:15:54 GMT 2010 Colin Watson + + * man/check-man: Ignore "table wider than line width" warnings for + Dutch too. + +Sat Mar 13 21:33:48 GMT 2010 Colin Watson + + Upgrade to Gnulib 20100308. + +Thu Mar 11 01:26:56 GMT 2010 Colin Watson + + * configure.ac: Add AM_MAINTAINER_MODE. In the modern world, + timestamps are often just too fragile for those make targets to + work well; use ./autogen.sh instead. + +Tue Mar 2 19:11:44 GMT 2010 Darren Salt + + Add support for XZ-compressed manual pages (Debian bug #572233). + + * configure.ac: Check for xz. + * include/comp_src.h.in (comp_list): Add xz. + * include/manconfig.h.in: Define UNXZ. + * NEWS: Document this. + +Tue Mar 2 10:04:54 GMT 2010 Colin Watson + + Fix assertion failure on 'man -l' with an uncompressed page and + prefixed input (no-hyphenation, no-justification, or a non-English + page). + + * lib/pipeline.c (command_new_passthrough): New function. + * lib/pipeline.h (command_new_passthrough): Add prototype. + * src/man.c (display): Allow zero-command decompression pipelines + with prefix sequences. In that case, append a passthrough command + to the prefix sequence, and append the prefix sequence to the + decompression pipeline rather than replacing its first command. + * NEWS: Document this. + +Tue Mar 2 09:31:36 GMT 2010 Colin Watson + + * man/po4a/po/nl.po: New from Translation Project (thanks, Erwin + Poeze). + * configure.ac (AC_CONFIG_FILES): Add man/nl/Makefile. + * man/LINGUAS.po4a: Add nl. + * man/Makefile.am (DIST_SUBDIRS): Add nl. + * man/nl/Makefile.am, man/nl/translator.add: New files. + * man/po4a/Makefile.am (POFILES): Add po/nl.po. + * man/po4a/po4a.cfg (po4a_langs): Add nl. + * man/THANKS: Credit Erwin Poeze with man/nl as well as nl.po. + * .bzrignore: Add man/nl/man1, man/nl/man5, and man/nl/man8. + +Thu Feb 18 01:38:04 GMT 2010 Colin Watson + + * src/man.c (locale_macros): Explicitly set groff's hyphenation + language, to ensure that it only hyphenates languages it knows + about (Debian bug #570247). + +Tue Feb 16 23:11:58 GMT 2010 Colin Watson + + * Version: 2.5.7. + * po/man-db.pot, po/*.po: Update. + +Tue Feb 16 23:09:11 GMT 2010 Colin Watson + + * src/manp.c (get_catpath): Fix handling of non-translated cat + paths. + +Sun Feb 14 00:19:47 GMT 2010 Colin Watson + + Always save cat pages in UTF-8 (Debian bug #446741). + + * src/encodings.c (struct directory_entry): Remove + standard_output_encoding member. + (directory_table): Likewise. + (get_standard_output_encoding): Remove. + * src/encodings.h (get_standard_output_encoding): Remove prototype. + * src/man.c (my_locale_charset): New function, with code moved from + make_roff_command. + (make_roff_command): Return pipeline output encoding in a new + output parameter. Remove enforcement that cat pages could only be + saved for the manual hierarchy's default character set. Move + post-cat-page pipeline elements to ... + (add_output_iconv, make_display_command): ... here. + (make_display_command): Remove code for handling a named input + file, which has been unused for some time. New encoding argument. + (open_cat_stream): New encoding argument. Convert from it to + UTF-8 while saving the cat page. + (format_display_and_save): New encoding argument, passed to + open_cat_stream. + (display_catman): New encoding argument. Convert from it to UTF-8 + while saving the cat page. + (display): Get formatted encoding from make_roff_command and pass + it to display_catman, make_display_command, and + format_display_and_save. Assume UTF-8 when displaying an existing + cat page. + * NEWS: Document this. + +Sat Feb 13 14:25:42 GMT 2010 Vincent Lefèvre + + * lib/decompress.c (decompress_open): Fix sense of directory check + (Debian bug #537434). + +Mon Feb 8 07:01:35 GMT 2010 Colin Watson + + * src/manp.c (get_catpath): Handle man -> cat substitution correctly + for translated cat pages. + +Mon Feb 8 04:57:09 GMT 2010 Colin Watson + + * src/man.c (format_display_and_save): Use sigaction, not signal. + +Mon Feb 8 04:29:42 GMT 2010 Colin Watson + + * gnulib: Import getopt-gnu module rather than the obsolete getopt. + +Mon Feb 1 12:18:36 PST 2010 Colin Watson + + * lib/pipeline.c (pipeline_wait): Don't bother printing error + messages for SIGINT and SIGQUIT, since these correspond to + explicit user actions (Debian bug #568000). + +Sun Jan 31 03:44:59 GMT 2010 Colin Watson + + * src/manconv.c (try_iconv): Don't lose iconv errors from converting + to UTF-8 when the target encoding is not UTF-8. + +Sun Jan 31 03:33:33 GMT 2010 Colin Watson + + Upgrade to Automake 1.11.1 and Gnulib 20100109. + +Thu Jan 14 11:51:59 GMT 2010 Colin Watson + + * src/whatis.c (search): "%s: nothing appropriate." is an error; + write it to stderr, not stdout (Debian bug #565255). + +Wed Jan 13 23:42:00 GMT 2010 Werner Fink + + Add support for using socketpair(2) as a replacement for pipe(2), + which is faster on some systems (Savannah patch #6741). + + * configure.ac: Add --enable-socketpair-pipe option. + * m4/man-socketpair.m4: New file. + * lib/pipeline.c [USE_SOCKETPAIR_PIPE]: Redefine pipe() to a + construction based on socketpair(). + * NEWS: Document this. + +Wed Jan 13 22:04:23 GMT 2010 Colin Watson + + Upgrade to Autoconf 2.65 and Gnulib 20091120. + +Wed Jan 13 18:26:47 GMT 2010 Diego Pettenò + + Add support for heirloom-doctools (Savannah patch #6933). + + * configure.ac: Substitute TROFF. + * manual/Makefile.am (.pp.dvi, .pp.ps, .pp.tdvi, .pp.html): Use + $(TROFF) rather than groff or troff. + * src/man.c (options, parse_opt): Just ignore the --warnings option + when troff is not groff, rather than compiling it out entirely. + (make_roff_command): Only use gxditview variable when troff is + groff. + * NEWS: Document this. + +Tue Jan 12 13:33:51 GMT 2010 Samuel Thibault + + * lib/pipeline.c (pipeline_pump): Fix off-by-one error when write + returns EAGAIN (Debian bug #564818). + +Fri Jan 1 17:03:18 GMT 2010 Colin Watson + + * README (Copyright and licensing): Update copyright years. + +Fri Jan 1 13:26:21 GMT 2010 Colin Watson + + * src/manconv.c (try_iconv): Only handle iconv errors when iconv + returned -1. + +Fri Jan 1 11:37:13 GMT 2010 Colin Watson + + * src/manconv.c (try_iconv): Handle iconv errors when attempting to + convert the last input encoding to UTF-8 (Debian bug #562503). + * src/tests/manconv-3: Add test for this. + * src/tests/Makefile.am (TESTS): Add manconv-3. + +Tue Dec 15 14:10:19 GMT 2009 Colin Watson + + * src/mandb.c (main): Fix possible crash when MAN_MUST_CREATE is + unset. + * NEWS: Document this. + +Tue Dec 15 13:47:50 GMT 2009 Colin Watson + + * lib/debug.c (init_debug): New function: check for MAN_DEBUG=1 in + the environment. + * include/manconfig.h.in (init_debug): Add prototype. + * src/accessdb.c (main), src/catman.c (main), src/globbing_test.c + (main), src/lexgrog_test.c (main), src/man.c (main), + src/manconv_main.c (main), src/mandb.c (main), src/manpath.c + (main), src/whatis.c (main), src/zsoelim_main.c (main): Call + init_debug. + * NEWS: Document this. + +Sat Dec 12 00:36:14 GMT 2009 Robert Luberda + + * man/po4a/po/pl.po: Update from Translation Project. + +Tue Dec 1 17:01:19 GMT 2009 Colin Watson + + * src/man.c (do_extern): Pass section through to external program + (Savannah bug #28145). Fix passing of alternate system name to use + -m rather than -s. + +Tue Nov 24 18:27:59 GMT 2009 Robert Luberda + + * po/pl.po: Update from Translation Project. + +Wed Nov 18 14:58:52 GMT 2009 Yuri Kozlov + + * man/po4a/po/ru.po: Update from Translation Project. + +Wed Nov 18 14:55:31 GMT 2009 Yuri Kozlov + + * po/ru.po: Update from Translation Project. + +Wed Nov 18 14:52:43 GMT 2009 Erwin Poeze + + * po/nl.po: Update from Translation Project. + +Sun Nov 15 22:49:35 GMT 2009 Colin Watson + + * README (Non-generic arguments to configure): Use more readable + formatting. + * manual/options-only.me, manual/print-options: New file. + * manual/intro.me (Arguments to configure): Add hooks for + options-only.me. + * manual/Makefile.am (dist_noinst_DATA): Add options-only.me and + print-options. + +Sun Nov 15 16:15:56 GMT 2009 Colin Watson + + * docs/HACKING (Revision control): Savannah has disabled bzr+ssh for + the time being; update push URL. + +Sun Nov 15 16:05:26 GMT 2009 Colin Watson + + * Version: 2.5.7-pre1. + * po/man-db.pot, po/*.po: Update. + +Sun Nov 15 14:30:27 GMT 2009 Colin Watson + + * NEWS: Document previous change. + +Sun Nov 15 14:18:35 GMT 2009 Colin Watson + + * src/man.c (compare_candidates): Prefer getting a page from the + best manual section over getting a page in the correct language; I + have my reservations about this, but it seems to be what people + are requesting (Debian bug #519547). + +Sun Nov 15 14:02:11 GMT 2009 Colin Watson + + Search man directories in the GNU layout (Debian bug + #519807, Arch Linux bug #13734). + + * src/globbing.c (match_in_directory): Optionally take allocated + count from caller. If it's non-zero, don't clear the glob. + (look_for_file): In the GNU layout, search all subdirectories of + hier that begin with the first character of the section. + * NEWS: Document this. + +Sun Nov 15 13:32:58 GMT 2009 Colin Watson + + * src/globbing.c (match_in_directory): Make this void; checking + whether any glob matches were returned is sufficient. Move + glob-clearing code to ... + (clear_glob): ... here (new function). + (look_for_file): Simplify since we now only need to check + gbuf.gl_pathc == 0, not the return value of match_in_directory as + well. Clear gbuf on entry. + +Sun Nov 15 13:18:38 GMT 2009 Colin Watson + + * src/tests/lexgrog-1, src/tests/man-1, src/tests/manconv-1, + src/tests/manconv-2, src/tests/mandb-1, src/tests/mandb-2: Use + 'diff -u', which produces more helpful output on failures. + +Sat Nov 14 20:10:57 GMT 2009 Colin Watson + + * README (System specific notes): Remove entirely. The notes about + Linux here only pertain to thoroughly obsolete systems. + +Sat Nov 14 20:08:40 GMT 2009 Colin Watson + + * configure.ac: Handle Ultrix-4.3a -YPOSIX requirement + automatically. + * README (System specific notes): Remove note about Ultrix-4.3a. + +Sat Nov 14 19:14:02 GMT 2009 Colin Watson + + * lib/README: Copyright is not the same as licensing; fix confusion. + +Sat Nov 14 18:57:42 GMT 2009 Colin Watson + + * src/man.c (options): Add --nh and --nj aliases for + --no-hyphenation and --no-justification respectively. + * man/man1/man.man1 (Controlling formatted output): Document new + aliases. + +Sat Nov 14 18:52:15 GMT 2009 Colin Watson + + * lib/pipeline.c (argstr_get_word): Fix a small memory leak. + +Sat Nov 14 18:51:37 GMT 2009 Colin Watson + + Do what the user probably means when the full path to an executable + is given as an argument (Debian bug #505465). + + * lib/pathsearch.c (directory_on_path): New function. + * lib/pathsearch.h (directory_on_path): Add prototype. + * src/manp.c (get_manpath_from_path): Make external. Add 'mandatory' + argument to control the addition of MANDATORY_MANPATH entries. + (guess_manpath): Update caller. + * src/manp.h (get_manpath_from_path): Add prototype. + * src/man.c (main): Move locale manpath expansion to ... + (locale_manpath): ... here (new function). + (local_man_loop): If the argument is an executable, try looking up + the corresponding manual page in the appropriate part of the + manpath, rather than just trying to format the text of the + executable as a manual page. + * NEWS: Document this. + +Sat Nov 14 10:28:29 GMT 2009 Colin Watson + + Add option to disable justification (Debian bug #440047). + + * src/man.c (options, parse_opt): Accept --no-justification. Reset + corresponding variable with -D. + (disable_justification): New function. + (display): Append disable_justification to the decompressor + pipeline if --no-justification is used. + * man/man1/man.man1 (SYNOPSIS, Controlling formatted output): + Document --no-justification. + * NEWS: Document this. + +Sat Nov 14 10:23:28 GMT 2009 Colin Watson + + * include/manconfig.h.in (ATTRIBUTE_NORETURN): Define to an + attribute marking a function as non-returning if using GCC 2.5 or + newer. + * lib/pipeline.c (command_new_sequence, command_sequence_command): + New functions. + (command_dup, command_dump, command_tostring, command_free): + Handle commands of type COMMAND_SEQUENCE. + (pipeline_start): Move command execution to ... + (command_start_child): ... here (new function). Handle commands of + type COMMAND_SEQUENCE. + * lib/pipeline.h (enum command_tag): Add COMMAND_SEQUENCE. + (struct command): Add support for commands that consist of a + sequence of commands. + (command_new_sequence, command_sequence_command): Add prototypes. + * src/man.c (disable_hyphenation, locale_macros): Drop passthrough + code. + (display): Create a command sequence for hyphenation and + locale-macro decompressor prefixes if necessary. + +Mon Nov 9 16:59:47 GMT 2009 Colin Watson + + * configure.ac: Define a CROSS_COMPILING conditional if + cross-compiling. + * man/Rules.man, src/tests/Makefile.am: Don't run tests if + cross-compiling. + * NEWS: Document this. + +Mon Nov 9 16:53:10 GMT 2009 Colin Watson + + Upgrade to Gnulib 20090915. + +Mon Nov 9 16:27:44 GMT 2009 Colin Watson + + * src/encodings.c (find_charset_locale): New function. + * src/encodings.h (find_charset_locale): Add prototype. + * src/man.c (make_roff_command): When invoking col, ensure that + LC_CTYPE is set to an appropriate locale for the selected + character set (Debian bug #555331). + * NEWS: Document this. + +Thu Oct 8 23:22:57 BST 2009 Colin Watson + + * src/encodings.c: Include for dup and STDIN_FILENO. + +Thu Oct 1 01:08:40 BST 2009 Colin Watson + + * src/accessdb.c (parse_opt), src/lexgrog_test.c (parse_opt), + src/whatis.c (parse_opt): Turn off ARGP_HELP_PRE_DOC to avoid + problems with translations of documentation strings beginning with + a vertical tab separator (i.e. no pre-option documentation). + +Thu Sep 24 12:32:48 BST 2009 Colin Watson + + * lib/pipeline.c (pipeline_pump): When a source pipeline dies, make + sure to drain its output before discarding its output file + descriptor (Debian bug #548153). We still record the death to + avoid duplicate debugging messages. + * NEWS: Document this. + +Tue Sep 22 00:53:42 BST 2009 Colin Watson + + * src/encodings.c (get_default_device): If the locale encoding is + ASCII, then use the ascii device even if preconv is available; it + will do a better job than producing UTF-8 output and then recoding + that to ASCII (Debian bug #547695). + +Sat Sep 19 15:02:20 BST 2009 Clytie Siddall + + * po/vi.po: Update from Translation Project. + +Fri Sep 11 01:19:41 BST 2009 Colin Watson + + * man/po4a/po/id.po: Fix syntax error. + +Wed Sep 9 14:42:18 BST 2009 Colin Watson + + * man/man1/man.man1 (General options): Refer to the "Warnings" node + in 'info groff' for a list of available warning names (Debian bug + #545805). + +Wed Sep 9 14:36:39 BST 2009 Arif E. Nugroho + + * man/po4a/po/id.po: Update from Translation Project. + +Tue Sep 8 19:14:23 BST 2009 Arif E. Nugroho + + * po/id.po: Update from Translation Project. + +Wed Aug 26 01:12:20 BST 2009 Colin Watson + + * Version: 2.5.6. + * po/man-db.pot, po/*.po: Update. + +Wed Aug 26 01:07:16 BST 2009 Colin Watson + + * src/whatis.c (display): Include the section in the hash key used + to determine whether a page has already been displayed. + +Wed Aug 26 00:20:45 BST 2009 Colin Watson + + * libdb/db_store.c (compare_ids): Fix documentation of return + values. + (replace_if_necessary): Don't replace ULT_MAN or SO_MAN with + lesser ids just because the mtime is newer. (This still satisfies + Debian bug #490582, but doesn't cause the database to be rebuilt + every time mandb runs on hierarchies with both symlinks and whatis + entries for the same name.) + +Tue Aug 25 17:07:05 BST 2009 Colin Watson + + * src/lexgrog.l (zh_CN_name, zh_TW_name): Add alternative + translation "åå­—", seen in testprns(1). + +Tue Aug 25 17:05:51 BST 2009 Colin Watson + + * src/tests/man-1: Restrict manpath to test directories. + +Tue Aug 25 10:30:58 BST 2009 Colin Watson + + * Makefile.am (EXTRA_DIST): Add .bzrignore, + gnulib/lib/xmalloc.c.orig, gnulib/m4/intldir.m4, + gnulib/m4/sockpfaf.m4, and release.sh, for consistency between + revision control and the distribution. + +Tue Aug 25 09:48:39 BST 2009 Colin Watson + + * po/POTFILES.in: Remove src/wrapper.c. + +Sun Aug 23 15:49:45 BST 2009 Colin Watson + + * lib/pipeline.c (command_dup): Fix newcmd->nenv assertion. + +Sun Aug 23 15:41:32 BST 2009 Colin Watson + + * lib/pipeline.c (command_dup, command_setenv): cmd->env does not + need to be { NULL, NULL }-terminated. + +Sun Aug 23 11:25:50 BST 2009 Colin Watson + + * Makefile.am (EXTRA_DIST): Distribute gnulib/m4/gnulib-tool.m4. + +Sun Aug 23 11:21:40 BST 2009 Colin Watson + + * Makefile.am (EXTRA_DIST): Distribute gnulib/lib/xmalloc.patch. + +Sun Aug 23 11:15:53 BST 2009 Colin Watson + + * docs/man-db.lsm (Keywords): Add accessdb and lexgrog. + +Sun Aug 23 11:14:04 BST 2009 Colin Watson + + * docs/INSTALL.autoconf: Update to instructions from Autoconf 2.64. + +Sun Aug 23 11:11:02 BST 2009 Colin Watson + + * m4/man-bdb.m4: Bump serial, forgotten in most recent change. + +Sun Aug 23 11:07:26 BST 2009 Colin Watson + + * lib/README: Update. + +Sun Aug 23 10:56:50 BST 2009 Colin Watson + + * docs/TODO: Remove entry about the other 'man' package; 'man -K' + was the last major missing feature relative to it. + * docs/HACKING (Testing): Document new test suite. + +Sun Aug 23 10:51:33 BST 2009 Colin Watson + + * tools/README: Don't bother describing files installed here by the + autotools. + +Sun Aug 23 10:47:16 BST 2009 Colin Watson + + * src/README.zsoelim: Remove, merging text into ... + * src/zsoelim.l: ... here. + * src/Makefile.am (EXTRA_DIST): Remove README.zsoelim. + +Sun Aug 23 10:36:28 BST 2009 Colin Watson + + Remove the old set-id wrapper, which hasn't been recommended for + several years now. + + * src/wrapper.c: Remove. + * src/Makefile.am (noinst_PROGRAMS, wrapper_LDADD, wrapper_SOURCES): + Remove. + +Sun Aug 23 10:26:32 BST 2009 Colin Watson + + * README: Various minor updates. + +Sun Aug 23 00:13:56 BST 2009 Colin Watson + + * manual/Makefile.am (noinst_DATA): Move $(MANUAL).dvi to ... + (CLEANFILES): ... here. + (install-data-hook): Stop installing the DVI version of the manual + by default. + +Sun Aug 23 00:07:03 BST 2009 Colin Watson + + * configure.ac: Add --enable-automatic-create, + --disable-automatic-update, and --disable-cats options. + * include/manconfig.h.in (MAN_DB_CREATES, MAN_DB_UPDATES, MAN_CATS): + Remove. + * manual/intro.me (Arguments to configure): Document new options. + * manual/misc.me (Modes of operation): Adjust configuration advice + to use new configure options. + * README (Non-generic arguments to configure): Update. + * NEWS: Document this. + +Sun Aug 23 00:04:56 BST 2009 Colin Watson + + * lib/pipeline.c (command_setenv): New function, allowing + application code to ask for environment variables to be set when a + command is executed. + (command_new, command_new_function, command_dup, command_dump, + command_tostring, command_free): Handle new nenv, env_max, and env + members of 'struct command'. + (argstr_get_word): Add TODO comment for environment variable + support. + (pipeline_start): Set environment variables as requested. + * lib/pipeline.h (struct command_env): New structure. + (struct command): Add nenv, env_max, and env members. + (command_setenv): Add prototype. + * src/man.c (run_mandb): Set MAN_MUST_CREATE=1 environment variable + if create is true. + * src/mandb.c (main): If --create was passed and no databases were + created, only exit non-zero if MAN_MUST_CREATE=1. + +Sat Aug 22 15:34:15 BST 2009 Colin Watson + + Cope with some more cases of database corruption (Debian bug + #187750). + + * libdb/db_store.c (dbstore): Always replace existing keys once + we've decided we ought to. If the key already exists in the + database, then that probably indicates some kind of database + corruption, but our new key is almost certainly better. + * src/check_mandirs.c (sanity_check_db): New function, checking + dbver_rd and ensuring that all keys have non-NULL content. + (update_db): Use sanity_check_db to decide whether an existing + database is OK. + + * src/accessdb.c (main): If we encounter a key with no content, + print a debugging message and continue as far as we can before + exiting non-zero, rather than just silently exiting non-zero + immediately. + +Sat Aug 22 14:58:39 BST 2009 Colin Watson + + * src/tests/mandb-2: Run mandb with a clean path, and only on the + test manual page hierarchy (already done for the second instance, + but not the first). + +Sat Aug 22 14:51:25 BST 2009 Yuri Kozlov + + * po/ru.po: Update from Translation Project. + +Sat Aug 22 14:42:49 BST 2009 Colin Watson + + * src/manconv.c (try_iconv): When trying the last source encoding in + the list, ignore characters not representable in UTF-8 (which + almost certainly means codepoints that do not exist in the source + encoding). + * src/tests/manconv-2: Add test for this. + +Thu Aug 20 23:52:28 BST 2009 Yuri Kozlov + + * man/po4a/po/ru.po: Update from Translation Project. + +Thu Aug 20 15:17:54 BST 2009 Colin Watson + + * src/lexgrog.l (MAX_NAME): Increase from 2048 to 8192, since some + manual pages with NAME sections exceeding 2048 bytes have been + observed in the wild (Debian bug #489907). + +Thu Aug 20 15:05:38 BST 2009 Colin Watson + + * src/encodings.c (check_preprocessor_encoding): Break coding tag + search loop if pp_search is NULL, fixing a segfault (introduced by + the fix for Debian bug #496604) if there is a preprocessor comment + line with no coding tag. + * src/tests/manconv-1: Add a test for this bug. + +Thu Aug 20 09:52:23 BST 2009 Colin Watson + + * libdb/db_store.c (replace_if_necessary): Always replace if the + mtime of the new data is newer than that of the old data, + regardless of the id (Debian bug #490582). + + * src/tests/testlib.sh (next_second): New function. + * src/tests/mandb-2: New test for this bug. + * src/tests/Makefile.am (TESTS): Add mandb-2. + + * src/tests/mandb-1: Run mandb with a clean path, and only on the + test manual page hierarchy. + +Thu Aug 20 07:47:02 BST 2009 Colin Watson + + * src/man.c (run_mandb): If -C was given, pass it through to mandb. + (main): Treat the main configuration file as optional if -C was + given. + + * src/tests/testlib.sh (fake_config): Take the manual page + hierarchies to use as arguments. + (run_clean_path): New function. + * src/tests/man-1: New test, for Debian bug #163347 (apparently + fixed some time back). + * src/tests/Makefile.am (TESTS_ENVIRONMENT): Set CLEANPATH, so that + run_clean_path can run commands with a reduced PATH. + (TESTS): Add man-1. + +Wed Aug 19 20:23:00 BST 2009 Colin Watson + + * src/mandb.c (main): Treat the main configuration file as optional + if we're only producing user databases. This makes testing easier. + + * configure.ac, m4/man-bdb.m4 (MAN_CHECK_BDB): Define DBTYPE to + gdbm, ndbm, or btree, indicating the database type in use. + + * src/tests/testlib.sh (fake_config, db_ext, accessdb_filter): New + functions. + * src/tests/mandb-1: New test. + * src/tests/Makefile.am (TESTS_ENVIRONMENT): Set DBTYPE + appropriately in the test environment. + (TESTS): Add mandb-1. + +Wed Aug 19 12:17:25 BST 2009 Colin Watson + + * src/tests/testlib.sh (write_page): New function. + * src/tests/lexgrog-1: New (fairly trivial) test. + * src/tests/Makefile.am (TESTS): Add lexgrog-1. + +Wed Aug 19 00:10:58 BST 2009 Colin Watson + + * Version: 2.5.6-pre1. + * po/man-db.pot, po/*.po: Update. + +Tue Aug 18 23:53:50 BST 2009 Colin Watson + + * src/tests/Makefile.am (dist_check_SCRIPTS): Distribute test files. + +Tue Aug 18 23:39:28 BST 2009 Colin Watson + + * src/tests/Makefile: Remove; accidentally added to revision + control. + * .bzrignore: Ignore src/tests/Makefile. + +Tue Aug 18 09:47:50 BST 2009 Colin Watson + + * src/manconv.c (try_iconv): Convert text to UTF-8 and then (if + necessary) to the target encoding. This allows us to distinguish + between "text not in input encoding" and "characters not + representable in output encoding" (Debian bug #514963). + * src/tests/manconv-2: Add test for this and some other possible + encoding-handling bugs in manconv. + * src/tests/Makefile.am (TESTS): Add manconv-2. + * NEWS: Document this. + +Mon Aug 17 18:32:04 BST 2009 Colin Watson + + * src/tests/testlib.sh (init): New function. + (finish): Honour TEST_FAILURE_KEEP environment variable. + * src/tests/manconv-1: Use init function. Reverse diff arguments so + that failure output makes more sense. + +Mon Aug 17 00:56:20 BST 2009 Colin Watson + + * NEWS: Update. + +Mon Aug 17 00:38:12 BST 2009 Colin Watson + + * src/encodings.c (conversion_table): New table, with contents + mostly borrowed from groff's preconv. + (convert_encoding): New function. + (check_preprocessor_encoding): Loop through semicolon-separated + tags, and convert Emacs coding tags to ones that libiconv + understands (Debian bug #496604). + * src/tests/manconv-1: Test multiple tags. Test coding aliases. + +Sun Aug 16 23:52:38 BST 2009 Colin Watson + + * src/tests/testlib.sh: Add a simple test library, to be extended as + necessary. + * src/tests/manconv-1: Use it. + +Sun Aug 16 23:37:11 BST 2009 Colin Watson + + * src/tests/manconv-1: Simple test for manconv's handling of + Emacs-style coding: tags. + * src/tests/Makefile.am: New file. + * src/Makefile.am (SUBDIRS): Add tests. + * configure.ac (AC_CONFIG_FILES): Add src/tests/Makefile. + * .bzrignore: Ignore src/tests/tmp-*. + +Fri Aug 14 16:09:56 BST 2009 Colin Watson + + * tools/chconfig: Make executable. + +Fri Aug 14 12:20:16 BST 2009 Colin Watson + + * manual/Makefile.am (install-data-hook, uninstall-hook): + Install/uninstall the manual into/from $(docdir). + +Fri Aug 14 12:18:43 BST 2009 Colin Watson + + * docs/Makefile.am (dist_noinst_DATA): Move NEWS to ... + * Makefile.am (dist_noinst_DATA): ... here. + +Fri Aug 14 11:50:27 BST 2009 Colin Watson + + Move ChangeLog and NEWS to their more conventional location at the + top level. + + * docs/ChangeLog: Move to ... + * ChangeLog: ... here. + * docs/NEWS: Move to ... + * NEWS: ... here. + * README, docs/HACKING (Revision control, Release process), + src/check_mandirs.c: Update references. + +Fri Aug 14 11:43:41 BST 2009 Colin Watson + + * configure.ac: Use silent rules by default if Automake 1.11 is + available. + * man/Rules.man (replace.sed, .man1.1, .man5.5, .man8.8): Be quieter + in silent mode. + + Upgrade to Autoconf 2.64, Automake 1.11, and Gnulib 20090801. + +Mon Aug 3 17:13:19 BST 2009 Colin Watson + + * src/encodings.c (less_charset_table): Add CP1251 -> windows, per + less(1) (Debian bug #539690). + +Wed Jul 22 10:48:10 BST 2009 Colin Watson + + Make whatis/apropos only display any given manual page, or pointers + to it, once (Ubuntu bug #27113). + + * lib/hashtable.c (hash_lookup_structure): Make external. + * lib/hashtable.h (hash_lookup_structure): Add prototype. + * src/whatis.c (get_whatis): Split pointer resolution out to ... + (resolve_pointers): ... here. Only accept info->pointer == page if + info->name == page too. + (display): Use resolve_pointers so that we have the resolved name + to hand. Only display any given resolved name once. + (main): Initialise display_seen hash table. + * docs/NEWS: Document this. + +Tue Jul 21 22:05:01 BST 2009 Colin Watson + + * docs/NEWS: Fix typo. + +Tue Jul 21 15:17:49 BST 2009 Colin Watson + + * man/man1/man.man1 (Controlling formatted output, ENVIRONMENT): + Explicitly state that -P/$PAGER/$MANPAGER identifies a single + command with no pipes (Debian bug #363250). + +Mon Jul 20 10:59:00 BST 2009 Colin Watson + + * src/man.c (locale_macros): Fix groff version test not to think + that 1.20.1 >= 1.20.2. + +Tue Jul 14 22:48:56 BST 2009 Colin Watson + + * configure.ac: Add -Wredundant-decls to CFLAGS. + * lib/tempfile.c: Remove redundant declarations of mkstemp and + mkdtemp. + * src/manp.c: Remove redundant and unused declaration of + program_name. + * src/zsoelim.l: Add never-interactive option, partly because that's + reasonably accurate anyway and partly to suppress flex's redundant + declaration of isatty. + +Mon Jul 13 13:40:17 BST 2009 Colin Watson + + * src/man.c (options, parse_opt): New --no-subpages option. + (main): Try pairing up manual page names with hyphens unless + --no-subpages was given. + * ma/man1/man.man1 (SYNOPSIS, Finding manual pages): Document + --no-subpages. + * docs/NEWS: Document this. + +Mon Jul 13 01:17:41 BST 2009 Colin Watson + + * README (Copyright and licensing): Update copyright years. + +Mon Jul 13 00:48:32 BST 2009 Colin Watson + + * src/encodings.c (get_less_charset, get_jless_charset): Cope with + locale_charset being NULL; loosely based on a patch posted to + mingw-msys by Mark Junker + (http://osdir.com/ml/gnu.mingw.msys/2005-06/msg00012.html). + +Sun Jun 28 17:56:49 BST 2009 Colin Watson + + Don't create unnecessary database directories (Debian bug #472919). + + * src/check_mandirs.c (testmandirs): Add catpath and create + arguments. Create the database when it first seems to be needed. + Use mkcatdirs rather than make_database_directory. + (make_database_directory): Remove. + (create_db): Add catpath argument. Don't create the database here; + let testmandirs do it when needed instead. + (update_db): Add catpath argument. Don't create the database + directory; either it exists already in which case there's nothing + to do, or it's missing in which case there'll be no database to + update anyway. + * src/check_mandirs.h (create_db, update_db): Update prototypes. + * src/mandb.c (update_db_wrapper): Add catpath argument. + (mandb): Update calls to functions that now take the catpath too. + * src/manp.c (add_mandb_map): Don't create the cat hierarchy here; + testmandirs will do it on demand. + (mkcatdirs): Make external for use by check_mandirs.c. + * src/manp.h (mkcatdirs): Add prototype. + * docs/NEWS: Document this. + +Sun Jun 28 16:33:24 BST 2009 Colin Watson + + * man/man1/man.man1 (DESCRIPTION): Note that the exact rendering of + (e.g.) italic text may vary depending on the output device (Debian + bug #516808). + +Sun Jun 28 16:21:34 BST 2009 Colin Watson + + Implement 'man -K', which was the last major remaining missing + feature when comparing man-db with the man package (Debian bug + #135926, Ubuntu bug #390575). + + * src/man.c (options, parse_opt): New -K/--global-apropos option. + (main): Handle --global-apropos. + (locate_page): Skip database lookups in --global-apropos mode. + (grep, do_global_apropos_section, do_global_apropos): New + functions. + * src/man.h (do_global_apropos): Add prototype. + * man/man1/man.man1 (SYNOPSIS, Main modes of operation): Document + -K/--global-apropos. + * docs/NEWS: Document this. + +Sun Jun 28 10:31:16 BST 2009 Colin Watson + + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: po4a 0.36 tags + "type:" comments as extracted comments rather than translator + comments. Upgrade our .pot and .po files to match. + +Sun Jun 28 02:04:55 BST 2009 Colin Watson + + * src/manp.c (get_nls_manpath): Close mandir, fixing a memory leak. + +Sun Jun 28 01:47:51 BST 2009 Colin Watson + + * lib/pipeline.c (pipeline_free): Free buffer and line_cache. + +Sun Jun 28 01:40:24 BST 2009 Colin Watson + + * lib/pipeline.c (get_line): Limit newline search to the data length + returned by get_block, fixing an assertion failure. + * docs/NEWS: Document this. + +Mon Jun 22 08:02:55 BST 2009 Colin Watson + + * src/descriptions.c (parse_descriptions): Strip leading and + trailing whitespace from name tokens before checking whether they + contain whitespace. + * docs/NEWS: Document this. + +Sun Jun 21 02:55:56 BST 2009 Colin Watson + + * docs/NEWS: Document previous change. + +Sun Jun 21 02:20:22 BST 2009 Colin Watson + + * libdb/db_lookup.c (dblookup): In exact mode, make sure extensions + match exactly, rather than merely that the extension found is a + prefix of that which was requested (Arch Linux bug #14467). + +Sun Jun 21 02:00:31 BST 2009 Colin Watson + + * src/ult_src.c (ult_src): Keep a copy of base before passing it to + decompress_open, as that function doesn't keep its own copy and we + may change base later. + +Sat Jun 20 21:26:02 BST 2009 Colin Watson + + * libdb/db_store.c (replace_if_necessary): Prevent misleading + debugging message: don't say "ignoring differing ids" if the new + id was preferred and we attempted a replacement. + +Sat May 30 12:50:44 BST 2009 Colin Watson + + * lib/pipeline.c (pipeline_start): Check the return value of nice. + + * include/manconfig.h.in (create_tempdir): Warn if the result is not + used. + * lib/tempfile.c (create_tempdir): Check the return value of + mkdtemp. + * src/man.c (format_display): Check the return value of + create_tempdir. + +Sat May 30 13:37:58 CEST 2009 Colin Watson + + * src/man.c (make_roff_command): Initialise page_encoding. + +Wed May 13 18:28:44 BST 2009 Colin Watson + + * gnulib: Upgrade to 20090501. + * tools/config.guess, tools/config.sub: Update. + +Wed Apr 22 15:50:51 BST 2009 Colin Watson + + * src/lexgrog.l (lt_name): Add. + +Wed Apr 15 00:34:06 BST 2009 Colin Watson + + * man/it/man1/whatis.man1 (STATI D'USCITA): Fix section heading + (formerly "STATI D?USCITA") to match man(1) and apropos(1). + Reported by Ken Moffat. + +Wed Apr 15 00:33:16 BST 2009 Colin Watson + + * man/check-man: Set MAN_KEEP_FORMATTING=1, since a UTF-8-aware col + (such as that in util-linux-ng) will object to being asked to + process non-ASCII text under LC_ALL=C. Reported by Ken Moffat. + * docs/NEWS: Document this. + +Wed Apr 15 00:31:00 BST 2009 Colin Watson + + * docs/NEWS: Start 2.5.6. + +Wed Apr 15 00:22:54 BST 2009 Colin Watson + + * .bzrignore: Ignore gnulib/lib/glthread/.deps and + gnulib/lib/glthread/.dirstamp. + +Wed Apr 15 00:20:45 BST 2009 Colin Watson + + Upgrade to Autoconf 2.63, Automake 1.10.2, and Gnulib 20090401. + +Tue Apr 14 23:59:40 BST 2009 Colin Watson + + Call gnulib-tool after autopoint, and only use the gettext macros + supplied via gnulib. This is required to work properly with current + versions of gettext and gnulib; see + http://lists.gnu.org/archive/html/bug-gnulib/2009-03/msg00154.html + and thread. + + * autogen.sh: If gnulib-tool is installed, call autopoint first and + prevent autoreconf from calling it later. Remove special handling + of tools/config.rpath, which is not necessary with this approach. + * Makefile.am (ACLOCAL_AMFLAGS): Put gnulib/m4 before m4, so that + autopoint puts its macros in gnulib/m4 (later overwritten by + gnulib-tool). + +Mon Mar 23 14:32:25 GMT 2009 Arif E. Nugroho + + * po/id.po, man/po4a/po/id.po: Update from Translation Project. + +Wed Mar 18 01:10:50 GMT 2009 Colin Watson + + * docs/HACKING (Revision control): Moved bzr archive to Savannah; + update URLs and note that this now allows access to other members + of the man-db group on Savannah. + +Mon Mar 16 11:42:35 GMT 2009 Colin Watson + + * Makefile.am (EXTRA_DIST): Distribute gnulib/m4/gnulib-cache.m4. + +Mon Mar 16 10:39:40 GMT 2009 Yuri Kozlov + + * man/po4a/po/ru.po: Update from Translation Project. + +Sun Mar 15 13:13:40 GMT 2009 Colin Watson + + Apparently some packages ship section 0 manual pages documenting C + library header files. See http://bugs.archlinux.org/task/13734 and + http://en.wikipedia.org/wiki/Manual_page_(Unix). + + * configure.ac (--with-sections): Add section 0 between 3 and 2. + * man/man5/manpath.man5 (FORMAT): Update documentation of SECTION. + * src/man_db.conf.in (SECTION): Update documentation. + +Sun Mar 15 01:08:16 GMT 2009 Colin Watson + + * gnulib: Import the sigaction, signal, and sigprocmask modules. + +Sat Mar 14 22:44:33 GMT 2009 Colin Watson + + * Version: 2.5.5. + +Sat Mar 14 22:42:39 GMT 2009 Colin Watson + + * man/check-man: Ignore "cannot adjust line" and "can't break line" + groff warnings for all languages, not just CJK; long + %manpath_config_file% values during 'make distcheck' cause + problems here at the moment. + +Sat Mar 14 18:51:22 GMT 2009 Colin Watson + + * man/check-man: Force MANWIDTH to 80. Ignore "table wider than line + width" warnings from groff >= 1.20 for now. + +Sat Mar 14 18:34:26 GMT 2009 Arif E. Nugroho + + * man/po4a/po/id.po: Update from Translation Project. + +Sat Mar 14 13:54:13 GMT 2009 Colin Watson + + * man/Makefile.am (EXTRA_DIST): Distribute check-man. + + * src/manp.c (read_config_file): Add argument to control whether the + main configuration file is optional. Use a static variable to + track whether we've been called already. + (get_manpath): read_config_file will keep track of whether it's + been called already for itself. Pass new argument. + * src/manp.h (read_config_file): Update prototype. + * src/man.c (main): Treat the main configuration file as optional if + -l was given, since in that case we can get by well enough without + it. This makes it easier to run 'make check' without first running + 'make install'. + +Sat Mar 14 12:07:58 GMT 2009 Colin Watson + + * docs/NEWS: Start 2.5.5. + +Sat Mar 14 00:29:51 GMT 2009 Dustin Marquess + + * src/man.c (sort_candidates): Initialise count (Debian bug + #519647). + +Tue Mar 10 23:46:08 GMT 2009 Will Day + + * man/man1/man.man1 (Controlling formatted output): Fix missing + backslash in -r default (Debian bug #519162). + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update. + +Tue Mar 10 23:24:27 GMT 2009 Colin Watson + + Fix handling of pages that declare a non-default encoding in their + preprocessor lines. Thanks to Hugo Herbelin for some of the ideas + here (Debian bug #519095). + + * src/encodings.c (get_source_encoding): Note that this function + should only be called if the page encoding is UTF-8. Add another + example. + * src/manconv.c (check_preprocessor_encoding): Move to ... + * src/encodings.c (check_preprocessor_encoding): ... here. + * src/encodings.h (check_preprocessor_encoding): Add prototype. + * src/man.c (make_roff_command): Use preprocessor-declared encoding + as page_encoding if known. Set source_encoding to page_encoding + unless the latter is UTF-8. + * src/Makefile.am (manconv_SOURCES): Add encodings.c. + + * src/encodings.c (charset_table): Use ISO-8859-15 -> latin1 entry + only in the !MULTIBYTE_GROFF case; true ISO-8859-15 pages are + better handled using ascii8 or preconv if possible. + +Tue Mar 10 14:11:14 GMT 2009 Colin Watson + + * src/zsoelim.l (zsoelim_parse_file): Put the initial .lf request + after any initial comment line, so that manconv can find encoding + instructions more easily. + +Mon Mar 9 11:32:19 GMT 2009 Colin Watson + + * man/check-man: Check that a manual page formats without errors; + inspired by Lintian. + * man/Rules.man: Run check-man over all manual pages during 'make + check'. + +Mon Mar 9 10:47:08 GMT 2009 Arif E. Nugroho + + * man/po4a/po/id.po: Update from Translation Project. + +Tue Feb 24 01:06:46 GMT 2009 Colin Watson + + * Version: 2.5.4. + * po/man-db.pot, po/*.po: Update. + +Tue Feb 24 01:00:56 GMT 2009 Colin Watson + + * man/po4a/po/id.po: Fix groff syntax error. + +Mon Feb 23 22:37:36 GMT 2009 Colin Watson + + * docs/HACKING (Sending patches): Refer to new man-db-devel mailing + list. + +Mon Feb 23 22:29:43 GMT 2009 Colin Watson + + * docs/HACKING (Things to do): Improve bug tracking system link. + +Mon Feb 23 22:17:50 GMT 2009 Colin Watson + + * src/man.c (locale_macros, display): Only load per-locale groff + macros if preconv is available, since those macros may change the + assumed input encoding. + +Mon Feb 23 22:11:56 GMT 2009 Colin Watson + + * docs/NEWS: Update. + +Sat Feb 21 12:01:55 GMT 2009 Colin Watson + + Load per-locale groff macros if possible. This only works with groff + 1.20.2 (as yet unreleased) or better, since that introduces + facilities to allow us to avoid an error message if there is no + macro file for the relevant locale. + + * src/man.c (locale_macros): New function. + (display): Check the page language, and add locale_macros to the + formatting pipeline provided that the language is not empty or + "C". + +Fri Feb 20 09:58:13 GMT 2009 Colin Watson + + Partially rewrite building of manpath according to locale. The + previous code was completely wrong: as well as handling duplicates + rather oddly, it effectively handled LANGUAGE in reverse order + (Debian bug #516133). + + * src/manp.c (add_nls_manpath): Rename to ... + (get_nls_manpath): ... this. Some minor adjustments. Make + manpathlist argument const and always return a freshly-allocated + string. Explicitly add the top-level directory to the string in + the case of English locales (although we still look for + subdirectories in case of things like en_GB.UTF-8); C and POSIX + already just return a copy of manpathlist. + (add_nls_manpaths): New function to iterate over a colon-separated + list of locales, concatenating the result of get_nls_manpath for + each. Stop worrying about deduplication at this point as we used + to; instead, we let create_pathlist sort that out. + (create_pathlist): Keep the first of any set of duplicates rather + than the last, in order to keep item order stable. + * src/manp.h (add_nls_manpath): Remove prototype. + (add_nls_manpaths): Add prototype. + * src/man.c (main), src/whatis.c (main): Call add_nls_manpaths + rather than add_nls_manpath, with appropriate adjustments. + + * src/man.c (main), src/whatis.c (main): Don't set internal_locale + to the first component of multiple_locale. We will account for + this in search paths, but shouldn't forget about internal_locale + entirely. + +Thu Feb 19 21:50:44 GMT 2009 Colin Watson + + * src/manp.c (add_to_manpath): Remove; this just called pathappend + with the same arguments and so is pointless cruft. + (add_nls_manpath): Update all callers. + +Tue Feb 17 00:49:28 GMT 2009 Colin Watson + + * configure.ac: Check for gpreconv/preconv properly, i.e. by using + AC_CHECK_PROGS rather than by using 'which'. + +Mon Feb 16 01:45:59 GMT 2009 Colin Watson + + * docs/NEWS: Update. + +Mon Feb 16 00:49:47 GMT 2009 Colin Watson + + * src/man.c (make_roff_command): If we have preconv, it's silly to + recode to the assumed page encoding and risk problems with + characters unrepresentable in that encoding; we might as well just + recode to UTF-8 and feed that to preconv. + +Mon Feb 16 00:39:22 GMT 2009 Colin Watson + + * src/man.c (make_roff_command): Append //TRANSLIT to iconv -t + argument (specifically, so that hyphens get properly + transliterated when using preconv and groff -Tutf8 in a non-UTF-8 + locale; thanks, Matthew Burgess and Alexander Patrakov). + +Mon Feb 16 00:20:07 GMT 2009 Colin Watson + + * configure.ac: Check for gpreconv/preconv, which is evidence of a + version of groff supporting Unicode input, and therefore good + enough to assume --enable-mb-groff (thanks, Matthew Burgess). + +Sun Feb 15 23:48:51 GMT 2009 Colin Watson + + * src/man.c (compare_candidates): Remove obsolete first-pass + language code comparison. Language codes are already handled by + later code here, and this comparison caused English pages to be + preferred over pages for languages whose names sort later than + "man". + +Thu Feb 12 11:23:19 GMT 2009 Colin Watson + + * src/manconv_main.c (main): Correct error message if the given + filename cannot be opened. + +Wed Feb 4 13:53:47 CET 2009 Yuri Kozlov + + * man/po4a/po/ru.po: Update from Translation Project (trivial). + +Sun Feb 1 16:40:16 GMT 2009 Colin Watson + + * docs/HACKING (Directory layout): Mention gnulib. + +Sun Feb 1 16:36:01 GMT 2009 Colin Watson + + * lib/linelength.c (get_line_length): Use line length from standard + input, but only if standard output is not a terminal; this allows + commands such as 'MAN_KEEP_STDERR=1 man foo >/dev/null' to report + errors based on the current line length. + +Sat Jan 31 12:20:42 GMT 2009 Colin Watson + + * docs/NEWS: Update. + +Sat Jan 31 12:14:10 GMT 2009 Arif E. Nugroho + + * po/id.po: Update from Translation Project. + +Tue Jan 27 09:54:25 GMT 2009 Clytie Siddall + + * po/vi.po: Update from Translation Project (trivial). + +Tue Jan 27 09:52:18 GMT 2009 Erwin Poeze + + * po/nl.po: Update from Translation Project. + * man/THANKS: Update. + +Mon Jan 26 13:40:30 GMT 2009 Clytie Siddall + + * po/vi.po: Update from Translation Project. + +Mon Jan 26 13:38:11 GMT 2009 Robert Luberda + + * po/pl.po, man/po4a/po/pl.po: Update from Translation Project. + +Sun Jan 18 23:27:11 GMT 2009 Colin Watson + + * lib/linelength.c (get_line_length): Line length is a property of + output, not input, so only check whether standard output is a + terminal, not also standard input (Debian bug #512233). + +Thu Jan 15 16:04:01 GMT 2009 Colin Watson + + * po/Makevars (XGETTEXT_OPTIONS): Add --flag=debug:1:c-format + --flag=debug_error:1:c-format. + +Thu Jan 15 00:00:05 GMT 2009 Colin Watson + + Update manual page search order to permit FHS-compliant installation + of packages in /opt. Reported by Matt Domsch. + + * src/manp.c (has_mandir): Use xasprintf rather than clumsier + xmalloc/strncpy/strcpy combination. Try ../share/man and share/man + subdirectories too. + (get_manpath_from_path): Update header comment and debug output. + * manual/files.me (Determination of the internal manpath): Update + description of directory search order. + * docs/NEWS: Document this. + +Mon Jan 5 17:47:55 GMT 2009 Yuri Kozlov + + * po/ru.po, man/po4a/po/ru.po: Update from Translation Project. + +Mon Jan 5 17:35:02 GMT 2009 Arif E. Nugroho + + * man/po4a/po/id.po: Update from Translation Project. + +Wed Dec 31 12:28:55 GMT 2008 Colin Watson + + Trust the database if it tells us that a page is ULT_MAN (i.e. not a + hard link, symbolic link, or .so link), and avoid passing the + SO_LINK flag to ult_src which requires it to open the page to look + for .so links. Produces roughly a threefold speed improvement for + searches with thousands of results. + + * src/man.c (get_ult_flags): New function. + (add_candidate, display_database): Use it. + +Wed Dec 31 11:51:41 GMT 2008 Colin Watson + + Sort manual page candidates in one go just before displaying them, + rather than insertion-sorting them along the way. Produces, very + roughly, a 25% speed improvement for searches with many results + (e.g. with --regex). + + * src/man.c (duplicate_candidates, compare_candidates): Simplify + interface by passing 'struct candidate' for both sides. + (compare_candidates): Explicitly stabilise the comparison as a + last resort, using a new add_index member. + (compare_candidates_qsort, free_candidate): New functions. + (add_candidate): Adjust calls to duplicate_candidates and + compare_candidates, requiring us to create the candidate structure + earlier. Note that the search produces quadratic-time behaviour. + Only compare candidates in cases of duplicates; otherwise just add + them to the end of the list and defer sorting until later. Use + free_candidate to free search->ult as well as search when freeing + superseded duplicates. + (sort_candidates): New function. + (man): Sort candidates before displaying them. + +Tue Dec 30 13:08:35 GMT 2008 Colin Watson + + * Version: 2.5.4-pre2. + * po/man-db.pot, po/*.po: Update. + +Tue Dec 30 12:55:59 GMT 2008 Colin Watson + + * man/man5/manpath.man5 (FORMAT): Add space between + "MINCATWIDTH"/"MAXCATWIDTH"/"CATWIDTH" and "width". + * man/po4a/po/id.po: Unfuzzy translations. + +Tue Dec 30 12:52:26 GMT 2008 Arif E. Nugroho + + * po/id.po, man/po4a/po/id.po: Update from Translation Project. + +Sun Dec 28 00:27:23 GMT 2008 Colin Watson + + * Version: 2.5.4-pre1. + * man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po, po/man-db.pot, + po/*.po: Update. + +Sun Dec 28 00:17:45 GMT 2008 Colin Watson + + * man/po4a/Makefile.am (PO4A_ARGS): Always generate output files + even if poorly translated, since Automake's generated rules will + get upset otherwise. + +Sat Dec 27 23:47:19 GMT 2008 Colin Watson + + * man/po4a/Makefile.am (dist-hook): Update PO and POT files on 'make + dist'. + +Sat Dec 27 23:42:53 GMT 2008 Colin Watson + + * man/man1/man.man1 (Controlling formatted output): Hide ".B + \-\-no\-hyphenation" from po4a. + +Sat Dec 27 11:38:43 GMT 2008 Colin Watson + + * docs/NEWS: Start 2.5.4. + +Sat Dec 27 00:00:01 GMT 2008 Colin Watson + + Add option to disable hyphenation (Debian bug #166701). + + * src/man.c (options, parse_opt): Accept --no-hyphenation. Reset + corresponding variable with -D. + (disable_hyphenation): New function. + (display): Append disable_hyphenation to the decompressor pipeline + if --no-hyphenation is used. + * man/man1/man.man1 (SYNOPSIS, Controlling formatted output): + Document --no-hyphenation. + +Thu Dec 25 22:09:01 GMT 2008 Colin Watson + + Add regular expression and shell wildcard search facilities to man + (Debian bug #461319). + + * src/whatis.c (lower): Move to ... + * lib/lower.c: ... here, with optimisation from name_to_key. New + file. + * lib/lower.h: New file. + + * src/whatis.c (word_fnmatch): Move to ... + * lib/wordfnmatch.c: ... here, with more generic argument names. New + file. + * lib/wordfnmatch.h: New file. + + * src/whatis.c (main): Factor regcomp error handling out to ... + * lib/xregcomp.c: ... here. New file. + * lib/xregcomp.h: New file. + + * lib/Makefile.am (libman_a_SOURCES): Add lower.c, lower.h, + wordfnmatch.c, wordfnmatch.h, xregcomp.c, and xregcomp.h. + * po/POTFILES.in: Add lib/xregcomp.c; remove src/globbing.c. + + * libdb/db_lookup.c (name_to_key): Use lower. + (dblookup_pattern): New function. + * libdb/db_storage.h (dblookup_pattern): Add prototype. + * src/globbing.c (end_pattern): Rename to ... + (make_pattern): ... this. Create the whole pattern rather than + merely appending section or extension components. Handle regexes + if the new opts argument has the LFF_REGEX bit set. + (match_in_directory): Take an opts disjunction rather than a + boolean ignore_case argument; ignore_case is replaced by the + LFF_MATCHCASE bit being unset. Handle regexes if opts has the + LFF_REGEX bit set. + (look_for_file): Take an opts disjunction rather than a boolean + match_case argument; match_case is replaced by the LFF_MATCHCASE + bit being set. Handle regexes if opts has the LFF_REGEX bit set. + Handle shell wildcards if opts has the LFF_WILDCARD bit set (which + simply means not shell-escaping unesc_name). Call make_pattern + rather than end_pattern (with appropriate adjustments). + * src/globbing.h (enum look_for_file_opts): New enumeration. + (look_for_file): Update prototype. + * src/globbing_test.c (options, parse_opt): Accept -r/--regex and + -w/--wildcard. + (main): Update look_for_file arguments, including passing + LFF_REGEX or LFF_WILDCARD if the corresponding options are used. + * src/check_mandirs.c (purge_whatis, purge_missing), src/zsoelim.l + (zsoelim_open_file): Update look_for_file arguments. + * src/whatis.c (main): Only free preg if a regular expression was + compiled into it in the first place. + + * src/man.c (options, parse_opt): Accept --regex, --wildcard, and + --names-only. Reset corresponding variables with -D. Refuse to + accept both --regex and --wildcard. + (try_section): Update look_for_file arguments, including passing + LFF_REGEX or LFF_WILDCARD if the corresponding options are used. + (try_db): Use dblookup_pattern if --regex or --wildcard is used, + with corresponding options. + * man/man1/man.man1 (SYNOPSIS, Finding manual pages): Document + --regex, --wildcard, and --names-only. + +Tue Dec 23 11:17:01 GMT 2008 Colin Watson + + Sync supported language list with Fedora's patch to man + (http://cvs.fedora.redhat.com/viewvc/rpms/man/F-10/man-1.6b-i18n_nroff.patch?view=markup, + with corrections based on /usr/share/i18n/SUPPORTED). + + * src/encodings.c (directory_table): Add Estonian -> ISO-8859-1, + Belarusian -> CP1251, Greek -> ISO-8859-7, Lithuanian -> + ISO-8859-13, Latvian -> ISO-8859-13, Macedonian -> ISO-8859-5, + Romanian -> ISO-8859-2, Slovenian -> ISO-8859-2, and Ukrainian -> + KOI8-U. + (charset_alias_table): Map KOI8U to KOI8-U. + (less_charset_table): Map KOI8-U to koi8-r (possibly not quite + right but with any luck good enough). + +Mon Dec 8 13:08:22 GMT 2008 Colin Watson + + * libdb/db_store.c (compare_ids): If the promote_links argument is + true, consider SO_MAN equivalent to ULT_MAN. + (replace_if_necessary): Update call to compare_ids. + * libdb/db_storage.h (compare_ids): Update prototype. + * src/man.c (compare_candidates): Consider SO_MAN equivalent to + ULT_MAN for the purposes of sorting candidate pages for display + (Debian bug #384301). + +Mon Dec 8 10:08:45 GMT 2008 Colin Watson + + Improve sorting and de-duplication of manual page candidates (Debian + bugs #389762 and #496172). + + * src/man.c (struct candidate): Add ult member. + (duplicate_candidates): Pare down to only check for duplication + rather than trying to compare as well; the latter function is now + handled entirely by compare_candidates. Compare the ultimate + source file as the first test. + (compare_candidates): Compare locale elements in candidate paths + before comparing sections. + (add_candidates): Look up the ultimate source file if necessary, + and save it in the candidate structure. Use duplicate_candidates + for duplicate testing only and compare_candidates for comparison. + Insert elements at the latest possible position rather than the + earliest possible. + (try_section): Pass the ultimate source file that was already + looked up here. + (try_db): Adjust for new add_candidate signature. + +Sun Dec 7 17:43:21 GMT 2008 Colin Watson + + Make handling of terminal widths for cat pages configurable (Debian + bug #121997). + + * src/manp.c (add_to_dirlist): Recognise new MINCATWIDTH, + MAXCATWIDTH, and CATWIDTH directives. + * src/man_db.conf.in: Add MINCATWIDTH, MAXCATWIDTH, and CATWIDTH. + * src/man.c (get_roff_line_length): Use CATWIDTH rather than the + terminal width if the former is non-zero. + (add_roff_line_length): Check the terminal width against + MINCATWIDTH and MAXCATWIDTH rather than checking whether it + differs from groff's default (via get_roff_line_length). Allow cat + page saving regardless in catman mode. + (make_roff_command): Forbid saving cat pages in troff mode here + rather than via add_roff_line_length/get_roff_line_length. + * man/man5/manpath.man5 (FORMAT): Document MINCATWIDTH, MAXCATWIDTH, + and CATWIDTH. + +Sun Dec 7 17:17:34 GMT 2008 Colin Watson + + * man/man5/manpath.man5 (FORMAT): Document SECTION. + +Sat Dec 6 22:57:14 GMT 2008 Colin Watson + + Reorganise lexgrog to stop on any unrecognised roff request, rather + than continuing and often littering the database with garbage + (Debian bug #271402). This also involved extending lexgrog to + recognise some additional requests. + + * src/lexgrog.l (word): New definition. + (typeface): Add .SB and .SM. + (MAN_PRENAME): Go straight to MAN_REST on encountering a section + request or EOF. Go to MAN_NAME on encountering roff requests that + would ordinarily be processed and removed. Skip over any other + roff requests, including spacing and comments. + (MAN_NAME): Process .Tn and .Nm by handling their arguments as + text. Process .At, .Bsx, .Bx, .Fx, .Nx, .Ox, and .Ux by inserting + the appropriate text (introducing several new mini-scanners). + Process .Dq by surrounding its arguments by double quotes. Go to + MAN_REST on encountering any unrecognised roff request. + (add_wordn_to_whatis, add_word_to_whatis, mdoc_text): New + functions to support scanning of .At and friends. + +Fri Dec 5 22:27:03 GMT 2008 Colin Watson + + * man/man8/mandb.man8 (FILES): List FHS database cache location + first, and indicate more clearly that the others are old locations + (from a comment in Debian bug #243763). + +Fri Dec 5 13:52:14 GMT 2008 Colin Watson + + Make it possible to override man's default of discarding stderr when + stdout is a terminal (Debian bug #480996). + + * src/man.c (discard_stderr): Make static. + (maybe_discard_stderr): New function, checking MAN_KEEP_STDERR. + (format_display_and_save, format_display, display_catman): Use + maybe_discard_stderr. + * man/man1/man.man1 (ENVIRONMENT): Document this. + +Thu Dec 4 15:03:08 GMT 2008 Colin Watson + + Exit as soon as possible if database writes return ENOSPC (Debian + bug #167159). + + * src/check_mandirs.c (testmandirs, create_db, update_db, + purge_normal, purge_whatis, check_multi_key, purge_missing): + Return int rather than short, to make space for -errno. + * src/mandb.c (update_one_file, update_db_wrapper, mandb, + process_manpath): Likewise. + * src/check_mandirs.h (create_db, update_db, purge_missing): Update + prototypes. + + * src/check_mandirs.c (create_db): Return -errno for database open + errors other than EACCES and EROFS. + * src/mandb.c (mandb): Return early on errors from create_db and + update_db_wrapper. Propagate errors from xcopy as well as + returning early. + (process_manpath): Return early on errors from mandb. + (main): Exit FATAL on errors from process_manpath. + +Wed Dec 3 10:54:53 GMT 2008 Colin Watson + + * libdb/db_lookup.c (make_content): Cast time_t value to long before + trying to print as %ld. + + * libdb/db_ndbm.c (ndbm_flclose, ndbm_flopen): Rename dbf to db to + avoid shadowing a global variable. + * libdb/mydbm.h: Update prototypes and gdbm/ndbm macros likewise. + +Wed Dec 3 10:45:07 GMT 2008 Colin Watson + + * lib/Makefile.am (libman_a_CPPFLAGS), libdb/Makefile.am + (libmandb_a_CPPFLAGS), src/Makefile.am (AM_CPPFLAGS): Add + -I$(top_builddir)/intl. + +Wed Dec 3 10:38:33 GMT 2008 Colin Watson + + * gnulib: Import the gettext module. The practical effect of this is + to get the intl directory included while compiling files in + gnulib/lib. + * autogen.sh: Prefer gnulib's version of tools/config.rpath over + gettext's. + +Wed Dec 3 10:17:50 GMT 2008 Colin Watson + + * m4/man-po4a.m4 (MAN_PO4A): Define a PO4A Automake conditional + (again). + * man/po4a/Makefile.am: Define all-local, update-po, and clean-local + rules only if PO4A is set, so that (in particular) distclean works + if po4a isn't installed. + +Tue Dec 2 16:25:53 GMT 2008 Arif E. Nugroho + + * man/po4a/po/id.po: Update from Translation Project (trivial). + +Tue Dec 2 14:50:12 GMT 2008 Colin Watson + + * man/po4a/po/id.po: New from Translation Project (thanks, Arif E. + Nugroho). + * configure.ac (AC_CONFIG_FILES): Add man/id/Makefile. + * man/Makefile.am (DIST_SUBDIRS): Add id. + * man/id/Makefile.am: New file. + * man/po4a/Makefile.am (POFILES): Add po/id.po. + * man/po4a/po4a.cfg (po4a_langs): Add id. + * man/THANKS: Credit Arif E. Nugroho with man/id as well as id.po. + * .bzrignore: Add man/id/man1, man/id/man5, and man/id/man8. + +Mon Nov 17 19:26:50 GMT 2008 Colin Watson + + * configure.ac: Now that we use the ISO 8601 date format rather than + language-specific date variants, there's no reason to call out to + date (using options specific to GNU date) to format the date + string, so just hardcode it. + * docs/HACKING (Release process): datemark -> date. + +Mon Nov 17 17:55:35 GMT 2008 Colin Watson + + FreeBSD build fixes. + + * man/Rules.man (replace.sed): Spell out + $(top_builddir)/man/replace.sin in full since $< is unspecified in + target rules. + * src/Makefile.am (accessdb_LDADD, catman_LDADD, globbing_LDADD, + lexgrog_LDADD, man_LDADD, manconv_LDADD, mandb_LDADD, + manpath_LDADD, whatis_LDADD, wrapper_LDADD, zsoelim_LDADD): Add + @LIBINTL@. + (apropos$(EXEEXT)): Remove target before creating symlink. Spell + out whatis$(EXEEXT) in full since $< is unspecified in target + rules. + + * src/check_mandirs.c (testmandirs): Cast time_t values to long + before trying to print as %ld. + * src/descriptions.c (parse_descriptions): Rename base_name to base + and seen_base_name to seen_base. + * src/descriptions_store.c (store_descriptions): Rename base_name to + base. + * src/descriptions.h (parse_descriptions, store_descriptions): + Update prototypes. + +Mon Nov 17 11:44:17 GMT 2008 Colin Watson + + * Version: 2.5.3. + * po/man-db.pot, po/*.po: Update. + +Mon Nov 17 11:07:50 GMT 2008 Colin Watson + + * lib/pipeline.c (command_new_function): Initialise discard_err. + (pipeline_start): Zero-initialise pids and statuses arrays on + allocation, and don't unblock SIGCHLD until after doing so. + * src/manconv.c (manconv): Don't free elements of from here, as when + called from manconv_stdin they will be freed by + free_manconv_codes. + * src/manconv_main.c (main): Free elements of from_code here + instead. + +Mon Nov 17 10:45:55 GMT 2008 Colin Watson + + * libdb/db_storage.h (infoalloc): Implement as a macro rather than + as an inline function; seems to cause fewer problems when building + without optimisation. + +Mon Nov 17 10:18:10 GMT 2008 Colin Watson + + * m4/longdouble.m4: Remove; gettext no longer installs this. + * man/Makefile.am (EXTRA_DIST): Distribute LINGUAS and LINGUAS.po4a. + +Mon Nov 17 09:59:19 GMT 2008 Colin Watson + + * release.sh: Use 'make distcheck' rather than 'make dist'. + +Mon Nov 17 01:13:17 GMT 2008 Colin Watson + + * po/POTFILES.in: Add src/manconv_main.c and src/zsoelim_main.c. + * po/man-db.pot, po/*.po: Update. + +Mon Nov 17 00:53:33 GMT 2008 Colin Watson + + * docs/NEWS: Update. + +Mon Nov 17 00:39:14 GMT 2008 Colin Watson + + * lib/pipeline.c (pipeline_wait): Mangle return value into a value + suitable for passing to exit (Debian bug #477305). + +Mon Nov 17 00:06:28 GMT 2008 Colin Watson + + Make bare .so includes (e.g. ".so foo.1" rather than ".so + man1/foo.1") work, although only within the same manual page + hierarchy for now. Reported by Mike Frysinger; partially fixes + Debian bug #503472. + + * src/zsoelim.l (zsoelim_open_file): Attempt to handle bare .so + includes using look_for_file. + * src/Makefile.am (zsoelim_SOURCES): Add globbing.c, globbing.h, and + util.c. + +Sun Nov 16 23:34:02 GMT 2008 Colin Watson + + Improve handling of systems without internationalisation support. + Reported by Mike Frysinger. + + * include/manconfig.h.in (locale_changed): New macro. + * src/man.c (main), src/whatis.c (main): Use it. + * src/manconv.c (check_preprocessor_encoding, try_iconv): Declare + only if HAVE_ICONV is defined. + (manconv): If HAVE_ICONV is not defined, supply a replacement that + just passes data straight through. + * src/whatis.c (simple_convert): Declare only if HAVE_ICONV is + defined and supply a macro replacement otherwise, since in the + latter case iconv_t is not defined. + +Sun Nov 16 18:40:09 GMT 2008 Colin Watson + + * manual/misc.me (Credits): Update with contributors of + non-translation patches since I started maintaining man-db; + mention man/THANKS for translator credits. Probably still missing + some people, as ever ... + +Sun Nov 16 18:16:55 GMT 2008 Chusslove Illich + + * src/encodings.c (directory_table): Add Serbian Latin -> + ISO-8859-2. + * src/lexgrog.l (sr_name): Add another possible translation. + (srlatin_name): Add. + +Sun Nov 16 18:00:23 GMT 2008 Colin Watson + + * src/man.c (main), src/whatis.c (main): Tokenise LANGUAGE properly + rather than only taking the first two characters of each entry. + Based on a suggestion from Chusslove Illich in Savannah patch + #6658. + +Sun Nov 16 17:57:57 GMT 2008 Chusslove Illich + + * src/manp.c (add_nls_manpath): Check that modifiers match if set + (Savannah patch #6658). + +Wed Nov 12 12:32:17 GMT 2008 Arif E. Nugroho + + * po/id.po: New from Translation Project. + * po/LINGUAS: Add id. + * man/THANKS: Add translator credit. + +Sun Nov 9 16:23:12 GMT 2008 Robert Luberda + + * man/po4a/po/pl.po: Update from Translation Project. + +Sun Oct 26 12:44:42 GMT 2008 Colin Watson + + * src/manp.c (create_pathlist): Eliminate duplicates due to + symlinks. Reported by Mike Frysinger. + * src/man.c (main): Emit "manpath search path" debugging message + before calling create_pathlist. + * docs/NEWS: Document this. + +Sun Oct 26 11:58:37 GMT 2008 Colin Watson + + Support LINGUAS environment variable to control installation of + localised manual pages. Reported by Mike Frysinger. + + * m4/man-po4a.m4, m4/man-linguas.m4: New files. + * configure.ac: Call MAN_PO4A instead of inline code. Remove NLS and + PO4A Automake conditionals, no longer needed. Call MAN_LINGUAS. + * man/LINGUAS, man/LINGUAS.po4a: New files. + * man/Makefile.am (SUBDIRS): Set to $(MAN_SUBDIRS) rather than + computing the list here. + (DIST_SUBDIRS): Add, since we no longer use Automake conditionals. + * docs/NEWS: Document this. + +Sun Oct 26 01:53:36 GMT 2008 Colin Watson + + * configure.ac: Check for lzma. + * include/comp_src.h.in (comp_list): Add lzma. + * include/manconfig.h.in: Define UNLZMA. + * docs/NEWS: Document this. + +Wed Oct 1 12:19:29 BST 2008 Colin Watson + + * docs/TODO: Remove entry about Berkeley DB's error handling, fixed + in Berkeley DB 4.1 (see http://bugs.debian.org/180379). + +Tue Sep 30 16:39:19 BST 2008 Colin Watson + + * src/encodings.c (directory_table): Add Norwegian BokmÃ¥l and + Norwegian Nynorsk (following a comment on + http://www.linuxfromscratch.org/lfs/view/development/chapter06/man-db.html). + +Sun Sep 28 11:35:18 BST 2008 Colin Watson + + * manual/files.me (NLS manual pages): Describe automatic detection + of manual pages encoded in UTF-8. Recommend that character set + components not be used in directory names. + +Sun Sep 28 11:30:40 BST 2008 Colin Watson + + * configure.ac: Check for GDBM before Berkeley DB. + * docs/man-db.lsm: List GDBM before Berkeley DB. + * manual/db.me (Database types): Explain why GDBM is preferred. + * manual/intro.me (Arguments to configure), README (Non-generic + arguments to configure): Update --with-db description. + * docs/NEWS: Document this, with a note to distributors on upgrade + handling. + +Thu Sep 18 02:00:54 BST 2008 Colin Watson + + * man/man1/apropos.man1 (AUTHOR), man/man1/manpath.man1 (AUTHOR), + man/man1/whatis.man1 (AUTHOR), man/man8/catman.man8 (AUTHOR): Add + my name. + +Thu Sep 18 01:42:34 BST 2008 Colin Watson + + Call zsoelim as an internal function rather than as an external + process, to improve performance. + + * src/Makefile.am (man_SOURCES): Add zsoelim.h and zsoelim.l. + (zsoelim_SOURCES): Add zsoelim.h and zsoelim_main.c. + * src/man.c (make_roff_command): Call zsoelim_stdin as an internal + function. + * src/zsoelim.l (open_file): Rename to ... + (zsoelim_open_file): ... this. Make external. Update all callers. + (parse_file): Rename to ... + (zsoelim_parse_file): ... this. Make external. Update all callers. + (zsoelim_stdin): New function. + (parse_opt, main): Move to ... + * src/zsoelim_main.c: ... here. New file. + * src/zsoelim.h: New file. + * docs/NEWS: Document this. + + * man/man1/zsoelim.man1 (AUTHOR): Add my name. + +Mon Sep 8 09:21:34 BST 2008 Colin Watson + + Call manconv as an internal function rather than as an external + process, to improve performance. Indirectly suggested by Dr. Werner + Fink in Savannah bug #24043. + + * src/Makefile.am (whatis_LDADD): Add $(LIBCOMPRESS). + (lexgrog_SOURCES, man_SOURCES, mandb_SOURCES, whatis_SOURCES): Add + manconv.c and manconv.h. + (manconv_SOURCES): Add manconv.h and manconv_main.c. + * src/encodings.c (manconv_stdin, free_manconv_codes): New + functions. + (add_manconv): Call manconv as an internal function. + * src/manconv.c (try_iconv): Take the target code as an argument + rather than using a global variable. + (manconv): New function, split out of main. + (split_codes, parse_opt, main): Move to ... + * src/manconv_main.c: ... here. New file. + * src/manconv.h: New file. + * docs/NEWS: Document this. + +Mon Sep 8 09:09:06 BST 2008 Colin Watson + + Add support for freeing command_function data. + + * lib/pipeline.c (command_new_function): Add free_func argument. + (command_dup): Copy it. + (pipeline_connect): Adjust command_new_function call. + (pipeline_start): Free command_function data before exiting. + (pipeline_wait): Free command_function data while cleaning up + pipeline. + * lib/pipeline.h: Add command_function_free_type typedef. + (struct command [struct command_function]): Add free_func member. + (command_new_function): Update prototype. + * lib/decompress.c (decompress_open, decompress_fdopen): Adjust + command_new_function calls. + +Sun Sep 7 15:26:25 BST 2008 Colin Watson + + * src/manconv.c (try_iconv): Remove premature optimisation that + sometimes caused us to write incomplete output. + + * src/encodings.c (add_manconv): Always use manconv even if iconv + could theoretically do the job, as manconv has slightly more + permissive behaviour that is generally more suitable for + converting manual page source (Debian bug #498082). + +Sun Aug 31 18:38:34 BST 2008 Colin Watson + + * docs/NEWS: Update. + +Sun Aug 31 18:17:14 BST 2008 Colin Watson + + * gnulib: Upgrade to 20080801. + +Sun Aug 17 16:42:43 BST 2008 Colin Watson + + * src/accessdb.c (main), src/catman.c (main), src/globbing_test.c + (main), src/lexgrog_test.c (main), src/man.c (main), src/manconv.c + (main), src/mandb.c (main), src/manpath.c (main), src/whatis.c + (main), src/zsoelim.l (main): Suppress locale warning if being + called by another man-db program (Debian bug #494989). + +Sun Aug 17 00:27:07 BST 2008 Colin Watson + + * src/man.c (tmp_cat_fd, man_modtime, discard_stderr): Move + definitions outside MAN_CATS guard; these are needed by catman + handling and (in the case of discard_stderr) manual page + formatting functions as well as cat handling in man itself + (Savannah bug #24044). + +Thu Aug 7 02:12:09 BST 2008 Colin Watson + + * src/man.c (display): If we fail to decompress man_file and it + matters (i.e. we aren't just displaying a stray cat), then emit an + error message and return early (Coverity CID #5, #6). + +Wed Aug 6 22:36:48 BST 2008 Colin Watson + + * libdb/db_lookup.c (infoalloc): Move to ... + * libdb/db_storage.h (infoalloc): ... here (as inline function). + Include "xalloc.h" for this. + (dblookup_all, dblookup_exact, gripe_lock, gripe_corrupt_data): + Stop declaring inline. + * src/security.h (drop_effective_privs, regain_effective_privs): + Stop declaring inline. + +Wed Aug 6 22:23:41 BST 2008 Colin Watson + + * src/man.c (display): If display_to_stdout is set, assert that + man_file is non-NULL; all the stray-cat code paths ensure that + neither troff nor recode is set by this point (Coverity CID #5). + +Wed Aug 6 21:40:37 BST 2008 Colin Watson + + * src/man.c (manopt_to_env): Duplicate options assigned to elements + of argv, and free the copy of manopt before returning. This isn't + really a bug as such, but it appeases Coverity CID #22. + +Thu Jul 31 02:10:06 BST 2008 Colin Watson + + * src/man.c (get_section_list): Fix leak of get_sections return + value if the configuration file contains no SECTIONS directives + (Coverity CID #21). + +Thu Jul 31 02:03:46 BST 2008 Colin Watson + + * src/man.c (try_section): Free info and info_buffer if there is a + failure before adding a candidate (Coverity CID #24). + +Thu Jul 31 01:41:17 BST 2008 Colin Watson + + * src/manp.c (add_nls_manpath): Copy manpathlist to omanpathlist + after the initial locale checks, to avoid memory leaks (Coverity + CID #20). + (get_manpath): Free return value of add_system_manpath (Coverity + CID #18) and guess_manpath (Coverity CID #19) when they're simply + interpolated into another string. + +Thu Jul 31 01:18:59 BST 2008 Colin Watson + + * src/man.c (display): Check for failure to open the preformatted + cat file (Coverity CID #14). + +Thu Jul 31 01:01:13 BST 2008 Colin Watson + + * src/util.c (lang_dir): Free ld if returning xstrdup ("C") instead + (Coverity CID #17). + +Thu Jul 31 00:55:36 BST 2008 Colin Watson + + * lib/pathsearch.c (pathsearch): Free path if returning early due to + being given a qualified name (Coverity CID #16). + +Thu Jul 31 00:51:58 BST 2008 Colin Watson + + * lib/pipeline.c (pipeline_pump): Free known_source before returning + (Coverity CID #15). + +Thu Jul 31 00:47:43 BST 2008 Colin Watson + + * src/whatis.c (word_fnmatch): Free lowwhatis on return paths + (Coverity CID #25). + +Thu Jul 31 00:40:29 BST 2008 Colin Watson + + * src/catman.c (parse_for_sec): Fix initialisation of initial_bit + (Coverity CID #28). + +Tue Jul 15 15:58:24 BST 2008 Clytie Siddall + + * po/vi.po: Update from Translation Project. + +Sat Jul 12 16:47:11 BST 2008 Colin Watson + + * Version: 2.5.3-pre1. + * po/man-db.pot, po/*.po: Update. + +Sat Jul 12 16:43:07 BST 2008 Colin Watson + + * docs/NEWS: Start 2.5.3. + +Sat Jul 5 11:33:16 BST 2008 Colin Watson + + * gnulib: Upgrade to 20080701. + +Mon Jun 9 13:47:50 BST 2008 Colin Watson + + * gnulib: Upgrade to 20080601. + +Mon Jun 9 09:31:04 BST 2008 Yuri Kozlov + + * man/po4a/po/ru.po: Update. + +Tue Jun 3 09:54:17 BST 2008 Colin Watson + + * man/po4a/po/ru.po: Update with msgmerge. + +Tue Jun 3 09:53:59 BST 2008 Colin Watson + + * man/ru/translator.add: Add dummy file. + +Tue Jun 3 00:07:47 BST 2008 Colin Watson + + * man/po4a/po/ru.po: New from Translation Project (thanks, Yuri + Kozlov). + * configure.ac (AC_CONFIG_FILES): Add man/ru/Makefile. + * man/Makefile.am (MAYBE_PO4A_LINGUAS): Add ru. + * man/ru/Makefile.am: New file. + * man/po4a/Makefile.am (POFILES): Add po/ru.po. + * man/po4a/po4a.cfg (po4a_langs): Add ru. + * man/THANKS: Credit Yuri Kozlov with man/ru as well as ru.po. + * .bzrignore: Add man/ru/man1, man/ru/man5, and man/ru/man8. + +Sun Jun 1 16:40:12 BST 2008 Colin Watson + + * man/man8/mandb.man8 (SYNOPSIS): Document -t (thanks, Yuri Kozlov; + Debian bug #483951). + +Sun Jun 1 04:01:12 BST 2008 Colin Watson + + * man/man1/whatis.man1 (SYNOPSIS): Document -v (thanks, Yuri Kozlov; + Debian bug #483862). + +Fri May 30 00:11:15 BST 2008 Colin Watson + + * man/man1/manconv.man1 (SYNOPSIS), man/man1/manpath.man1 + (SYNOPSIS): Document -h and -V here as well as in OPTIONS (thanks, + Yuri Kozlov; Debian bug #483589). + +Sun May 25 18:51:47 BST 2008 Colin Watson + + * man/man1/man.man1 (SYNOPSIS): Fix minor formatting error in -w|-W + synopsis. + +Sun May 25 18:46:55 BST 2008 Colin Watson + + * man/man1/man.man1 (SYNOPSIS): Restructure to include all options + from the OPTIONS section and to use approximately the same order. + Thanks to Yuri Kozlov; Debian bugs #482424, #482791, #482792, and + #482810. + +Sun May 25 18:29:28 BST 2008 Colin Watson + + * man/man1/lexgrog.man1 (SYNOPSIS): Correct -s to -E. + (OPTIONS): Correct -e to -E. + Thanks to Yuri Kozlov; Debian bug #481226. + +Sun May 25 19:23:00 CEST 2008 Yuri Kozlov + + * man/man1/apropos.man1 (SYNOPSIS): Document -v (Debian bug + #480678). + +Mon May 5 09:53:19 BST 2008 Colin Watson + + * lib/cleanup.c: #include for memset. + +Mon May 5 02:34:52 BST 2008 Colin Watson + + * docs/man-db.lsm: Update to 2.5.2. + * docs/HACKING: Note requirement for docs/man-db.lsm update just + before release. + +Mon May 5 02:11:38 BST 2008 Colin Watson + + * Version: 2.5.2. + * po/man-db.pot, po/*.po: Update. + +Mon May 5 02:07:00 BST 2008 Colin Watson + + * docs/NEWS: Document previous commit. + +Mon May 5 01:39:22 BST 2008 Colin Watson + + Fix jless support to avoid breaking less (Debian bug #217519). + + * src/encodings.c (less_charset_table): Add jless_charset members. + Move EUC-JP less_charset to jless_charset, falling back to iso8859 + for less. Use the more explicit japanese-ujis rather than ja. + * src/encodings.c (get_jless_charset): New function. + * src/encodings.h (get_jless_charset): Add prototype. + * src/man.c (make_roff_command): Set JLESSCHARSET to the return + value of get_jless_charset if non-NULL. + +Mon May 5 01:06:56 BST 2008 Colin Watson + + Clean up some loose ends of Chinese support (thanks, Wu Songhai; + Debian bug #354321). + + * src/encodings.c (directory_table): Add zh_SG, defaulting to the + GBK encoding. + (charset_alias_table): Map EUCTW to EUC-TW. + (charset_table): Add EUC-TW, defaulting to the nippon driver. + (compatible_encodings): Recognise EUC-TW encoding. + +Mon May 5 00:05:19 BST 2008 Colin Watson + + * gnulib: Upgrade to 20080501. + +Sun May 4 23:16:59 BST 2008 Colin Watson + + * lib/cleanup.c (sighandler, trap_signal), lib/pipeline.c + (pipeline_start, pipeline_pump): Zero sigaction structures before + using them. (I believe we set all required fields anyway; this is + just an extra safety catch.) + +Mon Apr 28 09:54:48 BST 2008 Clytie Siddall + + * po/vi.po: Update from Translation Project. + +Mon Apr 28 09:38:53 BST 2008 Benno Schulenberg + + * po/nl.po: Update from Translation Project. + +Sun Apr 27 22:41:54 BST 2008 Robert Luberda + + * man/po4a/po/pl.po: Update from Translation Project. + +Sun Apr 27 11:47:19 BST 2008 Colin Watson + + * po/man-db.pot, po/*.po: Update (sync with 2.5.2-pre2 tarball). + +Sun Apr 27 11:27:46 BST 2008 Colin Watson + + * Version: 2.5.2-pre2. + * po/man-db.pot, po/*.po: Update. + +Sun Apr 27 11:24:24 BST 2008 Colin Watson + + * lib/pipeline.c (pipeline_sigchld): assert is not + async-signal-safe, so avoid calling it in a signal handler and use + an if guard instead (Ubuntu bug #221635, although exactly why the + assertion is failing there is unclear). + +Sun Apr 27 01:40:32 BST 2008 Colin Watson + + * gnulib: Upgrade to 20080401. + +Sun Apr 27 01:32:58 BST 2008 Colin Watson + + * src/lexgrog.l (ko_name): Add another possible translation, seen in + hdparm(1). + +Sun Apr 27 01:31:47 BST 2008 Colin Watson + + * src/manconv.c (try_iconv): Don't handle //IGNORE unless this is + the last encoding to be tried. + * src/encodings.c (add_manconv): Append //IGNORE to the target + encoding. + * docs/NEWS: Document this. + +Sun Apr 27 00:54:05 BST 2008 Colin Watson + + Don't emit encoding conversion errors in mandb's quiet mode (Debian + bug #473862). + + * src/manconv.c (options, parse_opt): Accept -q/--quiet. + (try_iconv): Suppress iconv errors under --quiet. + * man/man1/manconv.man1 (SYNOPSIS, OPTIONS): Document --quiet. + * man/po4a/po/man-db-manpages.pot, man/po4a/po/pl.po: Update. + * po/man-db.pot, po/*.po: Update. + + * src/encoding.c (add_manconv): Pass -q to manconv if this is mandb + in quiet mode. + +Sat Apr 26 14:34:26 BST 2008 Colin Watson + + * man/man1/man.man1 (DESCRIPTION): Bring list of conventional + section names more into sync with man-pages(7). + * man/po4a/po/man-db-manpages.pot, man/po4a/po/pl.po: Update. + +Sat Apr 26 13:51:27 BST 2008 Colin Watson + + * man/de/man1/apropos.man1, man/de/man1/man.man1, + man/de/man1/manpath.man1, man/de/man1/whatis.man1, + man/de/man1/zsoelim.man1, man/de/man5/manpath.man5, + man/de/man8/catman.man8, man/es/man1/man.man1, + man/fr/man1/man.man1, man/it/man8/accessdb.man8: Fix various small + mistakes that caused warnings from groff. + +Sun Mar 30 20:39:34 BST 2008 Benno Schulenberg + + * po/nl.po: Update from Translation Project. + +Mon Mar 17 19:29:43 GMT 2008 Clytie Siddall + + * po/vi.po: Update from Translation Project. + +Fri Mar 14 14:24:58 GMT 2008 Colin Watson + + Persuade 'make distcheck' to pass again. + + * man/po4a/po4a.cfg: Use paths relative to $(srcdir) and + $(builddir). + * man/po4a/Makefile.am (PO4A_ARGS): Define srcdir and builddir + variables. + (all-local, update-po, clean-local): Pass $(PO4A_ARGS) to $(PO4A). + Read po4a.cfg from $(srcdir). + * man/po4a/*.pl.add: Consolidate into ... + * man/pl/translator.add: ... this. + * man/Rules.man (dist-hook): Only do anything if PO4A_LINGUA is not + set to yes. + (distclean-hook): Remove man1, man5, and man8 if PO4A_LINGUA is + set to yes. + * man/pl/Makefile.am (PO4A_LINGUA): Set to yes. + (EXTRA_DIST): Distribute translator.add. + * .bzrignore: Ignore man/pl/man1, man/pl/man5, and man/pl/man8, + rather than just some files within those directories. + +Fri Mar 14 01:06:42 GMT 2008 Colin Watson + + * man/man1/man.man1 (Controlling formatted output): Change + 'soft-hyphen' string to 'softhyphen' to work around Debian bug + #470849. + * man/po4a/po/man-db-manpages.pot, man/po4a/po/pl.po: Update. + +Fri Mar 14 00:57:37 GMT 2008 Colin Watson + + Build Polish manual pages. The method used scales rather poorly and + will probably need to be revisited at some point. + + * configure.ac (AC_CONFIG_FILES): Add man/pl/Makefile. + * man/Makefile.am (MAYBE_PO4A_LINGUAS): New, containing pl. + (SUBDIRS): Add $(MAYBE_PO4A_LINGUAS) if po4a is present. + * man/pl/Makefile.am: New file. + * man/po4a/Makefile.am (POFILES): New, containing po/pl.po. + (EXTRA_DIST): Add $(POFILES). + (all-local, clean-local): New rules to generate and remove + translated documents. + (update-po): Add --no-translations option. + * man/po4a/po4a.cfg (po4a_langs): Replace zh_CN with pl. (zh_CN can + come back once it has a translation.) + * man/THANKS: Credit Robert Luberda with man/pl as well as pl.po. + + * .bzrignore: Add man/pl/man1/*.man1, man/pl/man5/*.man5, and + man/pl/man8/*.man8. + * man/po4a/po/man-db-manpages.pot: Update. + +Fri Mar 14 00:55:15 GMT 2008 Robert Luberda + + * man/po4a/po/pl.po: New from Translation Project. + * man/po4a/accessdb.pl.add, man/po4a/apropos.pl.add, + man/po4a/catman.pl.add, man/po4a/lexgrog.pl.add, + man/po4a/man.pl.add, man/po4a/manconv.pl.add, + man/po4a/mandb.pl.add, man/po4a/manpath.pl.add, + man/po4a/whatis.pl.add, man/po4a/zsoelim.pl.add: New files. + +Thu Mar 13 09:56:53 GMT 2008 Robert Luberda + + * po/pl.po: Update from Translation Project. + +Wed Mar 12 18:29:32 GMT 2008 Yuri Kozlov + + * po/ru.po: Update from Translation Project. + +Wed Mar 12 13:52:02 GMT 2008 Benno Schulenberg + + * po/nl.po: Update from Translation Project. + +Wed Mar 12 12:30:09 GMT 2008 Colin Watson + + * src/man.c (parse_opt): Only set html_pager if arg is non-NULL. + * docs/NEWS: Document this. + +Wed Mar 12 12:20:50 GMT 2008 Colin Watson + + * configure.ac: Check for po4a. Define an Automake conditional based + on whether it is present. + * man/Makefile.am (SUBDIRS): Add the po4a subdirectory only if the + po4a program is present. + * man/po4a/Makefile.am (update-po): Use PO4A variable. + +Wed Mar 12 08:53:48 GMT 2008 Colin Watson + + * man/po4a/Makefile.am (update-po): New target. + +Wed Mar 12 08:53:32 GMT 2008 Robert Luberda + + * man/man1/apropos.man1 (OPTIONS, FILES), man/man1/man.man1 + (ENVIRONMENT, FILES), man/man1/manconv.man1 (OPTIONS), + man/man1/manpath.man1 (OPTIONS, FILES), man/man1/whatis.man1 + (OPTIONS, EXIT STATUS, FILES), man/man8/mandb.man8 (OPTIONS): + Consolidate various nearly-identical strings. + * man/po4a/po/man-db-manpages.pot: Update. + +Tue Mar 11 10:41:05 GMT 2008 Colin Watson + + * Version: 2.5.2-pre1 (really this time). + +Tue Mar 11 10:39:45 GMT 2008 Colin Watson + + * configure.ac (AC_CONFIG_FILES): Add man/po4a/Makefile. + * man/Makefile.am (SUBDIRS): Add po4a. + * man/po4a/Makefile.am: New file. Distribute po4a.cfg and + po/man-db-manpages.pot. + +Tue Mar 11 10:26:49 GMT 2008 Colin Watson + + * Version: 2.5.2-pre1. + * po/man-db.pot, po/*.po: Update. + +Mon Mar 10 19:42:19 GMT 2008 Colin Watson + + * man/man1/man.man1 (Controlling formatted output): Quote %pager, + since it may expand to multiple words. + +Mon Mar 10 16:07:11 GMT 2008 Colin Watson + + * docs/NEWS: More updates for 2.5.2. + +Mon Mar 10 16:00:15 GMT 2008 Colin Watson + + * man/po4a/po/man-db.pot: Rename to ... + * man/po4a/po/man-db-manpages.pot: ... this, so that the translation + domain name stops clashing with that used for program translations + (per Benno Schulenberg). + * man/po4a/po4a.cfg (po4a_paths): Adjust for rename. + +Mon Mar 10 01:05:57 GMT 2008 Colin Watson + + * man/Rules.man (.man1.1, .man8.8): Substitute name of manual page + being processed as %program%. + * man/man1/apropos.man1 (OPTIONS), man/man1/man.man1 (Finding manual + pages), man/man1/whatis.man1 (OPTIONS): Consolidate + nearly-identical descriptions of --locale using %program% (thanks, + Robert Luberda). + * man/po4a/po/man-db.pot: Update. + +Tue Mar 4 09:24:40 GMT 2008 Colin Watson + + * gnulib: Upgrade to 20080301. + +Tue Mar 4 09:18:43 GMT 2008 Colin Watson + + * src/man.c (options): Force --extension to appear after --sections + in --help output. + +Mon Mar 3 21:46:36 GMT 2008 Colin Watson + + * man/po4a/po/man-db.pot: Update. + +Sun Mar 2 12:41:13 GMT 2008 Colin Watson + + * po/man-db.pot, po/*.po: Update. + +Sun Mar 2 12:37:43 GMT 2008 Colin Watson + + * src/man.c (options): Describe --recode's argument as ENCODING, not + CODE (thanks, Benno Schulenberg). + +Sun Mar 2 12:35:28 GMT 2008 Colin Watson + + * src/man.c (options), src/manpath.c (options), src/whatis.c + (options): Use a unified description for --systems (thanks, Benno + Schulenberg). + +Sun Mar 2 12:29:57 GMT 2008 Colin Watson + + * src/manconv.c (args_doc, options): Describe argument to -f as + "CODE[:...]" rather than "CODE:..." (thanks, Benno Schulenberg). + +Sun Mar 2 12:28:40 GMT 2008 Colin Watson + + * man/man1/man.man1 (OPTIONS): Reorganise into subsections, with + options listed in the same order as in 'man --help' output. + * src/man.c (options, parse_opt): Rearrange a few options slightly + so that the ordering makes more sense. + +Sun Mar 2 11:56:48 GMT 2008 Colin Watson + + * man/man1/man.man1, src/encodings.c, src/encodings.h, + src/lexgrog_test.c: Update copyright notices. + +Sun Mar 2 11:03:21 GMT 2008 Colin Watson + + Improve 'man -E' to allow overriding the output encoding explicitly, + rather than implicitly (and unreliably) by changing the *roff device + (Debian bug #466396). + + * src/encodings.c (device_table): Add stub entries for troff + devices. + (is_roff_device): New function. + * src/encodings.h (is_roff_device): Add prototype. + * src/man.c (options): Change description of -E to allow general + encoding selection. + (parse_opt): Only assign the argument of -E to roff_device if it + is actually a *roff device; otherwise it is presumed to be a true + character encoding and stored in want_encoding. Remove + different_encoding, since testing whether want_encoding is set + supersedes that. + (make_roff_command): If want_encoding is set and is not a *roff + device, recode to it rather than to the locale's encoding. + (display, try_section, display_filesystem, display_database): Test + want_encoding rather than different_encoding. + * man/man1/man.man1 (OPTIONS): Adjust documentation of -E. + * docs/NEWS: Document this. + + * src/lexgrog_test.c (options): Bring description of -E into sync + with man. + +Sat Mar 1 22:14:43 GMT 2008 Colin Watson + + * src/encodings.c (get_roff_encoding): In the CJK UTF-8 special + case, check the canonicalised encoding in order that locale + specifications such as "zh_CN.utf8" work (Debian bug #467249). + +Fri Feb 29 09:59:23 GMT 2008 Colin Watson + + * autogen.sh: Run autoreconf with -f. + * tools/config.guess, tools/config.sub, tools/depcomp, + tools/install-sh, tools/ylwrap: Update. + +Thu Feb 28 10:47:22 GMT 2008 Colin Watson + + * src/lexgrog.l: Terminate MAN_NAME at .ie or .if conditionals + (Debian bug #467444). + +Sun Feb 17 17:17:16 GMT 2008 Colin Watson + + * src/manp.c (def_path): Fix brace indentation. + +Sun Feb 17 17:13:55 GMT 2008 Colin Watson + + * gnulib: Import the strsignal module. + * lib/pipeline.c (pipeline_wait): Call strsignal rather than + xstrsignal. + * lib/xstrsignal.c: Remove. + * lib/README (xstrsignal): Remove. + * lib/Makefile.am (libman_a_SOURCES): Remove xstrsignal.c. + * include/manconfig.h.in (xstrsignal): Remove. + * m4/man-strsignal.m4: Remove. + * configure.ac (MAN_FUNC_STRSIGNAL): Remove. + +Sun Feb 17 16:59:22 GMT 2008 Colin Watson + + * Makefile.in, aclocal.m4, config.h.in, configure, docs/Makefile.in, + gnulib, lib/Makefile.in, libdb/Makefile.in, man/Makefile.in, + man/de/Makefile.in, man/es/Makefile.in, man/fr/Makefile.in, + man/it/Makefile.in, man/ja/Makefile.in, manual/Makefile.in, + src/Makefile.in, tools/Makefile.in: Upgrade to Automake 1.10.1 and + Gnulib 20080201. + +Mon Feb 4 08:28:33 GMT 2008 Colin Watson + + * src/man_db.conf.in: Make /usr/local/share/man mandatory rather + than /usr/local/man (thanks, Reuben Thomas; Debian bug #463892). + +Fri Feb 1 09:01:34 GMT 2008 Colin Watson + + * man/replace.sin.in: Strip off ".if !'po4a'hide' " from input + manual pages. It's a no-op except for po4a's purposes, and + removing it helps non-groff manual page renderers. + +Mon Jan 28 08:54:47 GMT 2008 Colin Watson + + * docs/man-db.lsm: Update to 2.5.1. + +Mon Jan 28 08:47:51 GMT 2008 Colin Watson + + * Version: 2.5.1. + * po/man-db.pot, po/*.po: Update. + +Sun Jan 27 22:48:32 GMT 2008 Colin Watson + + Support Korean when configured with support for the multibyte groff + patch (thanks, Hansun Lee; Ubuntu bug #176896). + + * src/encodings.c (compatible_encodings): Allow EUC-KR -> UTF-8. + (get_roff_encoding): Handle ko_KR.UTF-8 via devutf8. + +Sun Jan 27 13:42:31 GMT 2008 Colin Watson + + * lib/pipeline.c (pipeline_join): Initialise source, buffer, buflen, + bufmax, line_cache, and peek_offset. + +Sun Jan 27 13:37:17 GMT 2008 Colin Watson + + * lib/pipeline.h (struct pipeline): Add ignore_signals member. + * lib/pipeline.c (pipeline_new): Initialise ignore_signals to 1. + (pipeline_join): Set ignore_signals if either input pipeline has + it set. + (pipeline_start): Only ignore SIGINT and SIGQUIT if ignore_signals + is set. + (pipeline_wait): Only restore SIGINT and SIGQUIT if ignore_signals + is set. + * lib/decompress.c (decompress_open, decompress_fdopen): Set + ignore_signals to 0 so that SIGINT and SIGQUIT are not ignored + just because a decompression process is running (Debian bug + #462276). + * docs/NEWS: Document this. + +Thu Jan 24 17:12:24 GMT 2008 Colin Watson + + * include/manconfig.h.in (INTERRUPTED): Remove. + * src/man.c (int_handler): Remove; this is useless and + non-signal-safe. + (main): Don't set SIGINT to int_handler. + +Thu Jan 17 09:13:04 GMT 2008 Ming Hua + + * po/zh_CN.po: Update from Translation Project. + +Tue Jan 15 18:45:22 GMT 2008 Yuri Kozlov + + * po/ru.po: Update from Translation Project. + * man/THANKS: Update e-mail address. + +Tue Jan 15 14:37:15 GMT 2008 Colin Watson + + * m4/man-bdb.m4: Add WITH-DB option; make ACTION-IF-FOUND optional; + define BDB_H and BTREE. + * configure.ac: Make Berkeley DB checks more concise using the + above. + +Tue Jan 15 12:31:12 GMT 2008 Colin Watson + + * configure.ac: Remove unused AC_HEADER_STDC. + +Tue Jan 15 08:42:27 GMT 2008 Clytie Siddall + + * po/vi.po: Update from Translation Project. + +Tue Jan 15 08:39:56 GMT 2008 Benno Schulenberg + + * po/nl.po: Update from Translation Project. + +Tue Jan 15 00:01:39 GMT 2008 Colin Watson + + * m4/man-compress-lib.m4: New function, MAN_COMPRESS_LIB: like + AC_CHECK_LIB but adds the library to LIBCOMPRESS rather than LIBS. + * configure.ac: Use it for -lz. + * src/Makefile.am (lexgrog_LDADD, man_LDADD, manconv_LDADD, + mandb_LDADD, zsoelim_LDADD): Add $(LIBCOMPRESS). + +Mon Jan 14 15:29:55 GMT 2008 Colin Watson + + * configure.ac: Don't check for strerror; Gnulib supplies a + replacement now. + +Mon Jan 14 13:59:18 GMT 2008 Colin Watson + + * src/mandb.c (xcopy): Set the new file's mode to DBMODE in order to + try to defend against strange problems with databases being left + world-unreadable (Debian bug #430800). + +Mon Jan 14 00:55:22 GMT 2008 Colin Watson + + * man/po4a/po/man-db.pot: Update. + +Mon Jan 14 00:16:57 GMT 2008 Colin Watson + + * Version: 2.5.1-pre2. + * po/man-db.pot, po/*.po: Update. + +Mon Jan 14 00:00:21 GMT 2008 Colin Watson + + * src/lexgrog_test.c (parse_opt): Use argp_error rather than + error/argp_usage. Suggested by Ivan Shmakov. + * src/man.c (parse_opt): Likewise. + * src/manconv.c (parse_opt): Likewise. + +Sun Jan 13 23:35:27 GMT 2008 Ivan Shmakov + + Add a command-line option to man to enable groff warnings. + + * src/man.c (enum opts, struct string_llist): New types. + (default_roff_warnings, roff_warnings): Set defaults. + (options, parse_opt): Accept --warnings. + (make_roff_command): Add warnings to groff command line. + * man/man1/man.man1 (SYNOPSIS, OPTIONS): Document --warnings. + * docs/NEWS: Document this. + +Thu Jan 10 09:24:19 GMT 2008 Colin Watson + + * src/man.c (local_man_loop): Guess language based on absolute path + to provided file, rather than relative (Debian bug #460014). + +Mon Jan 7 17:28:54 GMT 2008 Colin Watson + + * gnulib/lib/xmalloc.patch: Add commentary. + +Mon Jan 7 15:30:56 GMT 2008 Yuri Kozlov + + * po/ru.po: Update from Translation Project. + +Mon Jan 7 11:38:19 GMT 2008 Colin Watson + + * man/replace.sin: Rename to ... + * man/replace.sin.in: ... this. + * configure.ac (AC_CONFIG_FILES): Generate man/replace.sin. + * man/Rules.man (CLEANFILES, replace.sed, .man1.1, .man5.5, + .man8.8): Generate replace.sed at 'make' time so that + $(config_file) is substituted properly. Reported by Peter + Breitenlohner. + * .bzrignore: Update. + +Mon Jan 7 11:14:04 GMT 2008 Peter Breitenlohner + + * manual/Makefile.am: Use soelim with -I$(srcdir). + + * man/Rules.man (mandir): Append the language so that Automake can + handle translated manual pages. + (install-data-local, uninstall-local): Removed in favor of rules + generated by Automake. + (CLEANFILES, dist-hook): Go back to using man*_MANS. + (all-am): Remove explicit dependencies. + * man/Makefile.am, man/de/Makefile.am, man/es/Makefile.am, + man/fr/Makefile.am, man/it/Makefile.am, man/ja/Makefile.am: Go + back to using man*_MANS. + + * man/man8/accessdb.man8, man/fr/man8/accessdb.man8: Fix typo (-V, + not -v). + + * manual/Makefile.am (.pp.ps): Use groff -Tps, not -Tdvi. + + * src/Makefile.am (install-data-hook): Don't (try to) overwrite + existing config files. + + * src/Makefile.am (bin_SCRIPTS, all-am, install-exec-hook, + uninstall-hook): Remove apropos from bin_SCRIPTS, explicitly + depend on it from all-am, and manually create a whatis->apropos + symlink at install time; installing the symlink from the build + directory using bin_SCRIPTS would install a second copy (not + stripped by "make install-strip"). + +Mon Jan 7 09:54:12 GMT 2008 Colin Watson + + * configure.ac: Stop checking for memory.h (not used) and limits.h + (guaranteed by C89). + * lib/hashtable.c, libdb/db_ver.c, src/convert_name.c, + src/descriptions.c, src/filenames.c: Remove unnecessary #include + . + * libdb/db_delete.c, libdb/db_lookup.c, libdb/db_store.c, + src/manpath.c: Remove unnecessary #include . + * libdb/mydbm.h, src/catman.c, src/man.c, src/manpath.c: Include + unconditionally. + * src/convert_name.c: Remove unnecessary #include . + * src/man.c: Remove unnecessary #include and + . + * src/manpath.c: Remove unnecessary #include . + * src/straycats.c: Remove unnecessary #include . + * src/ult_src.c: Remove S_ISLNK conditionals; Gnulib's + wrapper deals with this. + + * lib/linelength.c (get_line_length): Remove trailing newline from + message passed to perror. + +Mon Jan 7 03:21:49 GMT 2008 Colin Watson + + * lib/gettext.h: Remove; now provided by Gnulib. + * lib/Makefile.am (libman_a_SOURCES): Remove gettext.h. + * lib/README: Remove gettext.h. + +Mon Jan 7 03:11:08 GMT 2008 Colin Watson + + * include/comp_src.h.in: Update header comment. + +Mon Jan 7 02:52:25 GMT 2008 Colin Watson + + * src/util.c (mkdbname): Replace with ... + * include/manconfig.h.in (mkdbname): ... a simpler macro. + +Mon Jan 7 02:27:59 GMT 2008 Colin Watson + + * libdb/db_btree.c, libdb/db_storage.h, libdb/mydbm.h, src/catman.c, + src/check_mandirs.c, src/convert_name.c, src/globbing.c, + src/man.c, src/man.h, src/mandb.c, src/manp.c, src/security.c, + src/security.h, src/whatis.c: Replace __inline__ with inline + everywhere. Autoconf's handling of the latter is sufficient. + * include/manconfig.h.in: Remove __inline and __inline__ + definitions. + +Mon Jan 7 02:12:26 GMT 2008 Colin Watson + + * configure.ac: Automatically detect the Debian multibyte patch to + groff. + +Mon Jan 7 01:14:39 GMT 2008 Colin Watson + + * src/accessdb.c (options, parse_opt): Accept -d/--debug. + * src/lexgrog_test.c (options, parse_opt): Likewise. + * src/zsoelim.l (options, parse_opt): Likewise. + * docs/NEWS: Document this. + +Mon Jan 7 01:08:39 GMT 2008 Colin Watson + + * src/zsoelim.l (options): Fix incorrect description of -C. + +Sun Jan 6 15:01:08 GMT 2008 Colin Watson + + sigaction is specified as non-interruptible; there is no need to + wrap it with EINTR detection. + + * lib/xsigaction.c: Remove. + * include/manconfig.h.in (xsigaction): Remove prototype. + * lib/Makefile.am (libman_a_SOURCES): Remove xsigaction.c. + * lib/README: Remove xsigaction.c. + * lib/cleanup.c (sighandler, trap_signal, untrap_signal): Call + sigaction rather than xsigaction. + * lib/pipeline.c (pipeline_start, pipeline_wait, + pipeline_install_sigchld, pipeline_pump): Call sigaction rather + than xsigaction. + +Sun Jan 6 14:46:36 GMT 2008 Colin Watson + + * po/nl.po: Update with msgmerge. + +Sun Jan 6 14:45:09 GMT 2008 Colin Watson + + * man/Rules.man, man/de/Makefile.am, man/es/Makefile.am, + man/fr/Makefile.am, man/it/Makefile.am, man/ja/Makefile.am: Use + LINGUA rather than LANGUAGE to name the manual page language, as + setting LANGUAGE causes 'make' output to be translated. + +Sun Jan 6 14:34:15 GMT 2008 Colin Watson + + * man/de.UTF-8, man/es.UTF-8, man/fr.UTF-8, man/it.UTF-8, + man/ja.UTF-8: Rename to ... + * man/de, man/es, man/fr, man/it, man/ja: ... these. + * .bzrignore, configure.ac, man/de/Makefile.am, man/es/Makefile.am, + man/fr/Makefile.am, man/it/Makefile.am, man/ja/Makefile.am, + man/po4a/po4a.cfg, man/THANKS: Adjust for new directory names. + +Sun Jan 6 10:20:19 GMT 2008 Colin Watson + + * gnulib: Upgrade to Debian 20080104-1. Import the unsetenv module. + * src/man.c, src/whatis.c: No longer #include "setenv.h". + +Sun Jan 6 09:57:51 GMT 2008 Clytie Siddall + + * po/vi.po: Update from Translation Project. + +Sat Jan 5 23:15:23 GMT 2008 Ming Hua + + * po/zh_CN.po: Update from Translation Project (trivial). + +Sat Jan 5 23:06:14 GMT 2008 Colin Watson + + * configure.ac: Define NLS Automake conditional from USE_NLS. + * man/Makefile.am (SUBDIRS): Define only if NLS. + +Sat Jan 5 22:54:05 GMT 2008 Colin Watson + + * man/Makefile.am, man/de.UTF-8/Makefile.am, + man/es.UTF-8/Makefile.am, man/fr.UTF-8/Makefile.am, + man/it.UTF-8/Makefile.am, man/ja.UTF-8/Makefile.am: Declare + man*_files rather than man*_MANS. Using the MANS primary causes + Automake's incorrect manual page rules to be used. + * man/Rules.man (CLEANFILES, install-data-local, uninstall-local, + dist-hook): Expect man*_files rather than man*_MANS. + (all-am): Depend on $(man*_files). + + * man/Rules.man (install-data-local, uninstall-local): Stop + stripping leading "man*/" from install location. + +Sat Jan 5 21:49:40 GMT 2008 Colin Watson + + * m4/man-gcc-warning.m4: New file. + * configure.ac: Test whether each -W option (other than -Wall) that + we want to add is supported, rather than adding it + unconditionally. Reported by Peter Breitenlohner. + +Sat Jan 5 14:12:33 GMT 2008 Ivan Shmakov + + * configure.ac: Test for existence of + "$srcdir/gnulib/po/Makefile.in.in" rather than just + gnulib/po/Makefile.in.in in order to work for VPATH builds. Also + reported by Peter Breitenlohner. + +Fri Jan 4 16:03:57 GMT 2008 Peter Breitenlohner + + * src/man.c (display): Stop -W printing blank lines for manual pages + without corresponding cat pages. + +Fri Jan 4 15:59:41 GMT 2008 Colin Watson + + * src/Makefile.am: Install globbing and manconv in + $(libexecdir)/@PACKAGE@ rather than in $(pkglibdir). Reported by + Peter Breitenlohner. + +Fri Jan 4 12:44:34 GMT 2008 Peter Breitenlohner + + * libdb/db_btree.c (dbstore): Rename basename argument to base to + avoid clashing with the function of the same name. + * libdb/db_storage.h (dbstore): Update prototype. + * libdb/mydbm.h (dbver_wr, dbver_rd), src/security.h + (do_system_drop_privs): Update prototype argument names to match + definition. + +Fri Jan 4 11:52:22 GMT 2008 Peter Breitenlohner + + * src/man.c: Make prompt_string const. Avoids "discards qualifier" + warning when building without NLS. + +Thu Jan 3 21:39:27 GMT 2008 Colin Watson + + * gnulib: Import the lib-ignore module, to have the linker ignore + unused libraries. + +Wed Jan 2 23:30:33 GMT 2008 Colin Watson + + * lib/decompress.c (decompress_zlib), lib/linelength.c + (get_line_length), lib/pipeline.c (passthrough), src/lexgrog.l + (find_name), src/man.c (set_term, get_term, main, + make_roff_command, format_display_and_save, format_display, + display_catman, display), src/manconv.c (main), src/zsoelim.l + (open_file): Use STDIN_FILENO, STDOUT_FILENO, and STDERR_FILENO + macros rather than calling fileno. + +Wed Jan 2 16:46:46 GMT 2008 Colin Watson + + * src/accessdb.c (main), src/catman.c (main), src/globbing_test.c + (main), src/lexgrog_test.c (main), src/man.c (main), src/manconv.c + (main), src/mandb.c (main), src/manpath.c (main), src/whatis.c + (main), src/wrapper.c (main), src/zsoelim.l (main): Bind the + "man-db-gnulib" textual domain as well as "man-db". + +Wed Jan 2 00:12:48 GMT 2008 Benno Schulenberg + + * po/nl.po: New from Translation Project. + * po/LINGUAS: Add nl. + * man/THANKS: Add translator credit. + +Tue Jan 1 15:36:23 GMT 2008 Colin Watson + + * README, src/man.c: Update copyright years. + +Tue Jan 1 15:27:51 GMT 2008 Ming Hua + + * po/zh_CN.po: Update. + +Tue Jan 1 12:34:10 GMT 2008 Colin Watson + + * src/man.c (options): Add -s as an alias for -S (Debian bug + #458499). + (parse_opt): Accept it. + (get_section_list): Allow the section list to be separated by + commas as well as colons. + * man/man1/man.man1 (OPTIONS): Document -s and comma-separation. + * docs/NEWS: Document this. + +Mon Dec 31 22:13:00 GMT 2007 Colin Watson + + * docs/HACKING (Coding style): Expand. + +Mon Dec 31 22:01:35 GMT 2007 Colin Watson + + * include/manconfig.h.in: Remove obsolete definitions of VERSION and + DATE and declaration of ver. + * src/zsoelim.l: Remove obsolete definition of STATIC_VER. + +Mon Dec 31 17:00:19 GMT 2007 Colin Watson + + * lib/hashtable.c (hash_lookup_structure): New function; same as + previous hash_lookup but returns a struct nlist * rather than the + value. + (hash_lookup): Rewrite in terms of hash_lookup_structure. + (hash_install): Use hash_lookup_structure rather than hash_lookup + (thanks, Ivan Shmakov; should fix Debian bug #374708). + +Mon Dec 31 16:15:26 GMT 2007 Colin Watson + + * lib/hashtable.c (hash_install): Fix head comment to match reality + (thanks, Ivan Shmakov). + +Mon Dec 31 15:45:31 GMT 2007 Colin Watson + + * docs/HACKING (Revision control): Mention that the bzr archive now + requires bzr 0.15 or later. + +Mon Dec 31 15:31:08 GMT 2007 Colin Watson + + * Version: 2.5.1-pre1. + * po/man-db.pot, po/*.po: Update. + +Mon Dec 31 10:02:28 GMT 2007 Colin Watson + + * lib/pipeline.c (passthrough): New helper function. + (pipeline_connect): Add special (kludge) handling for zero-command + sinks. + (pipeline_pump): Add minor commentary. + * src/man.c (options, parse_opt): New -R/--recode option. + (make_roff_command): If --recode is used, suppress external + formatters and all processing filters, and force the output + encoding to the argument to --recode. + (display): If --recode is used, force display to stdout and + suppress cat pages. + (try_section, display_filesystem, display_database): Don't show + cat pages or follow .so links for --recode. + * src/util.c (lang_dir): Handle relative filenames starting with + "man/". + * man/man1/man.man1 (OPTIONS): Document --recode. + * docs/NEWS: Document this. + +Fri Dec 14 10:06:21 GMT 2007 Colin Watson + + * src/whatis.c (options): Note that --exact is for apropos only. + +Fri Dec 14 09:39:06 GMT 2007 Colin Watson + + Convert from getopt to argp for option parsing. This invalidates + many translations, but this should be the last time; in future, a + changes in a single option will only affect translations of the help + strings for that option, not the program's entire help string. + + * gnulib: Import the argp and lock modules. + * autogen.sh: Hack around a tools/config.rpath clash between Gnulib + and gettext. + * configure.ac (CFLAGS): Add -Wno-missing-field-initializers for + GCC. + * .bzrignore: Add gnulib/lib/strings.h, po/remove-potcdate.sed, and + tools/config.rpath.*. + + * src/version.c: Remove in favour of argp's --version handling. + * po/POTFILES.in: Remove src/version.c. + * src/Makefile.am (accessdb_SOURCES, catman_SOURCES, + globbing_SOURCES, lexgrog_SOURCES, man_SOURCES, manconv_SOURCES, + mandb_SOURCES, manpath_SOURCES, whatis_SOURCES, wrapper_SOURCES, + zsoelim_SOURCES): Remove version.c. + + * src/accessdb.c (long_options, args, usage): Remove. + (argp_program_version, argp_program_bug_address, + argp_err_exit_status, args_doc, doc, options, parse_opt, + help_filter, argp): Add. + (main): Switch from getopt_long to argp_parse. Use error (FATAL) + for database read errors rather than error (0); usage (FAIL). + * src/catman.c (long_options, args, usage): Remove. + (argp_program_version, argp_program_bug_address, + argp_err_exit_status, args_doc, options, parse_opt, argp): Add. + (catman, do_catman, parse_for_sec): Rename argp to args. + (main): Switch from getopt_long to argp_parse. + * src/globbing_test.c (long_options, args, usage): Remove. + (argp_program_version, argp_program_bug_address, + argp_err_exit_status, args_doc, options, parse_opt, argp): Add. + (main): Switch from getopt_long to argp_parse. + * src/lexgrog_test.c (long_options, args, usage): Remove. + (argp_program_version, argp_program_bug_address, + argp_err_exit_status, args_doc, doc, options, parse_opt, argp): + Add. + (main): Switch from getopt_long to argp_parse. + * src/man.c (long_options, args, usage, man_getopt): Remove. + (argp_program_version, argp_program_bug_address, + argp_err_exit_status, args_doc, options, parse_opt, help_filter, + argp): Add. + (do_extern): Adjust iteration over arguments. + (main): Switch from getopt_long to argp_parse. Initialise + html_pager early for use in --help. + * src/man.h (man_getopt): Remove prototype. + * src/manconv.c (long_options, args, usage): Remove. + (argp_program_version, argp_program_bug_address, + argp_err_exit_status, args_doc, options, parse_opt, argp): Add. + (main): Switch from getopt_long to argp_parse. + * src/mandb.c (long_options, args, usage): Remove. + (argp_program_version, argp_program_bug_address, + argp_err_exit_status, args_doc, options, parse_opt, argp): Add. + (main): Switch from getopt_long to argp_parse. + * src/manpath.c (long_options, args, usage): Remove. + (argp_program_version, argp_program_bug_address, + argp_err_exit_status, options, parse_opt, argp): Add. + (main): Switch from getopt_long to argp_parse. + * src/whatis.c (long_options, args, apropos_usage, whatis_usage, + usage): Remove. + (argp_program_version, argp_program_bug_address, + argp_err_exit_status, args_doc, apropos_doc, options, parse_opt, + apropos_argp, whatis_argp): Add. + (main): Switch from getopt_long to argp_parse. Suppress --exact + and --and options in the whatis case. + * src/zsoelim.l (long_options, args, usage, ver): Remove. + (argp_program_version, argp_program_bug_address, + argp_err_exit_status, args_doc, options, parse_opt, argp): Add. + (main): Switch from getopt_long to argp_parse. + * po/POTFILES.in: Add zsoelim.l. + +Thu Dec 13 17:20:51 GMT 2007 Colin Watson + + * autogen.sh: Permit gnulib-tool to be missing; in that case, just + run autoreconf. + +Thu Dec 13 11:36:26 GMT 2007 Colin Watson + + * configure.ac (AM_GNU_GETTEXT_VERSION): Upgrade to gettext 0.17. + * gnulib: Upgrade to Debian 20071201+dfsg-1. + * README (Copyright and licensing): New section. Explain the + implications of Gnulib components being distributed under GPL v3. + * .bzrignore: Ignore gnulib/lib/fcntl.h. + +Mon Nov 26 08:37:30 GMT 2007 Colin Watson + + * docs/HACKING (Utility functions to use): Rename to ... + (Facilities and portability): ... this. Add comments on Gnulib and + C89/C99. + +Sun Nov 25 21:11:34 GMT 2007 Colin Watson + + * docs/HACKING (Revision control): Add advice on docs/ChangeLog + practice in branches. + +Sun Nov 25 21:01:22 GMT 2007 Colin Watson + + * src/encodings.c (get_roff_encoding): Just use the fallback + encoding if device is NULL, rather than crashing. Bug reported by + Ivan Shmakov. + +Sun Nov 25 18:51:16 GMT 2007 Ivan Shmakov + + * man/Rules.man: replace.sed lives in $(top_builddir)/man, not + $(top_srcdir)/man. + +Sat Nov 24 10:45:50 GMT 2007 Colin Watson + + * src/man.c (make_roff_command): If the environment variable + MANROFFOPT is set, append its contents to the *roff command line + (thanks, Ivan Shmakov; Debian bug #451187). + * man/man1/man.man1 (ENVIRONMENT): Document MANROFFOPT. + * docs/NEWS: Document this. + +Mon Nov 19 19:41:18 GMT 2007 Colin Watson + + * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.10. Ming Hua + reported that Automake 1.9 doesn't have the MKDIR_P feature we + depend on. + +Tue Nov 13 22:10:51 GMT 2007 Colin Watson + + * src/whatis.c (use_grep, do_whatis, word_fnmatch, search, main): + Rename regex to regex_opt, as Solaris' defines a regex + function (thanks to the Nexenta developers). + +Mon Nov 12 19:24:00 GMT 2007 Colin Watson + + * src/accessdb.c (main), src/globbing_test.c (main), + src/lexgrog_test.c (main), src/zsoelim.l (main): Enable + localisation (Debian bug #448395). + +Sun Nov 11 05:43:16 GMT 2007 Colin Watson + + * configure.ac: Issue a useful error message if + gnulib/po/Makefile.in.in does not exist (reported by Ming Hua). + +Mon Oct 22 00:04:45 BST 2007 Colin Watson + + Bruno Haible notes in + http://lists.gnu.org/archive/html/groff/2005-12/msg00061.html that + setlocale is supported on all known systems, and it is in C89. Use + it unconditionally. + + * configure.ac: Don't check for setlocale. + * src/catman.c (parse_for_sec), src/man.c (main), src/manp.c + (add_nls_manpath), src/whatis.c (main): Remove HAVE_SETLOCALE + conditionals. + +Sun Oct 21 21:56:02 BST 2007 Colin Watson + + * configure.ac: Forbid output tokens beginning with "MAN_". + +Sun Oct 21 21:52:43 BST 2007 Colin Watson + + * configure.ac: Rationalise use of comments. Use more vertical + whitespace. + +Sun Oct 21 21:12:46 BST 2007 Colin Watson + + * gnulib: Import .po files (--po-base=gnulib/po --po-domain=man-db). + * configure.ac (AC_CONFIG_FILES): Generate gnulib/po/Makefile.in. + * Makefile.am (SUBDIRS): Build gnulib/po. + * .bzrignore: Ignore gnulib/po. This is contrary to our usual + practice, since this is generated by autogen.sh; but gnulib-tool + gives us full .po files which are then stripped down to just the + parts of Gnulib we use by make, so adding them to bzr is + inconvenient. + +Sun Oct 21 19:46:26 BST 2007 Colin Watson + + * src/man.c (man_getopt): Fix reversed handling of -f and -k in the + "incompatible options" message. + +Sun Oct 21 19:43:27 BST 2007 Colin Watson + + * configure.ac (CFLAGS): Add -Wformat-security. + * src/man.c (man_getopt): Use %s as the format string for the + "incompatible options" message since the message itself is not a + string literal. (This is only a security problem in the presence + of hostile translators.) + +Sun Oct 21 17:59:13 BST 2007 Colin Watson + + * man/Rules.man (SED_ARGS): Move to ... + * man/replace.sin: ... here. + * man/Rules.man (.man1.1, .man5.5, .man8.8): Use replace.sed to + shorten build output. + * configure.ac (AC_CONFIG_FILES): Generate man/replace.sed from + man/replace.sin. + * .bzrignore: Ignore man/replace.sed. + +Sun Oct 21 13:38:09 BST 2007 Colin Watson + + * src/check_mandirs.c (purge_missing): If there is no content, that + might just be because the key was already freed while purging an + earlier multi key, so skip to the next key rather than breaking + out of the loop. + +Sun Oct 21 13:33:38 BST 2007 Colin Watson + + * configure.ac: Check for gdbm_exists in DBLIBS as well as LIBS. + Remove unused gdbm_setopt check. + +Sun Oct 21 01:25:00 BST 2007 Colin Watson + + * configure.ac (AC_INIT): Pass a BUG-REPORT argument. + +Sat Oct 20 18:27:13 BST 2007 Colin Watson + + * gnulib/lib/xmalloc.c (xstrdup): Explicitly tolerate a NULL + argument, returning NULL in that case. (Also sent to Gnulib + upstream.) + * gnulib/lib/xmalloc.patch: Add, with the above change in patch + format. + * autogen.sh: Apply xmalloc.patch after updating Gnulib. + +Sat Oct 20 18:20:07 BST 2007 Colin Watson + + * gnulib/lib/asnprintf.c, gnulib/lib/asprintf.c, + gnulib/lib/float+.h, gnulib/lib/float_.h, + gnulib/lib/printf-args.c, gnulib/lib/printf-args.h, + gnulib/lib/printf-parse.c, gnulib/lib/printf-parse.h, + gnulib/lib/size_max.h, gnulib/lib/stdio_.h, + gnulib/lib/vasnprintf.c, gnulib/lib/vasnprintf.h, + gnulib/lib/vasprintf.c, gnulib/lib/xasprintf.c, + gnulib/lib/xsize.h, gnulib/lib/xvasprintf.c, + gnulib/lib/xvasprintf.h, gnulib/m4/eoverflow.m4, + gnulib/m4/float_h.m4, gnulib/m4/intmax_t.m4, + gnulib/m4/inttypes_h.m4, gnulib/m4/size_max.m4, + gnulib/m4/stdarg.m4, gnulib/m4/stdint_h.m4, gnulib/m4/stdio_h.m4, + gnulib/m4/vasnprintf.m4, gnulib/m4/vasprintf.m4, + gnulib/m4/wchar_t.m4, gnulib/m4/xsize.m4, gnulib/m4/xvasprintf.m4: + Import the Gnulib xvasprintf module. + * .bzrignore: Update. + + * libdb/mydbm.h: Add MYDBM_RESET_DSIZE and MYDBM_SET convenience + macros, to obsolete most direct uses of MYDBM_SET_DPTR and + MYDBM_DSIZE. Code that just wants to put a string in a datum + should use MYDBM_SET. + * libdb/db_btree.c (dbstore), libdb/db_delete.c (dbdelete): Use + MYDBM_SET. + * libdb/db_lookup.c (make_multi_key): Use MYDBM_SET and xasprintf. + (make_content): Likewise. Collapse ANSI_SPRINTF #ifdef, no longer + needed. + (dblookup): Use MYDBM_SET. + * libdb/db_ndbm.c (ndbm_flopen): Use xasprintf. + * libdb/db_store.c (dbstore): Use MYDBM_SET and xasprintf. + * libdb/db_ver.c (dbver_rd, dbver_wr): Use MYDBM_SET. + * src/check_mandirs.c (update_db_time): Use MYDBM_SET and xasprintf. + (reset_db_time, update_db): Use MYDBM_SET. + * src/filenames.c (make_filename): Use xasprintf. + * src/man.c (setenv_less): Use xasprintf. + + * m4/man-ansi-sprintf.m4, configure.ac (MAN_FUNC_ANSI_SPRINTF): + Remove. + +Sat Oct 20 14:30:44 BST 2007 Colin Watson + + * configure.ac: Remove redundant check for getcwd. + +Thu Oct 18 01:51:06 BST 2007 Colin Watson + + * src/wrapper.c: Include "config.h" right at the top and with a + HAVE_CONFIG_H guard, like other files. + +Thu Oct 18 01:41:41 BST 2007 Colin Watson + + * lib/pathsearch.c, src/man.c, src/mandb.c, src/manp.c: Include + "xgetcwd.h" rather than , as suggested by gnulib-tool. + +Thu Oct 18 01:37:22 BST 2007 Colin Watson + + * src/manp.c (cat_manpath): Whitespace adjustments. + +Thu Oct 18 01:15:25 BST 2007 Colin Watson + + * src/man.c: PIPE_BUF is no longer used, so don't define it. + +Wed Oct 17 22:34:32 BST 2007 Colin Watson + + * gnulib/lib/minmax.h, gnulib/m4/minmax.m4: Import the Gnulib minmax + module. + * src/man.c (duplicate_candidates): Use it. + * src/util.c: Remove unused definition of MAX. + + Regenerate all build system files. (Future ChangeLog entries will + not mention this.) + +Wed Oct 17 22:22:25 BST 2007 Colin Watson + + * gnulib/lib/strerror.c, gnulib/m4/strerror.m4: Import the Gnulib + strerror module. + + Regenerate all build system files. + +Wed Oct 17 21:05:50 BST 2007 Colin Watson + + Use the Gnulib portability library. + + * lib/alloca.c, lib/basename.c, lib/error.c, lib/error.h, + lib/fnmatch.c, lib/fnmatch_.h, lib/getcwdalloc.c, + lib/getcwdalloc.h, lib/getopt.c, lib/getopt1.c, lib/getopt_.h, + lib/glob.c, lib/glob_.h, lib/memcmp.c, lib/mkdtemp.c, + lib/mkstemp.c, lib/putenv.c, lib/realpath.c, lib/rename.c, + lib/setenv.c, lib/setenv.h, lib/strcspn.c, lib/strnlen.c, + lib/strsep.c, lib/tempname.c, lib/unsetenv.c, lib/xmalloc.c, + lib/xstrdup.c, lib/xstrndup.c, m4/man-fnmatch.m4, m4/setenv.m4, + m4/tempname.m4: Remove. + * gnulib/*, tools/link-warning.h: Import atexit, canonicalize, + dirname, error, fnmatch-gnu, getopt, glob, memcmp, mkdtemp, + mkstemp, regex, rename, setenv, strcspn, strsep, sys_select, + xalloc, xgetcwd, and xstrndup modules. + * .bzrignore: Update. + * Makefile.am (SUBDIRS): Build gnulib/lib. + (ACLOCAL_AMFLAGS): Add -I gnulib/m4. + * autogen.sh: Add gnulib-tool --update. + * configure.ac: Call gl_EARLY and gl_INIT. + Remove calls to AC_AIX and AC_MINIX. + Stop checking for unistd.h, regex.h, libgen.h, string.h, and + strings.h headers. + Stop checking for alloca, memcmp, strcoll, vprintf, getwd, atexit, + on_exit, canonicalize_file_name, regcomp, re_comp, globfree, + getopt_long, putenv, realpath, rename, basename, strsep, strcspn, + strnlen, mkdtemp, mkstemp, setenv, and __gen_tempname functions. + Generate gnulib/lib/Makefile. + * docs/HACKING: Document policy on generated files in revision + control. + * include/manconfig.h.in: Replace xmalloc, xrealloc, xstrdup, and + xstrndup declarations with inclusions of xalloc.h and xstrndup.h. + Stop defining basename, strsep, and getcwd. + * lib/Makefile.am (libman_a_CPPFLAGS): Include headers from + gnulib/lib. + (libman_a_SOURCES): Remove error.c, error.h, getcwdalloc.c, + getcwdalloc.h, setenv.h, xmalloc.c, xstrdup.c, and xstrndup.c. + (libman_a_LIBADD): Remove $(ALLOCA). + (BUILT_SOURCES, MOSTLYCLEANFILES, EXTRA_DIST, fnmatch.h, getopt.h, + glob.h): Remove; replaced by Gnulib. + * lib/README: Alphabetise, update file list, and update authors. + * libdb/Makefile.am (libmandb_a_CPPFLAGS): Include headers from + gnulib/lib. + * src/Makefile.am (AM_CPPFLAGS): Include headers from gnulib/lib. + (LIBMAN): Link with gnulib/lib/libgnu.a. + + * lib/cleanup.c: Assume and atexit. + * lib/decompress.c, lib/flock.c: Assume . + * lib/pathsearch.c: Assume . + (pathsearch): Use xgetcwd. + * lib/pipeline.c: Assume and . Remove + duplicate inclusion. + (command_new): Use base_name. + * lib/tempfile.c, lib/xstrsignal.h: Assume . + * libdb/db_btree.c: Assume . + * libdb/db_btree.c, libdb/db_lookup.c: Assume and strsep. + * libdb/db_ndbm.c: Assume . + * libdb/db_store.c: Assume and strsep. + * src/accessdb.c (main): Use base_name. + * src/catman.c: Assume . + (main): Use base_name. + * src/check_mandirs.c: Assume , strpbrk, and time. + (test_manfile): Use base_name. Rename existing base_name variable + to manpage_base. + (reset_db_time): Use dir_name. + * src/compression.c, src/convert_name.c: Assume . + * src/filenames.c: Remove unused inclusion. + * src/globbing_test.c (main): Use base_name. + * src/lexgrog.l, src/lexgrog.l-2.3.8, src/lexgrog.l-2.4a, + src/lexgrog.l.new: Assume . + * src/lexgrog_test.c (main): Use base_name. + * src/man.c: Assume . + (gripe_no_man): Use unsetenv rather than putenv. + (local_man_loop): Use base_name. + (main): Use base_name and xgetcwd. + (make_roff_command): Use setenv rather than putenv. + (format_display): Use xgetcwd and base_name. + * src/manconv.c: Assume . + (main): Use base_name. + * src/mandb.c: Assume . + (main): Use base_name and xgetcwd. + * src/manp.c: Assume . + (add_dir_to_path_list): Use xgetcwd. + * src/manpath.c: Assume . + (main): Use base_name. + * src/security.c: Assume . + * src/straycats.c: Assume . + (check_for_stray): Use base_name. Assume canonicalize_file_name. + * src/ult_src.c: Assume . + (ult_softlink): Use canonicalize_file_name. + * src/ult_src.c: Assume . + * src/whatis.c: Assume and . + (use_grep, parse_name, parse_whatis, search, main): Assume POSIX + regex functions (provided by Gnulib's regex module). + (main): Use base_name. + * src/wrapper.c (main): Use base_name. + * src/zsoelim.l: Assume . + (main): Use base_name. + + * docs/NEWS: Document this. + + Drop remaining bits of pre-C89 compatibility. + + * lib/ansidecl.h, lib/strspn.c, lib/strstr.c: Remove. + * configure.ac: Stop checking for strstr and strspn. + * include/manconfig.h.in: Remove VOID definition. + * lib/Makefile.am (libman_a_SOURCES): Remove ansidecl.h. + * lib/appendstr.c, lib/decompress.c, lib/flock.c, lib/hashtable.c, + lib/pathsearch.c, lib/tempfile.c, libdb/db_btree.c, + libdb/db_delete.c, libdb/db_gdbm.c, libdb/db_lookup.c, + libdb/db_ndbm.c, libdb/db_store.c, libdb/db_ver.c, src/accessdb.c, + src/catman.c, src/check_mandirs.c, src/compression.c, + src/convert_name.c, src/descriptions.c, src/descriptions_store.c, + src/encodings.c, src/fake_security.c, src/filenames.c, + src/globbing.c, src/globbing_test.c, src/lexgrog.l, + src/lexgrog.l-2.3.8, src/lexgrog.l-2.4a, src/lexgrog.l.new, + src/lexgrog_test.c, src/man.c, src/manconv.c, src/mandb.c, + src/manp.c, src/manpath.c, src/security.c, src/straycats.c, + src/ult_src.c, src/util.c, src/version.c, src/whatis.c, + src/zsoelim.l: Assume C89 declaration syntax, headers, and + functions. + * docs/NEWS: Document this. + + * configure.ac (--enable-mandirs): Improve grammar. + + Regenerate all build system files using autogen.sh. + +Mon Oct 15 10:15:48 BST 2007 Colin Watson + + * docs/NEWS: Document previous change. + +Mon Oct 15 10:13:57 BST 2007 Colin Watson + + * src/manconv.c (check_preprocessor_encoding): Allow only + alphanumerics and "-_/:.()" in encoding names (Debian bug + #446055). This matches everything in 'iconv --list' on my system. + (try_iconv): Include encoding names in error message if iconv_open + fails. + +Mon Oct 15 10:06:51 BST 2007 Colin Watson + + * man/Rules.man (.man1.1, .man5.5, .man8.8): Use $(MKDIR_P) rather + than hardcoding mkdir -p. + * man/Makefile.in, man/de.UTF-8/Makefile.in, + man/es.UTF-8/Makefile.in, man/fr.UTF-8/Makefile.in, + man/it.UTF-8/Makefile.in, man/ja.UTF-8/Makefile.in: Regenerate. + +Sun Oct 14 02:39:43 BST 2007 Colin Watson + + * src/Makefile.am (AM_CPPFLAGS): Fix SOELIM definition. + * src/Makefile.in: Regenerate. + +Sun Oct 14 01:20:07 BST 2007 Colin Watson + + * .bzrignore: Restore some ignores needed in intl/. + +Sun Oct 14 01:16:23 BST 2007 Colin Watson + + Add most files generated by autogen.sh to revision control, as it + makes it easier to keep track of what the Autotools are doing. + autom4te.cache and po/Makevars.template are explicitly still + ignored; the former is junk and the latter is only necessary in the + gettext-tools package. + + * ABOUT-NLS, aclocal.m4, config.h.in, configure, intl/ChangeLog, + intl/Makefile.in, intl/VERSION, intl/bindtextdom.c, + intl/config.charset, intl/dcgettext.c, intl/dcigettext.c, + intl/dcngettext.c, intl/dgettext.c, intl/dngettext.c, + intl/eval-plural.h, intl/explodename.c, intl/export.h, + intl/finddomain.c, intl/gettext.c, intl/gettextP.h, intl/gmo.h, + intl/hash-string.c, intl/hash-string.h, intl/intl-compat.c, + intl/intl-exports.c, intl/l10nflist.c, intl/langprefs.c, + intl/libgnuintl.h.in, intl/loadinfo.h, intl/loadmsgcat.c, + intl/localcharset.c, intl/localcharset.h, intl/locale.alias, + intl/localealias.c, intl/localename.c, intl/lock.c, intl/lock.h, + intl/log.c, intl/ngettext.c, intl/os2compat.c, intl/os2compat.h, + intl/osdep.c, intl/plural-exp.c, intl/plural-exp.h, intl/plural.c, + intl/plural.y, intl/printf-args.c, intl/printf-args.h, + intl/printf-parse.c, intl/printf-parse.h, intl/printf.c, + intl/ref-add.sin, intl/ref-del.sin, intl/relocatable.c, + intl/relocatable.h, intl/textdomain.c, intl/vasnprintf.c, + intl/vasnprintf.h, intl/vasnwprintf.h, intl/version.c, + intl/wprintf-parse.h, intl/xsize.h, m4/codeset.m4, m4/gettext.m4, + m4/glibc2.m4, m4/glibc21.m4, m4/iconv.m4, m4/intdiv0.m4, + m4/intl.m4, m4/intldir.m4, m4/intmax.m4, m4/inttypes-pri.m4, + m4/inttypes_h.m4, m4/lcmessage.m4, m4/lib-ld.m4, m4/lib-link.m4, + m4/lib-prefix.m4, m4/lock.m4, m4/longdouble.m4, m4/longlong.m4, + m4/nls.m4, m4/po.m4, m4/printf-posix.m4, m4/progtest.m4, + m4/size_max.m4, m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4, + m4/visibility.m4, m4/wchar_t.m4, m4/wint_t.m4, m4/xsize.m4, + po/Makefile.in.in, po/Rules-quot, po/boldquot.sed, + po/en@boldquot.header, po/en@quot.header, po/insert-header.sin, + po/quot.sed, po/remove-potcdate.sin, tools/config.rpath, + tools/depcomp, tools/missing, tools/ylwrap: New files. + * .bzrignore: Update. + +Sun Oct 14 01:04:41 BST 2007 Colin Watson + + * autogen.sh: Use 'autoreconf -i' rather than reinventing the wheel. + +Sun Oct 14 00:53:14 BST 2007 Colin Watson + + * po/man-db.pot, po/*.po: Update. + +Sun Oct 14 00:49:31 BST 2007 Colin Watson + + * man/Rules.man (clean-local): Remove; we don't need to worry about + removing empty directories in separated build trees. + * man/Makefile.in, man/de.UTF-8/Makefile.in, + man/es.UTF-8/Makefile.in, man/fr.UTF-8/Makefile.in, + man/it.UTF-8/Makefile.in, man/ja.UTF-8/Makefile.in: Regenerate. + +Sun Oct 14 00:40:26 BST 2007 Colin Watson + + * man-db.lsm: Move to ... + * docs/man-db.lsm: ... here. + * Makefile.am, docs/Makefile.am: Move man-db.lsm reference. + * Makefile.in, docs/Makefile.in: Regenerate. + +Sun Oct 14 00:33:10 BST 2007 Colin Watson + + * README: Remove several restrictions lifted by the conversion to + Automake. Remove documentation of how to install native language + manual pages, since this is now done unconditionally. Remove + documentation of the update target, which no longer exists and + should no longer be needed. + + * docs/NEWS: Document conversion to Automake. + +Sun Oct 14 00:22:31 BST 2007 Colin Watson + + Convert to Automake. This fixes VPATH builds, fixes a number of bugs + in areas such as dependency generation, provides new features such + as 'make distcheck', moves complexity into autogenerated code, and + prepares the way for using Gnulib more effectively. + + * makefile.in, include/Defines.in: Remove. + * GNUmakefile.in, lib/Makefile.in, libdb/Makefile.in, + man/Makefile.in, manual/Makefile.in, src/Makefile.in: Translate to + Automake and move to ... + * Makefile.am, lib/Makefile.am, libdb/Makefile.am, man/Makefile.am, + manual/Makefile.am, src/Makefile.am: ... here. + * docs/Makefile.am, tools/Makefile.am: Build these directories + separately. + * man/Rules.man, man/de.UTF-8/Makefile.am, man/es.UTF-8/Makefile.am, + man/fr.UTF-8/Makefile.am, man/it.UTF-8/Makefile.am, + man/ja.UTF-8/Makefile.am: Build manual pages recursively, as it + makes VPATH builds easier. + * Makefile.in, docs/Makefile.in, lib/Makefile.in, libdb/Makefile.in, + man/Makefile.in, man/de.UTF-8/Makefile.in, + man/es.UTF-8/Makefile.in, man/fr.UTF-8/Makefile.in, + man/it.UTF-8/Makefile.in, man/ja.UTF-8/Makefile.in, + manual/Makefile.in, src/Makefile.in, tools/Makefile.in: Add + generated files. + * README: Remove mention of include/Defines. + * autogen.sh: Call automake-1.10 --add-missing --copy. + * m4/man-trans-subst.m4: New macro. + * configure.ac: Various changes for Automake. AC_SUBST man_owner, + and set man_mode rather than man_install_flags. Set + config_file_dirname. Calculate transformed versions of program + names (using MAN_TRANS_SUBST) here for use in Automake variables. + * docs/HACKING (Directory layout): Mention automake. + + Arrange that each file only needs to be built once. + + * src/globbing.c: Split main program out to ... + * src/globbing_test.c: ... here. + * src/lexgrog.l: Split main program out to ... + * src/lexgrog_test.c: ... here. + * po/POTFILES.in: Add src/globbing_test.c and src/lexgrog_test.c. + * src/whatis.c (args, long_options): Include -a/--and + unconditionally. + (usage): Replace with a wrapper selecting between ... + (apropos_usage, whatis_usage): ... these. + (apropos, whatis): Rename to ... + (do_apropos, do_whatis): ... these, respectively. + (use_grep, do_whatis, parse_name, match, do_apropos, search, + main): Use run-time conditionals rather than compile-time + conditionals. + (main): Detect whether we are being invoked as "apropos" or + "whatis" and adjust behaviour accordingly. + * src/Makefile.am: Adjust for the above. Make apropos a symlink to + whatis. + + Make VPATH builds work, and simplify some includes. + + * configure.ac, m4/man-fnmatch.m4: Define FNMATCH_H, GETOPT_H, and + GLOB_H to the respective header names if system versions do not + exist. + * lib/hashtable.h: Remove unnecessary libdb includes. + * lib/decompress.h, lib/glob.c, libdb/db_btree.c, libdb/db_delete.c, + libdb/db_gdbm.c, libdb/db_lookup.c, libdb/db_ndbm.c, + libdb/db_storage.h, libdb/db_store.c, libdb/db_ver.c, + src/accessdb.c, src/catman.c, src/check_mandirs.c, + src/check_mandirs.h, src/compression.c, src/convert_name.c, + src/descriptions.h, src/descriptions_store.c, src/encodings.c, + src/fake_security.c, src/filenames.c, src/filenames.h, + src/globbing.c, src/lexgrog.l, src/lexgrog.l-2.3.8, + src/lexgrog.l-2.4a, src/lexgrog.l.new, src/man.c, src/manconv.c, + src/mandb.c, src/manp.c, src/manpath.c, src/security.c, + src/straycats.c, src/ult_src.c, src/util.c, src/version.c, + src/whatis.c, src/wrapper.c, src/zsoelim.l: Remove lib/ and libdb/ + prefixes from includes. Include , , and + directly rather than using a forest of #ifdefs, since the + copies in lib/ are now not built if a system version exists. + + * .bzrignore: Update. + +Sat Oct 13 15:04:06 BST 2007 Colin Watson + + * lib/popen.c, m4/man-pclose.m4: Remove; we no longer need popen or + pclose. + * configure.ac: Remove call to MAN_FUNC_PCLOSE. + +Sat Oct 13 11:55:21 BST 2007 Colin Watson + + * configure.ac: Add --with-sections option to change the default + value of SECTION. + * src/man_db.conf.in: Use its output. + * docs/NEWS: Document this. + +Fri Oct 12 12:22:52 BST 2007 Colin Watson + + * docs/NEWS: Start 2.5.1. + +Fri Oct 12 11:57:50 BST 2007 Colin Watson + + * src/manconv.c (try_iconv): If we need to try the next encoding in + the list, make sure to do that before writing the output buffer. + +Fri Oct 12 10:21:07 BST 2007 Colin Watson + + * src/whatis.c (use_grep): Add trailing newline to debugging output. + +Fri Oct 12 01:47:49 BST 2007 Colin Watson + + * src/manconv.c (try_iconv): Improve debugging output slightly. + +Fri Oct 12 01:43:25 BST 2007 Colin Watson + + * src/man.c (format_display_and_save, format_display, + display_catman): Only discard stderr from formatting processes if + stdout is a terminal. + +Fri Oct 12 01:32:52 BST 2007 Colin Watson + + * src/encodings.c (device_table): groff's ascii device only supports + ASCII input, not ISO-8859-1. + (compatible_encodings): If the output is ASCII, this is probably + because the caller explicitly asked for it, so allow recoding to + it unconditionally. + +Fri Oct 12 00:48:42 BST 2007 Colin Watson + + * src/whatis.c (main): locale is a constant pointer; free + internal_locale instead (Debian bug #446302). + +Thu Oct 11 01:40:51 BST 2007 Colin Watson + + * src/man.c (display): Free format_cmd on two more early return + paths. + +Thu Oct 11 00:53:31 BST 2007 Colin Watson + + * src/man.c (display): I don't think it's possible for decomp to be + NULL on the display_to_stdout path, but better safe than sorry. + +Thu Oct 11 00:38:56 BST 2007 Colin Watson + + * src/man.c (display): Connect up the decompression pipeline in the + display_to_stdout case too (Debian bug #446189). + (checked_system): Remove, no longer used. + +Thu Oct 11 00:21:49 BST 2007 Colin Watson + + * src/man.c (make_roff_command): Perform input encoding conversion + for troff output as well as nroff output. + +Wed Oct 10 09:39:53 BST 2007 Colin Watson + + * man/man8/mandb.man8 (DATABASE CACHES): Fix "occured" typo (thanks, + Alfie Costa; Debian bug #446044). + +Mon Oct 8 02:24:19 BST 2007 Colin Watson + + * lib/popen.c (popen), src/descriptions.c (parse_descriptions), + src/man.c (add_candidate), src/manp.c (add_dir_to_path_list): Use + xmalloc instead of malloc. + * lib/pipeline.c (get_block): Use xrealloc instead of realloc. + +Mon Oct 8 02:15:47 BST 2007 Colin Watson + + * docs/HACKING: Minor release process adjustment now that we're no + longer using CVS. + +Mon Oct 8 02:13:15 BST 2007 Colin Watson + + * README: Building the manual requires running ./configure now. + +Mon Oct 8 02:09:55 BST 2007 Colin Watson + + The strappend function is in the namespace reserved by C99 + 7.26.10/7.26.11; rename it to appendstr. + + * lib/strappend.c: Rename to ... + * lib/appendstr.c: ... this. Rename function. + * lib/Makefile.in (ALLSRCS, ALL): Build appendstr instead of + strappend. + * lib/README: Update credit. + * include/manconfig.h.in: Update prototype. + * lib/decompress.c, lib/pathsearch.c, lib/pipeline.c, + lib/tempfile.c, libdb/db_delete.c, src/accessdb.c, src/catman.c, + src/check_mandirs.c, src/compression.c, src/convert_name.c, + src/encodings.c, src/filenames.c, src/globbing.c, + src/lexgrog.l.new, src/man.c, src/manconv.c, src/mandb.c, + src/manp.c, src/straycats.c, src/ult_src.c, src/util.c, + src/whatis.c, src/zsoelim.l: Update all callers. + * docs/HACKING: Update reference. + * docs/TODO: Remove item for this. + +Mon Oct 8 01:21:10 BST 2007 Colin Watson + + * GNUmakefile.in (_man): Ship po4a files. + (dist): Create the necessary directories. + +Mon Oct 8 01:16:07 BST 2007 Colin Watson + + Build the manual automatically. This avoids problems trying to do a + distclean (distclean at the top level runs ./config.status --recheck + and regenerates manual/Makefile, but manual/Makefile requires + include/Defines to exist, so there is no way to distclean both the + top level and manual/). + + * GNUmakefile.in (EVERYTHING, ALL): Add manual. + (_subdirs): Remove manual, now included in $(EVERYTHING). + +Sun Oct 7 17:05:54 BST 2007 Colin Watson + + * Version: 2.5.0. + * configure.ac, docs/NEWS, man-db.lsm: Update. + +Sun Oct 7 17:01:47 BST 2007 Colin Watson + + * src/lexgrog.l (ja_name): Add another possible translation. + +Sun Oct 7 15:19:15 BST 2007 Colin Watson + + * manual/Makefile.in (distclean): Remove Makefile. + +Sun Oct 7 14:28:27 BST 2007 Colin Watson + + * po/man-db.pot, po/*.po: Update. + +Sun Oct 7 14:24:31 BST 2007 Ming Hua + + * po/zh_CN.po: New translation. + * po/LINGUAS: Add zh_CN. + * man/THANKS: Add translator credit. + +Wed Sep 26 17:57:44 BST 2007 Colin Watson + + * src/util.c (escape_shell): '=' is conceivably a shell + metacharacter if used in the first word of a command (although I + can't see anywhere in man-db where this might actually happen, + barring very unlikely settings of $BROWSER). + +Wed Sep 26 17:51:45 BST 2007 Colin Watson + + * src/globbing.c (look_for_file): Don't escape the hierarchy path; + it isn't necessary and it causes problems for paths containing + metacharacters (Debian bug #444187). + * src/globbing.h (look_for_file): Update prototype. + +Tue Sep 18 11:29:26 BST 2007 Colin Watson + + * man/po4a/po4a.cfg: Add po4a mechanism for manual page translation, + as the Simplified Chinese translator would like to use this. + * man/po4a/po/man-db.pot: Add generated file. + + * man/man1/apropos.man1, man/man1/lexgrog.man1, man/man1/man.man1, + man/man1/manconv.man1, man/man1/manpath.man1, + man/man1/whatis.man1, man/man1/zsoelim.man1, + man/man5/manpath.man5, man/man8/accessdb.man8, + man/man8/catman.man8, man/man8/mandb.man8: Some strings should not + be translated. Use the ".if !'po4a'hide'" idiom to mark them. + * man/man1/man.man1 (OVERVIEW): Adjust some spacing. + +Tue Sep 18 08:59:55 BST 2007 Colin Watson + + * src/encodings.c (directory_table): Switch Simplified Chinese to + GBK by default. Ming Hua points out that GBK is a superset of + EUC-CN, and indeed all Simplified Chinese manual pages I can find + can be recoded from GBK without hassle. I'm less certain about + changing the output encoding, but for CJK encodings it's best for + these to be the same at the moment. + +Mon Sep 17 16:13:37 BST 2007 Daniel Nylander + + * po/sv.po: Update from Translation Project. + +Mon Sep 17 14:27:15 BST 2007 Clytie Siddall + + * po/vi.po: Update from Translation Project. + +Mon Sep 17 00:34:17 UTC 2007 Colin Watson + + * src/lexgrog.l (ja_name): Oops; make the first translation keep + working! + +Mon Sep 17 00:26:27 UTC 2007 Colin Watson + + * src/lexgrog.l (ja_name): Add another possible translation. + +Mon Sep 17 00:11:38 UTC 2007 Colin Watson + + * lib/pipeline.c (pipeline_start): Break after execvp, otherwise we + segfault if execvp fails. + +Sun Sep 16 23:15:27 BST 2007 Colin Watson + + * Version: 2.5.0-pre2. + * man-db.lsm (Keywords): Add manconv. + +Sun Sep 16 20:41:36 BST 2007 Colin Watson + + * GNUmakefile.in (__distclean): Remove config.status.lineno. + * .bzrignore: Ignore ./config.status.lineno. + +Sun Sep 16 20:38:32 BST 2007 Colin Watson + + * man/Makefile.in: Deal more neatly with manual pages without + complete sets of translations. + +Sun Sep 16 20:25:24 BST 2007 Colin Watson + + Add more intelligent guessing of manual page encodings. Thanks to + Adam Borowski for discussion leading to this. + + * src/manconv.c: New program. + * man/man1/manconv.man1: Document it. + * .bzrignore: Ignore src/manconv. + * include/Defines.in (manconv): Add. + * man/Makefile.in (manconv, thmanconv, manconv.1): Add. + (process_manpage): Add manconv and thmanconv. + (allmanpages): Add ./man1/manconv.1. + (nlsinstall): Install manconv.1. + (nlsuninstall): Uninstall manconv.1. + * src/Makefile.in (PRIVTOOLS, all): Add manconv. + * po/POTFILES.in: Add src/manconv.c. + * po/man-db.pot, po/*.po: Update. + + * src/man.c (PP_COOKIE): Move to ... + * include/manconfig.h.in (PP_COOKIE): ... here. + + * src/encodings.c (add_manconv): New function to use manconv instead + of iconv where appropriate. + * src/encodings.h (add_manconv): Add prototype. + * src/lexgrog.l (find_name): Use it. + * src/man.c (make_roff_command): Use it. Remove coding: preprocessor + string handling, as manconv deals with that now. + * src/straycats.c (check_for_stray): Use it. + * src/Makefile.in (DEFS_encodings.o): Add, defining location of + manconv. + + * docs/NEWS: Document this. + +Sun Sep 16 12:41:05 BST 2007 Colin Watson + + * src/catman.c (main), src/globbing.c (main), src/lexgrog.l (main), + src/man.c (man_getopt), src/mandb.c (main), src/manpath.c (main), + src/whatis.c (main), src/zsoelim.l (main): Pass NULL as the fifth + argument to getopt_long rather than requiring an unused variable. + +Tue Sep 11 13:49:33 BST 2007 Clytie Siddall + + * po/vi.po: Update from Translation Project. + +Mon Sep 10 10:29:40 BST 2007 Colin Watson + + * docs/TODO: Miscellaneous updates. + +Mon Sep 10 10:26:57 BST 2007 Colin Watson + + * docs/INSTALL.autoconf: Update to instructions from Autoconf 2.61. + +Mon Sep 10 10:20:23 BST 2007 Colin Watson + + * manual/misc.me (NLS message catalogues): Update Translation + Project URL. + +Mon Sep 10 10:17:43 BST 2007 Colin Watson + + * manual/Makefile: Rename to ... + * manual/Makefile.in: ... this. Write out a version file with the + current version of man-db. + * manual/man_db.me: Use the automatically-generated version file + rather than hardcoding the version. Set the manual version to + simply the version of man-db. + * configure.ac (AC_CONFIG_FILES): Add manual/Makefile. + * GNUmakefile.in (_manual): Distribute manual/Makefile.in rather + than manual/Makefile. + * .bzrignore: Update. + +Mon Sep 10 09:17:17 BST 2007 Colin Watson + + * Version: 2.5.0-pre1. I mistakenly used version 2.4.5-pre1 earlier. + +Mon Sep 10 09:11:05 BST 2007 Clytie Siddall + + * po/vi.po: Update from Translation Project. + +Mon Sep 10 00:15:31 BST 2007 Colin Watson + + * configure.ac (AM_GNU_GETTEXT_VERSION): Upgrade to gettext 0.16.1. + * .bzrignore: Update ignores. + +Sun Sep 9 23:49:37 BST 2007 Daniel Nylander + + * po/sv.po: Update from Translation Project. + +Sun Sep 9 22:50:22 BST 2007 Colin Watson + + * manual/format.me (Format scripts): Adjust for renaming of + tools/mandb_[nt]fmt-script to tools/mandb_fmt-script. + +Sun Sep 9 21:03:25 BST 2007 Colin Watson + + * manual/comp.me (Compressed manual pages): Using compressed manual + pages is perfectly reasonable these days; stop recommending + against it. + +Sun Sep 9 20:57:16 BST 2007 Colin Watson + + * manual/files.me (Displaying latin1 characters on a Linux virtual + terminal): Rename to ... + (Displaying non-ASCII characters on a Linux virtual terminal): ... + this. Mention console-tools as an alternative to kbd. Remove + detailed advice on configuring kbd as it is now woefully out of + date. Recommend the UTF-8 encoding again. + +Sun Sep 9 20:49:59 BST 2007 Colin Watson + + * manual/files.me (NLS manual pages): Update for new per-locale + directory handling. Recommend UTF-8 encoding. + +Sun Sep 9 19:39:36 BST 2007 Colin Watson + + * manual/intro.me (The manual page system): Refer to /usr/share/man + rather than /usr/man. + * manual/sec.me (Package specific manual page sections): Likewise. + * manual/files.me (Manual page hierarchies, Other OS's manual pages, + NLS manual pages): Likewise. + * manual/leader.me: Update copyright years. + +Sun Sep 9 19:24:56 BST 2007 Colin Watson + + * docs/NEWS: Reorder, roughly by importance. + +Sun Sep 9 09:01:30 BST 2007 Colin Watson + + * GNUmakefile.in (_root): Add autogen.sh to the distribution; it's + useful if you need to change autotools input files. + +Sun Sep 9 08:37:04 BST 2007 Colin Watson + + * Version: 2.4.5-pre1 (for translators). + * po/man-db.pot, po/*.po: Update. + +Mon Sep 3 14:34:06 BST 2007 Colin Watson + + * src/manp.c (add_nls_manpath): Handle the POSIX locale the same way + as C. + +Mon Sep 3 13:48:13 BST 2007 Colin Watson + + * man/man1/whatis.man1 (OPTIONS): Refer to whatis rather than + apropos in description of --manpath. + +Mon Sep 3 13:45:30 BST 2007 Nicolas François + + * man/man1/apropos.man1 (ENVIRONMENT): Remove stray space in + description of POSIXLY_CORRECT. Patch from Debian bug #281811. + +Mon Sep 3 13:26:19 BST 2007 Colin Watson + + * src/encodings.c (directory_table): Add Bulgarian -> CP1251 and + Vietnamese -> TCVN5712-1. + * src/lexgrog.l (bg_name, vi_name): Add. + +Mon Sep 3 12:15:55 BST 2007 Colin Watson + + * src/check_mandirs.c (test_manfile): Fix comment typos and + formatting. + +Mon Sep 3 12:01:36 BST 2007 Colin Watson + + * .bzrignore: Update for manual directory renaming. + * GNUmakefile.in (nls_man): Likewise. + +Mon Sep 3 11:56:58 BST 2007 Colin Watson + + * man/de_DE.88591, man/es_ES.88591, man/fr_FR.88591, + man/it_IT.88591, man/ja_JP.eucJP: Rename to ... + * man/de.UTF-8, man/es.UTF-8, man/fr.UTF-8, man/it.UTF-8, + man/ja.UTF-8: ... these. Recode all contents to UTF-8. + * man/Makefile.in (NLS): Adjust directory search. + * man/THANKS: Update credits. + +Mon Sep 3 11:38:11 BST 2007 Colin Watson + + Create and use databases for non-English manual hierarchies (Debian + bug #29448). Extensive changes elsewhere to support this by means of + better UTF-8 handling and knowledge of more languages. + + * src/check_mandirs.c (make_database_directory): New function. + (create_db, update_db): Use it. + (purge_missing): Check that the database exists before starting. + * src/mandb.c (process_manpath): New function, split out from main. + Make the single_filename check aware that the file might be in a + per-locale subdirectory that we aren't processing right now. + (main): Use it. Move man_owner, purged, and strays to file scope. + Build databases for all per-locale subdirectories. + * src/straycats.c (straycats): Constify manpath argument. + * src/whatis.c (main): Sync locale handling with src/man.c, in order + to look up per-locale databases correctly. Based on a patch by + Nicolas François (Debian bug #281811). + * include/manconfig.h.in (straycats): Update prototype. + + * src/man.c (duplicate_candidates): New function to determine + whether candidates are substantially duplicated, and if so in + which direction. The logic is better than before: it now knows how + to compare locales and pick the best available candidate for each + language, and prefers UTF-8 candidates if everything else is + equal. + (add_candidate): Move duplication logic to duplicate_candidates. + Adjust insertion handling so that we can drop old candidates in + favour of new candidates. + * src/manp.c (check_and_give): Remove. + (unpack_locale_bits): New function, inspired by _nl_explode_name + in libintl. + (free_locale_bits): New function. + (add_nls_manpath): Instead of trying individual directories (which + doesn't work so well with character set aliasing), iterate over + all subdirectories of each manpath entry and add all those + matching the current locale's language and (if specified) + territory. This now includes ll.CODESET as well as more + conventional locale names. + * src/manp.h: Declare 'struct locale_bits'. Prototype + unpack_locale_bits and free_locale_bits. + + * src/man.c (lang_dir): Move to ... + * src/util.c (lang_dir): ... here. + * src/lexgrog.l (long_options, args, main): New -E/--encoding + option. + (usage): Document it. + (cs_name, hu_name, ja_name, ru_name): Recode to UTF-8. + (find_name): Add encoding argument. Guess the page's encoding from + its filesystem location (or use encoding if supplied), and add an + iconv command to recode it to UTF-8. + * man/man1/lexgrog.man1 (SYNOPSIS, OPTIONS): Document --encoding. + * src/straycats.c (check_for_stray): Guess the page's encoding from + its filesystem location, and add an iconv command to recode it to + UTF-8. + * src/whatis.c (simple_convert): New function to simplify iconv + handling. + (display): Convert output from UTF-8 to locale charset. + (main): Initialise iconv descriptor. + * include/manconfig.h.in (find_name): Update prototype. + (lang_dir): Add prototype. + * configure.ac: Call AM_ICONV. + * src/Makefile.in (mandb, lexgrog): Add encodings.o. + * src/Makefile.in (whatis, apropos): Add encodings.o and + $(LIBICONV). + + * src/encodings.c (directory_table): Add Serbian -> ISO-8859-5. + * src/lexgrog.l (cs_name, hu_name): Expand character classes + containing non-ASCII characters into the form (a|b|...); flex + doesn't understand Unicode well enough to deal with them + otherwise. + (cs_name, ru_name): Add more possible translations. + (ko_name, sk_name, sr_name, tr_name, zh_CN_name, zh_TW_name): Add. + (find_name_decompressed): Ignore exit status from decompressor + pipeline; iconv may exit non-zero on misencoded pages, but if we + manage to extract a whatis from it anyway then it doesn't really + matter. + + * src/whatis.c (usage): Document -L/--locale. + * man/man1/apropos.man1 (SYNOPSIS, OPTIONS): Likewise. + * man/man1/whatis.man1 (SYNOPSIS, OPTIONS): Likewise. + + * docs/NEWS: Document this. + +Sun Sep 2 01:21:11 BST 2007 Colin Watson + + Add limited character set aliasing support. + + * src/encodings.c (charset_alias_table): New table for common + character set aliases. + (get_canonical_charset_name): New function to inspect + charset_alias_table. + (get_page_encoding): Use get_canonical_charset_name. Adjust FHS + commentary, since we now support its craziness. + (get_standard_output_encoding): Use get_canonical_charset_name. + (get_locale_charset): Likewise. + * src/encodings.h: Prototype get_canonical_charset_name. + + * src/encodings.c (directory_table): Use EUC-CN rather than GB2312 + and BIG5HKSCS rather than BIG5-HKSCS (canonical names according to + glibc's /usr/lib/gconv/gconv-modules). + (charset_table): Likewise. + (compatible_encodings): Likewise. + +Sun Sep 2 00:49:27 BST 2007 Colin Watson + + * lib/decompress.c (decompress_open, decompress_fdopen): Don't start + the returned pipeline. + * lib/decompress.h (decompress_open, decompress_fdopen): Note that + the caller must start the returned pipeline. + * src/lexgrog.l (find_name): Start the decompressor pipeline. + * src/man.c (display): Likewise. + * src/ult_src.c (ult_src): Likewise. + * src/zsoelim.l (open_file): Likewise. + * src/straycats.c (check_for_stray): Append 'col -bx' to the + decompressor pipeline rather than connecting two pipelines + together. Don't call pipeline_wait by hand as pipeline_free will + do this for us now. + +Fri Aug 31 14:52:22 BST 2007 Colin Watson + + * src/man.c (maybe_update_file): Only recache pages automatically if + --update was given. + +Fri Aug 31 04:54:45 BST 2007 Colin Watson + + * lib/pipeline.c (pipeline_free): Call pipeline_wait if the pipeline + is still running. + * lib/pipeline.h (pipeline_free): Document that this may happen. + +Fri Aug 31 04:46:04 BST 2007 Colin Watson + + * src/zsoelim.l (main): Call pipeline_install_sigchld. + +Wed Aug 29 17:12:52 BST 2007 Lars Wirzenius + + * po/fi.po: Adjust translation of "No manual entry for %s" (Debian + bug #320108). + +Wed Aug 29 15:22:54 BST 2007 Clytie Siddall + + * po/vi.po: Update from Translation Project. + +Wed Aug 29 15:18:34 BST 2007 Daniel Nylander + + * po/sv.po: Update from Translation Project. + +Wed Aug 29 12:07:38 BST 2007 Colin Watson + + * docs/NEWS: Reorganise slightly. Document mandb --quiet fixes. + +Wed Aug 29 11:57:59 BST 2007 Colin Watson + + Add an option to apropos to display only items matching all keywords + (thanks, Alfie Costa; Debian bug #259340). + + * src/whatis.c (args, long_options, main): New -a/--and option for + apropos. + (usage): Document it. + (apropos): Store a count of how many times each item has been seen + in the hashtable. If --and was given, only display an item if its + count equals the number of supplied keywords. + (main): Store the number of supplied keywords. Adjust hash free + function. + * man/man1/apropos.man1 (SYNOPSIS, OPTIONS): Document --and. + * docs/NEWS: Document this. + +Wed Aug 29 11:09:31 BST 2007 Colin Watson + + * m4/man-path-progs.m4: Rename to ... + * m4/man-check-progs.m4: ... this. Use AC_CHECK_PROGS rather than + AC_PATH_PROGS. + * configure.ac: Use AC_CHECK_PROGS rather than + AC_PATH_PROG/AC_PATH_PROGS, and MAN_CHECK_PROGS rather than + MAN_PATH_PROGS. This fixes problems due to system utilities moving + around on $PATH (Debian bug #385651). + +Wed Aug 29 10:42:08 BST 2007 Colin Watson + + * configure.ac: Move bogus makefile content ... + * makefile.in: ... here. + +Wed Aug 29 10:15:33 BST 2007 Colin Watson + + * m4/man-path-progs.m4: Define HAVE_WITH-ARG if the program is + found. + * configure.ac: Rely on the above rather than setting HAVE_GZIP, + HAVE_COMPRESS, and HAVE_BZIP2 here. + +Wed Aug 29 09:41:51 BST 2007 Colin Watson + + * src/mandb.c (main): Revert inadvertently-committed debugging + change to straycats logic. + +Wed Aug 29 09:34:50 BST 2007 Colin Watson + + * src/lexgrog.l: Add Indonesian translation of NAME. + +Wed Aug 29 09:29:36 BST 2007 Colin Watson + + * docs/NEWS: Document previous apropos change. + +Wed Aug 29 09:26:23 BST 2007 Colin Watson + + * src/whatis.c (apropos): Add output keys to a hashtable, and skip + any that have already been seen (Debian bug #259338). + (main): Create the hashtable on startup and free it on exit. + +Tue Aug 28 19:16:18 BST 2007 Colin Watson + + * src/man.c (format_display): Wait for the decomp pipeline in the + !format_cmd case too. + +Tue Aug 28 19:07:53 BST 2007 Colin Watson + + * src/man.c (display_catman): Take a decompressor pipeline argument. + Connect it to format_cmd. + (display): Update call to display_catman. + +Tue Aug 28 18:38:31 BST 2007 Colin Watson + + Add a configuration file flag (NOCACHE) to disable cat page caching + (thanks, Ralph Corderoy; Debian bug #196642). + + * src/manp.c (add_to_dirlist): Recognise NOCACHE. + * src/man.c (display): Don't save a cat page if NOCACHE is set. + * src/man_db.conf.in: Document NOCACHE. + * man/man5/manpath.man5 (FORMAT): Document NOCACHE. + * docs/NEWS: Document this. + +Tue Aug 28 17:23:26 BST 2007 Colin Watson + + * docs/NEWS: Bump to 2.5.0; I think there's now enough to justify + that. + +Tue Aug 28 17:19:16 BST 2007 Colin Watson + + Implement and use a decompression library. This allows cat pages to + be saved in the background (Debian bug #18452) and operation with a + read-only /tmp (Debian bug #165499). + + * lib/pipeline.h (struct command): Add support for commands that + consist of calling a function rather than executing a process. + (struct pipeline): Add want_infile and want_outfile members. Note + that infile and outfile default to NULL. Add source, buffer, + buflen, bufmax, line_cache, and peek_offset members. + (command_new_function, command_dump, command_tostring, + pipeline_connect, pipeline_pump, pipeline_read, pipeline_peek, + pipeline_peek_size, pipeline_peek_skip, pipeline_readline, + pipeline_peekline): New prototypes. + (pipeline_join): Update description for want_infile and + want_outfile. + * lib/pipeline.c (command_new, command_dup, command_arg, + command_argv, command_args, command_argstr, command_free): Update + for 'struct command' changes. + (command_new_function, command_dump, command_tostring): New + functions. + (pipeline_new, pipeline_join, pipeline_dump, pipeline_tostring): + Update for 'struct pipeline' changes. + (pipeline_dump): Use command_dump. + (pipeline_tostring): Use command_tostring. + (pipeline_start): Implement want_infile, want_outfile, and + function commands. Make zero-command case work properly (read + directly from input file). Flush all pending stdio output so that + subprocesses don't inherit it. + (pipeline_connect, pipeline_pump, get_block, pipeline_read, + pipeline_peek, pipeline_peek_size, pipeline_peek_skip, get_line, + pipeline_readline, pipeline_peekline): New functions. + + * lib/decompress.c, lib/decompress.h: New files, implementing a + decompression abstraction layer. + * lib/Makefile.in: Always compile decompress.c. + + * src/lexgrog.l (YY_INPUT): Define to read from a 'struct pipeline'. + (find_name): Use decompress_open/decompress_fdopen rather than + older decompression methods. Split handling once we have a + decompressor pipeline out to ... + (find_name_decompressed): ... here. + * src/check_mandirs.c (test_manfile): Remove decompression code; + find_name will handle this itself now. + * src/compression.c (create_ztemp, decompress, remove_ztemp, + get_ztemp): Remove. + * src/man.c (checked_popen): Remove. + (local_man_loop): Remove decompression code. + (get_preprocessors_from_file): Convert to peeking the first line + from a pipeline. + (get_preprocessors): Adjust arguments and + get_preprocessors_from_file call. + (remove_stdintmp, create_stdintmp): Remove. + (make_roff_command): Remove special handling of stdin, now handled + by peeking a pipeline. + (open_cat_stream): Don't start the returned pipeline. + (close_cat_stream): Remove unnecessary COMP_CAT special case. + (format_display_and_save): Take a decompressor pipeline argument. + Simplify by using pipeline_connect and pipeline_pump. + (format_display): Take a decompressor pipeline argument. Use + pipeline_connect and pipeline_pump. + (display): Use decompress_open/decompress_fdopen rather than older + decompression methods. + (display_filesystem, display_database): Drop remove_ztemp calls. + * src/straycats.c (check_for_stray): Use decompression layer. + Rearrange control flow a bit to reduce duplication. Remove use of + temporary file; use find_name_decompressed instead. Only increment + strays if find_name_decompressed succeeds. + (straycats): Remove temporary file creation. + * src/ult_src.c (ult_src): Use pipeline and decompression layers + rather than older decompression methods. + * src/zsoelim.l (YY_INPUT): Define to read from a 'struct pipeline'. + (\"?[^ \t\n\"]+\"?): Call open_file only once; let it worry + about compression extensions. Decrement so_stack_ptr here if + open_file fails rather than having it do it. + (\"?[^ \t\n\"]+\"?): Free the old value of NAME, if set. + (<>): Clean up used pipeline and free NAME. Remove so_delete + handling. + (main): Let open_file handle stdin. + (open_file): Use decompress_open/decompress_fdopen rather than + older decompression methods. Don't decrement so_stack_ptr here on + failure. + + * configure.ac: Remove decompressor variable. Check for gzopen in + libz. + * include/manconfig.h.in (DECOMPRESSOR): Remove. + (comp_list): Declare extern here. + (create_tempfile): Remove. + (decompress, remove_ztemp, get_ztemp): Remove. + (find_name_decompressed): Add prototype. + * lib/tempfile.c (create_tempfile): Remove. We now only need + temporary directory creation. + * src/man_db.conf.in (decompressor): Remove. + + * docs/TODO: Update. + * docs/NEWS: Document this. + +Tue Aug 28 11:14:53 BST 2007 Colin Watson + + * tools/mandb_[nt]fmt-script: Rename to tools/mandb_fmt-script, + which is a rather less hostile filename. + * tools/README: Update. + * GNUmakefile.in: Update. + +Tue Aug 28 10:36:20 BST 2007 Colin Watson + + * src/straycats.c (check_for_stray): Drop privileges while opening + temporary file (previously created with dropped privileges). + +Tue Aug 28 10:31:03 BST 2007 Colin Watson + + * src/straycats.c (straycats): Regain privileges on the error path + too. + +Mon Aug 27 20:13:09 BST 2007 Colin Watson + + * src/compression.c (comp_file): Free compfile if returning NULL. + +Mon Aug 27 20:02:17 BST 2007 Colin Watson + + * lib/pipeline.c (pipeline_wait): Re-raise SIGINT or SIGQUIT if they + terminate a subprocess. + +Mon Aug 27 19:58:19 BST 2007 Colin Watson + + * lib/pipeline.c (pipeline_wait): Return 1 if we fail to close the + pipeline's output. + +Sun Aug 26 23:33:23 BST 2007 Colin Watson + + * src/man.c (format_display): Check whether format_cmd is NULL + before discarding stderr from it. + +Sun Aug 26 21:20:45 BST 2007 Colin Watson + + * src/man.c (checked_popen): Remove unnecessary SECURE_MAN_UID + guard; drop_effective_privs/regain_effective_privs already check + this. + * src/security.c (remove_with_dropped_privs): Likewise. The uid != + ruid check is no longer necessary now that + drop_effective_privs/regain_effective_privs handle nesting + correctly. + +Sun Aug 26 19:40:12 BST 2007 Colin Watson + + * src/man.c (make_roff_command): If MAN_KEEP_FORMATTING is set in + the environment, don't strip formatting characters with col + (Debian bug #340673). + * man/man1/man.man1 (ENVIRONMENT): Document MAN_KEEP_FORMATTING. + * docs/NEWS: Document this. + +Sun Aug 26 16:40:50 BST 2007 Colin Watson + + Suppress warnings in --quiet mode (thanks, Martin Dorey; Debian bugs + #348008, #378428, and #411220). + + * src/check_mandirs.c (test_manfile): Suppress "bad symlink" warning + under --quiet. + * src/ult_src.c (ult_hardlink): Suppress "can't search directory" + warning under --quiet. + (ult_softlink): Suppress "dangling symlinks" and "can't resolve" + warnings under --quiet. + (ult_src): Suppress "can't resolve", "is self referencing", and + "can't open" warnings under --quiet. + * src/lexgrog.l: Declare global quiet variable. + +Sun Aug 26 16:10:26 BST 2007 Colin Watson + + * src/lexgrog.l (main): Skip descriptions with NULL name or whatis. + This causes pages with no description to be flagged as parse + failures, so that automatic scanners can pick them up more easily. + +Sun Aug 26 15:08:45 BST 2007 Colin Watson + + * src/man.c (is_section): Disallow sectional extensions of + alphabetic sections, e.g. n and l from the default configuration + (Debian bug #391977). Also disallow sectional extensions beginning + with a digit (Debian bug #421481). + +Mon Aug 20 00:10:49 BST 2007 Colin Watson + + Discard stderr from formatting processes when outputting to a pager, + to avoid visual corruption from any error messages (thanks, Vincent + Lefevre; Debian bug #372939). + + * lib/pipeline.h (struct command): Add discard_err member. + * lib/pipeline.c (command_new, command_dup): Initialise discard_err. + (pipeline_start): Redirect the child's stderr to /dev/null if + discard_err is set. + * src/man.c (discard_stderr): New function to set discard_err on all + commands in a pipeline. + (format_display_and_save, format_display): Use it on format_cmd. + * docs/NEWS: Document this. + +Sun Aug 19 21:04:24 BST 2007 Colin Watson + + * src/descriptions.c (parse_descriptions): Skip name tokens + containing whitespace, as they are almost never useful as manual + page names. + * man/man1/lexgrog.1 (WHATIS PARSING), docs/NEWS: Document this. + +Sun Aug 19 21:00:20 BST 2007 Colin Watson + + * src/lexgrog.l: Skip over .ft font change requests, and the .Vb and + .Ve definitions used by pod2man to begin and end verbatim mode. + This handles some POD-generated pages better. + +Sun Aug 19 20:48:42 BST 2007 Colin Watson + + Truncate apropos/whatis output to the terminal width by default + (thanks, Dan Jacobson; Debian bug #411721). + + * lib/linelength.c: New file for terminal line length detection, + split out from src/man.c. Unlike the previous implementation, this + does its own memoisation rather than requiring explicit + initialisation. + * lib/linelength.h: Prototype get_line_length. + * lib/Makefile.in: Always compile linelength.c. + * src/man.c (line_length, store_line_length): Remove. + (get_roff_line_length): Use get_line_length. + (main): We no longer need to call store_line_length. + * src/whatis.c (args, long_options, main): New -l/--long option. + (usage): Document it. + (display): Truncate names and descriptions to fit within the + terminal width. + * man/man1/apropos.man1 (SYNOPSIS, OPTIONS, ENVIRONMENT): Document + --long and the MANWIDTH override. + * man/man1/whatis.man1 (SYNOPSIS, OPTIONS, ENVIRONMENT): Likewise. + * docs/NEWS: Document this. + +Tue Jun 26 10:48:45 BST 2007 Colin Watson + + * man/de_DE.88591/man1/man.man1 (UMGEBUNG), + man/de_DE.88591/man8/catman.man8 (BESCHREIBUNG): MANSEC -> MANSECT + (thanks, Holger Kubiak; Debian bug #430635). + +Mon Jun 18 10:19:22 BST 2007 Colin Watson + + * lib/cleanup.c (do_cleanups): Split out signal-safe processing ... + (do_cleanups_sigsafe): ... here. + (sighandler): Call do_cleanups_sigsafe rather than do_cleanups. + (push_cleanup): Add sigsafe argument to allow cleanup functions to + be flagged as non-signal-safe (e.g. freeing memory). + * lib/cleanup.h: Update prototypes. + * libdb/db_gdbm.c (man_gdbm_firstkey): hash_free cleanup is not + signal-safe. + * src/globbing.c (update_directory_cache): hash_free cleanup is not + signal-safe. + (look_for_file): globfree cleanup is not signal-safe. + * src/man.c (open_cat_stream, display_catman): unlink cleanup is + signal-safe. + * src/mandb.c (cleanup): Split out signal-safe processing ... + (cleanup_sigsafe): ... here. + (main): Call cleanup_sigsafe as well as cleanup. + * src/manp.c (read_config_file): free_config_file cleanup is not + signal-safe. + +Mon Jun 18 08:03:30 BST 2007 Colin Watson + + * lib/xstrsignal.c: Include config.h. + +Mon Jun 18 07:50:56 BST 2007 Colin Watson + + * libdb/db_btree.c (btree_close, btree_flopen, btree_replace, + btree_insert, btree_fetch, btree_exists, btree_findkey, + btree_firstkey, btree_nextkey, btree_nextkeydata): Rename dbf to + db to avoid shadowing a global variable. + * libdb/mydbm.h: Update prototypes and btree macros likewise. + +Sat May 26 10:58:11 BST 2007 Colin Watson + + * src/man.c (gripe_no_name): On reflection, borrowing the error + message from gripe_no_man is clearer if a possible section name + was specified. + * po/man-db.pot, po/*.po: Update. + +Sat May 26 10:53:58 BST 2007 Colin Watson + + * po/man-db.pot: Add to revision control. + +Sat May 26 10:52:01 BST 2007 Colin Watson + + * src/man.c (gripe_no_name): Resolve ambiguous error message when + asking for a nonexistent manual page that might also be a section + name (Debian bug #421481). + * po/*.po: Update. + +Sat May 26 10:46:56 BST 2007 Colin Watson + + * src/man.c (gripe_no_name): Complete renaming of section to sect. + +Fri May 25 21:23:05 BST 2007 Colin Watson + + Add (untested) zh_HK support. Thanks to Alex Lau for advice. + + * src/encodings.c (directory_table): Add zh_HK, defaulting to the + BIG5-HKSCS encoding. + (charset_table): Add BIG5-HKSCS, defaulting to the nippon driver. + (compatible_encodings): Recognise BIG5-HKSCS encoding. + (get_roff_encoding): Add special case for zh_HK.UTF-8 locale. + +Wed Apr 11 04:37:35 BST 2007 Colin Watson + + Add MANPAGER support. Thanks to Faidon Liambotis for the suggestion. + + * src/man.c (main): Support MANPAGER, overriding PAGER. + * man/man1/man.man1 (OPTIONS, ENVIRONMENT): Document MANPAGER. + * docs/NEWS: Document this. + +Thu Apr 5 18:00:00 BST 2007 Colin Watson + + * src/lexgrog.l: Break whatis definitions at .IP, .HP, .RS, and .RE + (thanks to Ori Avtalion for the report). + +Mon Mar 5 10:02:01 GMT 2007 Colin Watson + + * src/man_db.conf.in (MANDATORY_MANPATH): Remove /usr/X11R6/man + (Debian bug #413349). + +Sun Mar 4 10:40:49 GMT 2007 Colin Watson + + * libdb/db_gdbm.c (gdbm_exists): Rename dbf to file. + +Sun Mar 4 10:39:14 GMT 2007 Colin Watson + + * libdb/db_store.c (dbstore): Rename basename to base. + +Sun Mar 4 00:51:30 GMT 2007 Colin Watson + + Eliminate variable and function shadowing. + + * configure.ac (CFLAGS): Add -Wshadow if the compiler is GCC. + + * src/manp.c: Don't declare manpathlist here, as it's never used in + this file. + * src/catman.c, src/man.c, src/mandb.c, src/whatis.c: Declare it + here instead. + + * lib/pipeline.c (pipeline_start): Remove duplicate declarations of + set and oset. + * libdb/db_ver.c (dbver): Merge into ... + (dbver_rd): ... this, eliminating a global variable. + (dbver_rd, dbver_wr): Rename dbf to dbfile. + * src/accessdb.c (main): Don't redeclare dbf locally. + * src/check_mandirs.c (gripe_rwopen_failed): Use global database + rather than passing it as an argument. Update all callers. + * src/man.c (gripe_no_name): Rename section to sect. + (add_roff_line_length): Rename save_cat to save_cat_p. + (make_roff_command): Declare cmd only once. + (make_browser): Rename command to pattern. + (display): Rename pause to prompt. + * src/manp.c (get_manpath): Rename to ... + (get_manpath_from_path): ... this. Update all callers. + (manpath): Rename to ... + (get_manpath): ... this. Update all callers. + (add_system_manpath): Rename system to one_system. + * src/manp.h (manpath): Rename to ... + (get_manpath): ... this. + * src/ult_src.c (ult_hardlink): Rename link to base. + (ult_src): Rename basename to base. + * src/whatis.c (apropos): Rename match to got_match. + (search): Return found rather than setting the global variable + status based on it. + (main): Use search's return value, eliminating a global variable. + * src/zsoelim.l (usage): Rename status to exit_status. + (open_file): Rename decompress to decomp. + +Sat Mar 3 22:35:31 GMT 2007 Colin Watson + + * src/manp.c: Declare tmplist as static. + +Wed Feb 28 22:04:04 GMT 2007 Colin Watson + + * lib/pipeline.c (pipeline_start): Close inputs and outputs from + other active pipelines in all subprocesses. + +Wed Feb 28 21:57:24 GMT 2007 Colin Watson + + * lib/pipeline.c (pipeline_start): Don't ignore SIGPIPE in + subprocesses; this has undesirable consequences in some + situations. + (pipeline_wait): Flatten SIGPIPE exit statuses to zero instead. + +Tue Feb 27 20:58:31 GMT 2007 Colin Watson + + * lib/pipeline.c (pipeline_start): Save previous value of SIGQUIT + such that it gets restored as SIGQUIT, not as SIGINT. + +Wed Feb 14 12:20:28 GMT 2007 Colin Watson + + * m4/man-path-progs.m4: New file with MAN_PATH_PROGS macro. + * configure.ac: Use MAN_PATH_PROGS where reasonable (browser, pager, + nroff, eqn, neqn, tbl, col, vgrind, refer, grap, pic, gzip, + compress, bzip2) to allow overriding the default search for + auxiliary program locations. + * docs/NEWS: Document this. + +Wed Feb 14 10:41:28 GMT 2007 Colin Watson + + * acinclude.m4: Remove and split into ... + * m4/man-ansi-sprintf.m4, m4/man-bdb.m4, m4/man-fnmatch.m4, + m4/man-gnu-nroff.m4, m4/man-pclose.m4, m4/man-strsignal.m4: ... + these new files. + * configure.ac (AC_CONFIG_SRCDIR): Use src/man.c rather than + acinclude.m4. + +Wed Feb 14 10:32:28 GMT 2007 Colin Watson + + * libdb/db_lookup.c (make_content): Restore (size_t) cast in + assertion. + +Wed Feb 14 10:30:52 GMT 2007 Colin Watson + + * libdb/db_gdbm.c (man_gdbm_nextkey): Fix MYDBM_DPTR vs. MYDBM_DSIZE + typo. + +Wed Feb 14 09:52:15 GMT 2007 Colin Watson + + * libdb/db_btree.c (test_insert): Use debug function. + + * libdb/mydbm.h (GDBM, NDBM, BTREE): Add MYDBM_DPTR, MYDBM_SET_DPTR, + and MYDBM_DSIZE accessor macros. + (BTREE): Make datum be a typedef for DBT rather than our own + struct, fixing "dereferencing type-punned pointer will break + strict-aliasing rules" warnings from GCC. Adjust MYDBM_DELETE + definition accordingly. + * libdb/db_btree.c (test_insert, btree_findkey, dbstore, dblookup): + Use MYDBM_DPTR, MYDBM_SET_DPTR, and MYDBM_DSIZE macros instead of + accessing dptr and dsize members directly. + * libdb/db_delete.c (dbdelete): Likewise. + * libdb/db_gdbm.c (parent_sortkey_hash_free, sortkey_compare, + man_gdbm_firstkey, man_gdbm_nextkey, gdbm_exists): Likewise. + * libdb/db_lookup.c (copy_datum, make_multi_key, make_content, + dblookup): Likewise. + * libdb/db_store.c (replace_if_necessary, dbstore): Likewise. + * libdb/db_ver.c (dbver, dbver_wr, dbver_rd): Likewise. + * src/accessdb.c (main): Likewise. + * src/catman.c (add_arg, parse_for_sec): Likewise. + * src/check_mandirs.c (update_db_time, reset_db_time, update_db, + purge_pointers, purge_missing): Likewise. + * src/whatis.c (apropos): Likewise. + + * libdb/db_btree.c (btree_fetch, btree_findkey, dbstore, dblookup): + Make sure that datum structures allocated on the stack are zeroed + properly. + * libdb/db_delete.c (dbdelete): Likewise. + * libdb/db_lookup.c (make_multi_key, make_content, dblookup): + Likewise. + * libdb/db_store.c (dbstore): Likewise. + * libdb/db_ver.c (dbver, dbver_wr): Likewise. + * src/check_mandirs.c (update_db_time, reset_db_time, update_db): + Likewise. + +Tue Feb 13 11:02:08 GMT 2007 Colin Watson + + * zsoelim/README: Rename to ... + * src/README.zsoelim: ... this. + * zsoelim/zsoelim.l: Rename to ... + * src/zsoelim.l: ... this. + * zsoelim/Makefile.in: Remove. + * src/Makefile.in: Build, install, and clean zsoelim. + * GNUmakefile.in: Remove references to zsoelim directory. Distribute + src/README.zsoelim. + * configure.ac: Stop producing zsoelim/Makefile. + * docs/HACKING: Remove description of zsoelim directory. + * .bzrignore: Update ignores. + +Tue Feb 13 10:52:33 GMT 2007 Colin Watson + + * zsoelim/zsoelim.l (yywrap): Remove; use %option noyywrap instead. + * zsoelim/Makefile.in (LDLIBS): zsoelim doesn't need to be linked + with LEXLIB any more. + +Mon Feb 12 18:06:42 GMT 2007 Colin Watson + + * src/Makefile.in (LFLAGS), zsoelim/Makefile.in (LFLAGS), + zsoelim/zsoelim.l: Set options using %option rather than using + command-line options. + +Mon Feb 12 17:52:11 GMT 2007 Colin Watson + + * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fi.po, + po/fr.po, po/it.po, po/ja.po, po/pl.po, po/pt_BR.po, po/ro.po, + po/ru.po, po/sv.po, po/vi.po: Update. + +Mon Feb 12 17:44:48 GMT 2007 Colin Watson + + * lib/debug.c: New file for debugging functions. + * include/manconfig.h.in: debug -> debug_level; prototype debug and + debug_error. + * lib/Makefile.in (ALL): Add debug.o. + * Update all emissions of debugging messages to use the new + functions where possible; otherwise, debug -> debug_level. + +Mon Feb 12 13:00:42 GMT 2007 Colin Watson + + * src/mandb.c (main): Change "No databases updated" to "No databases + created" now that we're no longer string-frozen. + * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fi.po, + po/fr.po, po/it.po, po/ja.po, po/pl.po, po/pt_BR.po, po/ro.po, + po/ru.po, po/sv.po, po/vi.po: Update. + +Mon Feb 12 12:58:10 GMT 2007 Colin Watson + + * po/POTFILES.in: Add src/descriptions_store.c. + * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fi.po, + po/fr.po, po/it.po, po/ja.po, po/pl.po, po/pt_BR.po, po/ro.po, + po/ru.po, po/sv.po, po/vi.po: Update. + +Mon Feb 12 12:42:44 GMT 2007 Colin Watson + + * man/es_ES.88591/man1/man.man1 (OPCIONES), + man/it_IT.88591/man1/man.man1 (OPZIONI), + man/ja_JP.eucJP/man1/man.man1 (オプション): Fix soft-hyphen + declarations to avoid error messages from groff. + +Mon Feb 12 10:35:14 GMT 2007 Colin Watson + + * Version: 2.4.4. + * configure.ac, docs/NEWS, man-db.lsm: Update. + +Mon Feb 12 09:20:09 GMT 2007 Colin Watson + + * man/man1/man.man1 (OPTIONS): Stop claiming that -d does not + display any manual pages (thanks, Dan Jacobson; Debian bug + #340910). + +Mon Feb 12 09:04:17 GMT 2007 Colin Watson + + * src/man.c (main): Treat an empty LANGUAGE environment variable as + equivalent to it being unset. + +Sun Feb 11 10:31:04 GMT 2007 Colin Watson + + * docs/NEWS: Add forgotten item about SIGCHLD handling. + +Sat Feb 3 10:08:03 GMT 2007 Giuseppe Sacco + + * man/it_IT.88591/man1/man.man1: Update translation. + * man/THANKS: Update translator credit. + +Mon Jan 29 10:51:09 GMT 2007 Valéry Perrin + + * man/fr_FR.88591: Add French man page translations. + * .bzrignore: Add ignores under man/fr_FR.88591. + * GNUmakefile.in (nls_man): Add fr_FR.88591. + * man/THANKS: Add translator credit. + +Mon Jan 8 13:31:15 GMT 2007 Colin Watson + + Partial update of tempname module from gnulib. (Once we switch to + automake, it will be possible to import it properly.) + + * m4/tempname.m4: New file. + * configure.ac: Use gl_FUNC_GEN_TEMPNAME. + +Mon Jan 8 13:06:42 GMT 2007 Colin Watson + + * docs/ToDo: Rename to ... + * docs/TODO: ... this for consistency with other projects. + * GNUmakefile.in (_docs), docs/README, docs/HACKING: Update + references. + +Mon Jan 8 12:45:33 GMT 2007 Colin Watson + + * configure.ac (AC_PREREQ): Require autoconf 2.59, for gnulib. + +Mon Jan 8 12:37:12 GMT 2007 Colin Watson + + Update setenv module from gnulib. + + * m4/setenv.m4: New file. + * .bzrignore: Ignore only gettextize-generated files in m4 + directory. + * autogen.sh: Pass '-I m4' option to aclocal. + * configure.ac: Use gt_FUNC_SETENV. + * lib/setenv.c, lib/unsetenv.c: Update. + +Mon Jan 8 12:14:59 GMT 2007 Colin Watson + + * acinclude.m4 (MAN_FUNC_STRSIGNAL): Include for + strsignal. + +Mon Jan 8 12:10:08 GMT 2007 Colin Watson + + * acinclude.m4 (MAN_FUNC_FNMATCH): New macro to check whether + fnmatch supports the FNM_CASEFOLD flag (a GNU extension). + * configure.ac: Use it. + +Mon Jan 8 10:39:24 GMT 2007 Colin Watson + + * lib/xsigaction.c: New file: sigaction with EINTR checking. + * include/manconfig.h.in: Add prototype. + * lib/Makefile.in: Build xsigaction. + * lib/cleanup.c (sighandler, trap_signal, untrap_signal): Use + xsigaction instead of bare sigaction. + * lib/pipeline.c (pipeline_start, pipeline_wait, + pipeline_install_sigchld): Use xsigaction instead of + sigaction-plus-EINTR-check. + +Mon Jan 8 09:55:48 GMT 2007 Colin Watson + + * configure.ac: Rename lynx variable to browser. Check for + www-browser (as on Debian) before lynx. + * include/manconfig.h.in: Rename lynx variable to browser. + +Mon Jan 8 09:15:04 GMT 2007 Colin Watson + + * src/mandb.c (main): If no database changes were necessary, then: + don't bother committing database changes or running straycats; + only exit non-zero if the -c option was given; only emit "No + databases updated" message (should be "No databases created" now) + if the -c option was given but not -q, to help automatic + invocation from man. + +Sun Jan 7 23:54:18 GMT 2007 Colin Watson + + * src/man.c (make_roff_command): Don't try to pass -X or -P-g + options to eqn, only troff (Debian bug #327772). + +Sun Jan 7 21:16:57 GMT 2007 Colin Watson + + * man/man1/man.man1 (SYNOPSIS, OPTIONS): Document -X option (thanks, + Sam Morris; Debian bug #360112). + +Sun Jan 7 20:58:16 GMT 2007 Colin Watson + + Add cross-references to mandb in apropos and whatis documentation + (thanks, Phil Endecott; Debian bug #388755). + + * man/man1/apropos.man1 (DESCRIPTION): Mention that the database is + updated by mandb. + (SEE ALSO): Refer to mandb(8). + * man/man1/whatis.man1 (DESCRIPTION, SEE ALSO): Likewise. + +Sun Jan 7 20:51:27 GMT 2007 Colin Watson + + * src/globbing.c (parse_layout): Actually check upper-cased version + of layout rather than creating it and then ignoring it. + +Sun Jan 7 20:48:58 GMT 2007 Colin Watson + + Fix a slew of memory leaks, including a nasty per-search leak in + apropos (Debian bug #368749). + + * include/manconfig.h.in (ATTRIBUTE_UNUSED): Define to an attribute + marking a variable as unused if using GCC 2.4 or newer. + + * lib/error.c (error): Free program_name before exiting. + * src/accessdb.c (main): Put program_name in allocated memory. + * src/wrapper.c (main): Likewise. + * src/Makefile.in: Link wrapper against libman. + + * libdb/db_gdbm.c (man_gdbm_firstkey): Register cleanup function to + free parent_sortkey_hash on exit. + * src/globbing.c (update_directory_cache): Register cleanup function + to free dirent_hash on exit. + (look_for_file): Register cleanup function to free gbuf on exit. + Move freeing of gbuf before each search to ... + (match_in_directory): ... here. + * src/manp.c (free_config_file): New function. + (read_config_file): Register cleanup function to free + configuration file structures on exit. + + * lib/cleanup.c (do_cleanups): Free the stack after processing it. + * lib/hashtable.c (hash_free): Free ht->hashtab as well. + * libdb/db_lookup.c (free_mandata_elements): Add TODO comment about + strange memory handling. + * src/catman.c (parse_for_sec): Free entry. + (main): Free various variables before exiting. + * src/check_mandirs.c (count_glob_matches): Free info.name. + (purge_missing): Free entry rather than just content.dptr (== + entry.addr). + * src/globbing.c (parse_layout): Free upper_layout. + (match_in_directory): Free pattern_start.pattern in early return + case. + * src/man.c (main): Free various variables before exiting. + * src/mandb.c (finish_up, cleanup, mandb, main): Free various + database file names properly. + (main): Remember to assign the result of getcwd_allocated + somewhere. Free various variables before exiting. + * src/manp.c (add_sections): Free section_list; comment was + incorrect. + (add_nls_manpath): Free temp_locale. + (guess_manpath): Constify path. Free result of get_manpath before + returning. + (get_manpath): Constify path. Free tmplist elements. + (create_pathlist): Free result of xstrndup. + (free_pathlist): New function. + * src/manp.h (free_pathlist): Add prototype. + * src/util.c (mkdbname): Don't allocate mkdbname statically; it's + less confusing just to free it each time. + * src/whatis.c (apropos): Initialise and free info. + (search): Free database. + (main): Free regular expression after each search. Free various + variables before exiting. + +Wed Dec 27 13:34:23 GMT 2006 Colin Watson + + Teach lexgrog front-end about pages with multiple name/description + pairs (Debian bug #342834). + + * src/descriptions.c (parse_descriptions): Allow base_name to be + NULL to suppress ensuring that base_name is in the returned list. + (gripe_bad_store, store_descriptions): Move to ... + * src/descriptions_store.c: ... here. + * src/lexgrog.l (main): Use parse_descriptions to split lg.whatis up + into its component descriptions, and display each on a separate + line. + * src/Makefile.in (mandb, lexgrog): Adjust object lists for the + above. + * docs/NEWS: Document this. + +Tue Dec 26 20:52:50 GMT 2006 Colin Watson + + * src/man.c (local_man_loop): Fail with an error message if argv is + a character or block device, as we may well hang trying to read + from it and it almost certainly isn't what the caller intended + anyway (Debian bug #341706). + +Tue Dec 26 20:11:04 GMT 2006 Colin Watson + + * docs/HACKING (Revision control): New section. + * docs/NEWS: Refer to docs/HACKING for bzr archive location. + +Tue Dec 26 20:04:32 GMT 2006 Colin Watson + + * GNUmakefile.in: Distribute configure.ac and docs/HACKING. + +Tue Dec 26 15:06:06 GMT 2006 Colin Watson + + * Version: 2.4.4-pre1 (for translators). + +Tue Dec 26 15:02:33 GMT 2006 Colin Watson + + * po/*.po: Update. + +Tue Dec 26 14:49:56 GMT 2006 Colin Watson + + * libdb/db_store.c, libdb/db_ver.c: Correct gettext.h inclusions. + +Tue Dec 26 14:47:36 GMT 2006 Colin Watson + + * libdb/Makefile.in, src/Makefile.in: Remove .depend directory on + clean, not distclean. + +Tue Dec 26 14:34:25 GMT 2006 Colin Watson + + * autogen.sh: Upgrade to aclocal 1.10. + +Tue Dec 26 14:27:59 GMT 2006 Colin Watson + + * configure.ac (AM_GNU_GETTEXT_VERSION): Upgrade to gettext 0.15. + * lib/gettext.h: Copy from gettext 0.15. + * lib/README: Mention the above. + * lib/pipeline.c, libdb/db_delete.c, libdb/db_lookup.c, + libdb/db_store.c, libdb/db_ver.c, src/accessdb.c, src/catman.c, + src/check_mandirs.c, src/compression.c, src/convert_name.c, + src/descriptions.c, src/encodings.c, src/fake_security.c, + src/filenames.c, src/globbing.c, src/lexgrog.l, src/lexgrog.l.new, + src/man.c, src/mandb.c, src/manp.c, src/manpath.c, src/security.c, + src/straycats.c, src/ult_src.c, src/version.c, src/whatis.c, + src/wrapper.c, zsoelim/zsoelim.l: Include "gettext.h" rather than + . Make sure not to include before + "gettext.h", for portability to Solaris. + * src/wrapper.c: Drop ENABLE_NLS test, now handled by gettext.h. + +Tue Nov 7 11:00:14 PST 2006 Colin Watson + + * src/man.c (make_browser): Remove unnecessary check for browser + being NULL. + * docs/NEWS: Add CVE identifier. + +Mon Nov 6 09:45:49 PST 2006 Colin Watson + + * configure.ac, include/manconfig.h.in: Only prepend "exec " to + WEB_BROWSER if configure found a web browser. + +Mon Nov 6 09:01:13 PST 2006 Colin Watson + + * src/globbing.c: _GNU_SOURCE is defined throughout now, so don't + redefine it. + +Mon Nov 6 08:40:54 PST 2006 Colin Watson + + * docs/NEWS: Document switch to bzr. + +Mon Nov 6 08:34:57 PST 2006 Colin Watson + + * src/man.c (make_browser): Fix buffer overrun if BROWSER contains + multiple %s expansions. Thanks to Jochen Voß for the report. + * docs/NEWS: Document this. + +Sun Nov 5 23:41:45 PST 2006 Colin Watson + + * configure.ac: Call AC_GNU_SOURCE before AC_PROG_CC, as autoconf + objects otherwise (due to macros called by AM_GNU_GETTEXT). Let's + hope using _GNU_SOURCE for everything doesn't break anything ... + +Sat Nov 4 17:24:27 GMT 2006 Colin Watson + + * GNUmakefile.in, docs/HACKING: Update references to configure.in to + say configure.ac instead. + +Sat Nov 4 17:04:54 GMT 2006 Colin Watson + + * configure.ac: Use AS_HELP_STRING throughout. + (AC_PREREQ): Bump to 2.53. + +Sat Nov 4 16:52:20 GMT 2006 Colin Watson + + * configure.in: Rename to configure.ac. + +Sat Nov 4 16:41:59 GMT 2006 Colin Watson + + * autogen.sh: Force the use of aclocal-1.8; at least 1.4 won't work + correctly. + +Fri Oct 20 12:46:41 BST 2006 Colin Watson + + * tools/config.guess: Update to 2006-07-02. + * tools/config.sub: Update to 2006-09-20. + +Sun Sep 17 09:20:33 BST 2006 Colin Watson + + * lib/pipeline.c (pipeline_start): Ignore SIGPIPE in child processes + (Debian bug #387864). + * docs/NEWS: Document this. + +Thu Aug 10 17:23:03 BST 2006 Colin Watson + + * src/encodings.c (get_default_device): Always use utf8 if preconv + is available. + (get_roff_encoding): Skip CJK UTF-8 hack if preconv is available. + * src/man.c (make_roff_command): Use preconv if available to recode + input even if the encoding is detected by means other than looking + at the preprocessor line. Skip iconv preprocessing in that case. + +Thu Aug 10 17:00:21 BST 2006 Colin Watson + + * src/encodings.c (get_groff_preconv): New function, moved from + src/man.c because other functions here are going to need it. + * src/encodings.h (get_groff_preconv): Prototype it. + * src/man.c (make_roff_command): Use it. + +Wed Aug 9 14:58:50 BST 2006 Colin Watson + + * src/man.c (make_roff_command): Set page_encoding to pp_encoding if + available. Plug a memory leak. + +Wed Aug 9 14:45:13 BST 2006 Colin Watson + + * include/manconfig.h.in (GNUC_PREREQ): Check for __GNUC_MINOR__, + not __GNUC_MINOR. + +Wed Aug 9 14:10:57 BST 2006 Colin Watson + + * src/man.c (make_roff_command): Recognise preprocessor encoding + declarations like "-*- coding: utf8 -*-". Invoke the "preconv" + preprocessor for these if available. + +Mon Jul 3 04:54:13 BST 2006 Colin Watson + + * libdb/db_lookup.c (make_content): Break up dsize calculation + differently for legibility. + +Tue Mar 21 11:08:55 GMT 2006 Colin Watson + + Improve portability to Solaris and other systems without setenv. + + * lib/setenv.c, lib/setenv.h, lib/unsetenv.c: Copied from gnulib + 0.0.20051110-1. + * lib/Makefile.in (ALLSRCS): Add setenv.c and unsetenv.c. + * lib/README: Mention the above. + * configure.in: Check for setenv and unsetenv and use the gnulib + versions if they are unavailable. + * src/man.c, src/whatis.c: Include lib/setenv.h. + +Thu Mar 9 08:08:39 GMT 2006 Daniel Nylander + + * po/sv.po: Update from Translation Project. + * man/THANKS: Add translator credit. + +Wed Feb 22 09:44:02 GMT 2006 Colin Watson + + * lib/pipeline.c (command_new_argstr): Skip "exec" at the start of a + command, to make old configuration files work (Debian bug + #353959). + * docs/NEWS: Document this. + +Mon Feb 20 09:33:18 GMT 2006 Henning Makholm + + * src/lexgrog.l: Add Danish translation of NAME. + +Sun Jan 22 19:02:43 GMT 2006 Clytie Siddall + + * po/vi.po: Update from Translation Project. + * po/LINGUAS: Add vi. + * man/THANKS: Add translator credit. + +Sun Jan 22 18:49:16 GMT 2006 Colin Watson + + * man/man1/man.man1, man/es_ES.88591/man1/man.man1, + man/it_IT.88591/man1/man.man1: Fix mistaken use of .l instead of + .I (thanks, Valéry Perrin). + +Thu Jan 19 10:15:33 GMT 2006 Karl Eichwalder + + * po/de.po: Update from Translation Project. + * man/THANKS: Add translator credit. + +Sat Dec 31 16:30:44 GMT 2005 Colin Watson + + * lib/hashtable.c (hash_free): Update function name in debug + message. + +Sun Dec 18 08:57:01 GMT 2005 Yuri Kozlov + + * src/lexgrog.l: Change encoding of Russian translation of NAME to + KOI8-R. + +Sat Dec 10 17:31:45 CET 2005 Giuseppe Sacco + + * Updated italian translation po/it.po + +Mon Nov 14 11:02:54 GMT 2005 Yuri Kozlov + + * src/lexgrog.l: Add Russian translation of NAME. + +Tue Oct 4 10:34:03 BST 2005 Colin Watson + + * tools/chconfig: Start with "#! /" rather than "#!/", for 4.2BSD. + +Wed Sep 21 10:56:22 BST 2005 Colin Watson + + * lib/pipeline.c (pipeline_wait): Queue SIGCHLD for the whole time + we're collecting child process statuses; we need to keep a careful + count of processes. Forget any previous errno before calling + reap_children. Should fix Debian bug #326488. + +Wed Sep 21 10:47:51 BST 2005 Nicolas Velin + + * po/fr.po: Update from Rosetta. + * man/THANKS: Add translator credit. + +Wed Sep 21 10:36:19 BST 2005 OndÅ™ej Surý + + * po/cs.po: Update from Rosetta. + * man/THANKS: Add translator credit. + +Wed Sep 21 10:33:13 BST 2005 Colin Watson + + * man/THANKS: Recode to UTF-8. + +Wed Sep 21 10:10:12 BST 2005 Colin Watson + + * lib/pipeline.c (pipeline_start, pipeline_wait): Ignore SIGINT and + SIGQUIT in the parent while running subprocesses (Debian bug + #328982). + * docs/NEWS: Document this. + +Wed Sep 21 10:04:42 BST 2005 Colin Watson + + * docs/NEWS: Start 2.4.4. + +Wed Sep 21 09:45:48 BST 2005 Colin Watson + + * configure.in: Substitute basename of config_file as + config_file_basename. + * src/man_db.conf.in: Use @config_file_basename@ in header comment. + +Thu Sep 1 14:10:07 BST 2005 Colin Watson + + * lib/pipeline.c (argstr_get_word): Use an enum for quotemode rather + than magic numbers. + +Thu Sep 1 14:04:29 BST 2005 Colin Watson + + * include/manconfig.h.in (ATTRIBUTE_WARN_UNUSED_RESULT): Define to a + function attribute enabling unused result checking if using GCC + 3.4 or newer. + (xmalloc, xrealloc, strappend): Use it. + +Wed Aug 31 01:23:55 BST 2005 Colin Watson + + * src/encodings.c (directory_table): Add Simplified Chinese -> + GB2312 and Traditional Chinese -> BIG5. + (charset_table): Use the nippon device for BIG5, GB2312, and GBK. + (device_table): Assume that the nippon device is + encoding-agnostic, since it handles several encodings now. + (compatible_encodings, get_roff_encoding): Extend the ja_JP.UTF-8 + hack to cover zh_CN.UTF-8, zh_SG.UTF-8, and zh_TW.UTF-8 too. + +Sun Jul 31 16:34:15 BST 2005 Colin Watson + + * docs/COPYING, docs/COPYING.LIB: Update from www.gnu.org to pick up + the FSF's new address. + * Update all other GPL and LGPL notices with the new address (apart + from those in externally-maintained files). + +Wed Jul 27 11:29:02 BST 2005 Colin Watson + + * src/man.c (gripe_no_man): Don't emit a different message in the + troff case; it's extra translation load and nobody really cares + about the distinction. Avoid splitting up a sentence into two + translatable pieces (Debian bug #320111). + * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fi.po, + po/fr.po, po/it.po, po/ja.po, po/pl.po, po/pt_BR.po, po/ro.po, + po/ru.po, po/sv.po: Update with msgmerge. + +Tue Jul 26 00:05:02 BST 2005 Colin Watson + + * src/man.c (make_roff_command): Use 'col -b -p -x' rather than just + 'col -b' when stdout is not a terminal. + +Tue Jul 12 02:08:41 BST 2005 Colin Watson + + * include/manconfig.h.in (ATTRIBUTE_MALLOC): Define to a function + attribute enabling malloc return value checking if using GCC 2.96 + or newer. + (xmalloc, xrealloc, xstrdup, xstrndup): Use it. + +Tue Jul 12 01:59:10 BST 2005 Colin Watson + + * include/manconfig.h.in (GNUC_PREREQ): Helper macro borrowed from + glibc. + (ATTRIBUTE_FORMAT_PRINTF): Define to a function attribute enabling + printf-style format string checking if using GCC 2.0 or newer. + (ATTRIBUTE_SENTINEL): Use GNUC_PREREQ. Use __sentinel__ rather + than sentinel to avoid possible clashes with other macros. + * lib/error.h (error): Add printf format attribute. + * lib/xmalloc.c: Include "error.h" rather than redeclaring error. + +Mon Jul 11 18:12:58 BST 2005 Colin Watson + + * lib/pipeline.c (pipeline_wait): Emit a debugging message. + +Mon Jul 11 14:41:52 BST 2005 Colin Watson + + * include/manconfig.h.in: Define ATTRIBUTE_SENTINEL to a function + attribute enabling sentinel checking if using GCC 4.0 or newer. + (strappend): Use it. + * lib/pipeline.h (command_new_args, command_args, + pipeline_new_commands, pipeline_command_args, pipeline_commands): + Likewise. + +Mon Jul 11 14:38:30 BST 2005 Colin Watson + + * lib/Makefile.in, libdb/Makefile.in, src/Makefile.in, + zsoelim/Makefile.in: Stop using -I-; it's deprecated in GCC 4.0, + and it doesn't seem worth the effort of switching to the -iquote + replacement. + +Mon Jul 11 12:02:57 BST 2005 Colin Watson + + * src/man.c (usage): Fix "gditview" typo (Debian bug #317696). + * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fi.po, + po/fr.po, po/it.po, po/ja.po, po/pl.po, po/pt_BR.po, po/ro.po, + po/ru.po, po/sv.po: Unfuzzy all translations. + +Fri Jul 8 13:12:29 BST 2005 Ralph Corderoy + + * src/man.c (display): Drop "Reformatting %s, please wait..." + message; it's been years since processing power was low enough for + this to be relevant. + +Mon Jul 4 00:49:36 BST 2005 Colin Watson + + * GNUmakefile.in (EVERYTHING, ALL): List intl before lib, since + intl/Makefile runs config.status and thus recreates lib/Makefile + after lib has been distcleaned. + +Sun Jul 3 22:14:02 BST 2005 Colin Watson + + * Version: 2.4.3. + * configure.in, docs/NEWS, man-db.lsm: Update. + * man-db.lsm: Correct primary download location. + +Sun Jul 3 20:55:13 BST 2005 Colin Watson + + * configure.in: Define HAVE_GZIP, HAVE_COMPRESS, and HAVE_BZIP2 as + appropriate. + * include/comp_src.h.in: Conditionalise compressor list on + HAVE_GZIP, HAVE_COMPRESS, and HAVE_BZIP2 rather than on GUNZIP, + UNCOMPRESS, and BUNZIP2; if a compressor isn't detected, the + latter will end up as empty strings, not undefined. Thanks to Paul + Slootman (Debian bug #196097). + * docs/NEWS: Document this. + +Sun Jul 3 18:58:14 BST 2005 Colin Watson + + * GNUmakefile.in (__distclean): Remove po/Makevars.template. + +Sun Jul 3 18:11:56 BST 2005 Colin Watson + + * docs/NEWS: List more language support since 2.4.2. + +Sun Jul 3 17:45:18 BST 2005 Colin Watson + + * docs/NEWS: Minor clarification. + +Sun Jul 3 17:41:20 BST 2005 Robert Luberda + + * po/pl.po: Update. + +Sun Jul 3 17:39:14 BST 2005 Yuri Kozlov + + * po/ru.po: Update. + +Tue Jun 21 13:58:37 BST 2005 Jordi Mallach + + * po/ca.po: Update from Translation Project. + * man/THANKS: Update e-mail address. + +Mon Jun 20 14:46:22 BST 2005 Colin Watson + + * tools/config.guess, tools/config.sub: Update to 2005-04-22. + +Fri Jun 10 15:05:53 BST 2005 Colin Watson + + * Version: 2.4.3-pre1 (for translators). + +Fri Jun 10 14:53:52 BST 2005 Colin Watson + + * man/THANKS: Add translator credits for it.po, ja.po, pt_BR.po, and + sv.po. + +Fri Jun 10 14:36:36 BST 2005 Colin Watson + + * po/LINGUAS: Add ro. + * man/THANKS: Add translator credit. + * po/fi.po, po/ro.po: Update with msgmerge. + +Fri Jun 10 14:31:42 BST 2005 Eugen Hoanca + + * po/ro.po: New from Translation Project. + +Fri Jun 10 14:29:17 BST 2005 Jordi Mallach + + * po/ca.po: Update from Translation Project. + +Fri Jun 10 14:22:04 BST 2005 Colin Watson + + * po/fi.po: New, from Lauri Nurmi via the Translation Project. + * po/LINGUAS: Add fi. + * man/THANKS: Add translator credit. + +Mon Jun 6 02:15:07 BST 2005 Colin Watson + + * docs/NEWS: Document various changes since this file was last + updated. + +Sun Jun 5 15:47:10 BST 2005 Jeremy C. Reed + + * configure.in: Add support for db4. Check for db3/db_185.h before + db_185.h. + +Sat Jun 4 12:42:26 BST 2005 Colin Watson + + * docs/manpage.example.mdoc: New file. + +Sat Jun 4 12:23:15 BST 2005 Colin Watson + + * po/ru.po: Update with msgmerge. + +Sat Jun 4 12:21:17 BST 2005 Colin Watson + + * po/ru.po: New, from Yuri Kozlov (Debian bug #268584). + * po/LINGUAS: Add ru. + * man/THANKS: Add translator credit. + +Sat Jun 4 12:17:52 BST 2005 Colin Watson + + * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po, + po/it.po, po/ja.po, po/pl.po, po/pt_BR.po, po/sv.po: Update with + msgmerge. + +Sat Jun 4 11:48:58 BST 2005 Colin Watson + + * po/pl.po: Fix typo in Last-Translator e-mail address. + +Sat Jun 4 11:46:13 BST 2005 Colin Watson + + * po/pl.po: New, from Robert Luberda (Debian bug #245057). + * po/LINGUAS: Add pl. + * man/THANKS: Add translator credit. + +Sat Jun 4 10:59:29 BST 2005 Colin Watson + + * lib/getcwdalloc.c, lib/getcwdalloc.h: Fix header comments. + +Sat Jun 4 10:55:47 BST 2005 Colin Watson + + * src/lexgrog.l (MAN_NAME): Terminate NAME section parsing on + encountering a macro definition (Debian bug #275562). + +Wed Jan 5 15:08:06 GMT 2005 Colin Watson + + * src/encodings.c (directory_table): Add Turkish -> ISO-8859-9. + +Sun Dec 12 21:48:04 CET 2004 Colin Watson + + * lib/pipeline.c (pipeline_sigchld): Don't bother saving and + restoring errno if SIGCHLD is being queued. + +Mon Nov 8 09:57:27 GMT 2004 Colin Watson + + * lib/pathsearch.c: New file, containing functions for searching + $PATH. + * lib/pathsearch.h: Prototype pathsearch_executable(). + * lib/Makefile.in: Always compile pathsearch.c. + * src/man.c (find_in_path): Remove; replaced by + pathsearch_executable(). + (gripe_no_man): Use pathsearch_executable() instead of + find_in_path(). + +Mon Nov 8 09:52:02 GMT 2004 Colin Watson + + Get rid of plain getcwd(); this allows getting rid of most uses of + PATH_MAX. + + * lib/getcwdalloc.c: New file, providing an allocating version of + getcwd(). + * lib/getcwdalloc.h: Prototype it. + * lib/Makefile.in: Always compile getcwdalloc.c. + + * src/man.c (main, format_display): Use getcwd_allocated() instead + of getcwd(). + * src/mandb.c (main): Likewise. + * src/manp.c (add_dir_to_path_list): Likewise. + +Mon Nov 8 09:40:07 GMT 2004 Colin Watson + + * lib/hashtable.c (null_hash_free): No-op hash_free_ptr provider, + for convenience. + * lib/hashtable.h (null_hash_free): Prototype it. + +Mon Nov 8 09:36:55 GMT 2004 Colin Watson + + * acinclude.m4: Improve quoting to stop aclocal complaining. Improve + indentation. Get rid of unnecessary changequote(). + +Sun Nov 7 16:07:26 GMT 2004 Colin Watson + + * lib/pipeline.c (pipeline_wait): Close pipeline output before + reaping processes, so that writing processes get SIGPIPE. + +Sun Nov 7 16:05:08 GMT 2004 Colin Watson + + * lib/pipeline.c (pipeline_wait): Fix active process debugging + output to include processes without statuses. + +Sun Nov 7 16:01:26 GMT 2004 Colin Watson + + * src/compression.c (decompress): Invalidate file_fd after closing + it. + +Sun Nov 7 15:31:18 GMT 2004 Colin Watson + + * src/man.c (compare_candidates): Compare extensions' positions in + section_list at the same time as sections, but do the lexical + comparison fallback after comparing ids; this restores the + intended ability to use SECTIONS to move extensions out of order + with respect to their parent sections without breaking the earlier + workaround for Debian bug #204249. + +Thu Jul 22 14:46:30 BST 2004 Colin Watson + + * src/check_mandirs.c (testmandirs): Always scan directory if last + is 0 (i.e. creating) to avoid problems on systems with badly + broken clocks set before the epoch. + +Mon Jun 28 03:56:56 BST 2004 Colin Watson + + * src/man.c (man): Free candidate list after displaying it. + +Mon Jun 28 01:19:45 BST 2004 David Weinehall + + * tools/mkcatdirs: Replace XSIish uses of 'test' with more portable + code. + +Thu Apr 1 05:10:50 BST 2004 Colin Watson + + * src/encodings.c (charset_table): Use the latin1 device for + ISO-8859-15, even though that isn't exactly right. + +Thu Apr 1 04:56:02 BST 2004 Colin Watson + + * src/encodings.c (get_page_encoding, get_standard_output_encoding): + Remove trailing , and @ from locale names. + * src/encodings.h (get_page_encoding, get_standard_output_encoding): + Update prototypes: these no longer return const. + * src/man.c (make_roff_command): Free page_encoding and cat_charset. + +Thu Apr 1 00:18:55 BST 2004 Colin Watson + + * src/man.c (do_extern): Pass only options understood by + apropos/whatis, using the pipeline library (Debian bug #207436). + (main): Make optind global. Install SIGINT and SIGCHLD handlers + earlier. Update do_extern call. + * docs/NEWS: Document this. + +Wed Mar 31 23:40:15 BST 2004 Colin Watson + + * src/man.c (make_roff_command): If stdout isn't a terminal, get rid + of formatting characters using GROFF_NO_SGR=1 and 'col -b' + (thanks, Adam Heath). + * docs/NEWS: Document this. + +Thu Mar 25 19:31:02 GMT 2004 Colin Watson + + * src/whatis.c (apropos): Move warning-silencing code to the bottom + of the function, so that it doesn't interfere with declarations. + +Sun Mar 14 03:52:12 UTC 2004 Giuseppe Sacco + + * Updated italian translation (corrected three fuzzy strings) + +Tue Mar 9 10:25:40 GMT 2004 Colin Watson + + * zsoelim/zsoelim.l: Define debug for the benefit of pipeline.c. + (open_file): Use pipeline library. + +Tue Mar 9 01:54:20 GMT 2004 Colin Watson + + * zsoelim/zsoelim.l: Long-overdue style cleanup per docs/HACKING. No + functional changes. + +Tue Mar 9 00:37:23 GMT 2004 Colin Watson + + Roll out the new pipeline library in most programs. + + * src/compression.c (decompress): Use pipeline library. + * src/fake_security.c (do_system_drop_privs): Likewise. + * src/lexgrog.l (main): Initialize pipeline library. + * src/man.c (checked_popen, gripe_system, checked_system, run_mandb, + format_display_and_save, format_display, display_catman, display): + Use pipeline library. + (add_roff_line_length): Append to a command structure rather than + using strappend. + (main): Initialize pipeline library. + (make_roff_command): Return a constructed pipeline instead of a + malloced string. This plugs various hitherto difficult leaks. Drop + support for changing the line length with groff < 1.18, as the + pipeline library can't handle compound commands in pipelines yet. + (make_browser): Return a constructed pipeline instead of a + statically allocated string. The pipeline construction is very + crude for now. + (make_display_command): Return a constructed pipeline instead of a + malloced string. The htmlout case is strange for now (return NULL + and let format_display sort it out). + (tmp_cat_filename): Handle debug > /dev/null here rather than in + open_cat_stream. Construct the temporary cat filename more + sensibly. Open the temporary file and record its file descriptor. + (open_cat_stream): Return a constructed (and started, if COMP_CAT + is defined) pipeline instead of a stream. This gets rid of a + fixed-size buffer associated with security problems in the past, + although it wasn't a vulnerability in itself. + (close_cat_stream): Clean up pipeline rather than stream. + (format_display): The htmlout case ignores disp_cmd and puts the + display pipeline together itself. + (display): When calling format_display_and_save, assert (disp_cmd) + to make sure we aren't in the htmlout case. + * src/man.h (make_roff_command): Drop unnecessary prototype. + * src/mandb.c (main): Initialize pipeline library. + * src/security.c (do_system_drop_privs): Take a pipeline rather than + a string. + * src/security.h (do_system_drop_privs): Update prototype. + * src/straycats.c (check_for_stray): Use pipeline library. + * src/util.c (do_system): Take a pipeline rather than a string. This + becomes a simple synchronous wrapper around pipeline_start and + pipeline_wait. + * src/whatis.c (use_grep): Use pipeline library. + (main): Initialize pipeline library. + + * include/manconfig.h.in (struct pipeline): Declare opaquely. + (do_system): Update prototype. + + * configure.in: Drop 'exec' from default pager; no longer needed + since the pipeline library obviates the use of /bin/sh -c. + + * docs/NEWS: Document all this. + +Mon Mar 8 16:45:27 GMT 2004 Colin Watson + + * src/compression.c (comp_info): If the new want_stem argument is + set, put a copy of the filename without extension in comp->stem + rather than a strange thing in comp->file. This is closer to what + most callers actually want, and removes a lot of memory management + confusion. + (comp_file): Use comp->stem instead of comp->file (previous usage + matched this semantically). + * include/manconfig.h.in (struct compression): Replace 'file' with + 'stem'. + (comp_info): Update prototype. + + * src/convert_name.c (convert_name): Update comp_info call. + * src/filenames.c (filename_info): Fix misuse of basename. Update + comp_info call. + * src/lexgrog.l (find_name): Update comp_info call. + * src/man.c (local_man_loop): Likewise. + * src/straycats.c (check_for_stray): Likewise. + * src/ult_src.c (ult_src): Likewise. + * zsoelim/zsoelim.l (open_file): Don't set comp->file. Add a + clone-and-hack warning. + +Mon Mar 8 16:07:11 GMT 2004 Colin Watson + + * src/compression.c (decompress): Error out if decompression program + not found, as a temporary workaround for poor detection in + configure. + +Mon Mar 8 15:59:29 GMT 2004 Colin Watson + + * src/manp.c (get_catpath): Use xstrdup and strappend rather than + doing memory management by hand. + +Mon Mar 8 11:28:51 GMT 2004 Colin Watson + + * include/manconfig.h.in: Protect against multiple inclusion. + +Mon Mar 8 11:21:05 GMT 2004 Colin Watson + + * lib/pipeline.c (pipeline_dump): Show caller-supplied input and + output file descriptors. + + * lib/pipeline.c (command_free, pipeline_free): Return safely if + argument is NULL. + * lib/pipeline.h (command_free, pipeline_free): Document NULL + arguments as a safe no-op, like free(). + +Mon Mar 8 09:33:08 GMT 2004 Colin Watson + + * docs/manpage.example (DESCRIPTION): ".SS macros" -> ".SS macro". + +Mon Mar 8 00:16:53 GMT 2004 Colin Watson + + * src/man.c (compare_candidates): Instead of comparing extensions + followed by ids, compare pure sections first, then ids, then + extensions. This works around the worst effects of Debian bug + #204249, in which we have an incorrect whatis ref xterm(1) in + /usr/share/man and a correct real xterm(1x) in /usr/X11R6/man. + +Sun Mar 7 23:55:48 GMT 2004 Colin Watson + + * src/man.c (compare_candidates): Keep searching for more specific + extension matches in section_list even after finding one. + +Wed Jan 28 00:15:00 GMT 2004 Colin Watson + + * src/lexgrog.l: Add a terrifying hack to make '.B "..."' work in + NAME sections. lex is really the wrong tool for this job, I feel. + +Tue Jan 27 23:37:58 GMT 2004 Colin Watson + + * src/lexgrog.l: Attempt to fix problems with groff requests + immediately following .SH NAME. All patterns in the MAN_FILE and + MAN_NAME states need to avoid matching trailing newlines, since + they're needed by other patterns to detect beginning-of-line. + + In order to ignore any excess whitespace following .SH NAME, which + is how this problem got created, introduce a MAN_PRENAME start + condition, which just skips over spacing. Some evil use of yyless + is needed to transition properly to the MAN_NAME start condition + from this without eating trailing newlines. + +Tue Jan 27 21:19:41 GMT 2004 Colin Watson + + * src/Makefile.in (LFLAGS): Add -d if LEXGROG_DEBUG=yes. + +Wed Dec 24 10:29:16 UTC 2003 Giuseppe Sacco + + * src/whatis.c (usage): Fix usage message for --section + * updated italian translation. + +Wed Dec 24 10:10:16 GMT 2003 Colin Watson + + * src/whatis.c (usage): Fix usage message for --section, thanks to + Giuseppe Sacco. + +Wed Dec 24 09:14:19 UTC 2003 Giuseppe Sacco + + * Updated italian translation + +Mon Nov 17 22:50:39 GMT 2003 Colin Watson + + * src/globbing.c (match_in_directory): Oops; stop decrementing + bsearched when it reaches the beginning of the cache->names array, + otherwise patterns beginning with a metacharacter cause a + segfault. (The decrement loop is necessary because bsearch() + doesn't specify which element it returns if there are multiple + matches.) + +Mon Nov 17 05:04:54 GMT 2003 Colin Watson + + Speed up mandb's purging functions further, from about 20 seconds to + about 2 seconds on my i386 laptop, by being more intelligent about + calling fnmatch(). + + * src/globbing.c (cache_compare): New function. + (update_directory_cache): Sort the cache. + (pattern_compare): New function. + (match_in_directory): Rather than scanning the whole cache, start + from a point matching the start of the pattern up to the first + metacharacter, and stop once this no longer matches. + + * src/globbing.c (TEST): Include and define _() so that + the test code compiles. + (main): Set program_name before any calls to usage(). + +Sun Nov 16 21:45:24 GMT 2003 Colin Watson + + * docs/HACKING: Mention the new CTYPE() macro. + +Sun Nov 16 21:29:35 GMT 2003 Colin Watson + + * src/convert_name.c (convert_name): Reorganize and clarify. The + alternate argument was confusing and is now gone. Add a new fsstnd + argument which controls whether the "man1" to "cat1" etc. + conversion is performed. That conversion now makes sure that the + directory name starts with "man" before blithely overwriting it. + Treat comp->file as const, since it will be soon. + * src/convert_name.h (convert_name): Update prototype. + * src/man.c (find_cat_file): New logic. First, check for existing + FSSTND cat files; then check for a cat dir based on the ultimate + source, if different from the original (Debian bug #129575); then + check for a cat dir based on the original man page path. + (display): Drop the !local_man_file case which tries to work out + whether to save a cat, as it's not a problem to try regardless of + whether there's already one in a FSSTND location. + (display_filesystem, display_database): Add extra argument to + find_cat_file() so that it knows the original man page path as + distinct from the ultimate source. + (display_filesystem): Remove debugging output, now in + find_cat_file(). + + * docs/ToDo: Remove entry about cleaning up cat file code, now done. + +Sun Nov 16 19:28:38 GMT 2003 Colin Watson + + Add an option to apropos and whatis to allow specification of a + section to search. + + * src/whatis.c (args, long_options, main): New -s/--section option. + (usage): Document it. + (whatis): Tell dblookup_all() to look in the section named by + --section, if present. + (apropos): If --section was given, check that it matches either + info.sec or info.ext for each page. Use info.whatis rather than + parsing the whatis out manually. + * man/man1/apropos.man1 (SYNOPSIS, OPTIONS): Document --section. + * man/man1/whatis.man1 (SYNOPSIS, OPTIONS): Likewise. + + * docs/NEWS: Start 2.4.3. Document the above. + +Sun Nov 16 18:47:46 GMT 2003 Colin Watson + + * include/manconfig.h.in (CTYPE): New macro to help get + calls right. + * libdb/db_lookup.c (name_to_key): Use it. + * src/globbing.c (parse_layout, look_for_file): Likewise. + * src/man.c (manopt_to_env, main): Likewise. + * src/manp.c (add_to_dirlist): Likewise. + * src/ult_src.c (ult_softlink, test_for_include): Likewise. + * src/whatis.c (lower, match, word_fnmatch): Likewise. + +Sun Nov 16 17:06:29 GMT 2003 Colin Watson + + Style cleanups; no functional changes. + + * src/whatis.c (usage, match, apropos, search, main): Add a space + before the open parenthesis in several function calls. + (apropos): The nesting level has got out of control here. Use a + goto and a 'nextpage' label near the end of the loop instead. + +Sun Nov 16 15:49:12 GMT 2003 Erik Andersen + + * src/straycats.c (check_for_stray): Add missing open brace to + non-HAVE_CANONICALIZE_FILE_NAME case. + +Tue Oct 28 16:24:41 GMT 2003 Colin Watson + + * man/Makefile.in: Create new th* variables with capitalized + variants of program names for .TH lines. + * man/de_DE.88591/man1/*.man1, man/de_DE.88591/man5/*.man5, + man/de_DE.88591/man8/*.man8, man/es_ES.88591/man1/*.man1, + man/es_ES.88591/man5/*.man5, man/es_ES.88591/man8/*.man8, + man/it_IT.88591/man1/*.man1, man/it_IT.88591/man5/*.man5, + man/it_IT.88591/man8/*.man8, man/ja_JP.eucJP/man1/*.man1, + man/ja_JP.eucJP/man5/*.man5, man/ja_JP.eucJP/man8/*.man8, + man/man1/*.man1, man/man5/*.man5, man/man8/*.man8: Capitalize all + page titles in .TH lines. + * man/de_DE.88591/man5/manpath.man5: Fix typo: 'man' => 'manpath'. + +Sun Sep 28 20:11:55 BST 2003 Colin Watson + + * man-db.gnu: Remove. This is licensed under the GFDL, whose + freeness is under serious question. I'm not sure if the FSF + actually have standing to claim copyright over this file in the + first place, but it doesn't need to be in CVS here so I don't feel + like arguing about it. + +Sun Sep 21 02:17:43 BST 2003 Colin Watson + + * lib/pipeline.c (pipeline_start): Dump pipeline in debugging mode. + +Sun Sep 21 02:15:17 BST 2003 Colin Watson + + * docs/NEWS: Add a forgotten entry for 2.4.2. + +Sat Sep 20 18:35:54 BST 2003 Colin Watson + + * src/encodings.c (directory_table): Add Galician -> ISO-8859-1, + Indonesian -> ISO-8859-1, Croatian -> ISO-8859-2, and Slovak -> + ISO-8859-2. + +Sat Sep 20 11:57:58 BST 2003 Colin Watson + + * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po, + po/it.po, po/ja.po, po/pt_BR.po, po/sv.po: Update with msgmerge + (po/Makevars changed). + +Sat Sep 20 01:07:24 BST 2003 Colin Watson + + * Version: 2.4.2. + * configure.in, docs/NEWS, man-db.gnu, man-db.lsm: Update. + * man-db.gnu: Suggest libgdbm-dev rather than libdb3-dev. + * man-db.lsm: Suggest GDBM. + +Sat Sep 20 00:11:14 BST 2003 Colin Watson + + * src/man.c (make_roff_command): Don't recode output if an explicit + encoding was specified with -E. + +Sat Sep 20 00:09:03 BST 2003 Colin Watson + + * po/.cvsignore: Add stamp-po. + +Fri Sep 19 22:49:14 BST 2003 Colin Watson + + * acinclude.m4 (MAN_CHECK_BDB): Temporarily add $lib to LIBS for + AC_TRY_LINK, not to DBLIBS; but add it to DBLIBS if the test + succeeds. + * configure.in: Simply set DBLIBS rather than appending to it. + +Fri Sep 19 22:20:07 BST 2003 Colin Watson + + * autogen.sh: Run aclocal after autopoint, in accordance with the + autopoint info documentation. + +Fri Sep 19 22:17:18 BST 2003 Colin Watson + + * configure.in (AM_GNU_GETTEXT_VERSION): Upgrade to gettext 0.12.1. + * po/Makevars (MSGID_BUGS_ADDRESS): Set to me. + * po/.cvsignore: Add Makevars.template. + +Fri Sep 19 00:48:07 BST 2003 Colin Watson + + * src/lexgrog.l (MAN_FILE): Accept blank lines immediately following + ".SH NAME". + +Fri Sep 19 00:06:02 BST 2003 Colin Watson + + * man/man8/mandb.man8 (OPTIONS): Improve --filename wording a bit. + +Wed Sep 17 07:17:22 BST 2003 Colin Watson + + Fix case where a page explicitly encoded in UTF-8 has to be recoded + down to a non-ISO-8859-1 legacy encoding for processing by groff and + then back up to UTF-8 for display. + + * src/encodings.c (get_page_encoding): New function, renamed from + get_source_encoding. + (get_source_encoding): Return only the canonical source encoding, + not any explicit encoding in the directory name. This allows us to + take account of differing explicit encoding and canonical encoding + of pages for the purposes of working out which device to use. + (get_roff_encoding): New source_encoding argument, now returned + instead of NULL. + (get_default_device): Pass source_encoding to get_roff_encoding(). + (compatible_encodings): The roff encoding can no longer be NULL. + * src/encodings.h (get_page_encoding): Add prototype. + (get_roff_encoding): Update prototype. + * src/man.c (make_roff_command): Call get_page_encoding(), and + recode from that to roff_encoding, not from source_encoding to + roff_encoding. Pass source_encoding to get_roff_encoding(). + roff_encoding can no longer be NULL. + +Tue Sep 16 22:53:36 BST 2003 Colin Watson + + Purge database entries corresponding to removed stray cat pages. + + * src/check_mandirs.c (purge_normal, purge_whatis): Add TODO notes + for systems where the cat extension differs from the man + extension. + (purge_whatis): Rename manpath to path. New cat argument, passed + through to look_for_file(). + (purge_missing): New catpath argument, passed to look_for_file() + and purge_whatis() in the STRAY_CAT and WHATIS_CAT cases, which + are now handled. + * src/check_mandirs.h (purge_missing): Update prototype. + * src/mandb.c (main): Pass catpath to purge_missing(). + * docs/NEWS: Document this. + +Tue Sep 16 22:37:33 BST 2003 Colin Watson + + Work around the fact that GDBM's firstkey/nextkey interface doesn't + return ordered results. + + * libdb/db_gdbm.c (man_gdbm_open_wrapper): New function. Wraps the + return value from gdbm_open() in a structure that remembers the + file name. + (parent_sortkey_hash_free, sortkey_hash_free): New functions to + free hashtables used here. + (sortkey_compare): New comparison function for qsort(). + (man_gdbm_firstkey): New function. Retrieve all keys using + gdbm_firstkey() and gdbm_nextkey() in advance, sort them into an + ordered hashtable, remember that hashtable for later, and return + the first key. + (man_gdbm_nextkey): New function. Find the previously remembered + ordered hashtable and return the next element from it. + (man_gdbm_close): New function. Clean up remembered data. + * libdb/db_lookup.c (copy_datum): Define even if using GDBM. + (gripe_lock): Explain why this isn't used for GDBM. + * libdb/mydbm.h (man_gdbm_wrapper): New type. + (man_gdbm_open_wrapper, man_gdbm_firstkey, man_gdbm_nextkey, + man_gdbm_close): Add prototypes. + (MYDBM_FILE): Change to man_gdbm_wrapper for GDBM. Adjust all + other MYDBM_* macros to cope with this and use man_gdbm_* + functions where necessary. + (copy_datum): Declare for all database types. Remove __inline__. + * docs/NEWS: Document this. + +Tue Sep 16 01:44:59 BST 2003 Colin Watson + + * src/accessdb.c (main): Free each key after listing it rather than + just leaking it. + +Mon Sep 15 23:45:33 BST 2003 Byrial Ole Jensen + + * po/da.po: Update from Translation Project. + +Mon Sep 15 23:29:33 BST 2003 Colin Watson + + * configure.in: Add --enable-mb-groff option, which defines + MULTIBYTE_GROFF for src/encodings.c. + * docs/NEWS: Document this. + +Mon Sep 15 01:23:00 BST 2003 Colin Watson + + * po/it.po: msgfmt doesn't like "charset=iso8859-1". Use + "charset=iso-8859-1" instead. + +Sun Sep 14 17:48:38 BST 2003 Colin Watson + + * src/encodings.c (get_source_encoding): If the language directory + is unknown (e.g. 'man -l'), guess based on the locale before + falling back to a default. + (get_standard_output_encoding): Likewise. + +Sun Sep 14 16:58:34 BST 2003 Colin Watson + + * src/encodings.c (get_source_encoding): Assume ISO-8859-1 source + encoding if it's unknown (e.g. 'man -l'). + (get_default_device): source_encoding can no longer be NULL. + * src/man.c (make_roff_command): Likewise. + +Sun Sep 14 16:45:43 BST 2003 Colin Watson + + * man/man1/man.man1 (EXAMPLES, ENVIRONMENT, HISTORY): Change a few + stray hyphens to dashes. + +Sun Sep 14 16:37:56 BST 2003 Colin Watson + + * src/encodings.c (get_source_encoding, + get_standard_output_encoding, get_default_device, + get_roff_encoding, get_output_encoding, get_less_charset): + Simplify using new table element struct types. + +Sun Sep 14 16:24:00 BST 2003 Colin Watson + + Make locales like ru_RU.UTF-8 that need the ascii8 device but UTF-8 + output work. This involves a good deal of restructuring. + + * src/encodings.c (directory_table): Remove a completed TODO + comment. + (directory_table, charset_table, device_table): Name array element + struct types in order to abbreviate code later. + (device_table): Split less_charset members out into a new table, + less_charset_table. They really depend on the locale charset, but + aren't quite appropriate for charset_table. Use "iso8859" rather + than "latin1", and add KOI8-R. + (device_table): Add output_encoding member, which is almost the + inverse of charset_table but slightly different for ascii8. + (compatible_encodings): New function to figure out if a source + encoding and a roff encoding are compatible. + (get_default_device): Take new source_encoding argument so that we + can make ru_RU.UTF-8 use the ascii8 device and an iconv pipe + rather than utf8 directly. Drop through to the fallback default + device if none of the predefined entries in charset_table are + compatible when considering the source encoding. + (get_roff_encoding): Split LESSCHARSET handling out into a new + function ... + (get_less_charset): ... here. The caller is expected to set + environment variables rather than having it done by the library. + (get_output_encoding): New function, returning the output encoding + produced by a device. + * src/encodings.h (get_default_device): Update prototype. + (get_output_encoding, get_less_charset): Add prototypes. + * src/man.c (make_roff_command): Update calls to encoding library + for these changes. + +Sun Sep 7 23:10:01 BST 2003 Colin Watson + + Fix decision about whether a given encoding is safe to save as a cat + page. + + * src/encodings.c (directory_table): Add standard_output_encoding + member, used to set the default encoding for cat pages. + (fallback_locale_charset): Remove. + (get_standard_output_encoding): New function. + (get_locale_charset): New function, split out in modified form + from get_default_device(). + (get_default_device): Take a character set as input rather than a + locale. + * src/encodings.h (get_standard_output_encoding, + get_locale_charset): Add prototypes. + (get_default_device): Update prototype. + * src/man.c (make_roff_command): Instead of comparing devices, test + that the default character set for this manual hierarchy is being + used, and don't save cat pages if it isn't. + +Sun Sep 7 11:33:09 +0200 2003 Giuseppe Sacco + + * po/it.po: changed the header of the po file correcting the + charset and the transfer encoding. + +Sat Sep 6 11:53:06 BST 2003 Colin Watson + + * src/encodings.c (get_source_encoding): Implement encodings in + manual hierarchy directory names. Include a mini-rant about the + bizarre specification for these in FHS 2.1, which I've declined to + implement for now. + +Sat Sep 6 11:28:46 BST 2003 Colin Watson + + * src/check_mandirs.c (purge_missing): Call MYDBM_REORG() after + deleting entries. Currently only useful for gdbm. + +Sat Sep 6 00:23:03 BST 2003 Colin Watson + + * acinclude.m4 (MAN_CHECK_BDB): Append to DBLIBS rather than LIBS. + * configure.in: Likewise for gdbm and ndbm tests. Make DBLIBS an + output variable. + * src/Makefile.in: Link only the necessary programs with the + database library. + +Sat Sep 6 00:15:37 BST 2003 Colin Watson + + * libdb/db_lookup.c (make_content): Cast cont.dsize to size_t when + comparing it with the return value of strlen(). Avoids warning + when building with gdbm. + +Thu Sep 4 20:22:21 BST 2003 Christian Rose + + * po/sv.po: Update from Translation Project. + +Fri Aug 29 17:46:40 BST 2003 Michael Piefel + + * po/de.po: Update from Translation Project. + +Fri Aug 29 17:42:15 BST 2003 Giuseppe Sacco + + * po/it.po: Updated after the revision in tp@linux.it. + +Thu Aug 28 11:19:21 BST 2003 Christian Rose + + * po/sv.po: Update from Translation Project. + +Thu Aug 28 00:45:50 BST 2003 Jordi Mallach + + * po/ca.po: Update from Translation Project. + +Thu Aug 28 00:43:33 BST 2003 Christian Rose + + * po/sv.po: Update from Translation Project. + +Thu Aug 28 00:40:09 BST 2003 Colin Watson + + * lib/pipeline.c (pipeline_start): Change "couldn't exec %s" to + "can't execute %s" in line with src/man.c, to make translators' + lives easier. + (pipeline_wait): Separate "%s: %s%s" into two translatable + strings: the "(core dumped)" portion should definitely be + translated. + * src/accessdb.c (usage): Clarify "man_database" to "(The) man + database". + +Thu Aug 28 00:18:46 BST 2003 Colin Watson + + * src/globbing.c (usage): Expand "sec" to "section". + +Wed Aug 27 00:50:07 BST 2003 Giuseppe Sacco + + * po/it.po: Remove all fuzzy translations and insert missed ones. + Now this translation will be reviewed by the Italian translation + project for proofreading. + +Tue Aug 26 20:16:23 BST 2003 Colin Watson + + * Version: 2.4.2-pre1 (for translators). + * docs/NEWS: Mention pipeline library. + +Sat Aug 16 14:07:46 BST 2003 Colin Watson + + * src/lexgrog.l (find_name): Report a sensible error if file is a + directory. + +Fri Aug 15 18:11:06 BST 2003 Colin Watson + + * src/check_mandirs.c (test_manfile): file is const. + * src/check_mandirs.h (test_manfile): Update prototype. + * src/mandb.c (update_one_file): filename is const. + +Fri Aug 15 18:05:37 BST 2003 Colin Watson + + * include/manconfig.h.in: Remove incorrect prototype of basename() + which was hiding several bugs. + * configure.in: Check for . + * lib/pipeline.c, src/accessdb.c, src/catman.c, src/check_mandirs.c, + src/filenames.c, src/lexgrog.l, src/man.c, src/mandb.c, + src/manpath.c, src/straycats.c, src/whatis.c, zsoelim/zsoelim.l: + Include instead of relying on basename() prototype in + manconfig.h. + * src/check_mandirs.c (test_manfile), src/man.c (local_man_loop), + src/straycats.c (check_for_stray): Copy strings before calling + basename() on them. + +Fri Aug 15 00:16:13 BST 2003 Colin Watson + + * src/ult_src.c (ult_hardlink): Return a newly allocated string + rather than messily copying over an existing one (and possibly + corrupting the malloc arena). link and dir are now allocated + rather than being declared as arrays. + (ult_src): Update call to ult_hardlink(). Return 'const char *' to + make sure callers aren't messing about with our memory. + * src/ult_src.h (ult_src): Update prototype. + * src/check_mandirs.c (test_mandirs): ult is const. + * src/lexgrog.l (main): file is const. + * src/man.c (try_section): ult is const. + (display_filesystem, display_database): man_file is const. + +Sat Aug 9 21:30:16 BST 2003 Colin Watson + + * po/POTFILES.in: Add lib/pipeline.c, src/descriptions.c, + src/filenames.c, and src/globbing.c. + * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po, + po/it.po, po/ja.po, po/pt_BR.po, po/sv.po: Update with msgmerge. + +Sat Aug 9 18:28:01 BST 2003 Colin Watson + + Replace the old "wait() for one child at a time" approach with a + SIGCHLD-handling edifice that collects children's exit statuses as + they die. + + * lib/pipeline.c (pipeline_new): Initialize statuses. + (pipeline_join): Set statuses to NULL in joined pipeline. + (pipeline_join, pipeline_get_infile, pipeline_get_outfile, + pipeline_start, pipeline_wait): Assert that statuses field is NULL + or non-NULL as appropriate. + (pipeline_free): Free statuses if necessary. + + (pipeline_start): Add p to a new active_pipelines array, to be + used while reaping children. Initialize statuses elements to -1. + Block SIGCHLD while forking children. + (reap_children): New function. Delivers collected exit statuses + into statuses fields of entries in active_pipelines. + (pipeline_wait): Rather than wait()ing manually here, check + whether any statuses have been picked up by the SIGCHLD handler, + and if not call reap_children(). Remove now-obsolete TODO comment. + (pipeline_sigchld): New function, the SIGCHLD handler. + (pipeline_install_sigchld): New function, to be called once per + program. + + (pipeline_start, pipeline_wait): Add minimal debugging + information. + + * lib/pipeline.h: Prototype new functions. + (struct pipeline): New statuses member. + +Sat Aug 9 17:00:12 BST 2003 Colin Watson + + * lib/pipeline.c (command_dup): Copy cmd->nice. + (pipeline_command): Correct condition for growing commands array. + +Mon Aug 4 20:44:16 BST 2003 Colin Watson + + * man/man1/man.man1 (HISTORY): Rearrange text to avoid having + "Wilf." at the end of a line, since groff thinks that's the end of + a sentence and adjusts spacing accordingly. (Alternatively, I + could have used \&.) + +Mon Aug 4 19:35:26 BST 2003 Colin Watson + + * lib/pipeline.c (command_dup): Terminate argv with a NULL. + (command_dup, command_arg): Assert that argc < argv_max after + changing either. + +Mon Aug 4 19:30:22 BST 2003 Colin Watson + + * lib/pipeline.c (pipeline_dump): New function to dump a printable + representation of a pipeline to a stream. + (pipeline_tostring): Likewise, but to a newly allocated string. + * lib/pipeline.h: Prototype these. + +Mon Aug 4 12:03:38 BST 2003 Colin Watson + + * lib/pipeline.c (argstr_get_word): Plug some memory leaks. + +Mon Aug 4 01:05:12 BST 2003 Colin Watson + + * lib/pipeline.c (pipeline_wait): The return value was a bit + groff-specific. Now just return the status of the last command in + the pipeline, as reported by wait(). + +Mon Aug 4 00:31:44 BST 2003 Colin Watson + + Add support for getting stdio streams for input and output. Needs + library support because pipeline_wait() needs to know to close the + stream rather than the underlying file descriptor. + + * lib/pipeline.h (struct pipeline): New infile and outfile members. + (pipeline_get_infile, pipeline_get_outfile): Add prototypes. + * lib/pipeline.c (pipeline_new): Initialize infile and outfile. + (pipeline_join): Likewise. + (pipeline_get_infile, pipeline_get_outfile): New functions. + (pipeline_wait): Check for infile and outfile and fclose() them in + preference to close()ing infd and outfd. Check for errors on + close(). + +Sun Aug 3 23:59:18 BST 2003 Colin Watson + + * lib/pipeline.c (pipeline_start): Use dup2() instead of close() + then dup(). + +Sun Aug 3 23:52:14 BST 2003 Colin Watson + + infd and outfd should now only be set by pipeline_start(). Positive + values in want_in and want_out now indicate caller-supplied file + descriptors, while negative values indicate a request for + pipeline_start() to create a pipe. + + * lib/pipeline.h (struct pipeline): Document this. + * lib/pipeline.c (pipeline_start): Implement it. Caller-supplied + input and output file descriptors previously didn't work properly. + (pipeline_wait): Update TODO comment. + +Sun Aug 3 21:07:46 BST 2003 Colin Watson + + * lib/pipeline.h (struct command): New 'nice' member. + * lib/pipeline.c (command_new): Initialize nice. + (pipeline_start): Change child process priority if nice is set. + +Sun Aug 3 20:50:35 BST 2003 Colin Watson + + * lib/pipeline.c (pipeline_start): Pop all cleanups in child. + +Sun Aug 3 20:47:24 BST 2003 Colin Watson + + * lib/pipeline.c (argstr_get_word, command_new_argstr, + command_argstr, pipeline_command_argstr): New functions to handle + constructing commands from shell-quoted strings, such as those + found in man-db configuration files. They deliberately handle only + a safe subset of shell syntax. + * lib/pipeline.h: Prototype command_new_argstr(), command_argstr(), + and pipeline_command_argstr(). + +Sun Aug 3 19:09:59 BST 2003 Colin Watson + + * lib/pipeline.c (command_dup): New function to duplicate a command. + (pipeline_join): New function to join two pipelines together. + * lib/pipeline.h: Prototype these. + +Sun Aug 3 18:00:59 BST 2003 Colin Watson + + * lib/pipeline.h (struct pipeline): The writeto, readfrom, writefd, + and readfd names turn out to be confusing in calling code. Rename + to want_in, want_out, infd, and outfd respectively. + * lib/pipeline.c (pipeline_new, pipeline_start, pipeline_wait): Use + new names. + +Sun Aug 3 16:35:24 BST 2003 Colin Watson + + Add support in pipeline library for writing input to or reading + output from the whole pipeline. + + * lib/pipeline.c (pipeline_new): Initialize writeto, readfrom, + writefd, and readfd. + (pipeline_start): Create extra pipes as necessary. + (pipeline_wait): Expand TODO comment. Close file descriptors from + extra pipes if necessary. + * lib/pipeline.h (struct pipeline): Add writeto, readfrom, writefd, + and readfd. + +Sun Aug 3 11:15:17 BST 2003 Colin Watson + + * lib/pipeline.c: New pipeline library, adapted from that in groff. + The interface isn't complete yet; in particular, it can't be a + replacement for popen() at the moment. + * lib/pipeline.h: New file with pipeline library interface. + * lib/Makefile.in (ALLSRCS, ALL): Build pipeline. + +Sun Aug 3 11:09:07 BST 2003 Colin Watson + + * acinclude.m4 (MAN_FUNC_STRSIGNAL): New macro to check for the GNU + extension strsignal(). + * configure.in: Use it. + * lib/xstrsignal.c: New file, wrapping strsignal() or sys_siglist + depending on what's available (and with a saner return type than + strsignal()). + * lib/Makefile.in (ALLSRCS, XOBJS): Build xstrsignal. + * include/manconfig.h.in (xstrsignal): Add prototype. + +Sun Aug 3 10:57:55 BST 2003 Colin Watson + + * include/comp_src.h.in: Protect against multiple inclusions. + +Sat Aug 2 19:32:04 BST 2003 Colin Watson + + * docs/NEWS: Document the recent security fixes. + +Sat Aug 2 12:31:24 BST 2003 Colin Watson + + * lib/error.c (error_print_progname): Use a proper prototype. + +Sat Aug 2 01:23:08 BST 2003 Colin Watson + + * tools/checkman: Tolerate spaces in NAME sections, since they occur + in practice and confused checkman before this. Prompted by a + question from James B. Hiller. + +Fri Aug 1 22:06:33 BST 2003 Colin Watson + + Fix vulnerability due to over-permissiveness of DEFINE directive. + + * src/manp.c (DEFINE_USER): New list flag. + (get_def): Note that this must not return DEFINEs set in + ~/.manpath. + (get_def_user): New function, which may return DEFINEs set in + ~/.manpath. + (add_def): Use DEFINE or DEFINE_USER depending on context. + (add_to_dirlist): Update call to add_def(). + * src/manp.h (get_def_user): Add prototype. + + * src/man.c (main): pager and cat are safe for the user to define. + (make_display_command): cat, tr, and decompressor are safe. + * src/straycats.c (check_for_stray): col and decompressor are safe. + * src/whatis.c (use_grep): whatis_grep_flags, + apropos_regex_grep_flags, apropos_grep_flags, and grep are safe. + +Fri Aug 1 01:32:37 BST 2003 Colin Watson + + * src/man.c (main): Minor whitespace cleanups. + +Fri Aug 1 01:05:42 BST 2003 Colin Watson + + * src/manp.c (mkcatdirs): Allocate manname and catname dynamically. + +Wed Jul 30 22:28:13 BST 2003 Colin Watson + + Fix vulnerability 4 posted by Vade 79 on + BugTraq, Message-ID: + <20030729210308.15518.qmail@www.securityfocus.com>. This fix is just + a stopgap measure for now; proper list handling will be added later. + + * src/manp.c (gripe_overlong_list): New function. + (add_dir_to_list): Die gracefully if too many list entries are + added. + (add_dir_to_path_list): Likewise. Take an extra argument for the + head of the list so that we can spot this efficiently. + (create_pathlist): Update calls to add_dir_to_path_list(). + +Wed Jul 30 22:15:16 BST 2003 Colin Watson + + * src/manp.c (gripe_reading_mp_config): This is a fatal error, so + shouldn't be conditional on quiet. + +Wed Jul 30 20:48:57 BST 2003 Colin Watson + + Fix vulnerability 1 posted by Vade 79 on + BugTraq, Message-ID: + <20030729210308.15518.qmail@www.securityfocus.com>. + + * src/manp.c (add_to_dirlist): Limit all sscanf() calls to the + appropriate buffer size. Leave a TODO to say that a replacement + that allocates its own memory would be welcome. + +Wed Jul 30 20:38:40 BST 2003 Colin Watson + + Fix vulnerabilities 2 and 3 posted by Vade 79 + on BugTraq, Message-ID: + <20030729210308.15518.qmail@www.securityfocus.com>. + + * src/ult_src.c (ult_softlink): Return a newly allocated string + rather than copying into fullpath. + (test_for_include): Return a newly allocated string rather than + copying into rel (which was a pointer into part of basename in + ult_src(), and wasn't reallocated in the event that the .so text + was too large). + (ult_src): Allocate basename dynamically rather than using a + static buffer. relative is no longer needed. Update for changes in + ult_softlink() and test_for_include(). + +Wed Jul 30 12:33:25 BST 2003 Colin Watson + + * src/man.c (close_cat_stream): The unlink(tmp_cat_file) cleanup is + only pushed if (!debug), so apply the same condition to popping + it. + +Wed Jul 30 12:21:20 BST 2003 Colin Watson + + * src/descriptions.c (parse_descriptions): Revert this part of + xstrdup(NULL) change from 28 April 2003; head->whatis is undefined + if the else branch was taken. + +Wed Jul 30 10:40:06 BST 2003 Colin Watson + + * src/man.c (find_in_path): Avoid leaking filename for each PATH + element. + +Wed Jul 30 10:36:22 BST 2003 Colin Watson + + * src/compression.c (decompress): Don't free command until after + printing the error message that includes it. + +Wed Jul 30 10:23:50 BST 2003 Colin Watson + + * src/mandb.c (main): Return non-zero with an error message if no + databases were updated. Required so that man knows not to call + mandb over and over again. + +Sat Jun 28 01:26:55 BST 2003 Colin Watson + + * man/it_IT.88591/man1/apropos.man1: Use %date% rather than + %date_it% (which the build system no longer supports). + +Sat Jun 28 00:23:02 BST 2003 Colin Watson + + * man/man1/man.man1: Clarify section 3 as "program libraries" rather + than "system libraries". + +Tue May 6 00:50:25 CEST 2003 Giuseppe Sacco + + * Updated the apropos italian man page. + +Mon May 5 19:47:07 BST 2003 Colin Watson + + * src/man.c (set_term, get_term, store_line_length): Use the + fileno() of stdin and stdout respectively instead of literal 0 and + 1. + * src/ult_src.c (ult_src): Use STRNEQ() instead of strncmp(). + +Mon May 5 18:35:02 BST 2003 Colin Watson + + * src/encodings.c (directory_table): Add Czech -> ISO-8859-2. + +Thu May 1 19:12:54 BST 2003 Colin Watson + + * configure.in (CFLAGS): Add -Wpointer-arith and -Wstrict-prototypes + for gcc. + + * src/man.h: Move prototype from convert_name.c to ... + * src/convert_name.h: ... here (new file). + * src/convert_name.c: Include "convert_name.h". Add some TODO + comments. + * src/man.c: Include "convert_name.h". + + * lib/error.c: Include "error.h". Prototype strerror() fully. + * lib/tempfile.c: Include "manconfig.h" instead of prototyping + strappend() and xstrdup(). Prototype path_search() fully. + * lib/xmalloc.c: Remove most K&R compatibility, since it's not + really supported elsewhere in man-db. + * src/globbing.c: Include "globbing.h". + (match_in_directory): Add static. + * src/man.c (set_term, get_term): Add static. + (int_handler): Move above main(), and add static. + (main): Remove int_handler() prototype. + (make_roff_command, format_display_and_save): Prototype + old_handler fully. + (open_cat_stream, display_catman): Cast to cleanup_fun rather than + to an incomplete prototype. + * src/manp.c (guess_manpath): Add static. + * src/security.c (gripe_set_euid): Prototype fully. + * src/ult_src.c (realpath): Move prototype to the non-STDC_HEADERS + case. + + * src/lexgrog.l: Add '%option warn'. + +Thu May 1 17:39:55 BST 2003 Colin Watson + + * configure.in (CFLAGS): Add -W for gcc. + + * lib/hashtable.c (hash): Change array index type to size_t. + * src/globbing.c (dirent_hash_free, match_in_directory): Likewise. + + * src/check_mandirs.c (purge_pointers): Remove unused manpath + argument. + * src/check_mandirs.h (purge_pointers): Update prototype. + * src/mandb.c (update_one_file): Update call to purge_pointers(). + + * src/catman.c (catman): Remove unused arg_no argument. + (do_catman): Update call to catman(). + * src/man.c (make_roff_command): dir is unused except #ifdef + ALT_EXT_FORMAT. + * src/mandb.c (cleanup): dummy is unused. + * src/ult_src.c (ult_hardlink): Change type of inode to ino_t. + (ult_softlink): mantree is unused. + (ult_src): Update call to ult_softlink(). + * src/whatis.c (apropos): lowpage is unused except #ifdef APROPOS. + * src/wrapper.c (main): argc is unused. + +Thu May 1 16:52:44 BST 2003 Colin Watson + + Remove all assumptions that string literals have type 'char *' + rather than 'const char *'. + + * configure.in (CFLAGS): Add -Wwrite-strings for gcc. + + * lib/tempfile.c (xstrdup): First argument is const. + (path_search): Return 'const char *'. + (create_tempfile, create_tempdir): Copy return value of + path_search() right away rather than after checking for NULL. + + * libdb/db_ver.c (dbver): Take a private copy of VER_KEY. + (dbver_wr): Take private copies of VER_KEY and VER_ID. + + * src/accessdb.c (cat_root): Add const. + * src/catman.c (parse_for_sec): Remove __inline__; add const to both + arguments. Take private copies of "man" and the basic options. + (main): Copy "C" for locale. Make sections etc. 'const char **', + since STD_SECTIONS is an array of 'const char *'. + * src/check_mandirs.c (update_db_time, reset_db_time, update_db): + Take a private copy of KEY. + * src/filenames.c (make_filename): Make type const. + * src/filenames.h (make_filename): Update prototype. + * src/globbing.c (extension, mandir_layout): Add const. + * src/lexgrog.l (fname): Add const. + (find_name): Make filename const. + (main): Set program_name here from argv[0] rather than from a + string literal. + * include/manconfig.h.in (find_name): Update prototype. + * src/man.c (lang_dir): Add static. Copy string literals into ld. + Use xstrndup() rather than copying and then inserting '\0'. + (extension, alt_system_name, section_list, preprocessors, pager, + locale, std_sections, external, gxditview, html_pager): Add const. + (add_roff_line_length): First argument is const. Return a copy of + it if necessary. + (gripe_no_man): Copy external before passing it to basename(). + (main): Copy "C" for internal_locale. Reorganize locale + reinitialization slightly so that locale can be const. + (man_getopt): Set 'const char *' and 'char *' variables to NULL + separately. + (is_section, compare_candidates, man): Use a 'const char **' to + iterate through section_list. + (make_roff_command): Remove __inline__. Take a copy of "" for dev + so that dev is always allocated memory. Handle filter in a more + const-safe way (although there's still a memory leak). + (get_section_list): Remove __inline__. Return 'const char **'. + * src/man.h (get_section_list): Update prototype. + * src/manp.c (get_from_list): Make return value and first argument + const. + (get_def): Make return value and both arguments const. + (get_sections): Return const. + (cat_manpath): Make path and catdir const. + * src/manp.h (get_def, get_sections): Update prototypes. + * src/manpath.c (main): Make alt_system const. + * src/whatis.c (use_grep): Make flags and anchor const. + (main): Make manp and alt_systems const. Copy "C" for locale. + * zsoelim/zsoelim.l (main): Copy argv[0] basename for program_name, + as basename()'s return value may not be long-lived. Copy "-" for + so_name[0]. + + * src/mandb.c (main): Don't bother remembering the return value of + setlocale(). + * src/manpath.c (main): Likewise. + +Mon Apr 28 15:11:28 BST 2003 Colin Watson + + * src/catman.c (main): Don't guard xstrdup() from NULL input, as it + checks itself. + * src/check_mandirs.c (test_manfile): Likewise. + * src/descriptions.c (parse_descriptions): Likewise. + * src/mandb.c (main): Likewise. + * src/whatis.c (main): Likewise. + +Mon Apr 28 09:06:28 BST 2003 Colin Watson + + Introduce a readdir() cache, which substantially speeds up mandb's + purging functions (from 2 minutes to under 45 seconds on my laptop, + and from about 280000 to about 13500 system calls). + + * src/globbing.c (dirent_hash_free, update_directory_cache): New + functions. + (match_in_directory): Use update_directory_cache() rather than + reading the directory on every call. + * docs/NEWS: Document this. + +Mon Apr 28 00:51:11 BST 2003 Colin Watson + + * lib/hashtable.c (hash_lookup): Return the definition rather than + the hash entry structure. This turns out to be a lot more useful. + * lib/hashtable.h (hash_lookup): Update prototype. + * src/man.c (try_db): Simplify; in_cache is no longer needed. Just + assign to the target variable directly. + * src/check_mandirs.c (test_manfile): Likewise. xstrdup() already + checks for NULL input, so don't bother checking here. + +Tue Apr 22 19:56:13 BST 2003 Colin Watson + + * docs/HACKING: New prototypical document for developers. + +Tue Apr 22 19:48:46 BST 2003 Colin Watson + + * src/globbing.c (parse_layout, look_for_file): Add a BSD layout in + which cat pages have the extension .0 (Jeremy C. Reed). More work + is needed elsewhere so that man can write such cat pages, though. + * configure.in (--enable-mandirs): Add BSD layout. + * manual/intro.me (Arguments to configure): Document + --enable-mandirs=BSD. + * README: Sync with manual/intro.me. + +Tue Apr 22 19:38:03 BST 2003 Colin Watson + + * libdb/COPYING.LIB: Remove (obsoleted in favour of + docs/COPYING.LIB). + * GNUmakefile.in (_docs, _libdb): Include COPYING.LIB from docs/ + rather than libdb/. + +Tue Apr 22 19:34:30 BST 2003 Colin Watson + + * tools/mandb_[nt]fmt-script: Correct "# !" to "#! " on the shebang + line. + +Tue Apr 15 18:16:30 BST 2003 Colin Watson + + * src/Makefile.in (LFLAGS): Provide -8 and -B as separate arguments. + flex 2.5.31 is stricter about this. + * zsoelim/Makefile.in (LFLAGS): Likewise. + +Sun Apr 13 14:36:29 BST 2003 Colin Watson + + * src/encodings.c (directory_table): Add Hungarian -> ISO-8859-2. + +Sun Apr 13 13:39:38 BST 2003 Colin Watson + + * src/mandb.c (xcopy): Return 0 if the source file doesn't exist, so + that the caller can go on and silently create a non-existent + database rather than bailing out. + +Sun Apr 13 12:49:33 BST 2003 Colin Watson + + * src/mandb.c: Remove DO_CHOWN define and simply use SECURE_MAN_UID. + +Thu Apr 10 23:51:43 BST 2003 Byrial Ole Jensen + + * po/da.po: Update from Translation Project. + +Mon Apr 7 09:12:27 BST 2003 Colin Watson + + * src/man.c (man): Call local_man_loop() straight away if name + contains a slash. Make the number of pages found an output + argument rather than the return value, so that we can include + local_man_loop()'s return behaviour. + (main): Update throughout for new man() signature. Don't call + local_man_loop() if man() returns an error, as man() now sorts + that out for itself. + * src/man.h (man): Update prototype. + +Mon Apr 7 08:09:08 BST 2003 Colin Watson + + * include/Defines.in: Generate dependencies in .depend rather than + the current directory. Suppress echoing of dependency generation + commands. + * libdb/Makefile.in: Remove .depend directory on distclean. Always + use dependencies (except on clean), not just when --enable-debug + was passed to configure. + * src/Makefile.in: Likewise. Set up $(DEFS_*) variables so that the + correct flags are used when generating dependencies. + * libdb/.cvsignore, src/.cvsignore: Ignore .depend. + + * configure.in: Remove now-redundant --enable-debug option. Remove + search for libefence if --enable-debug is used; using it with + LD_PRELOAD is generally more convenient anyway. + * README, manual/intro.me (Arguments to configure): Remove + documentation for --enable-debug. + * docs/NEWS: Document the removal. + +Mon Apr 7 01:02:27 BST 2003 Colin Watson + + * man/ja_JP.eucJP/man1/man.man1: Replace "%date%" with the Japanese + "ima", meaning "now" or "the present time" (thanks, Liyang Hu). + +Mon Apr 7 00:04:30 BST 2003 Colin Watson + + * configure.in: Don't generate language-specific date variants for + man pages, as that requires all the relevant locales to be + installed on the build machine. Use the ISO 8601 date format + instead. + * include/Defines.in: Remove obsolete substitutions of date_it, + date_es, date_de, and date_fr. + * man/Makefile.in: Likewise. + * man/de_DE.88591/man1/*.man1, man/de_DE.88591/man5/*.man5, + man/de_DE.88591/man8/*.man8, man/es_ES.88591/man1/*.man1, + man/es_ES.88591/man5/*.man5, man/es_ES.88591/man8/*.man8, + man/it_IT.88591/man1/*.man1, man/it_IT.88591/man5/*.man5, + man/it_IT.88591/man8/*.man8 (.TH): Replace "%date_de%", + "%date_es%", and "%date_it%" substitutions by plain "%date%". + * man/man1/man.man1 (HISTORY): "%date%" -> "present day". + * man/it_IT.88591/man1/man.man1 (STORIA): Similarly, "%date_it%" -> + "presente" (present day). + +Sun Apr 6 21:39:36 BST 2003 Colin Watson + + * src/man.c (main): Ignore LANGUAGE if a locale is explicitly + specified using the -L/--locale option. + +Sun Apr 6 20:28:57 BST 2003 Colin Watson + + Revamp locale encoding support. The old code made the incorrect + assumption that the source encoding of manual pages is dependent on + the locale. + + If MULTIBYTE_GROFF is defined then man will assume that it is using + a version of groff with the multibyte patch applied, which supports + some additional locales. + + * src/man.c (lang_table, determine_lang_table): Remove. + (lang_dir): Return "C" if there is no language directory element. + (make_roff_command): Find out the source encoding for the + requested man page and the default device for the current locale, + and use these to select a device more intelligently. Insert an + iconv pipe if the source encoding differs from the input *roff + encoding for the current device. + * src/encodings.c: New file. There are three tables replacing the + old lang_table: directory_table, charset_table, and device_table. + (get_source_encoding): New function, returning the assumed source + encoding for the current page from directory_table. + (get_default_device): New function, returning the default *roff + output device based on the current locale from charset_table. + (get_roff_encoding): New function, returning the input encoding + expected by *roff from device_table. This is always ISO-8859-1 + unless MULTIBYTE_GROFF is defined (this is still a subject of some + debate, and will be UTF-8 for all devices in groff 2). + * src/encodings.h: Prototype new functions. + * src/Makefile.in (man): Add encodings.o. + * docs/NEWS: Document the above. + +Sun Mar 30 23:14:47 BST 2003 Colin Watson + + * man/man1/man.man1 (SYNOPSIS): Both -H and -T take optional + arguments. The fact that they're optional means that no space is + allowed between the option and its argument (thanks to Peter Muir + for that observation). + (OPTIONS): Likewise. Document the 'browser' argument to -H. + Correct a couple of hyphens to dashes. + +Fri Mar 28 09:23:19 GMT 2003 Colin Watson + + * src/man.c (main): Protect ruid/euid debugging statement with + #ifdef SECURE_MAN_UID. + (commit_tmp_cat): Likewise for temporary cat ownership code. + * src/security.c (drop_effective_privs, regain_effective_privs): + priv_drop_count is only declared #ifdef SECURE_MAN_UID. Move the + corresponding directives so that these functions are no-ops if + that symbol isn't defined. + * docs/NEWS: Document this. + +Wed Mar 26 15:04:00 GMT 2003 Colin Watson + + * manual/format.me: Correct location of example external formatter + script. + +Tue Mar 25 04:15:41 GMT 2003 Colin Watson + + * configure.in: Use AC_MSG_NOTICE throughout rather than MAN_ECHO. + Move the definition of MAN_ECHO_VAR to just above its only uses. + +Tue Mar 25 03:44:06 GMT 2003 Giuseppe Sacco + + * po/it.po: Update. + +Tue Mar 25 03:41:13 GMT 2003 Colin Watson + + * src/whatis.c (parse_name): Free lowdbname before returning. + +Tue Mar 25 03:38:39 GMT 2003 Colin Watson + + * lib/strappend.c, lib/xstrdup.c, lib/xstrndup.c: Remove unused + definitions of VOID. + +Sun Mar 16 00:51:12 GMT 2003 Jeremy C. Reed + + * configure.in (--enable-mandirs): Use 'mandirs' rather than + 'mandir', as the latter clashes with an autoconf variable. + +Wed Mar 12 13:17:45 GMT 2003 Colin Watson + + * libdb/db_lookup.c (gripe_bad_multi_key): This function has been + unused since 24 June 2002 (noticed by Giuseppe Sacco). Remove. + * libdb/db_storage.h (gripe_bad_multi_key): Remove prototype. + +Tue Mar 11 21:17:56 GMT 2003 Giuseppe Sacco + + * po/it.po: Update. + +Mon Mar 10 17:20:46 GMT 2003 Colin Watson + + * libdb/db_btree.c, libdb/db_delete.c, libdb/db_gdbm.c, + libdb/db_lookup.c, libdb/db_ndbm.c, libdb/db_storage.h, + libdb/db_store.c, libdb/db_ver.c: Style cleanup (as with src/* on + 28 May 2001). No functional changes. + +Mon Mar 10 15:55:34 GMT 2003 Colin Watson + + * GNUmakefile.in (EVERYTHING, ALL): Move intl ahead of libdb. (Not + 'make -j'-clean, though ...) + * libdb/Makefile.in: Use '$(top_srcdir)' rather than '..' + throughout. Add $(top_srcdir)/intl to the include path if USE_NLS + is set. + +Mon Mar 10 15:24:04 GMT 2003 Colin Watson + + * configure.in (AC_CONFIG_HEADER): Generate config.h rather than + include/config.h. intl/Makefile.in is insistent on config.h being + in the top-level directory. + * GNUmakefile.in, manual/comp.me: Replace 'include/config.h' with + 'config.h' throughout. + * .cvsignore, include/.cvsignore: Update for new config.h and + config.h.in locations. + +Mon Mar 10 15:00:32 GMT 2003 Colin Watson + + * lib/mkdtemp.c: Define __GT_DIR if necessary. + * lib/tempfile.c: Prototype mkstemp() and mkdtemp(). + +Mon Mar 10 14:46:39 GMT 2003 Colin Watson + + * lib/tempname.c: Include "config.h" rather than . + +Mon Mar 3 22:00:03 GMT 2003 Colin Watson + + * src/mandb.c (xcopy): Remove silly calls to fclose() on null + pointers. + +Sun Mar 2 20:37:08 GMT 2003 Colin Watson + + * src/mandb.c (xcopy): Save errno before performing operations that + might change it. Close ifp as well if an error occurs while + opening ofp. + +Fri Feb 28 01:50:21 GMT 2003 Colin Watson + + * src/man.c (find_in_path): path needs to be preserved in order to + be freed safely, or else we segfault. Use a temporary variable for + strsep() instead. + +Mon Feb 24 17:05:25 GMT 2003 Colin Watson + + * man/man1/man.man1 (OPTIONS): Only use the \[shc] character if it's + available, which is the case on groff's latin1 and utf8 devices + but not on others. Otherwise, use \(hy. + +Mon Feb 24 00:17:39 GMT 2003 Colin Watson + + * docs/manpage.example (OPTIONS): Move the note about '\-' versus + '-' from a comment into displayed text. + +Sun Feb 23 00:34:12 GMT 2003 Alexandre Folle de Menezes + + * po/pt_BR.po: Update from Translation Project. + +Sat Feb 22 18:32:58 GMT 2003 Colin Watson + + * acinclude.m4 (MAN_CHECK_BDB): Remove some extra calls to + AC_MSG_RESULT, since AC_CACHE_CHECK already calls that. + +Sat Feb 22 18:10:14 GMT 2003 Morten Brix Pedersen + + * po/da.po: Translate a few more strings. + +Sat Feb 22 18:06:09 GMT 2003 Alexandre Folle de Menezes + + * po/pt_BR.po: Update from Translation Project. + +Sat Feb 22 17:50:55 GMT 2003 Colin Watson + + * src/Makefile.in: Fix typo ("developement" -> "development"). + * src/manp.c (add_to_dirlist): Fix typo ("mach" -> "match"). + +Sat Feb 22 17:41:07 GMT 2003 Colin Watson + + * src/manp.c (read_config_file): If user_config_file is non-NULL, + use it instead of ~/.manpath. Programs can now set the user + configuration file to be used. + + * src/catman.c, src/mandb.c, src/manpath.c, src/whatis.c + (long_options): Add -C/--config-file option. + (usage): Document it. + (main): Handle it. + * src/man.c (long_options): Add -C/--config-file option. + (usage): Document it, along with adding -i and -I to the synopsis. + (man_getopt): Handle it. + * man/man1/apropos.man1, man/man1/man.man1, man/man1/manpath.man1, + man/man1/whatis.man1, man/man8/catman.man8, man/man8/mandb.man8 + (SYNOPSIS): Add -C. + (OPTIONS): Describe -C/--config-file. + + * docs/NEWS: Document this addition. + +Fri Feb 21 18:32:21 GMT 2003 Colin Watson + + * src/Makefile.in (man): lexgrog.o is no longer needed. Removing it + takes 24K off the size of a stripped man binary on Linux/i386. + +Fri Feb 21 18:12:45 GMT 2003 Colin Watson + + * src/mandb.c (xcopy): Improve error handling. + (mandb): Since xcopy() now returns int, handle its return value. + +Fri Feb 21 16:40:26 GMT 2003 Colin Watson + + * src/man.c (find_in_path): New function to look for executables on + the $PATH. + (gripe_no_man): Only emit the "undocumented" message if a + corresponding executable is found on the $PATH. + * docs/NEWS: Document this. + +Fri Feb 21 16:26:00 GMT 2003 Colin Watson + + * docs/NEWS: Preliminary entries for 2.4.2. + +Fri Feb 21 15:49:08 GMT 2003 Colin Watson + + * zsoelim/zsoelim.l: Internationalize usage and error messages. + +Fri Feb 21 15:46:04 GMT 2003 Colin Watson + + * src/check_mandirs.c (gripe_bogus_manpage, make_filename, + filename_info): Move to ... + * src/filenames.c: ... here. + * src/check_mandirs.h: Move corresponding prototypes to ... + * src/filenames.h: ... here. + + * src/check_mandirs.c (purge_pointers): New function to purge any + entries whose pointers refer to a given name. + * src/check_mandirs.h (purge_pointers): Add prototype. + * src/mandb.c (long_options): Add -f/--filename option. + (usage): Document it, along with -t/--test. + (update_one_file): New function to update a single file in an + existing database. + (update_db_wrapper): Call update_one_file() if using --filename. + (main): Handle --filename option. If using --filename, only call + mandb() if the manpath prefix matches. + * man/man8/mandb.man8 (SYNOPSIS): Improve *roff style and document + -p. Add separate call summary for when -f is used. + (OPTIONS): Document -f. + + * lib/hashtable.c (hash_remove): New function to remove an entry + from a hash table. + * lib/hashtable.h (hash_remove): Add prototype. + + * libdb/db_store.c (replace_if_necessary): Replace entries with ids + other than ULT_MAN too, so that their timestamps can be updated. + Add more debugging output. + * src/man.c (need_to_rerun): Remove. + (display_database): Remove code to check whether pages found in + databases are up to date. This is done elsewhere now. + (run_mandb): New function, used instead of updating databases + directly. + (main): Call run_mandb() instead of need_to_rerun(). + (maybe_update_file): New function to check whether a page found in + a database is up to date. If not, use run_mandb() to recache it. + (try_db): Use run_mandb() rather than create_db(). Use #defines + for special return values rather than magic numbers. Check whether + pages are up to date as they're found. + (locate_page): If try_db() returns TRY_DATABASE_UPDATED (i.e. + mandb was called to update some pages), call it again. + (display_pages): Use a switch with named candidate types instead + of an if. + + * src/Makefile.in (DEFS_man.o): Add definition for MANDB. + (man): Database code is no longer needed. Add filenames.o. + (mandb): Add filenames.o. + +Mon Feb 17 23:28:55 GMT 2003 Colin Watson + + * src/manpath.c: Remove unused prototypes. + +Tue Jan 21 01:42:16 GMT 2003 Colin Watson + + * src/mandb.c (xcopy, main): Minor whitespace cleanups. + * src/ult_src.c: Fix typo (loosing -> losing). + +Mon Jan 6 03:25:16 GMT 2003 Colin Watson + + * src/man.c (display_pages): Drop privileges if candp->path is a + user manpath. Inner code generally dropped privileges anyway, + certainly when running external commands, but the absence of this + drop meant that pages in non-world-readable user manpaths could + not be read. + +Mon Jan 6 03:19:57 GMT 2003 Colin Watson + + * lib/error.c (error): Print a backtrace if the BACKTRACE_ON_ERROR + symbol is defined. This undoubtedly isn't portable and is not + intended for production use; it's just a last-resort way to get a + backtrace when the usual methods fail, chiefly when running + setuid. + +Tue Dec 31 04:39:03 GMT 2002 Colin Watson + + * src/man.c (man): If update is set, need_to_rerun() will always + have been called already by now. Remove this redundant code. + +Tue Dec 31 04:26:50 GMT 2002 Colin Watson + + * man/man1/apropos.man1, man/man1/lexgrog.man1, + man/man1/manpath.man1, man/man1/whatis.man1, + man/man1/zsoelim.man1: --version no longer displays author + information. + +Sun Dec 29 19:57:55 GMT 2002 Colin Watson + + * src/check_mandirs.c, src/check_mandirs.h: Move page_description + interface functions to ... + * src/descriptions.c, src/descriptions.h: ... here (new files). + * src/Makefile.in (man, mandb): Link descriptions.o. + + * libdb/db_storage.h: Include libdb/mydbm.h for the datum type. + +Sun Dec 29 19:51:11 GMT 2002 Colin Watson + + * src/lexgrog.l: Add commas between short and long options in usage + output. + + * src/accessdb.c (main): Support -h/--help and -v/--version options. + (usage): Document them. Move MAN_DB outside translatable string. + * man/man8/accessdb.man8 (SYNOPSIS, OPTIONS): Document new options. + (AUTHOR): Add myself. + * src/globbing.c (long_options, args, main): Support -h/--help and + -v/--version options. + (usage): New function. + * zsoelim/zsoelim.l: Support long option forms of -C (--compatible), + -h (--help), and -V (--verbose). + * man/man1/zsoelim.man1: Document long options. + + * src/Makefile.in: Link $(TOOLS) as well as $(PROGS) with version.o. + +Sun Dec 29 19:40:46 GMT 2002 Colin Watson + + Patch partly by Werner Fink . + + * src/whatis.c (args, long_options): Add -v/--verbose option. + (usage): Document it. + (get_whatis): Print pointer loop warnings only if --verbose. + (main): Handle --verbose option. + * man/man1/apropos.man1 (OPTIONS): Document --verbose. + * man/man1/whatis.man1 (OPTIONS): Likewise. + +Sun Dec 22 23:30:12 GMT 2002 Colin Watson + + * src/check_mandirs.c (test_manfile): Initialize the mandata struct + on the stack to zero. + (count_glob_matches): Likewise. + * src/straycats.c (check_for_stray): Likewise. + * src/man.c (try_section): Use infoalloc() (which initializes the + mandata struct to zero) rather than malloc(). This had caused + several uses of uninitialized memory (Debian bug #168584). + + * src/check_mandirs (purge_whatis): Compare info->pointer against + "-", not just its first character. + +Sun Dec 22 19:29:38 GMT 2002 Colin Watson + + * Version: 2.4.1. + * docs/NEWS, man-db.gnu, man-db.lsm: Update. + +Sun Dec 22 18:19:09 GMT 2002 Colin Watson + + * libdb/db_btree.c (btree_findkey): Cast key.dsize to int when using + it as an fprintf() field width. + +Sun Dec 22 18:15:51 GMT 2002 Colin Watson + + Patch inspired by part of SuSE's diff, although not identical. + + * GNUmakefile.in: Export DESTDIR. + * man/Makefile.in, src/Makefile.in, zsoelim/Makefile.in: Honour + DESTDIR when installing and uninstalling files. + +Sun Dec 22 14:14:37 GMT 2002 Colin Watson + + * GNUmakefile.in (dist): Don't update .po files automatically, since + they're kept under revision control. + +Sun Dec 22 13:59:23 GMT 2002 Colin Watson + + * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po, + po/it.po, po/ja.po, po/pt_BR.po, po/sv.po: Update with msgmerge. + +Sun Dec 22 13:44:20 GMT 2002 Alexandre Folle de Menezes + + * po/pt_BR.po: Update from Translation Project. + +Sat Dec 21 13:30:43 GMT 2002 Colin Watson + + * src/check_mandirs.c (count_glob_matches): Exclude file names which + fail stat(), such as dangling symlinks. + +Sat Dec 21 03:01:34 GMT 2002 Colin Watson + + * src/check_mandirs.c (count_glob_matches): New function, + sanity-checking results from look_for_file(). This should probably + be done in look_for_file() itself eventually, but that requires + more widespread changes. + (purge_normal, purge_whatis): Use it. + + * src/check_mandirs.c (gripe_bogus_manpage, gripe_rwopen_failed, + filename_info, purge_normal, purge_whatis): Constify arguments. + * src/check_mandirs.h (filename_info): Update prototype. + + * docs/NEWS: Document --enable-mandirs guesswork. + * src/.cvsignore: Add the globbing test executable. + +Fri Dec 20 15:38:48 GMT 2002 Colin Watson + + * src/globbing.c (main): Make the test program compile again, and + add full argument parsing. + * src/Makefile.in (globbing): Link with util.o. + +Fri Dec 20 15:34:51 GMT 2002 Colin Watson + + * configure.in: Guess the --enable-mandirs setting where possible if + it isn't specified explicitly. + +Fri Dec 20 02:28:15 GMT 2002 Colin Watson + + * src/check_mandirs.c (purge_missing): Match database entries + against real filenames using the name field where available, not + the lowercased field. + +Fri Dec 20 02:15:21 GMT 2002 Colin Watson + + * src/mandb.c (mandb): If force_rescan is set, delete the database + and recreate it from scratch. + * src/check_mandirs.c (testmandirs): force_rescan is handled + elsewhere now. + (purge_normal, purge_whatis): Remove inline qualifier. + (check_multi_key): New function to check for broken multi keys + such as those generated by 2.4.0. + (purge_missing): Call check_multi_key() where necessary. + + * src/lexgrog.l (find_name): Revert change of 27 November 2002, as + calling ult_src() inside find_name() breaks mandb (which already + calls ult_src() itself). Instead: + (main): Do the ult_src() resolution here for each element of argv. + + * src/ult_src.c (ult_src): 'name' argument is const. + * src/lexgrog.l (find_name): 'file' argument is const. + * include/manconfig.h.in, src/ult_src.h: Update prototypes. + +Mon Dec 16 05:28:34 GMT 2002 Colin Watson + + From SuSE's diff: + + * lib/error.c: Add 'extern' to prototypes. + * lib/strappend.c, lib/xstrdup.c, lib/xstrndup.c: #include + "manconfig.h" rather than using an explicit prototype. + * lib/xstrdup.c (xstrdup): 'string' should be const. + + * po/cs.po: Fix a format string. + + * src/lexgrog.l: Add Japanese translation of NAME. + * src/man.c: 'wd', 'cwd', and local_man_loop() are static. + +Mon Dec 16 04:30:39 GMT 2002 Colin Watson + + * configure.in: 'test "$foo"' => 'test -n "$foo"' throughout. Taken + from SuSE's diff. + +Wed Dec 4 21:02:48 GMT 2002 Colin Watson + + * man/man1/lexgrog.man1: Replace `, ', and - (for literal dash + rather than hyphen) with \(oq, \(cq, and \- respectively. + (NOTES): lexgrog attempts to handle .so requests now. + +Tue Dec 3 01:39:54 GMT 2002 Colin Watson + + * src/man.c (main): Only set multiple_locale if it's going to be + used. Look at multiple_locale rather than internal_locale when + performing special $LANGUAGE handling. + +Mon Dec 2 14:08:08 GMT 2002 Michael Piefel + + * po/de.po: Fix a missing newline. + +Mon Dec 2 13:58:55 GMT 2002 Michael Piefel + + * po/de.po: Update from Translation Project. + +Fri Nov 29 15:40:21 GMT 2002 Jordi Mallach + + * po/ca.po: Update from Translation Project. + +Wed Nov 27 20:27:59 GMT 2002 Christian Rose + + * po/sv.po: Update from Translation Project. + +Wed Nov 27 02:43:03 GMT 2002 Colin Watson + + * Version: 2.4.1-pre1 (for translators). + * docs/NEWS: Update. + +Wed Nov 27 02:29:42 GMT 2002 Colin Watson + + * src/lexgrog.l (find_name): Call ult_src() to resolve .so links. + * src/Makefile.in: Link ult_src.o into lexgrog. + +Wed Nov 27 01:49:18 GMT 2002 Colin Watson + + * release.sh: Don't pass --copy to autogen.sh, as it's a no-op now. + * po/.cvsignore, tools/.cvsignore: More ignored files. + +Wed Nov 27 01:46:27 GMT 2002 Colin Watson + + * tools/mkinstalldirs: Remove. It's more trouble than it's worth to + store something in CVS that autopoint thinks it controls. + +Wed Nov 27 01:25:52 GMT 2002 Colin Watson + + * po/da.po: Correct some minor typographical mistakes (mostly + missing spaces or newlines at the end of one piece of a string + concatenation). + * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po, + po/it.po, po/ja.po, po/pt_BR.po, po/sv.po: Update with msgmerge. + +Wed Nov 27 00:51:47 GMT 2002 Colin Watson + + * man/man1/apropos.man1, man/man1/lexgrog.man1, man/man1/man.man1, + man/man1/manpath.man1, man/man1/whatis.man1, + man/man1/zsoelim.man1, man/man5/manpath.man5, + man/man8/accessdb.man8, man/man8/catman.man8, man/man8/mandb.man8: + Add a .pc request so that the % characters we use for + substitutions don't get translated into page numbers when + formatting the unsubstituted pages. + +Wed Nov 27 00:37:29 GMT 2002 Colin Watson + + * man/man1/lexgrog.man1 (WHATIS PARSING): Add an example of how NAME + sections should be written in mdoc. + +Tue Nov 26 22:57:27 GMT 2002 Colin Watson + + * .cvsignore: Ignore the m4 directory, created by autopoint. + * GNUmakefile.in (_subdirs, _m4): Add m4/*.m4 to the distribution. + (_root): There are no *.h files left in the top-level directory. + (nls_man): de_DE.ascii is gone. + (dist): Use 'cp -p' rather than 'ln', since ln notes that making a + hard link to a symbolic link is not portable. + +Tue Nov 26 03:43:15 GMT 2002 Colin Watson + + * po/pt_BR.po: New from Translation Project. + * po/LINGUAS: Add pt_BR. + +Fri Nov 22 22:06:01 GMT 2002 Morten Brix Pedersen + + * po/da.po: Further updates. + +Sat Nov 16 12:54:29 GMT 2002 Colin Watson + + * docs/manpage.example: Clarify that dashes in options should be + written using '\-', not '-'. + +Thu Nov 14 23:29:14 GMT 2002 Morten Brix Pedersen + + * po/da.po: Update. + +Thu Nov 14 23:26:58 GMT 2002 Colin Watson + + * configure.in: Implement --enable-undoc=COMMAND. + * src/man.c (gripe_no_man): If --enable-undoc=COMMAND was set, print + an additional message referring users to COMMAND. This is mostly + here to support Debian's undocumented(7) page in a nicer way, but + perhaps others will find it useful too. + +Thu Nov 14 04:21:09 GMT 2002 Colin Watson + + * src/Makefile.in: Use @LIBINTL@ rather than @INTLLIBS@. The latter + is deprecated. + +Thu Nov 14 04:17:49 GMT 2002 Colin Watson + + * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po, + po/it.po, po/ja.po, po/sv.po: Update with msgmerge. + +Thu Nov 14 04:10:44 GMT 2002 Colin Watson + + * acinclude.m4, configure.in: Include documentation in all calls to + AC_DEFINE and AC_DEFINE_UNQUOTED. Look for acinclude.m4 in + AC_CONFIG_SRCDIR rather than acconfig.h. + * acconfig.h: Remove; the above makes it unnecessary. + * GNUmakefile.in: Remove acconfig.h from stamp-h.in's dependencies. + + * autogen.sh: Run autopoint, not gettextize. autogen.sh no longer + takes an optional --copy argument. + +Thu Nov 14 04:06:41 GMT 2002 Colin Watson + + * po/.cvsignore: Add messages.mo and remove-potcdate.sed. + * po/it.po: Add missing '=' in charset. + +Thu Nov 14 03:53:22 GMT 2002 Colin Watson + + * po/cs.po: Fix an incorrect C format string. + * po/da.po: Fix some out-of-sync C format strings and default PO + file headers. I've contacted the translator about these. + +Thu Nov 14 01:57:42 GMT 2002 Colin Watson + + * man-db.gnu, man-db.lsm: Document the switch from SourceForge to + Savannah. + +Mon Nov 11 01:50:28 GMT 2002 Colin Watson + + * src/man.c (man): Update the count of found pages with the return + value of display_pages(). This should fix the situation where man + finds a matching entry in the database, discovers that it's + actually a dangling symlink, but fails to print an error message + to say that no page was found. + +Mon Nov 11 00:47:38 GMT 2002 Colin Watson + + * man/man1/man.man1 (OPTIONS): Change \[char173] to \[shc]. The + former doesn't appear to display as anything useful these days. + * man/es_ES.88591/man1/man.man1, man/it_IT.88591/man1/man.man1, + man/ja_JP.eucJP/man1/man.man1: Likewise. + +Thu Nov 7 02:18:44 GMT 2002 Colin Watson + + * src/man.c (display): Don't do access() checks on an empty man_file + in the display_to_stdout branch, to avoid problems when running + 'man -X -l -'. Similar code is already in the other branch. Patch + from Peter Muir . + +Thu Nov 7 01:42:52 GMT 2002 Colin Watson + + * docs/NEWS: Further updates for 2.4.1. + * docs/ToDo: I think the new-style database is OK now. + +Thu Nov 7 01:32:29 GMT 2002 Colin Watson + + * src/globbing.c (match_in_directory): Don't use FNM_NOESCAPE flag + to fnmatch(). + (look_for_file): Escape paths and names before passing them to + match_in_directory(). + * src/globbing.h: Update variable names in prototype. + +Wed Oct 23 02:12:43 BST 2002 Colin Watson + + * tools/README: Remove reference to install-manpage. + +Wed Oct 23 02:10:15 BST 2002 Colin Watson + + * tools/install-manpage: Remove. It doesn't work at all as far as I + can see, and at least as far as Debian is concerned dh_installman + does a better job. + * GNUmakefile.in: Remove reference to install-manpage. + +Wed Oct 23 02:03:18 BST 2002 Colin Watson + + Apply proper copyright and licence notices to all source files. + There are no functional changes here, either to the code or to the + applicable licences, merely clarifications. + + * docs/COPYING.LIB: New file, containing version 2.1 of the GNU + LGPL. + +Wed Oct 23 01:56:38 BST 2002 Colin Watson + + * tools/install-sh: Update to the version in automake 1.4-p4, which + includes a full (MIT) licence notice. + +Sat Oct 12 20:16:48 BST 2002 Colin Watson + + A much-needed complete rewrite of splitline(). The previous version + was extremely difficult to debug (see http://bugs.debian.org/123130) + and got info->pointer and info->whatis wrong quite frequently. This + version is much simpler and I hope more correct. + + * src/util.c (trim_spaces): New function. + * include/manconfig.h.in: Prototype trim_spaces(). + + * src/check_mandirs.c (gripe_bad_store): New function. + (splitline): Remove. + (parse_descriptions, store_descriptions, free_descriptions): New + functions, implementing the whatis parsing that used to be in + splitline() and test_manfile(). + (test_manfile): Reduce the complicated loop over splitline() to + calls to the above three functions. Adjust the parsing failure + case to require less deeply nested indentation. + * src/check_mandirs.h: New page_description struct, used to + implement the above. Prototype new functions. + * src/straycats.c: Use the new page_description-based interface. + +Wed Sep 25 00:39:16 BST 2002 Colin Watson + + * man/man1/man.man1 (DESCRIPTION): Clarify the purpose of section 7 + as "Miscellaneous". + +Tue Sep 24 00:22:36 BST 2002 Colin Watson + + * lib/strnlen.c: Don't try to define a weak alias. We aren't libc. + +Mon Sep 16 21:14:26 BST 2002 Colin Watson + + * libdb/mydbm.h: datum.dsize must be size_t, not int. + +Mon Sep 16 01:07:16 BST 2002 Colin Watson + + * src/compression.c (decompress): If the decompressor fails, print + an error message and return NULL rather than exit()ing + immediately. This allows callers to behave more intelligently. + * src/lexgrog.l (find_name): Cope with decompress() returning NULL. + * src/man.c (local_man_loop): Likewise. + * src/ult_src.c (ult_src): Likewise. + +Mon Sep 16 00:25:17 BST 2002 Clint Adams + + * configure.in: Detect bzip2. + * include/comp_src.h.in (comp_list): Include bunzip2 support if + available. + * include/manconfig.h.in: Add BUNZIP2 definition. + +Sun Sep 15 23:53:28 BST 2002 Colin Watson + + Upgrade to gettext 0.11.5. + + * configure.in: Remove ALL_LINGUAS. Add AM_GNU_GETTEXT_VERSION. + * po/LINGUAS: New file. Adds sv to the value of the old ALL_LINGUAS. + * po/Makevars: New file. + * po/POTFILES.in: Add src/fakesecurity.c. Change src/lexgrog.c to + src/lexgrog.l. + * tools/mkinstalldirs: Upgrade to current version. + +Fri Sep 6 23:58:10 BST 2002 Colin Watson + + * src/mandb.c (xcopy): Don't print the error from fopen() if it's + just ENOENT. + +Tue Sep 3 21:53:56 BST 2002 Colin Watson + + * libdb/db_lookup.c (list_extensions): Prevent a theoretical buffer + overflow by allocating names and ext as necessary rather than + using a fixed-length array. + (dblookup): Update callers. + * libdb/db_delete.c (dbdelete): Likewise. + * libdb/db_storage.h: Update prototypes. ENTRIES definition is now + redundant. + +Tue Sep 3 20:26:22 BST 2002 Colin Watson + + * libdb/db_delete.c (dbdelete): Construct new multi_content + correctly (names as well as extensions) when deleting some of its + elements. + +Fri Aug 30 03:11:42 BST 2002 Colin Watson + + * src/man.c (make_roff_command): Restore the fix from 13 July 2001 + that got lost while implementing -E. We need to look up the + correct character set each time a page is displayed, but still + honour any device explicitly set by -E, so test different_encoding + rather than roff_device. + +Thu Aug 29 01:14:19 BST 2002 Colin Watson + + * src/man.c (setenv_less): Export the value of $MAN_PN for the + benefit of other pagers (suggestion from Jeff Sheinberg). + +Thu Aug 29 00:50:54 BST 2002 Colin Watson + + * src/man.c: dbfilters is no longer a global variable. + (get_preprocessors, make_roff_command, display): Take an extra + dbfilters argument. + (local_man_loop, make_roff_command, display, display_filesystem): + Adjust callers. + (display_database): Likewise. Pass in->filter as the dbfilters + argument to display() rather than setting it globally (and + forgetting to set it back to NULL later). + * src/man.h: Update prototypes. + +Sat Aug 17 21:53:38 BST 2002 Colin Watson + + * src/straycats.c (check_for_stray): Initialize info.name and + info.filter. Remove unhelpful __inline__. + +Tue Aug 13 18:25:13 BST 2002 Colin Watson + + * src/man.c (usage): Document new option -W, --where-cat, + --location-cat. + (man_getopt): Accept -W. + (display): -w now just prints man_file, while -W prints cat_file. + If both are given, the two filenames are printed separated by a + space, as -w used to do. + * man/man1/man.man1, docs/NEWS: Document this. + +Sat Aug 10 13:19:34 BST 2002 Colin Watson + + * docs/NEWS: Preliminary entries for 2.4.1. + +Sat Aug 10 13:15:49 BST 2002 Colin Watson + + * lib/hashtable.c (plain_hash_free, hash_install, hash_free): Remove + the type argument and nlist element. All current users can just + use separate hashtables instead. + * lib/hashtable.h: Update prototypes and nlist declaration. + * libdb/db_btree.c: Don't pass dummy type argument to + hash_install(). + + * src/check_mandirs.c, src/man.c: Include "lib/hashtable.h" rather + than "hashtable.h". + * src/check_mandirs.c (test_manfile): Use hashtable functions on the + new static whatis_hash directly rather than the old functions + which implicitly operated on the global man_hash. + (testmandirs): Since we use full paths as hash keys, there's no + need to clear whatis_hash between hierarchies. + * src/man.c (db_hash_free): New function. + (main, try_db): Use hashtable functions on the new static db_hash + directly rather than the old functions which implicitly operated + on the global man_hash. + (try_db, man): Don't clear hashtables before creating a new + database. This used to segfault in some circumstances. + + * src/hashtable.c, src/hashtable.h: Remove. + * src/Makefile.in: Remove mentions of hashtable.o. + +Thu Aug 8 02:05:34 BST 2002 Colin Watson + + * po/sv.po: New from Translation Project. + +Mon Jul 22 01:20:28 BST 2002 Colin Watson + + * src/check_mandirs.c (splitline): Check for pointer underflow when + trimming leading spaces. + +Mon Jul 22 01:18:18 BST 2002 Colin Watson + + * libdb/db_ver.c: Include for strcmp(). + +Wed Jul 17 20:30:30 BST 2002 Colin Watson + + * src/wrapper.c: Include even under --disable-nls. + +Mon Jul 15 14:18:56 BST 2002 Colin Watson + + * src/lexgrog.l: Allow EOF to terminate MAN_NAME cleanly. + +Thu Jul 11 20:45:36 BST 2002 Colin Watson + + * manual/man_db.me: Version 0.7. Remove version number from \*M + string. Set a default page width of 78 ens for nroff output. Add + myself as an author. + * manual/intro.me (man-db): Mention lexgrog. + (The format of manual pages): Ted and Werner now maintain groff. + * manual/sec.me (Specifying a section): Extensions don't have to be + listed unless a special ordering is desired. + * manual/files.me (Other OS's manual pages): --systems, not + --system. + (NLS manual pages): Likewise. Update Daniel Quinlan's e-mail + address. Correct "/usr/man/man" to "/usr/man" in example manpath + output. + (Displaying latin1 characters on a Linux virtual terminal): Set + sample script in a constant-width font. + (Local cat page directory caches): Modification times are now + compared for equality rather than for the cat file being more + recent. + * manual/format.me (GROFF): tools/nroff-script is no longer + provided. + (Pre-format processors (pre-processors)): Mention the lexgrog scan + for preprocessor hints. + * manual/db.me (Contents of an index database): Clarify where the + true case of a name is stored. + (Accessdb): accessdb is compiled by default now. + * manual/misc.me (NLS message catalogues): Point to the Translation + Project. + * manual/*.me: Minor wording improvements. Apply better *roff style + (newline at each sentence break). + + * man/THANKS: Update Jordi Mallach's e-mail address. + +Sun Jul 7 22:19:41 BST 2002 Colin Watson + + * tools/config.guess: Update to 2002-05-29. + * tools/config.sub: Update to 2002-06-21. + * tools/README: Describe config.guess and config.sub. + + * tools/nroff-script: Remove. groff has had this since 1992, and its + version is considerably more up-to-date. + * GNUmakefile.in, tools/README: Remove references to nroff-script. + + * zsoelim/zsoelim.l: -Wall cleanup. Set the nounput option, since we + don't need yyunput(). + (open_file): Make sure the compiler knows that compfile and comp + are always initialized. + +Sat Jul 6 21:30:07 BST 2002 Colin Watson + + * src/man.c (get_roff_line_length): Widen to match groff 1.18's + defaults. + (add_roff_line_length, make_roff_command): Simplify by using en + units rather than inches. + + * src/man.c (main): Slight improvement in the error message for a + missing page. If the name doesn't begin with a digit, never use + gripe_no_name(): having the 'n' section shouldn't mean that 'man + nonexistent' says "What manual page do you want from section + nonexistent?". + + * src/man.c (try_section): Check for ult_src() returning NULL. + +Wed Jul 3 23:46:31 BST 2002 Colin Watson + + * src/manp.c (add_system_manpath): Make sure the loop that scans for + per-system manpaths always makes progress. + +Wed Jul 3 23:14:42 BST 2002 David Martinez Moreno + + * man/THANKS: Update e-mail address. + * po/es.po: Update. + +Sat Jun 29 14:58:08 BST 2002 Colin Watson + + * src/man.c (main): If a section is given but the lookup fails, + check to see if the section is actually a page name. This allows + man page names that begin with a digit to work much more sanely. + (is_section): If a single-character entry in section_list is a + prefix of the requested section name, return successfully. This + means that e.g. '3tcl' is treated as a valid section even if only + '3' is in section_list. + + * src/man.c (is_section), src/man.h (is_section): Constify argument + and return type. + + * src/globbing.c (match_in_directory, look_for_file): Reduce + debugging chatter. + +Wed Jun 26 20:07:56 BST 2002 Colin Watson + + * src/whatis.c (get_whatis): "(unknown)" => "(unknown subject)", + mainly so that translators know the number and gender. + +Wed Jun 26 19:49:49 BST 2002 Colin Watson + + * src/catman.c (usage), src/man.c (usage), src/mandb.c (usage), + src/manpath.c (usage): Make --help output more consistent. + * src/whatis.c (usage): Likewise. "alternate systems" => "alternate + systems'". + +Wed Jun 26 14:47:01 UTC 2002 Colin Watson + + * Version: 2.4.0. + * README: Update or remove references to "man-db-2.3" and similar. + * man-db.gnu: Update and sync with GNU. + * man-db.lsm: Update. + * manual/man_db.me: Replace "2.3.x" with "2.4.x". + * po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po, + po/it.po, po/ja.po: Update with msgmerge. + +Wed Jun 26 14:09:25 BST 2002 Colin Watson + + * src/lexgrog.l (name_sec): Allow whitespace before any closing + double quote. (rman(1) uses '.SH "NAME "'.) + +Tue Jun 25 00:29:22 BST 2002 Colin Watson + + * docs/NEWS: Translation credits are in man/THANKS. + * man/THANKS: Update. + + * manual/.cvsignore: New file. + +Mon Jun 24 02:53:00 BST 2002 Colin Watson + + * libdb/db_store.c (dbstore): Use \t instead of . to separate + case-variant-names and extensions in multi keys. + * libdb/db_lookup.c (list_extensions): Take an extra 'names' array + argument, and split alternately into that and 'ext'. + (dblookup): Update and simplify accordingly; we don't need the + awkward '.' handling any more. + * libdb/db_delete.c (dbdelete): Likewise. + * libdb/db_storage.h (list_extensions): Update prototype. + + * include/manconfig.h.in: Database format version 2.4.1. + + * manual/db.me (Contents of an index database): Document + case-insensitive name storage format. Bring the documentation of + the database entry format up to date. + * manual/sec.me (Specifying a section): Mention the SECTION + configuration directive. + +Fri Jun 21 10:50:40 UTC 2002 Colin Watson + + * src/check_mandirs.c (make_filename): in->comp may be NULL. + + * po/fr.po: Update from Translation Project. + +Mon Jun 17 09:56:15 UTC 2002 Colin Watson + + * configure.in (ALL_LINGUAS): Add ca. + * src/man.c: Update some comments. + * src/lexgrog.l: Treat \~ as a space. Treat \# as a comment. Treat + .ig as ending the whatis. + +Thu Jun 13 18:16:46 BST 2002 Colin Watson + + * po/ca.po: Some updates after review. + +Wed Jun 12 18:29:18 BST 2002 Colin Watson + + * docs/ToDo: Updates. + * po/ca.po: New from Translation Project. + +Wed Jun 5 14:23:13 BST 2002 Colin Watson + + * po/de.po: Update from Translation Project. + +Tue Jun 4 13:15:09 BST 2002 Colin Watson + + * src/man.c (compare_candidates): Return 0 when asked to compare two + candidates we can't distinguish, not -1. The latter broke + multilingual support. + +Tue Jun 4 01:33:31 BST 2002 Colin Watson + + * Version: 2.3.90 (for translators). + * docs/NEWS: More updates. + * po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po, po/it.po, + po/ja.po: Update with msgmerge. + +Tue May 28 00:36:55 BST 2002 Colin Watson + + * libdb/db_lookup.c (dblookup): Check the MATCH_CASE flag in the + case of a single entry as well as multiple entries. + +Mon May 27 23:57:26 BST 2002 Colin Watson + + * lib/hashtable.c, lib/hashtable.h: New files, containing the + generic parts of src/hashtable.{c,h}. + * lib/Makefile.in: Add hashtable.c. + * src/hashtable.c (hash, lookup, install): Remove. These functions + have been renamed and moved to lib/hashtable.c. + (free_defn): Rename to man_hash_free and update for new hashtable + API. + (free_hashtab): Update for new hashtable API. + * src/hashtable.h: Update prototypes. + + * libdb/db_btree.c (btree_findkey): Check for entries we've seen + before in the current run. These indicate a corrupt database + containing a loop. + +Thu May 23 01:50:53 BST 2002 Colin Watson + + * lib/cleanup.h: #endif must not be followed by a token on the same + line. + +Thu May 23 00:29:24 BST 2002 Colin Watson + + * src/fake_security.c (get_man_owner): New fake function to match + the real one in src/security.c. + * src/manp.c (mkcatdirs): Chown newly created cat directories to the + MAN_OWNER when running as root. + + * .cvsignore, intl/.cvsignore, po/.cvsignore: Ignore a few more + files. + * src/man_db.conf.in: Correct the heading. + +Wed May 22 00:06:18 BST 2002 Colin Watson + + * libdb/db_store.c (compare_ids): New function, replacing the + FAVOUR() macro. Without this, the last-but-one commit won't + compile ... + (replace_if_necessary): Use it. + * libdb/db_storage.h: Prototype it. + +Mon May 20 03:07:24 BST 2002 Colin Watson + + * src/man.c (setenv_less): New function to set up $LESS. This + honours the new environment variable $MANLESS, which overrides the + usual processing and is copied directly into $LESS. + (make_display_command): Use it. + * man/man1/man.man1 (OPTIONS): Mention $MANLESS alongside the + --prompt option. + (ENVIRONMENT): Document $MANLESS. + +Mon May 20 02:16:43 BST 2002 Colin Watson + + * src/man.c (compare_candidates): Compare id fields as a last + resort, so that, for example, real pages sort ahead of whatis-only + names. + (try_section): Set the id field based on the output of ult_src(). + + * src/man.c (man): When locating pages, don't stop when one is found + in a particular directory and -a wasn't given. That's now the job + of the display code. + +Mon May 20 01:16:02 BST 2002 Colin Watson + + * libdb/db_lookup.c (free_mandata_elements): New function, to be + used rather than freeing the addr field directly. This frees name + as well. + (free_mandata_struct): Use it. + * libdb/db_btree.c (dbstore, dblookup): Likewise. + * libdb/db_store.c (dbstore): Likewise. + * src/whatis.c (whatis): Likewise. + * libdb/db_storage.h: Prototype it. + + * libdb/db_store.c (replace_if_necessary): Rename in and info to + newdata and olddata, which are more comprehensible. Don't check + that the name fields match here - the caller should do that. + (dbstore): Make sure in->name isn't set on entry, and instead set + it to the basename where necessary. Don't set the name field in + multi keys, which use the proper case. + + * src/check_mandirs.c (filename_info): We don't need to examine the + case of base_name here. + +Thu May 16 00:47:05 BST 2002 Colin Watson + + * libdb/db_btree.c (btree_flopen): If O_CREAT isn't set, check + whether we're trying to open a zero-length database and, if so, + return immediately. This works around some pathological behaviour + in Berkeley DB. + +Mon May 6 03:48:17 BST 2002 Colin Watson + + * libdb/db_store.c (FAVOUR): Parenthesize macro arguments. + (dbstore): In situation (3), use the old lookup key for the name + of the corresponding multi key, not the basename (which may be in + the wrong case). + +Sun May 5 17:49:21 BST 2002 Colin Watson + + * src/lexgrog.l: Accept DOS line-ending conventions. + +Sun May 5 15:38:34 BST 2002 Colin Watson + + * libdb/db_delete.c (dbdelete): Don't scribble over the list + returned by list_extensions(). We need it shortly afterwards to + construct the new multi key. + +Fri May 3 19:43:52 BST 2002 Colin Watson + + * include/manconfig.h.in (LESS_OPTS): Add the -R flag, which helps + with displaying the ANSI colour escapes generated by groff 1.18. + +Fri May 3 19:27:40 BST 2002 Colin Watson + + * src/man.c (add_roff_line_length): New function, adding -rLL and + -rLT to the groff command line (supported in groff >= 1.18). + (make_roff_command): Call add_roff_line_length(). The old code to + set .ll and .lt remains for compatibility purposes. + +Wed May 1 02:16:11 BST 2002 Colin Watson + + * src/check_mandirs.c (testmandirs): Include the subdirectory name + in the "Updating index cache" message. + +Wed May 1 02:05:02 BST 2002 Colin Watson + + * libdb/db_store.c: Make sure the check for whether a replace is + necessary in situation (3) behaves as it did before the multi key + format changes. + + * libdb/db_lookup.c (copy_if_set, dash_if_unset): Constify + arguments. + * libdb/db_storage.h: Likewise for prototypes. + * src/convert_name.c (gripe_converting_name): name should be const. + * src/manp.c (get_catpath): suffix should be const. + +Wed May 1 00:14:20 BST 2002 Colin Watson + + * src/globbing.c (match_in_directory): Close the directory after + reading through it. + +Wed May 1 00:02:53 BST 2002 Colin Watson + + Case-(in)sensitivity in database lookups should work properly now. + + * libdb/db_lookup.c (gripe_bad_multi_key): New function. + (make_multi_key): Don't lowercase page any more - that happens + elsewhere. + (list_extensions): We now return names/extensions, not just + extensions. + (dblookup): Multi keys are now formed as "RealCase.1" rather than + just "1". Add a new MATCH_CASE flag which, if set, makes sure the + RealCase part matches. Otherwise the database lookup is + case-insensitive. + (dblookup_exact, dblookup_all): Pass through a match_case flag for + the above. + * libdb/db_delete.c (dbdelete): Cope with new multi key format. + * libdb/db_store.c (dbstore): Construct the multi key from the + original case of the name rather than the lowercased version. Add + the basename to the multi keys created here, as above. + * src/man.c (display_database): Pass match_case flag through to the + database lookup. + (try_db): Likewise. + * src/check_mandirs.c (test_manfile): Make sure lookups are + case-sensitive. + * src/straycats.c (check_for_stray): Likewise. + * src/whatis.c (get_whatis): Likewise. + (whatis): Use a case-insensitive lookup. + + * libdb/db_storage.h (struct mandata): name is no longer const; it + should always be freeable if non-NULL. We no longer use "-" to + indicate it being the same as the requested name, except in the + database itself. + * libdb/db_lookup.c (copy_if_set, dash_if_unset): New functions. + (infoalloc): Zero the newly allocated structure. + (free_mandata_struct): Free name if it's set. + (dbprintf, split_content, make_content, dblookup): Cope with the + new convention for info->name. + * libdb/db_store.c (replace_if_necessary): Likewise. + * src/check_mandirs.c (filename_info): Likewise. + * src/man.c (compare_candidates, add_candidate, display_database): + Likewise. + * src/whatis.c (display): Likewise. + + * libdb/db_storage.h: Update prototypes. + +Mon Apr 29 00:13:58 BST 2002 Colin Watson + + * src/whatis.c (display): Display page names in the correct case + using the new info->name field. + +Mon Apr 29 00:00:38 BST 2002 Colin Watson + + * src/whatis.c (use_grep): Put a space in the grep command before + the flags! + +Sun Apr 28 23:50:22 BST 2002 Colin Watson + + Pass through much of the code adding 'const' where appropriate. This + should help me avoid various memory management bugs. + + Noteworthy changes from this: + + * include/manconfig.h.in (struct compression): prog and ext + generally shouldn't be modified directly. + * libdb/db_lookup.c (make_content): dash really has to stay + constant, or the various things that point to it statically will + break other things badly. + * libdb/db_storage.h (struct mandata): The only pointers here that + should generally be modified directly are next and addr. + * libdb/db_store.c (dbstore): Remove debugging code left from + previous checkin. + * src/check_mandirs.c (splitline): Note that we're deliberately + modifying info->whatis here. + (filename_info): Modify to be more const-friendly. + * src/compression.c (comp_file): Add TODO for comp->file. + * src/man.c (find_cat_file): Drop unused sec argument, and update + callers. + + * include/manconfig.h.in, libdb/db_storage.h, src/hashtable.h, + src/man.h, src/manp.h: Update prototypes for all of the above. + +Fri Apr 26 01:59:46 BST 2002 Colin Watson + + Add case-insensitivity support to the database. + + * libdb/db_storage.h (struct mandata): Add 'name' element. + * libdb/db_lookup.c (dbprintf): Print name. + (split_content): Read name from start of data. + (make_content): Prepend name to each data element. + (name_to_key): New function, converting a name to lowercase for + use in database keys. + (make_multi_key): Use name_to_key(). + (dblookup): Use name_to_key(). If info->name is "-", set it to the + requested key instead. + * libdb/db_delete.c (dbdelete): Use name_to_key(). + * libdb/db_store.c (dbstore): Likewise. + + * src/check_mandirs.c (make_filename): Use in->name if name is NULL. + (filename_info): Fill in info->name with either a new req_name + argument or the supplied base_name. + (test_manfile): Update calls to make_filename() and + filename_info(). + * src/check_mandirs.h: Update prototype. + + * src/man.c (struct candidate): Rename 'name' to 'req_name'. + (display_filesystem, display_database_check): Update accordingly. + (compare_candidates): Sort exact-case matches to the front. + (add_candidate): Update calls to compare_candidate() and + filename_info(). When comparing duplicates, check the name field + in the mandata rather than the requested name. + (try_section): The hack to get the name from info_buffer is no + longer required now that filename_info() fills that in. + (display_filesystem): Update calls to make_filename(). Use the + mandata name for the displayed title rather than the requested + name. Sanity-check in->name != "-". + + * include/manconfig.h.in: Bump the database version to 2.4.0. + + * lib/xstrndup.c: Prototype strnlen(). + +Mon Apr 22 00:00:08 BST 2002 Colin Watson + + * src/globbing.c (match_in_directory): New function, implementing a + limited glob() with optional case-insensitivity. + (look_for_file): Use match_in_directory() rather than glob(). + Accept new match_case argument. + * src/globbing.h: Update prototype. + * src/check_mandirs.c (purge_whatis, purge_missing): Update calls to + look_for_file(). + * src/man.c (usage, man_getopt): Add --ignore-case and --match-case + arguments. + (try_section): Update calls to look_for_file(). + (try_section, display_filesystem, display_database, + display_database_check, display_pages, man): Make sure to use the + candidate name rather than the requested name, so that + case-insensitive lookups work. + * man/man1/man.man1 (OPTIONS): Document --ignore-case and + --match-case. + + * po/.cvsignore: Ignore man-db.pot rather than man_db.pot. + +Thu Apr 18 11:15:11 BST 2002 Matej Vela + + * docs/manpage.example: Use .BR for links to other man pages. + +Wed Apr 3 19:54:03 BST 2002 Colin Watson + + * Rename package from man_db to man-db. + + * docs/NEWS: Start updating for 2.4.0. + +Wed Apr 3 18:44:04 BST 2002 Colin Watson + + * GNUmakefile.in (distclean): Remove autom4te.cache. + +Wed Apr 3 18:40:19 BST 2002 Colin Watson + + * .cvsignore: Add autom4te.cache. + * configure.in: Use AC_LIBOBJ rather than setting LIBOBJS directly. + (--enable-setuid): Use quadrigraphs to get [ and ]. + (--with-config-file): New option. + * include/Defines.in (config_file): Honour --with-config-file + setting. + +Fri Mar 29 21:08:37 GMT 2002 dann frazier + + * docs/manpage.example.sgml: Update copyright year. + +Thu Mar 21 16:22:58 GMT 2002 Colin Watson + + * src/man.c (main): Save the value of $LESS at startup to + $MAN_ORIG_LESS, and use that saved value in preference to $LESS. + This lets recursive invocations of man give less the correct page + titles. + +Wed Mar 20 09:37:11 GMT 2002 Eirik Fuller + + * src/check_mandirs.c (splitline): Don't create a copy of base_name + as pointer_name. + (test_manfile): Be more careful about pointer reuse across calls + to splitline(). + +Mon Feb 11 13:01:07 GMT 2002 Michael Piefel + + * po/de.po: Corrections and updates; convert to UTF-8. + * man/THANKS: Add credit (the contributor of the previous de.po is + unidentified). + +Sun Jan 27 03:31:11 GMT 2002 Colin Watson + + * configure.in (ALL_LINGUAS): Add da. Reorder alphabetically. + +Sat Jan 12 17:55:12 GMT 2002 Colin Watson + + * src/lexgrog.l: Match a line at a time rather than a character at a + time after the end of the NAME section. + + * src/check_mandirs.c (testmandirs): More --debug information. + + * include/manconfig.h.in (LESS_OPTS): Prune duplicate -Pm option. + Set -PM too so it works even when $LESS contains -M. + * src/man.c (make_display_command): Substitute prompt_string into + LESS_OPTS twice to accommodate the above. + +Mon Jan 7 16:16:02 GMT 2002 Colin Watson + + * src/lexgrog.l: Another {blank_eol} fix, thanks to Peter Clay. + +Sun Jan 6 19:05:46 GMT 2002 Colin Watson + + * src/lexgrog.l: Use {blank_eol}, not [blank_eol]. The latter + matches in entirely inappropriate places. + +Sun Dec 23 06:17:47 GMT 2001 Colin Watson + + * src/man.c (long_options, usage, man_getopt): Add a new + -E/--encoding option. It behaves a little like -T, except that it + uses nroff instead of troff and outputs to a pager. + (make_roff_command): Only call determine_lang_table() if + roff_device isn't already set. + (display, try_section, display_filesystem, display_database): + Check for different_encoding. + * man/man1/man.man1 (DEFAULTS, OPTIONS): Document -E. + +Sun Dec 23 05:23:05 GMT 2001 Colin Watson + + * src/man.c (compare_candidates): Compare sections according to + section_list before comparing them lexicographically. + (add_candidate): Do a better job of inserting each entry at the + right place in the list. + +Sun Dec 23 04:47:02 GMT 2001 Colin Watson + + * src/man.c (determine_lang_table): Format man pages in UTF-8 if + that's the current locale's character set. + +Sun Dec 23 02:35:24 GMT 2001 Colin Watson + + * src/man.c (popen, pclose): Move to a separate library file ... + * lib/popen.c: ... here. + * acinclude.m4 (MAN_FUNC_PCLOSE): Use AC_LIBOBJ to conditionally + compile this. + * acconfig.h: Remove BROKEN_PCLOSE definition. + + Major rewrite of man's searching code to make it maintainable and to + prepare for better sorting of displayed man pages. + + * src/man.c (add_candidate): New function to add an item to a list + of candidate pages. + (compare_candidates): New helper function. + (compare_names, compare_mandata_ext): Remove. + (try_section): Use add_candidate() rather than displaying the page + immediately. + (try_db): Likewise. + (display_filesystem): New function to display pages found by + try_section(). + (try_db_section): Rename to display_database(), and use the + candidate structures. + (exist_check): Rename to display_database_check(); use candidates. + (locate_page): Pass the candidate list through to try_section() + and try_db(). + (display_pages): New function to iterate through a candidate list + and display each entry. + (man): Create a candidate list and pass it to locate_page(). + Display pages only after building the full list. + +Mon Dec 17 03:40:48 GMT 2001 Colin Watson + + * man/man8/mandb.man8 (EXIT STATUS): Document mandb's exit codes. + +Mon Dec 17 03:20:15 GMT 2001 Colin Watson + + * src/whatis.c (long_options): Remove duplicate for --exact. + (word_fnmatch): New function. + (parse_whatis): Match using word_fnmatch() if --wildcard but not + --exact was given. + * man/man1/apropos.man1 (OPTIONS): Document this. + (DESCRIPTION): Fix typographical glitch. + +Mon Dec 17 00:53:20 GMT 2001 Colin Watson + + * man/man1/man.man1 (OPTIONS): Mention groff 1.17 and the ps and + utf8 devices. + * man/*/man1/man.man1: Likewise. + +Sun Dec 9 03:31:54 GMT 2001 Morten Brix Pedersen + + * po/da.po: New file. + * man/THANKS: Add credit. + +Sun Dec 9 03:19:57 GMT 2001 Jose Rodriguez + + * src/man.c (main): Initialize program_name before calling error(). + +Fri Dec 7 01:35:31 GMT 2001 Colin Watson + + * configure.in: Detect libdb3, although man-db hasn't been well + tested with it yet. + +Fri Dec 7 00:35:53 GMT 2001 Paul Slootman + + * src/man.c (main): Delete spurious backslashes in prompt_string. + +Wed Nov 21 20:59:14 GMT 2001 Colin Watson + + * po/fr.po: Update from Laurent Pelecq. + * po/.cvsignore: Ignore ChangeLog. + +Wed Nov 21 00:48:50 GMT 2001 Colin Watson + + Keeping generated files like the output of gettextize in CVS is bad. + + * intl/*, po/ChangeLog, po/Makefile.in.in: Remove. + * autogen.sh: Run gettextize. + * release.sh: When releasing, pass --copy to gettextize. + +Wed Nov 21 00:29:26 GMT 2001 Colin Watson + + * src/compression.c (decompress): Free esc_file and esc_filename + once we're finished with them. + + * src/man.c (local_man_loop): If argv is a directory, display a + useful error message rather than letting zsoelim get confused. + +Mon Nov 19 00:53:03 GMT 2001 Colin Watson + + * libdb/db_lookup.c (copy_datum): Explicitly null-terminate + dat.dptr, since C string-manipulation functions are used on it. + +Fri Nov 16 04:28:31 GMT 2001 Colin Watson + + * src/manp.c (add_nls_manpath): Concatenate strings more safely. + + Changes adapted from a patch by OGAWA Hirofumi + : + + * acinclude.m4 (MAN_CHECK_BDB): $LIBS, not LIBS, and quote it while + we're here. + * src/manp.c (pathappend): Use strsep() rather than strtok(). + (cat_manpath): Likewise. + (add_nls_manpath): Likewise. + +Thu Nov 8 11:27:32 GMT 2001 Colin Watson + + * src/man.c (get_preprocessors_from_file): Drop privileges to access + temporary file. + +Wed Nov 7 13:34:38 GMT 2001 Colin Watson + + * src/man.c (format_display): Drop privileges throughout. Don't free + command until after it could have been used for an error message. + +Sun Oct 14 05:23:20 BST 2001 Colin Watson + + * src/version.c: Include for exit(). + * include/manconfig.h.in: Remove spurious orphaned #ifdef. Oops. + + Spanish translation updates from David Martínez : + + * po/es.po, man/es_ES.88591/man1/apropos.man1: Bring up to date. + * man/man1/lexgrog.man1: Fix thinko - s/problems/programs/. + +Tue Sep 25 22:46:45 BST 2001 Colin Watson + + * src/whatis.c (get_whatis): Suppress wrong report of a pointer loop + when the second or subsequent element in a pointer chain points to + itself and has a usable whatis. + +Wed Sep 19 00:47:55 BST 2001 Colin Watson + + * src/man.c (local_man_loop): Drop privileges throughout. + + Documentation corrections thanks to Andreas Dilger + : + + * man/man1/man.man1 and translations (SEE ALSO): Refer to man(7). + * docs/manpage.example, docs/manpage.example.pod, + docs/manpage.example.sgml (SEE ALSO): Move to the end. + (SYNOPSIS, DESCRIPTION, OPTIONS): Add more advice. + * docs/manpage.example (FILES): Restore tabs that had been turned + into spaces. + +Tue Sep 18 03:46:00 BST 2001 Colin Watson + + * lib/xstrndup.c: New file. + * lib/Makefile.in: Build it. + * include/manconfig.h.in: Prototype xstrndup(). + + * src/man.c (compare_names, compare_mandata_ext): New functions. + (try_section): Build title more locally, displaying extensions + correctly. Sort the results of look_for_file(). + (try_db_section): Build title even if NROFF_MISSING is defined. + (try_db): Sort data returned from the database. + (locate_page): Look in the filesystem first and then the database, + rather than the other way round. + + * src/manp.c (checkpath): Remove; it used to resolve symlinks, but + it doesn't do that any more and I don't think it should. + * src/manp.c: Constify arguments to many functions by either being + more careful not to alter them or by duplicating them. + * src/util.c (is_directory): Likewise. + * src/catman.c, src/man.c, src/mandb.c, src/whatis.c (main): + Simplify calls. + * src/manp.h, include/manconfig.h.in: Update prototypes. + * src/manp.h: add_system_manpath() is static now. + + * include/manconfig.h.in: Provide stupid getcwd() emulation with + getwd() if the former isn't available. + * src/man.c (main, format_display): Assume getcwd() is available. + * src/mandb.c (main): Likewise. + * src/manp.c (add_dir_to_path_list): Likewise. + + * src/manp.c (add_dir_to_path_list): The checks that manpaths end in + /man or /MAN were overly anal and never compiled in; remove them. + + * acinclude.m4 (MAN_PROG_GNU_NROFF): More portable shell for ash. + + * src/man.c (lang_table): We use the latin1 alias rather than + iso8859 for all other languages, so do so for Korean too. + + * src/lexgrog.l: Prevent the no-op request '.' from eating text on + the next line. + (find_name): Remove trailing spaces as well as leading ones. + +Fri Sep 7 19:28:12 BST 2001 Colin Watson + + * Version: 2.3.20. + * docs/NEWS: Update. + * po/cs.po, po/de.po, po/es.po, po/fr.po, po/it.po, po/ja.po: + Update. + +Fri Sep 7 00:55:53 BST 2001 Colin Watson + + * GNUmakefile.in (dist): Include other manpage.example formats. + + * lib/tempfile.c (create_tempfile): Create with mode 0600. + * src/check_mandirs.c (test_manfile): Drop privileges for temporary + file operations. + * src/lexgrog.l (find_name): Likewise. + * src/man.c (make_roff_command): Likewise. + * src/straycats.c (check_for_stray): Likewise. + (straycats): Likewise. + * src/ult_src.c (ult_src): Likewise. + +Thu Sep 6 21:54:05 BST 2001 Colin Watson + + * include/Defines.in: Add lexgrog to list of transformed program + names. Adjust sysconfdir detection. + * src/Makefile.in (install): Really install lexgrog by default. + Create the directory config_file is in rather than sysconfdir. + +Wed Sep 5 19:55:01 BST 2001 Colin Watson + + * GNUmakefile.in (dist): Generate a .tar.gz, not a .tgz. + * src/man.c: Korean: roff_device is ascii8, LESSCHARSET is iso8859. + * po/cs.po, po/de.po, po/es.po, po/fr.po, po/it.po, po/ja.po: + Update. + +Wed Sep 5 03:42:18 BST 2001 Colin Watson + + * src/compression.c (decompress): Constify arguments. + * include/manconfig.h.in: Likewise. + + * src/lexgrog.l (find_name): Deal with '-' and compressed files. + * man/man1/lexgrog.man1 (DESCRIPTION): Document this. + (BUGS): Remove (optimism ...). + (NOTES): New section. lexgrog can't parse .so requests. + * src/Makefile.in: Really build lexgrog by default, and add some + objects. + +Wed Sep 5 02:02:20 BST 2001 Colin Watson + + * docs/NEWS: Describe recent changes. + + * man/man1/man.man1 (OPTIONS): Document --html. + (ENVIRONMENT): Document $BROWSER. + * man/man8/mandb.man8 (OPTIONS): Explain that --create implies + --no-purge. + +Tue Sep 4 18:38:23 BST 2001 Colin Watson + + * src/man.c (format_display): If $BROWSER contains several elements + separated by colons, try each in turn until one succeeds. + +Tue Sep 4 02:09:07 BST 2001 Colin Watson + + * src/man.c (format_display): Actually change to the temporary + directory for HTML output. + * src/mandb.c (main): --create implies --no-purge. + +Sat Sep 1 17:40:06 BST 2001 Colin Watson + + * lib/mkdtemp.c, lib/mkstemp.c, lib/tempname.c: New files, taken + from glibc 2.2.4. + * lib/Makefile.in, lib/README: Add them. + * configure.in: Check for mkdtemp() and mkstemp(). + * lib/tempfile.c (path_search): New function, split from + create_tempfile(). Now checks $TMP as well as $TMPDIR, and ensures + that neither is checked when privileges are raised. + (create_tempfile): Use it. Fix the umask around the call to + mkstemp() rather than calling fchmod() after the fact. + (create_tempdir): New function. + * include/manconfig.h.in: Prototype create_tempdir(). + + * src/man.c: --html code needs to be guarded by TROFF_IS_GROFF. + (man_getopt): If -H is given, set troff to 1. Add -H to the + "incompatible options" error message. + (make_roff_command): Revert determine_lang_table() special case. + (format_display): Use a temporary directory for HTML output (groff + tends to output several files, including images). Take an extra + argument, used to set the name of the main output file. + (display): Pass man_file to format_display(). + * src/util.c (remove_directory): New function. + * include/manconfig.h.in: Prototype it. + +Fri Aug 31 22:20:08 BST 2001 Colin Watson + + Initial support for ESR's $BROWSER variable. Not complete yet. + + * src/man.c: Remove ENABLE_HTML guards around all the --html code. + Too many #ifdefs clutter the code, and it should at least be + usable to some extent now. + (main): Check $BROWSER before other ways of finding html_pager. + (man_getopt): If -H is given, set roff_device to "html". Reset + htmlout and html_pager with -D. + (make_roff_command): Don't call determine_lang_table() if htmlout + is set. + (make_browser): New function. + (make_display_command): Add case for htmlout being set. + (format_display_and_save): Rename roff_cmd to format_cmd. + (display_catman): Likewise. + (display): Likewise. Add some cases for htmlout being set (always + format, never save a cat page). Split some code out into + format_display(). + (format_display): New function. + + * src/man.c (main): Save the value of $LESS for later. + (make_display_command): Use setenv() to change $LESS in the + environment rather than nasty shell code. + + * src/man.c (main): Don't loop if $LANGUAGE is set but empty. + (display_catman): Fix segfaults due to strappend() misuse. + * src/manp.c (read_config_file): Print dotmanpath, not home (which + might point to freed memory). + + * src/man.c (main): Tidy up error message. + (store_line_length): Remove duplicate 'int width' declaration. + +Wed Aug 29 20:44:27 BST 2001 Colin Watson + + * man/man8/mandb.man8 (WHATIS PARSING): Move to ... + * man/man1/lexgrog.man1: ... here. + + * po/cs.po, po/de.po, po/es.po, po/fr.po, po/it.po, po/ja.po: Run + msgmerge. + +Wed Aug 29 01:48:53 BST 2001 Colin Watson + + * man/man1/apropos.man1 (ENVIRONMENT): Fix grammar error. + +Wed Aug 29 01:34:33 BST 2001 Colin Watson + + * src/lexgrog.l (usage): New function. + (main): Rewrite. Add command-line options, and make the output + more easily parseable by other programs. By default, the lexgrog + program now only attempts to parse its input as a man page and + only displays the whatis line, although this can be changed on the + command line. + * src/Makefile.in: Include lexgrog in $(PROGS), so that it gets + built by default and linked against version.o. + * man/man1/lexgrog.man1: New man page. Still needs some work. + * man/Makefile.in: Install it. Tolerate it being missing in some + languages (ugly hack). + +Tue Aug 21 01:57:44 BST 2001 Colin Watson + + * src/Makefile.in: Link non-setuid programs against fake_security.o + rather than security.o. + * src/fake_security.c: Add a few stub variables to match recent + security.c changes. + +Tue Aug 21 01:34:49 BST 2001 Colin Watson + + * src/Makefile.in (install): Don't depend on all, so that the + package isn't recompiled when running 'make install' on a machine + with a skewed clock. + Don't install the wrapper. Install man and mandb in $(bindir) + rather than $(libdir)/man-db. + If lexgrog and globbing have been built, install them in + $(libdir)/man-db rather than $(sbindir). + Ensure $(sbindir) and $(libdir)/man-db exist. + +Tue Aug 21 00:40:47 BST 2001 Colin Watson + + * src/man.c (escape_special): Rename to escape_less(). Constify + argument. + (determine_lang_table): Constify argument. Unify some common code. + (make_display_common): Use escape_less() rather than + escape_special(). + * docs/NEWS: Document shell escaping. + +Sun Aug 19 23:56:36 BST 2001 Colin Watson + + * configure.in: Compile with -Wall by default. + * src/compression.c: Include "security.h". + * src/manp.c: Likewise. + * src/check_mandirs.c (purge_whatis): Correct return value when + purging a WHATIS_MAN entry with a missing target. + * src/whatis.c (get_whatis): Remove unused variables 'pointer' and + 'ext'. + * src/man.c: Include for time(). + (local_man_loop): Remove unused variable 'dir'. + (make_roff_command): Remove unused variable 'tmpfile'. + (exist_check): Print 'loc' in pointer format rather than string + format (it's a struct mandata *). + * src/wrapper.c: Include for initgroups(). + +Sun Aug 19 13:16:01 BST 2001 Colin Watson + + * src/manp.c (iterate_over_list): New function (get_from_list() can + only get the first matching element). + (get_manpath): Use iterate_over_list() to get multiple matching + MANPATH_MAP entries. + +Sun Aug 19 13:02:01 BST 2001 Colin Watson + + * src/man.c (popen, pclose): Rely on the BROKEN_PCLOSE check in + configure rather than checking architectures here. + (man_getopt): Wrap the remaining code related to --html in '#ifdef + ENABLE_HTML'. + (make_roff_command): Remove HAS_TROFF and NROFF_MISSING asserts; I + think they're unnecessarily unwieldy here. + (tmp_cat_filename): Constify argument. + (commit_tmp_cat): Constify arguments. + (display_catman): New function, split from display(). + (display): Use display_catman(). Don't shadow status from an outer + scope. + (try_section): Simplify cat page case. + + * src/util.c (escape_shell): New function. + * include/manconfig.h.in: strappend() is no longer in util.c. + Prototype escape_shell(). + * src/man.c (make_roff_command): Use escape_shell() liberally to + protect against strange characters. + (make_display_command): Likewise. Add special handling for $MAN_PN + in the less prompt string, since the environment variable is no + longer parsed by the shell. + (display_catman): Likewise. + (display): Likewise. + * src/whatis.c (use_grep): Likewise. + + * src/catman.c (main): Print a warning if setlocale() fails. + * src/man.c (main): Likewise. + * src/mandb.c (main): Likewise. + * src/manpath.c (main): Likewise. + * src/whatis.c (main): Likewise. + * src/wrapper.c (main): Explain why this doesn't need to warn if + setlocale() fails. + +Thu Aug 9 15:10:26 BST 2001 Colin Watson + + * configure.in: Require autoconf 2.50a (for AS_VAR_*). + * src/wrapper.c: If DEBUG is defined, allow _man and _mandb as + argv[0] names as well as man and mandb, rather than instead of + them. + * docs/NEWS: Document lexgrog improvement. The mkstemp() work was + more an improvement than a fix, as I don't think it was + exploitable. + +Mon Aug 6 02:22:38 BST 2001 Colin Watson + + * src/lexgrog.l: groff requests aren't case-sensitive, so stop the + preprocessor detection thinking they are. + +Mon Aug 6 01:26:26 BST 2001 Colin Watson + + * lib/tempfile.c (create_tempfile): Use mode 0644 rather than mode + 0600 so that it can be read with different privilege levels. + +Thu Aug 2 00:12:41 BST 2001 Colin Watson + + * lib/tempfile.c: New file. create_tempfile() does sane + mkstemp()-like temporary file creation, while searching through + $TMPDIR, P_tmpdir, and /tmp in the style of tempnam(). + * include/manconfig.h.in: Prototype create_tempfile(). + * lib/tempnam.c: Remove, as we no longer use it. + * lib/Makefile.in, lib/README: Remove mentions of tempnam.c, and use + tempfile.c instead. + * configure.in: Don't replace tempnam(). + + * src/compression.c (create_ztemp): Use create_tempfile() rather + than tempnam(). + * src/man.c (create_stdintmp): Likewise. + * zsoelim/zsoelim.l (open_file): Likewise. + * src/straycats.c (straycats): Use create_tempfile() rather than + mkstemp(). + + * src/compression.c (decompress): Call remove_ztemp() rather than + duplicating code. + (remove_ztemp): Only close the fd if it looks valid. + * src/man.c (remove_stdintmp): Remember to free stdin_tmpfile. + + * acinclude.m4: Correct AC_VAR_* to AS_VAR_*. + * src/util.c (is_changed): Fix comment. + + * docs/NEWS: Preliminary entries for 2.3.20. + +Tue Jul 24 02:17:53 BST 2001 Colin Watson + + * docs/manpage.example: Some cleanups. Use more conventional + formatting for references to other man pages. + * docs/manpage.example.pod, docs/manpage.example.sgml: New files. + +Mon Jul 16 16:42:46 BST 2001 Colin Watson + + * src/lexgrog.l: Restore fr_name to the NAME regex. + +Fri Jul 13 11:51:40 BST 2001 Colin Watson + + * man/de_DE.ascii: Remove (Latin-1 variant still exists). + +Fri Jul 13 02:35:39 BST 2001 Colin Watson + + * */.cvsignore: New files. + + * src/man.c (make_roff_command): Look up the correct character set + each time a page is displayed, not just the first time. + +Thu Jul 12 01:11:41 BST 2001 Colin Watson + + * src/lexgrog.l: Split out NAME-matching regex into one regex per + language. Add support for cs, fi, hu, nl, and pl, not forgetting + Latin (for Lingua::Romana::Perligata(3pm), of course). + (add_separator_to_whatis): New function, to allow trimming the + first space from the " - " separator. + (main): Rewrite; find_name()'s prototype changed long ago. + +Tue Jul 10 14:37:51 BST 2001 Colin Watson + + * src/util.c (is_newer): Rename to ... + (is_changed): ... this. We now check whether the cat page has a + different timestamp from the man page, rather than simply whether + it is newer. + Remove hack for archivers that preserve timestamps: it's no longer + needed. + * include/manconfig.h.in: Rename is_newer() prototype to + is_changed(). + + * src/man.c (commit_tmp_cat): Set the modification time of a created + cat page to be the same as the corresponding man page. + (display): stat() the man page so that commit_tmp_cat() can get + its modification time. + Use is_changed() rather than is_newer(). + +Sun Jul 8 16:06:43 BST 2001 Colin Watson + + * src/whatis.c (get_whatis): Allow an entry to point to itself if it + contains a non-empty whatis field. This occasionally happens when + multiple names and descriptions are present, and it's easier to + tolerate this. + (display): If an entry points to itself, don't display the pointer + in square brackets. + + * include/sections.list: Remove; it's no longer needed. + * GNUmakefile.in (dist): Don't install it. + * include/Defines.in: Don't reference it. Also remove definition of + message_catalogue (obsoleted by gettext). + + * include/manconfig.h.in (LESS_OPTS): Don't include $LESS. + * src/man.c (make_display_command): Include $LESS here instead. Put + it after prompt_string rather than before, so that long options in + $LESS work. + +Sat Jul 7 16:32:24 BST 2001 Colin Watson + + * src/man.c (determine_lang_table): Fix silly bracketing typo that + caused none of the lang_table entries to match. + +Thu Jul 5 15:48:42 BST 2001 Colin Watson + + * Version: 2.3.19. + + * docs/NEWS: Update. + * man-db.gnu: Update. Change formatting to something closer to that + currently in the Free Software Directory CVS repository. + * man-db.lsm: Update. + +Thu Jul 5 14:27:17 BST 2001 Colin Watson + + * man/man5/manpath.man5 (FORMAT): MANDB_MAP now only affects + setuidness when in the system configuration file. + * src/man_db.conf.in: Likewise. + + * po/cs.po, po/de.po, po/es.po, po/fr.po, po/it.po, po/ja.po: + Update. + +Wed Jul 4 13:39:40 BST 2001 Colin Watson + + The product of some hacking at the Debian Conference. Enjoy. + + * docs/NEWS: Describe recent changes. + + * include/manconfig.h.in: Add SYSTEM_CAT and USER_CAT defines. + Move includes from security.c to ... + * src/security.h: ... here (new file). + * src/man.c: Include security.h. + * src/mandb.c: Likewise. + * src/security.c: Likewise. + + * src/manp.c (add_mandb_map): Take an additional parameter, user. + Use the new MANDB_MAP_USER flag instead of MANDB_MAP if it is set. + (cat_manpath): Look at user catpaths before system catpaths. + (add_to_dirlist): Take user parameter, passed through to + add_mandb_map(). + (read_config_file): Call add_to_dirlist() with user set for + ~/.manpath, and reset for /etc/manpath.config (security fix). + (get_mandb_manpath): Allow user manpaths. + (global_catpath): Rename to get_catpath(), and only allow it to + handle user catpaths (from ~/.manpath) as well if explicitly + requested. + (is_global_mandir): Note that this is trusted. + * src/manp.h: Reflect renaming of global_catpath() to get_catpath(). + + * src/man.c (need_to_rerun): Use get_catpath() instead of + global_catpath(). + (make_roff_command): Likewise. + (display): Likewise. + (find_cat_file): Likewise. + (try_db_section): Likewise. + (try_db): Likewise. + * src/catman.c (main): Likewise (check only user mandirs). + * src/mandb.c (main): Likewise (check only user mandirs). + * src/straycats.c (straycats): Likewise (check only with user + mandirs). + * src/whatis.c (search): Likewise (check only with user mandirs). + + * src/man.c (need_to_rerun): Use is_global_mandir() rather than + global_catpath() to decide whether to drop privileges. + * src/mandb.c (main): Likewise. Unify common code for system and + user catpaths. + + * src/man.c (make_roff_command): Check catpath even if + global_manpath is false. + (locate_page): Simplify slightly. + + * src/security.c (get_man_owner): New function: gets and caches the + password entry structure for MAN_OWNER. + * src/man.c (commit_tmp_cat): If running as root, chown created cat + pages to MAN_OWNER. + +Sun Jul 1 01:58:33 BST 2001 Colin Watson + + * src/check_mandirs.c (splitline): Don't initialize the pointer + field here; instead, control it from ... + (test_manfile): ... here. + Change the logic for multiple name/description blocks again. + Remove misguided special-casing of the first name in a block. Set + the id field more carefully, depending on string equality instead + of ordering. Avoid scribbling over lg.whatis when a later + splitline() needs it. Don't call splitline() if whatis parsing + failed. + + * src/check_mandirs.c (purge_normal): New function, factored out + from purge_missing(). + (purge_whatis): New function to decide whether to purge a + WHATIS_MAN entry. + (purge_missing): Use both of these. + (testmandirs): purge_whatis() sometimes needs to ensure a + hierarchy is rescanned. Honour this. + Improve indentation levels. + * src/mandb.c (main): Reset force_rescan before each purge. + + * src/lexgrog.l: Treat '..' as a no-op request. + +Sun Jul 1 01:38:13 BST 2001 Colin Watson + + * manual/misc.me (Modes of operation): Mention new requirement to + use --update to update databases. + mandb knows how to delete old entries now, so remove a sentence + saying it can't. + + * src/man.c: More in the quest for sane indentation levels. + + * man/man1/apropos.man1: Textual cleanups. + * man/man1/man.man1: Likewise. + * man/man1/manpath.man1: Likewise. + * man/man1/whatis.man1: Likewise. + * man/man1/zsoelim.man1: Likewise. + * man/man5/manpath.man5: Likewise. + * man/man8/accessdb.man8: Likewise. + * man/man8/catman.man8: Likewise. + + * man-db.lsm: Reformatted as per the LSM.README. + +Thu Jun 28 22:52:04 BST 2001 Colin Watson + + * src/man.c (try_db_section): Downgrade whatis refs warning to a + debugging message, as it's rather noisy for a stable release. + +Thu Jun 28 22:38:41 BST 2001 Colin Watson + + * src/check_mandirs.c (gripe_rwopen_failed): New function. + (testmandirs): Use it. + (purge_missing): New function to purge database entries whose + associated manual pages have been deleted. + * src/check_mandirs.h: Prototype purge_missing(). + + * src/mandb.c (main): New --no-purge option. Unless it is used, + purge_missing() is called on each database before calling mandb(). + Don't call straycats() until after the temporary database has been + moved to its permanent location. Make sure all cleanup code is + called with dropped privileges. + Add statistics message for purged entries, and separate messages + for the benefit of translations. + When --test is given, only assume --quiet if --debug wasn't given. + (usage): Describe --no-purge. + + * src/man.c: Move extension's storage to ... + * src/globbing.c: ... here. + (look_for_file): Constify string arguments. + * src/man.h: Move prototype of look_for_file() to ... + * src/globbing.h: ... here (new file). + + * src/manp.c (pathappend): Only append the new element(s) if any + were left after removing duplicates. + (read_config_file): Make sure what we free was actually allocated. + + * src/Makefile.in (mandb): Link with globbing.o. + + * man/man8/mandb.man8 (OPTIONS): Document --no-purge. + General textual cleanup. + + * src/accessdb.c (main): Move content into a tighter scope. + + * src/security.c (drop_effective_privs): Style nit. + +Thu Jun 28 13:28:13 BST 2001 Colin Watson + + * man/man1/man.man1 (ENVIRONMENT): Document $MANWIDTH. + +Thu Jun 28 13:15:04 BST 2001 Colin Watson + + * src/man.c (store_line_length, get_roff_line_length): New + functions, adapted from Andries Brouwer's man. + (main): Outside catman mode, find out and store the line length. + (make_roff_command): Outside catman mode, retrieve the stored line + length and feed a .ll request into the pipeline if it's + non-standard. We let recent groff handle the page length. + (display): Don't even consider saving the cat page if save_cat is + already false. + (get_preprocessors): If the database says no preprocessors are to + be used, it's OK to save the cat page. + +Thu Jun 28 01:44:02 BST 2001 Colin Watson + + * src/man_db.conf.in (SECTION): Remove guarantee that ties will be + broken in lexical order within sections. It's rather complicated + to be sure of that right now, and it should rarely matter. + + * docs/ToDo: lexgrog learnt how to detect preprocessors ages ago. + +Thu Jun 28 01:02:32 BST 2001 Colin Watson + + * src/manp.c (gripe_stat_file): Downgrade the warning if a manpath + element doesn't exist to a debugging message (affects people + without a /usr/local/share/man, for example). + (read_config_file): Additional debugging message. Free home if it + gets allocated. + +Thu Jun 28 00:35:09 BST 2001 Colin Watson + + The caching cleanup I've been promising for weeks. Here be dragons. + + * src/man.c (man): Only update database caches if --update is given. + (main): --all no longer implies a database update (you can always + use --all --update if you need that). + + * man/man1/man.man1 (OVERVIEW): It's no longer necessarily man's job + to keep the caches up to date; use --update to get that. + (DEFAULTS): Likewise. Some rationale. Mention globbing fallback. + (OPTIONS/--local-file): Fix typo. + (OPTIONS/--update): New description. Only useful with setuid man. + * manual/misc.me (Modes of operation): man will only update database + entries if the --update flag is used. + +Tue Jun 26 22:10:07 BST 2001 Colin Watson + + * src/lexgrog.l: More cleanup. No substantive changes. + * include/manconfig.h.in: Likewise. Also bring xrealloc() prototype + into sync. + + * src/mandb.c (main): Allow root as well as MAN_OWNER to work on + system manpaths. + +Tue Jun 26 03:45:01 BST 2001 Colin Watson + + * src/man_db.conf.in (SECTION): Add a little more advice about where + to list sections with extensions. + + * src/manp.c (add_to_dirlist): Add SECTIONS as an alias for SECTION, + since I keep getting it wrong and I came up with it in the first + place. Both make sense in different situations. + + * src/check_mandirs.c (splitline): Trim trailing spaces off names + and descriptions. If the given base_name contains a comma, only + use the part of the name before it as the target for pointers. + + * src/whatis.c (get_whatis): Unroll recursion into a finite loop to + avoid infinite recursion if the database contains a pointer loop. + Add the page name as an argument so that a warning can be printed. + (display): Pass the new argument to get_whatis(). + (apropos): Recommend 'mandb --create' rather than plain 'mandb' if + the database gets corrupted. + + * src/lexgrog.l: Ignore no-op groff requests (e.g. '.'). + New variable, fill_mode. Reset it when .nf is encountered, set it + when .fi is encountered. + (newline_found): If fill_mode is set, add 0x11 instead of a space. + +Mon Jun 25 02:55:36 BST 2001 Colin Watson + + * docs/NEWS: Describe recent changes. Add dates of old releases. + + * include/manconfig.h.in: Move check_mandirs.c prototypes to ... + * src/check_mandirs.h: ... here (new file). + * src/man.c: Include check_mandirs.h. + * src/mandb.c: Likewise. + * src/man.h (make_filename): Move prototype to check_mandirs.h. + + * src/check_mandirs.c (test_manfile): Split parsing of file names + into mandata structures into a new function ... + (filename_info): ... this. + (test_manfile): Calculate length of file name minus compression + extension separately from the parsing, and do so whether COMP_SRC + is defined or not. + + * src/man.c (try_section): Use filename_info() to find out if the + section of a glob-located file is different from the current + section and is mentioned elsewhere in the configuration file. If + so, ignore that file in the current section. + +Mon Jun 25 01:30:24 BST 2001 Colin Watson + + * src/man.c (man_getopt): Conditionalize gxditview initialization on + TROFF_IS_GROFF. As a bonus, this squashes a compiler warning. + (man): Remove some unreferenced cruft, while I'm in the process of + fixing up multi-character sections. + + * src/Makefile.in: Build intermediate man.o and mandb.o objects, so + that changing other objects just requires a relink. + + * src/globbing.c (look_for_file): Print the layout in debugging mode + only when it's first parsed. + +Sun Jun 24 18:47:20 BST 2001 Colin Watson + + * configure.in (--with-db): Improve help output formatting. + + * manual/intro.me (Arguments to configure): Document + --enable-mandirs. + * README: Update. + + * manual/Makefile ($(manual).html): Improve grohtml invocation. + (realclean): Remove generated .png files. + +Sun Jun 24 17:22:53 BST 2001 Colin Watson + + * src/man.c (try_section): Break if a page has been found and --all + wasn't given. + (try_db): Print extension in debug mode. Compare against requested + section if the extension is a section in its own right, to avoid + duplication. + * src/man_db.conf.in: It's SECTION, not SECTIONS. + + * configure.in: --enable-mandirs=OS defines how the manual page + hierarchy is laid out (GNU, HPUX, Solaris, IRIX). If unset, + globbing behaves as before. + * acconfig.h: Add MANDIR_LAYOUT. + * src/globbing.c (parse_layout): New function. + (look_for_file): Associate each glob with a layout. + + * configure.in: Don't check for off_t (only used by gettext). + +Sat Jun 23 15:23:14 BST 2001 Colin Phipps + + * zsoelim/zsoelim.l (open_file): Supply a format string to error(). + +Sat Jun 23 15:15:41 BST 2001 Colin Watson + + * ult_src.c (ult_src): Restore the original mantree to the start of + basename before calling test_for_include(), in case ult_softlink() + went outside the mantree. + (ult_softlink): Make debugging message print the absolute path. + +Tue Jun 19 02:33:40 BST 2001 Colin Watson + + * src/man.c (man): Allow sections to be more than one character, and + trim them for use in directory names. + * src/manp.c (read_config_file): Read ~/.manpath first, as entries + are added the other way around now. + +Mon Jun 18 18:55:39 BST 2001 Colin Watson + + * src/manp.c (add_sections, get_sections): New functions. + (add_to_dirlist): Recognize new SECTIONS directive. + * src/manp.h (iterate_catlist, start_iterator): Remove (not used). + (get_sections): New prototype. + * src/man.c (get_section_list): Use get_sections() instead of + std_sections if it returns a non-empty list. + * src/man_db.conf.in: Add documentation of SECTIONS, and a default + line. The documentation is still inaccurate (extensions don't work + well yet). + * include/manconfig.h.in (STD_SECTIONS): Reduce to only + single-character sections; the rest will be set in the + configuration file. + + * src/manp.c (add_to_list): Add to the tail rather than the head + (needed for SECTIONS, probably makes other things more intuitive). + (read_config_file): Restore print_list() in debug mode. + + * src/check_mandirs.c: Add copyright notice and change information. + * src/lexgrog.l: Likewise. + * src/man.c: Likewise. + * src/mandb.c: Likewise. + + * src/compression.c (get_ztemp): Remove redundant test. + + * src/man.c (get_preprocessors_from_file): Change an = to ==. + + * src/wrapper.c (main): Cosmetic improvements. + +Sat Jun 16 19:22:51 BST 2001 Colin Watson + + * src/straycats.c (check_for_stray): Check that + canonicalize_file_name() succeeded, not that it failed. (I'm + pretty sure that this is the last instance of this now.) + +Sat Jun 16 18:30:09 BST 2001 Colin Watson + + * libdb/db_store.c: Move id-favouring logic to a macro. If + FAVOUR_STRAYCATS is set, make sure a WHATIS_MAN entry won't + inadvertently replace a STRAY_CAT. + + * configure.in: Don't strip binaries in LDFLAGS (GNU standards). + + * src/check_mandirs.c (testmandirs): Check that opendir() succeeded, + not that it failed! + (testmandirs): Instead of initializing info.pointer here, + initialize it ... + (splitline): ... here. + (testmandirs): Shuffle whatis logic some more, to make sure pages + that really are in the filesystem don't end up as WHATIS_MAN. This + reverts part of the change of 26 May 2001. + + * man/man8/mandb.man8: Document the expected format of NAME sections + for whatis parsing, and some common reasons why parsing fails. + +Tue Jun 12 22:20:17 BST 2001 Colin Watson + + * docs/NEWS: More 2.3.19 stuff. + +Sun Jun 10 14:05:10 BST 2001 Gordon Sadler + + * man/man1/manpath.man1 (ENVIRONMENT): Replace 'semicolon' with + 'colon' throughout. + +Sun Jun 10 13:59:04 BST 2001 Colin Watson + + * src/manp.c (pathappend): Fix infinite loop when adding a manpath + entry which is a substring of an existing entry. + +Sun Jun 10 13:49:02 BST 2001 Colin Watson + + * src/check_mandirs.c (testmandirs): Treat EROFS like EACCES while + opening a database read-write (i.e. only print debug messages). + (create_db): Likewise. + src/man.c (open_cat_stream): Likewise. + (try_db_section): Likewise. + + * src/straycats.c (check_for_stray): Carry on gracefully rather than + exiting if a straycat filter fails. + + * src/manp.c (pathappend): Remove duplicate entries. + + * src/lexgrog.l: Allow .LP, .PP, and .P as well as .br between + whatis definitions. + +Sat Jun 2 14:34:59 BST 2001 Colin Watson + + * configure.in: Give our English man pages the same date format as + the other locales. + + * src/straycats.c: Use 'col -bx' rather than 'col-bx'. + +Mon May 28 14:56:35 BST 2001 Colin Watson + + * include/manconfig.h.in: Since it isn't sensible to define debug + (-d options at run-time do just as well), remove the commented + definition. + * include/manconfig.h.in, src/catman.c, src/check_mandirs.c, + src/compression.c, src/man.c, src/mandb.c, src/manpath.c, + src/whatis.c: Remove instances of '#ifndef debug'. + * src/util.c: debug is already declared extern in manconfig.h. + +Mon May 28 14:30:38 BST 2001 Colin Watson + + * tools/README: Describe chconfig and install-manpage. + * man/man5/manpath.man5, docs/ToDo: Document the DEFINE directive. + + * libdb/db_delete.c, libdb/db_lookup.c, libdb/db_store.c, + src/whatis.c: Remove redundant strtok() declaration. + * src/check_mandirs.c: Declare strpbrk(). + + * src/*: Global style cleanup. Sorry about the large diff, but it + had to happen sometime: I can't stick with the prevailing coding + style when there are several to choose from! No meaningful code + change, although I disentangled a few assignments from if + conditions and rearranged a few other sections. + * po/*: Update accordingly. + +Sun May 27 18:32:41 BST 2001 Colin Watson + + * acinclude.m4 (MAN_CHECK_BDB): New macro to check for Berkeley DB. + * configure.in: Use it. + + * src/check_mandirs.c (test_manfile): Be more accurate about finding + the " - " at the end of a series of whatis names, and make sure to + skip commas between them. Add more commentary. + + * src/man.c (open_cat_stream): Return NULL if the cat page is + unwriteable, rather than wasting time compressing to /dev/null. + (format_display_and_save): Give up if both outing and saving + become false. + +Sun May 27 18:00:00 BST 2001 Colin Watson + + * docs/NEWS: Preliminary entries for 2.3.19. Add current version + number throughout as well as just "Major changes since ...". + * manual/misc.me (Modes of operation): mandb doesn't necessarily + have to be rerun any more, as the filesystem will be checked if + the database doesn't return anything. man and mandb can be built + for setuid operation but installed non-setuid now. + +Sat May 26 15:33:37 BST 2001 Colin Watson + + * manual/README: Note that HTML output is disabled by default. I + don't currently provide a pre-built PostScript manual anywhere. + * manual/misc.me (Credits): Add Fabrizio. + * manual/*: FHS updates. Various boring typo/syntax/whitespace + fixes. + +Sat May 26 15:14:29 BST 2001 Colin Watson + + * GNUmakefile.in, autogen.sh: Put 'timestamp' in stamp-h and + stamp-h.in rather than the date. + + * src/man.c (open_cat_stream): Open the cat file before forking in + order to deal with errors better. Open to /dev/null without + complaining if the cat file is unwriteable. + (close_cat_stream): Only commit the temporary cat if it was + created. + (locate_page): Fall back to the filesystem if nothing was found in + the database (since it might be out of date). + + * src/man.c (try_db_section): If the database can't be opened + read-write due to EACCES, only print a message in debug mode. + * src/check_mandirs.c (testmandirs): Likewise. + (create_db): Likewise. + + * src/check_mandirs.c (test_manfile): Make sure separate whatis keys + each get their own whatis entry. + +Wed May 23 17:06:31 BST 2001 Colin Watson + + * configure.in: Fix PACKAGE and VERSION substitutions. + +Wed May 23 15:51:06 BST 2001 Colin Watson + + * configure.in: Updates for autoconf 2.50. + (AC_PREREQ): Require version 2.1.2. + (AC_INIT): Avoid deprecated use with one argument. + (man_ac_version): Don't work out the autoconf version any more; + inline syntax is all that needed it, and any autoconf since 2.1.2 + will do. + (AC_STDC_HEADERS): Now AC_HEADER_STDC. + (AC_LINK_FILES): No longer needed with newer gettext. + (AC_OUTPUT): Avoid deprecated use with arguments. + Fix instances of underquoting throughout, as the new autoconf is + less tolerant of this. + * include/manconfig.h.in: Remove compatibility code for pre-1995 + autoconf versions. + +Thu May 17 19:11:37 BST 2001 Colin Watson + + * src/man_db.conf.in: Improve documentation of MANDB_MAP. + +Wed May 16 00:09:13 BST 2001 Colin Watson + + * tools/config.sub: Update to today's CVS. + +Wed May 16 00:07:04 BST 2001 Colin Watson + + * A number of minor fixes from SuSE's diff: + + * GNUmakefile.in: Don't prepend ../ to prefix before passing it to + subdirs. + * lib/cleanup.c: HUP and TERM signal handling was mistakenly acting + on INT instead. + * src/lexgrog.l: Replace a few instances of " \t\n" with + "blank_eol". + * src/man.c: Drop privileges before changing back to the original + directory just before exiting (only matters for profiling). + * src/util.c: Undefine MAX before redefining it. + * po/POTFILES.in: Read src/lexgrog.c rather than src/lexgrog.l + (gettext understands C better than lex). + * po/de.po, po/es.po, po/fr.po: Remove a few stray '\r's. + + * I'll look at the zlib bits of the patch soon. From a preliminary + look I'll probably end up rewriting it - I'd prefer more of the + compression stuff actually to go in src/compression.c. + +Tue May 15 22:01:59 BST 2001 Colin Watson + + * src/man.c (get_section_list): Return std_sections if argument to + -S was an empty string or if that or $MANSECT contained only + colons. Previously, man would behave wrongly in the former case + and segfault in the latter. Also remove a redundant xstrdup(). + +Mon May 14 23:46:25 BST 2001 Colin Watson + + * Version: 2.3.18. + + * README: Add contact details. + + * libdb/stamp-h: Removed. + * GNUmakefile.in, libdb/Makefile.in: Updated accordingly. + + * src/man_db.conf.in: FHS 2.1 has /usr/local/share/man as the + location of locally installed man pages rather than + /usr/local/man. Accordingly, the MANDB_MAP for /usr/local/man is + now /var/cache/man/oldlocal, and /usr/local/share/man takes over + /var/cache/man/local. + + * po/cs.po, po/de.po, po/es.po, po/fr.po, po/it.po, po/ja.po: Update + with msgmerge. + +Mon May 14 22:18:32 BST 2001 Colin Watson + + * src/security.c: Count how many times drop_effective_privs() has + been called, and don't actually regain privileges until + regain_effective_privs() has been called an equal number of times. + This should flush out several subtle bugs. + + * src/mandb.c: Call manpath() rather than read_config_file() (this + was changed while merging 2.3b12). Otherwise 'mandb --user-db' + segfaults as manp never gets set. + +Sun May 13 18:34:33 BST 2001 Colin Watson + + * GNUmakefile.in (dist): Don't install po/Makefile.in. + + * src/stamp-h: Removed. + * GNUmakefile.in, src/Makefile.in: Updated accordingly. + + * GNUmakefile.in (distclean): Don't clean configure, src/lexgrog.c, + zsoelim/zsoelim.c. + (realclean): Clean configure here instead. realclean targets in + subdirs already remove the other two. + * zsoelim/Makefile.in (clean): Let realclean remove zsoelim.c. + +Sun May 13 17:17:32 BST 2001 Colin Watson + + * man/Makefile.in: Another try to get NLS installation working + properly. The last change was wrong when LINGUAS was unset. + + * GNUmakefile.in (dist): Install docs/manpage.example. + +Sun May 13 16:54:01 BST 2001 Colin Watson + + * man/Makefile.in: Exclude NLS directories without man pages, as CVS + can't delete directories quite as fully as I'd like. + + * configure.in: No subdirectory Makefiles need ALL_LINGUAS any more. + + * manual/Makefile: Make the location of soelim variable so that + distributions can e.g. use the version in the build directory. + + * manual/Makefile, manual/README: Add an HTML target. Disabled by + default as groff's HTML driver doesn't produce very good output + yet (as of 1.16). + + * include/Defines.in: Only remove /usr from the default sysconfdir + if the prefix is exactly /usr, not something that happens to + contain /usr (like the default /usr/local). + +Sun May 13 13:39:17 BST 2001 Colin Watson + + * man-db.gnu, man-db.lsm: Mention move to SourceForge and the new + URLs for the Debian package pool. + + * man-db.gnu: New architectures (successful Debian ports as of + today). New mailing list for announcements. + +Sun May 13 13:18:56 BST 2001 Colin Watson + + * README: Document FHS changes; correct pointer to + docs/INSTALL.autoconf. + + * docs/INSTALL.autoconf: Update to instructions from automake 1.4. + + * docs/COPYING: Minor fixes from GNU (FSF address, Y2K). + +Sun May 13 13:00:17 BST 2001 Colin Watson + + * GNUmakefile.in (dist): Add include/sections.list. + + * GNUmakefile.in, man/Makefile.in: Cause USE_NLS to be substituted + properly from configure. + + * include/Defines.in: Remove some old gencat definitions. + + * docs/NEWS: Update in preparation for 2.3.18 release. Correct a few + it's -> its typos in earlier entries. + +Sun May 13 02:18:00 BST 2001 Colin Watson + + * autogen.sh: Create stamp-h.in. + + * po/cs.po, po/de.po, po/es.po, po/fr.po, po/it.po, po/ja.po: Update + with msgmerge. + +Sun May 13 02:03:05 BST 2001 Colin Watson + + * docs/ToDo: Most of Wilf's beta code is in now; mention SuSE. + +Sun May 13 01:22:29 BST 2001 Colin Watson + + * docs/manpage.example: New file. + +Sun May 13 01:19:47 BST 2001 Colin Watson + + * include/manconfig.h.in: Bump database version from 2.3.1 to 2.3.2. + * libdb/db_ver.c (dbver_wr): Reformat. + (dbver_rd): Downgrade warnings about wrong version numbers to + debugging messages. + * libdb/db_lookup.c (split_data): Fix fencepost error that would + overlook a missing whatis field. + + * src/man.c (try_db_section): Display warning if whatis refs are + relied upon to find a page. + * libdb/db_storage.h: Note that WHATIS_MAN and WHATIS_CAT are + deprecated. + + * src/accessdb.c (main): Give FHS_CAT_ROOT priority over CAT_ROOT. + * man/man8/accessdb.man8 (DESCRIPTION): Document this. + * man/de_DE.85591/man8/accessdb.man8 (DESCRIPTION): Likewise. + * man/de_DE.ascii/man8/accessdb.man8 (DESCRIPTION): Likewise. + * man/es_ES.88591/man8/accessdb.man8 (DESCRIPTION): Likewise. + * man/it_IT.88591/man8/accessdb.man8 (DESCRIZIONE): Likewise. + + * src/check_mandirs.c (testmandirs): Tidy up database opening code. + + * src/mandb.c (mandb): Don't create a new database if opt_test is + set. + (main): If opt_test is set, just delete the temporary database + rather than moving it into place. + * man/man8/mandb.man8 (OPTIONS): Document --test. + (FILES): Document FHS compliant database locations. + (AUTHOR): Add myself. + + * src/ult_src.c (ult_softlink): Remove overly-cautious check for + non-local symlinks in mantrees. + + * src/whatis.c (apropos): Remove a now redundant test that cont.dptr + is non-NULL. + +Sun May 13 01:00:47 BST 2001 Colin Watson + + * src/whatis.c (apropos): Complain and exit if a data pointer is + NULL. For this, locally undefine BTREE to avoid using optimized + functions, as they don't appear to provide enough error checking + yet. + +Fri May 4 03:59:08 BST 2001 Colin Watson + + * configure.in: Change PACKAGE from man-db to man_db. + + * po/*.po: Update with msgmerge. + + * release.sh: New file (quick release script). + +Fri May 4 03:44:49 BST 2001 Colin Watson + + * acconfig.h: Remove Debian-specific entries. + + * aclocal.m4: Remove, as it's another autogenerated file. + + * autogen.sh: New file (very simple for now). + +Fri May 4 03:34:54 BST 2001 Colin Watson + + * GNUmakefile.in (dist): Update set of installed files somewhat. No + need to build man_db-nls.h any more. + + * man/Makefile.in: Declare ALL_LINGUAS and LINGUAS. + + * src/man.sh: Remove (obsoleted by src/wrapper.c). + +Fri May 4 02:56:30 BST 2001 Colin Watson + + * README: Update for new NLS configuration methods. Reflect renaming + of configuration file from man_db.config to man_db.conf. + +Fri May 4 00:18:23 BST 2001 Colin Watson + + * stamp-h.in: Remove (generated by GNUmakefile). + +Fri May 4 00:17:50 BST 2001 Colin Watson + + * GNUmakefile.in, configure.in, include/Defines.in, + libdb/Makefile.in, libdb/db_delete.c, libdb/db_lookup.c, + libdb/db_store.c, libdb/db_ver.c, man/Makefile.in, + src/Makefile.in, src/lexgrog.l-2.3.8, src/lexgrog.l-2.4a, + src/wrapper.c: Dispose of all the old catgets stuff. Replace with + gettext idioms where appropriate. + + * libdb/man_db-nls.h, src/man_db-nls.h: Remove (obsolete with + gettext). + + * include/config.h.in: Remove (generated by autoheader). + +Thu May 3 01:17:08 BST 2001 Colin Watson + + * GNUmakefile.in: Strip .po from language names; fix it's -> its + typo. + + * configure.in: Stop trying to guess the package name and version + number from the current directory name. + +Wed May 2 18:38:49 BST 2001 Colin Watson + + * src/manp.c: Remove #include of security.h (now merged elsewhere). + (pathappend): Constify second argument. + (mkcatdirs): Eliminate DIRLIST; now takes mandir and catdir as + arguments. + (add_2_dirlist): Rename to add_to_dirlist(); return void, and + otherwise eliminate use of DIRLIST. As mentioned below, we now use + a linked list instead. + (read_config_file): Update accordingly. + + * src/security.c: *uid no longer static for now, as other objects + use them. + * src/man.c: Declare ruid and euid extern here now that security.h + is gone. + + * src/check_mandirs.c (update_db): Close dbf rather than database. + +Wed May 2 17:27:22 BST 2001 Colin Watson + + * acinclude.m4: New file. Restore definitions inadvertently removed + from aclocal.m4 a few changes ago. + * aclocal.m4: Update accordingly with 'aclocal'. + + * config.guess, config.sub: Move to tools directory. + + * configure.in: Move gettext macros below AC_PROG_CC etc. + + * configure.in: Remove Debian-specific code; build dependencies + handle this now. + +Wed May 2 16:41:28 BST 2001 Colin Watson + + * acconfig.h: Removed some definitions gettext used to need. + + * Makefile.in (_root): Added ABOUT-NLS to the distribution. + +Wed May 2 16:31:21 BST 2001 Colin Watson + + * config.guess, config.sub: New files, synced from today's CVS. + +Wed May 2 16:28:02 BST 2001 Colin Watson + + * configure.in, include/Defines.in, man/Makefile.in: Remove use of + curdate. + + * man/it_IT.88591/man1/man.man1, man/ja_JP.eucJP/man1/man.man1, + man/man1/man.man1: s/curdate/date/g. + +Wed May 2 16:15:00 BST 2001 Colin Watson + + * po/POTFILES.in: Added src/accessdb.c and src/wrapper.c. + +Wed May 2 15:53:45 BST 2001 Colin Watson + + * ABOUT-NLS, aclocal.m4, intl/*, po/ChangeLog, po/Makefile.in.in: + Update to gettext 0.10.37 (from 0.10.32). Various additions and + removals. + + * GNUmakefile.in, libdb/Makefile.in, src/Makefile.in: Remove old + gencat/xcat targets. + +Wed May 2 01:33:04 BST 2001 Colin Watson + + * src/mandb.c (main): Initialize security properly, since we may be + setuid, and drop privileges when creating temporary databases in + user-supplied hierarchies. Thanks to Ethan Benson for reporting + this vulnerability. + + * man-db.gnu, man-db.lsm: Add myself as a developer; change + maintainer. + + * libdb/db_lookup.c, src/man.c: Cosmetic fixes. + * src/accessdb.c (usage): Remove spurious space in output. + +Wed May 2 01:02:19 BST 2001 Colin Watson + + * Merging in changes from Wilf's 2.3b12 beta release. + * docs/ChangeLog: Folded in changelog comments. + + * GNUmakefile.in, configure.in: Build configuration file. + * */Makefile.in: Rearrange code for CPPFLAGS and similar. + + * configure.in: Look for grep, seteuid(), setresuid(). + * include/config.h.in: Add HAVE_SETEUID and HAVE_SETRESUID. + * include/manconfig.h.in: Add GREP and various grep flags. + * src/whatis.c: Use GREP rather than "grep". + + * src/man_db.config: Renamed to src/man_db.conf.in. + * src/man_db.conf.in: Add commented out DEFINE directives. + * docs/ToDo: Need to document DEFINE directive. (Also, I (cjwatson) + checked in two other todo items by mistake earlier: inline + pipelines and merging work done by Wilf and Andries.) + * include/Defines.in: CPPFLAGS tweaks; rename config file; %.i rule. + * include/comp_src.h.in: paths.h -> ./manconfig.h. + + * src/security.c, src/man.c: Rewrite seteuid() handling; remove + special "running as root" case. + * src/security.h: Remove; combine previous contents with security.c. + * src/man_db-nls.h: No longer need man_CHOWN. + * include/manconfig.h.in: Add init_security() prototype. + + * src/manp.c: Major rewrite. Replace static storage with linked + list. Improve configuration file handling, replacing get_dirlist() + with read_config_file(). Move some of the more deeply nested bits + of read_config_file() into separate functions like + add_mandb_map(). (cjwatson: This won't compile yet. Fabrizio also + hacked on this heavily, including splitting part of get_dirlist() + out into add_2_dirlist() and adding mkcatdirs(). I've merged these + as best I can for now, but it's still unfinished.) + * src/manp.h: Remove get_dirlist() prototype, add prototypes for + read_config_file() and get_def(). + * src/man.c, src/mandb.c, src/straycats.c, src/whatis.c: Use new + get_defs() functions to pull paths from config file rather than + hard-coding them. + +Fri Apr 27 22:39:34 BST 2001 Colin Watson + + * Merging in changes from Wilf's 2.3.11 release. + * docs/ChangeLog, docs/NEWS: Folded in changelog comments. + + * GNUmakefile.in: Added deroff and manual targets. + * README: Added comment about manual; added notes on configure + flags. + * configure.in: Minor improvement for non-GNU makes. + + * src/lexgrog.l, src/lexgrog.l-2.4a: Allow comments other than at + the beginning of a line. + + * src/manp.c: Replace has_subdirs() with has_mandir(): for $PATH + components not in config, check for ../man as well as man subdirs. + + * zsoelim/zsoelim.l: Use #defines for exit codes. + + * GNUmakefile.in, README, docs/INSTALL.quick, src/man.c: Cosmetic + rearrangements (whitespace, typos, etc.). + +Fri Apr 27 21:36:11 BST 2001 Colin Watson + + * manual/*: Add the source code for the man_db manual from Wilf's + FTP site. + +Fri Apr 27 18:33:17 BST 2001 Colin Watson + + * src/accessdb.c (main): Close the database and set dbf to NULL if + dbver_rd() fails. + * src/check_mandirs.c (update_db): Likewise. + * src/man.c (try_db): Likewise. + * src/straycats.c (straycats): Likewise. + * src/whatis.c (search): Likewise. + +Fri Apr 27 18:10:47 BST 2001 Colin Watson + + * src/lexgrog.l: Detect grap (.G1) and vgrind (.vS). + * include/manconfig.h.in: Add GRAP_FILTER and VGRIND_FILTER to + filter enum. + +Fri Apr 27 18:00:04 BST 2001 Colin Watson + + * New maintainer. + + * man/man1/man.man1 (HISTORY): Update some dates, add myself. + * man/it_IT.88591/man1/man.man1 (HISTORY): Likewise. + * man/ja_JP.eucJP/man1/man.man1 (HISTORY): Likewise. + + * man/de_DE.88591/man1/man.man1 (HISTORY): Update some dates. + * man/de_DE.ascii/man1/man.man1 (HISTORY): Likewise. + * man/es_ES.88591/man1/man.man1 (HISTORY): Likewise. + + * ja_JP.ujis/man1/apropos.man1: Remove (superseded by ja_JP.eucJP). + * ja_JP.ujis/man1/man.man1: Likewise. + * ja_JP.ujis/man1/manpath.man1: Likewise. + * ja_JP.ujis/man1/whatis.man1: Likewise. + * ja_JP.ujis/man1/zsoelim.man1: Likewise. + * ja_JP.ujis/man5/manpath.man5: Likewise. + * ja_JP.ujis/man8/accessdb.man8: Likewise. + * ja_JP.ujis/man8/catman.man8: Likewise. + * ja_JP.ujis/man8/mandb.man8: Likewise. + +Tue Apr 17 15:23:30 BST 2001 Colin Watson + + * End of the Great CVS Sync. + * Debian release 2.3.17.1-3. + + * src/ult_src.c (ult_src): Return an error when ult_softlink() + fails. + + * src/man.c: Use latin1 character set for C and POSIX locales. + + * po/ja.po: Update Japanese translation. + * man/ja_JP.eucJP/man1/apropos.man1: New file, updating Japanese + translation in new character set. + * man/ja_JP.eucJP/man1/man.man1: Likewise. + * man/ja_JP.eucJP/man1/manpath.man1: Likewise. + * man/ja_JP.eucJP/man1/whatis.man1: Likewise. + * man/ja_JP.eucJP/man1/zsoelim.man1: Likewise. + * man/ja_JP.eucJP/man5/manpath.man5: Likewise. + * man/ja_JP.eucJP/man8/accessdb.man8: Likewise. + * man/ja_JP.eucJP/man8/catman.man8: Likewise. + * man/ja_JP.eucJP/man8/mandb.man8: Likewise. + + * man/THANKS: Updated (new Japanese eucJP translation). + + * src/man.c (main): Support LC_MESSAGES being set differently from + other locale categories (internal_locale). + + * src/man.c (main): Multiple locale preferences can be set with + $LANGUAGE. + + * src/version.c (ver): Remove previous maintainer address. + + * configure.in: Find version number correctly. + +Sun Apr 1 14:37:28 BST 2001 Colin Watson + + * Debian release 2.3.17.1-2. + + * src/whatis.c (main): Disable regex searches if -w (wildcard) + option is given. + + * docs/ToDo: Using zlib rather than gzip would be good. + +Sat Mar 31 18:07:46 BST 2001 Colin Watson + + * Debian release 2.3.17.1-1. + + * src/check_mandirs.c (test_manfile): Check if the result of symlink + and hard link resolution is in the cache before looking for .so + links. This provides a substantial speedup when many symlinks + exist in the mantree. + + * src/catman.c (main): Initialize full locale by calling setlocale() + with LC_ALL rather than LC_MESSAGES (GOTO Masanori). Remove manual + getenv() calls accordingly. + * src/man.c (main): Likewise. + * src/mandb.c (main): Likewise. + * src/manpath.c (main): Likewise. + * src/whatis.c (main): Likewise. + + * include/manconfig.h.in: Add 3perl to section names, following 3pm; + Debian is using this to allow other packages to shadow pages from + core Perl packages. + +Wed Feb 28 21:02:41 GMT 2001 Colin Watson + + * Debian release 2.3.17-3.2. + + * configure.in: More fixes for Debian troff and /dev/null input + files. This restores detection of -mandoc macros. + + * man/man1/man.man1 (OPTIONS): Typo: "It's" -> "Its". + * man/man1/zsoelim.man1 (OPTIONS): Likewise. + + * man/man1/man.man1 (OPTIONS): Mention that argument to -M must be + the root of a mantree. + (SEE ALSO): Add reference to man-db manual to explain the above. + +Wed Feb 21 00:54:47 GMT 2001 Colin Watson + + * Debian release 2.3.17-3.1. + + * src/man.c (local_man_loop): Fix format string vulnerability in + printing of error message. + + * src/whatis.c (get_whatis): Fix segfault if whatis reference is + NULL. + + * src/man.c (local_man_loop): chdir() to original working directory + so that 'man -l' works again on relative paths to compressed + pages. + + * src/compression.c (decompress): free() file if the decompressor + failed so that atexit() doesn't try to remove it again. + + * src/mandb.c (main): Reverse sense of -s option to agree with the + documented intent. + + * configure.in: Work around change in the behaviour of Debian nroff, + which no longer accepts /dev/null as an input file. + + * GNUmakefile.in: Restore full clean rules. + +Fri Apr 7 10:50:45 EET 2000 fab (fpolacco@debian.org) + + * Checked in by Colin Watson during SourceForge CVS sync. + + * Upstream changes from Debian changelog (2.3.17-2): + - Commented away call to distclean_root in GNUmakefile: need to + leave the Makefile and configure in the tarball. + - Found and fixed subtle bug which made wrapper uselessly linked + with -ldb2. When invoked by root on a system which enables + group.db, then the call to initgroups() segfaults due to the + libc link to libdb! + + * Other changes not mentioned in Debian changelog: + - man-db.gnu: Update date and prerequisites (libdb2 becomes weak + prerequisite). + - man-db.lsm: New file. + - src/lexgrog.l: Cosmetic changes. + - src/wrapper.c: Add debugging code. + +Fri Apr 7 10:50:45 EET 2000 fab (fpolacco@debian.org) + + * Checked in by Colin Watson during SourceForge CVS sync. + * Version: 2.3.17. + * Upstream changes from Debian changelog: + - Corrected apparent disappearing of option -e in apropos. + - Corrected wrong usage of undocumented option -X which produced + error when passed to filters. This is now parametrized as + optional argument, defaulting to use devX75. Documented in + usage : -X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12. + - Applyed patch submitted by Tomohiro KUBOTA: + - roff_device and LESSCHARSET are determined by user environment + rather than language of manpage for English manpage. + - roff_device "ascii8" is used for non-English/non-ISO-8859-1 + languages. + - Added new check for libdb in configure.in + - Added /usr/local/{share/}man to config file, due to bug in FHS, + thanx to Gregor Hoffleit. + - Added new message catalog po file for cs (czech) (4 new + messages), thanx to Vladimir Michl. + - tired of people continously complaining that man behaves + differently than in RedHat (which is "The Reference Linux", you + all know that), I'll add tbl as default filter for man. This + will fix those three or four manpages that do not take the + burden to declare their dependency on the tbl formatter (usually + because upstream uses RedHat and so ...). Now what would I do if + someone fill a bug against this because of wasting of CPU cicles + for un-necessary filtering on the hundreds of pages that do not + need tbl? I would certainly agree with them. Therefore I will + fix this introducing scanning of manpages a la grog in mandb, + and storing the result in the database. ...[noise of hacking + and debugging]... Well, I did it (use accessdb to see it!). It + took 4 weekend (stolen to the implementation of man 2.4) to + complete and debug. Now you can announce the world that man-db + 2.3.17 knows in advance which filters to run when processing a + manpage which is in the database. + +Wed Mar 22 16:00:16 EET 2000 fab (fpolacco@debian.org) + + * Checked in by Colin Watson during SourceForge CVS sync. + * Version: 2.3.16. + * Upstream changes from Debian changelog: + - Applyed patch submitted by Javier Fernandez-Sanguino Pena to + permit search of trnlated manpages before giving the first + english one found. + +Mon Feb 28 22:09:09 EET 2000 fab (fpolacco@debian.org) + + * Checked in by Colin Watson during SourceForge CVS sync. + * Version: 2.3.13. + * Upstream changes from Debian changelog: + - Applied patch to avoid disappearing of index file during + regeneration. Thanx to Colin Phipps. + - Applied patch to generate secure temporary file in straycat. + Thanx to Colin Phipps. + +Wed Feb 23 22:34:54 EET 2000 fab (fpolacco@debian.org) + + * Version: 2.3.12 + + * New maintainer. + + * find the huge list of changes (in three years) in file + debian/changelog. + +Wed Sep 27 23:59:05 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version: 2.3b12 + + * src/manp.c: replace static storage with linked list + + * src/security.h: removed/combined with security.c + + * src/security.c, src/man.c: re-write seteuid() handling: + remove special "running as root" case + + * src/whatis.c: use GREP rather than "grep" + + * include/manconfig.h: many #DEFINE additions + + * configure.in: look for grep, seteuid(), setresuid() + + * GNUmakefile.in, */Makefile.in: minor modifications + + * include/Defines.in: modifications + + * src/man_db.config: renamed as src/man_db.conf.in + + * src/man_db.conf.in: add commented out DEFINE directives. + +Thu Sep 21 19:33:58 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version: 2.3.11 + + * manual/*: bundle the source code of the man_db manual + +Wed Sep 20 16:17:19 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/manp.c: replace has_subdirs() with has_mandir(): for $PATH + components not in config, check for ../man as well as man subdirs. + + * various: small bug-fixes from Markus, + Joey (joey@infodrom.north.de), Lionel (cons@dxcern.cern.ch) + + * src/util.c: when checking man/cat timestamps, compare mod time of + cat with latest of mod or create time of man: If untar new man + page with old timestamp, still reformat. + +Thu Jul 13 11:29:32 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version: 2.3.10 + + * src/apropos.c: fix for #undef REGEX regarding int regex + + * src/lexgrog.l: default to new version. + + * src/README.lexgrog: new. + + * configure.in: all echo's through MAN_ECHO() for --quiet. + + * various: apply patch from Carl Edman (cedman@princeton.edu), + port to NeXTstep and misc small fixes. + +Fri Jun 16 11:12:08 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version: 2.3.9 + +Wed Jun 14 17:08:41 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/man.c (make_display_command): fix command when ascii==1 + + * src/man.c (display): don't return 1 on skip if local_man_file==1 + + * man/Makefile.in: force make to resolve the program name strings + (which are sed commands) once only. + + * configure.in: don't exec pager (too many side effects) + +Sun Jun 4 13:51:22 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version: 2.3.8 + + * various: apply patch from CERN to allow globbed support for + HPUX, OSF and SOLARIS system manual page hierarchies. + + * GNUmakefile.in: add hook for `make check' + +Mon May 29 18:57:24 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/whatis.c (main): if $POSIXLY_CORRECT is in effect, + default to case-less extended regex searches for apropos + as specified by POSIX 1 + + * man/man1/apropos.man1: document above change. + + * src/whatis.c (apropos, parse_name): ensure case-less + matching on manual page name aswell as it's whatis for apropos. + + * all manual pages: replace instances of program with %program% + and arrange to do a sed replacement with the actual name of the + program, chosen by the installer. + + * zsoelim/zsoelim.l: fix recursion detector. + + * src/lexgrog.l (newline_found): new. + +Mon May 22 20:07:17 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * nls/de_DE.88591/*.m: from Lars Fenneberg (li@gimli.comlink.de) + + * src/Makefile, libdb/Makefile: fix -DNLS + + * src/man.c (LESS_PROMPT): Make " Manual page" a translatable + message. + + * man/de_DE.ISO_8859-1: rename as man/de_DE.88591 + + * nls/THANKS, man/THANKS: new. + + * src/whatis.c: If $POSIXLY_CORRECT, force apropos to do extended + regex matching. + +Sat May 20 12:27:47 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/man.c: if -f or -k, simply execv() the program, passing + the entire argv[] to it. + + * man/man1/man.man1: document change. + + * src/whatis.c: ignore -f, --whatis, -k and --apropos + +Sat May 13 18:10:50 BST 1995 Markus Armbruster + + * Version: 2.3.7 + + * lib/cleanup.c (pop_all_cleanups): new + * src/man.c, src/security.c: use pop_all_cleanups() in children. + + * general: use fork() instead of vfork() in situations where + vfork() could cause problems. + +Tue May 9 23:30:58 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * manual pages: aesthetic/grammer changes. + + * flex files: process with flex-2.5.2 + +Mon May 8 11:15:07 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * include/manconfig.h.in: #define some exit codes. + * all sources: use the codes. + * English manual pages: add EXIT STATUS section where + appropriate + + * src/man.c (make_display_command): back out execing the pager + as PAGER does not have to be a simple program name. + + * configure.in: prepend "exec " to the default pager. + + * src/mandb.c: fix stupid bug where global databases remain + owned by the creator in all circumstances. Clean up. + + * src/straycats.c, src/check_mandirs.c: homogenized and + re-worded messages emitted by mandb. + +Mon May 8 11:15:07 BST 1995 Markus Armbruster + + * lib/cleanup.c, lib/cleanup.h: new functions. Install + sighandler, initialise and operate a stack of cleanup funcs + callable on exit(). + + * src/mandb.c, src/man.c: modify to use cleanup functions. + +Tue Apr 25 20:21:51 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version: 2.3.6 + + * src/whatis.c: new, replaced with edited version from 2.4 alpha + source tree. Apropos now does _real_ word matches. + + * man/man1/apropos.man1: remove description of option -e. + +Mon Apr 24 17:26:54 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/man.c (get_section_list): Ignore empty $MANSECT. + * src/man.c (main): if (!*pager) pager = CAT; + + * libdb/db_storage.h, include/manconfig.h.in, src/check_mandirs.c, + src/straycats.c: small modifications to fix broken + FAVOUR_STRAYCATS behaviour and properly handle situation when + STRAYCAT and WHATIS_CAT share namespace. Move definition of + FAVOUR_STRAYCATS to include/manconfig.h.in. From Zoltan. + + * zsoelim/zsoelim.c: exit 1 on command line file open failure. + + * src/man.c (man_getopt): consolidate incompatible option parsing. + * src/man.c (usage): update wrt. option parsing. + + * src/man.c (display): only prompt/attempt display if found==1. + + * src/man.c (make_display_command): exec the pager. + +Fri Apr 21 15:16:59 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version: 2.3.5 (public release) + + * src/whatis.c: fix a couple of problems caused by whatis/apropos + split. + + * configure.in: remove determination of viable gencat program, + always use our own. + +Wed Apr 19 09:53:27 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * GNUmakefile.in: renamed Makefile to differentiate between + GNU make and others. + + * configure.in: create bogus ./makefile to catch non GNU make + programs. + +Mon Apr 17 11:06:32 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version: 2.3.4 + + * src/man.c (format_display_and_save): don't save cat if + formatting process fails and/or produces nothing. + +Sat Apr 8 18:02:52 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/mandb.c: change #ifdef SECURE_MAN_UID to + #if defined(SECURE_MAN_UID) && defined(MAN_DB_UPDATES) as the + databases should be owned by their creators if man is not + responsible for updating them. + + * src/man.c: minor changes regarding MAN_DB_UPDATES + + * include/manconfig.h.in: update CATMODE and DBMODE w.r.t. + recent MAN_DB_UPDATES/MAN_CATS definitions. + + * src/mandb.c: changes to operation. Work on a temporary copy of + the database, then rename() to actual database. Catch SIGINT, + SIGTERM and remove the temp copy if necessary. + + * src/compression.c (decompress): kill(getpid(), SIGINT) instead of + exit(0) if child (decompressing man page) fails. + + * src/straycats.c (check_for_stray): kill(getpid(), SIGINT) instead of + exit(0) if child (decompressing cat page) fails. + + * libdb/db_lookup.c (make_content): ndbm limit is 4k not 1k. + +Mon Apr 3 20:52:06 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * docs/NEWS: new + + * README: more Linux-system information. + + * configure.in, acconfig.h: #define NDEBUG if !--enable-debug + + * include/Defines.in: comment out @LEXLIB@, not required in link + stage. + +Sun Apr 2 17:42:02 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version: 2.3.3 + + * README: add sections referring to default preprocessors and + system specific notes. + + * xcat/xcat.l, zsoelim,zsoelim.l, src/lexgrog.l: process with + flex-2.5.1 + +Fri Mar 31 17:12:44 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/whatis.c (display): add free(string) + + * src/whatis.c, src/Makefile.in: produce separate object files for + apropos and whatis so that the programs know which one they are + regardless of actual program-filename. + + * All Makefile.in, include/Defines.in: append CPPFLAGS supplied to + ./configure or make to the standard $(CPPFLAGS) variable. + Allows configuring with unusual #include directories, eg. + CPPFLAGS=-I/usr/src/gdbm LDFLAGS=-L/usr/src/gdbm ./configure + + * configure.in (--with-db=LIBRARY): override the default database + interface library on systems having a choice. Options={db,gdbm,ndbm} + + * configure.in: Re: sec 5.6 of the autoconf manual, replace + (if test a=b -o a=c) with + (if test a=b || test a=c) + +Tue Mar 28 16:44:46 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version: 2.3b2 + + * lib/flock.c, lib/flock.h: New. flock() wrapper to fcntl() for + systems that lack flock(). + + * xcat/xcat.l: #include "manconfig.h". For systems not supporting + __inline__ + + * include/Defines.in (%.d : %.c): modify rule to account for C + compilers other than gcc + + * All Makefiles.in (cd $dir && $(MAKE)): change to $(MAKE) -C $dir + * nls/Makefile.sub.in: merge into nls/Makefile.in + +Mon Mar 27 22:42:53 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/globbing.c (look_for_file): don't rely on GLOB_NOMATCH as + AIX doesn't have it. + + * configure.in, include/manconfig.h.in (man_ac_version): new, + replaces ac_version and is more robust + * configure.in, aclocal.m4: rename non-autoconf macros so that + future versions of autoconf won't clash + + * gencat/gencat.c, gencat/genlib.c: tidy up header includes and + remove unused variable definitions + + * configure.in: check for gencat + +Mon Mar 27 12:51:47 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version 2.3b1 + + * src/man.c: small HAS_TROFF/NROFF_MISSING changes from Markus. + +Thu Mar 23 18:09:46 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/man.c: man will only _create_ user db's if + MAN_DB_CREATES is #defined (It is not defined by default) + + * add ability to install programs/man pages with transformed names. + ie --program-prefix=PREFIX, + --program-suffix=SUFFIX and + --program-transform-name=EXP + arguments to configure are now observed. + + * src/man.c (try_db): store an info->addr==NULL entry in the + hashtable if we fail to access this db. Only try to open the + db once. If the db access succeeds, but the lookup fails to find + anything, store info==NULL in the hashtable. + + * libdb/db_ver.c (dbver_rd): don't die if wrong version. Issue a + message, return 1 and let the caller decide what to do. + +Mon Mar 20 16:13:23 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/whatis.c (get_whatis): new. Use the pointer member of mandata + structure to access the whatis string. + (display): modify to use get_whatis(). + + * src/checkmandirs.c (splitline): don't store whatis referenced + `whatis' lines in the db. + + * libdb/db_lookup.c (make_content): store a NULL whatis as "" rather + than "-". + +Sun Mar 19 16:37:58 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/lexgrog.l: wipe out roff comment lines (again). + + * src/whatis.c: use BSD style regex if POSIX unavailable. Ignore + --regex if neither available. Fix failed-regex-compilation error + message. + + * lib/regex.c, lib/regex.h: remove + + * configure.in: account for regex changes. + + * libdb/db_delete.c (dbdelete): don't barf on delete request of a + multi-key that is not listed in the main key, return NO_ENTRY. + + * src/man.c (try_section): don't try to delete db entry for missing + straycat. Return 0 and leave that to the caller. + +Sat Mar 18 12:31:48 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Replaced strncasecmp() calls with strncmp(). Removed partial + support for man dirs named .../MAN. + + * lib/{alloca.c,putenv.c,memcmp.c}: new + lib/{getopt.c,getopt1.c,getopt.h,error.c,xstrdup.c,xmalloc.c}: + newer replacements + + * All Makefile.in, include/Defines.in, include/manconfig.h.in: + use standard (GNU coding) installation variables: + bindir, sysconfdir, man?ext, man?dir, localedir, manroot. + These variables, along with prefix and exec_prefix may be specified + on the `make' command line. + + * configure.in: move definition of BINDIR and config_prefix to + include/Defines.in to allow dynamic evaluation. Rename config_prefix + to sysconfdir. + + * libdb/db_lookup.c (list_extensions): fix return count. + + * libdb/db_delete.c (dbdelete): take account of situation + where there were multiple name entries and they are subsequently + deleted. When deleting the last one (which still has a multi-key + entry), delete the standard key too, rather than recomputing it's + content (which would be nothing and cause a "corrupt db" message). + +Fri Mar 17 23:36:44 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/man.c (glob_for_file, make_names): remove + src/globbing.c: new file + lib/glob.c, lib/glob.h, lib/fnmatch.c, lib/fnmatch.h: replacements + from GNU glob.tar.gz + configure.in: glob changes. + Use POSIX glob replacement. + Allow --extension to be used in globbing environment. Don't search + for cats in alternate cat directory if no index. + + * All Makefile.in: add standard (GNU coding) targets: all, clean, + mostlyclean, distclean, realclean, install, uninstall, TAGS, dist + Other configuration/goal modifications + + * Makefile.in: force config.status to do selective re-creation + + * src/zsoelim.l: cater for ".SH \f?NAME\f?" + + * acconfig.m4 (AC_FUNC_PCLOSE), src/man.c (display): small changes + from Markus + + * Makefile.in, README: change `make all' to equal `make nls=off' + rather than `make nls=all' + + * include/Defines.in: move -DDEFAULT_MANROFFSEQ to + include/manconfig.h + + * include/manconfig.h: change inline parsing. Use autoconf-2.2 + +Thu Mar 16 12:38:15 GMT 1995 Markus Armbruster (armbru@pond.sub.org) + + * Version: 2.2a20 + + * zsoelim/zsoelim.l: general fixes + + * configure.in: don't add -lc as library containing db routines. + + * lib/glob.c: ultrix fixes + + * lib/rename.c: replacement + + * lib/strappend.c: small fix and copyright notice + +Wed Mar 15 11:17:58 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/lexgrog.l: modifications to whatis parser, mainly for + stray cats. + + * src/man.c (main): add drop_effective_privs() and + regain_effective_privs() around manpath configuration so that + users' `hidden' manpaths are found and used. + + * substantial configuration changes regarding all Makefiles to + allow `alternate build directory' support. man_db may be built + in *any* directory. Aids multi-architecture builds and testing + of various configuration options. + + * rationalised source files to #include "local_header" and + #include . CPPFLAGS uses -I- to limit -I paths + to "" resolving only. Other alternate build directory mods. + + * src/comp_src.h.in: moved to ./comp_src.h.in + src/manconfig.h, src/path.h.in: combined into ./manconfig.h.in + + * *ensure* that lib/{regex,fnmatch,getopt}.h are only #included + if the replacement c source is used. Otherwise use system routines + and system headers. + + * ./configure.in, acconfig.h, aclocal.m4 (AC_FUNC_PCLOSE, + BROKEN_PCLOSE): new autoconf macro + + * gencat is not installed by default. (cd gencat && make install) + + * tools/mkcatdirs: re-written + tools/checkman: new utility to check for duplicate manual pages + across manual page hierarchies. + + * docs/INSTALL, README: new + + * src/man.c (display): attempt to open tmp_cat_filename(), if + unable, don't try to save cat. + +Sun Mar 12 18:12:13 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version 2.2a19 + + * all source (main): replace mkprogname(%s) with + xstrdup(basename(%s)) + + * src/util.c (strappend): remove + * lib/strappend.c: new + +Mon Mar 6 20:05:27 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/man.c (--local): re-enable support for compressed local + files. eg `man -l foo.1.gz' + + * src/man.c (make_roff_command): Check in alternate catdir then + mandir for external format script if ALT_EXT_FORMAT #defined. + + * zsoelim/zsoelim.l: partial rewrite to mimick GNU soelim + `bad roff request' error behaviour. + +Mon Mar 6 13:51:32 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/man.c: fix SEGV if arg --local used + + * src/man.c (gripe_system): exit with errorcode of failed command + +Sun Mar 5 20:54:13 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version 2.2a18 + + * src/catman.c (main): check individual cat directories for + existence and perms. + + * src/man.c (commit_tmp_cat): fix SEGV + + * src/man.c: NO_MAN_UPDATES & NO_MAN_CATS #defined code + regions for experimental CERN use, untested and incomplete. + + * configure.in, src/Makefile, src/paths.h.in: undo bogus dependance + on NLS for output device=latin1. + + * configure.in (--with-device=): new option to select + default nroff output device. Test that nroff can handle selected + output device (if any). + +Thu Mar 2 19:30:45 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/lexgrog.l (too_big), (add_str_to_whatis), + (add_char_to_whatis): new functions + (find_name): add extra argument. + add string bounds checking, add new condition to terminate NAME + section: \n{W}*\n+.+ + + * src/check_mandirs.c, src/straycats.c, src/manconfig.h: change + callers of find_name(). + + * src/man.c (try_db_section): warn of re-cache failure, but don't + exit. + lots of changes/simplifications w.r.t. global/user hierarchies. + global_manpath == 1 for global hierarchy, global_manpath == 0 for + user. global_manpath is set once we know which hierarchy we are + displaying from. + +Tue Feb 28 13:34:15 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/man.c (display): fix SEGV. + + * src/util.c (strappend): allow realloc of NULL string. + + * src/man.c: replace strappend(xstrdup("string"), ...) with + strappend(NULL, string, ...) + + * src/straycats.c (check_for_stray): allow any supported + straycat compression extension if COMP_SRC is #defined. + Replace static buffers with dynamic. + + * src/check_mandirs.c, src/whatis.c: replace static buffers + with dynamic. + + * src/util.c: (mkdbname): new function. + src/*.c: replace static database[PATH_MAX] with mkdbname() calls. + +Sun Feb 26 20:58:59 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version 2.2a17 + + * src/whatis.c: warn if no index or whatis db's available. + + * src/man.c: Fixes to setuid/privs code regarding user manual + trees and ruid==0 from Markus. + + * configure.in: add checks for AIX, USG, stdlib.h, MINIX, ISC_POSIX + + * lib/glob.c: ensure that _POSIX_VERSION can be defined + +Sun Feb 19 12:38:10 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version 2.2a16 + + * Various portability fixes provided by Philippe Defert + (defert@cern.ch) + + * FSSTND changes regarding /usr, /var/catman searching + + * Some header file re-arrangement to aid user configuration. + +Sun Feb 12 15:00:44 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version 2.2a15 + +Sat Feb 4 10:54:21 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * man(1), manpath(5): revisions. + +Thu Feb 2 23:36:20 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/catman.c (do_access): new + + * src/man.c (do_chown): new + catman changes, don't do_prompt() if print_where==1 + + * src/manp.c: changed an !is_directory() to is_directory() != 1 + +Sat Jan 28 09:39:07 1995 Markus Armbruster (armbru@pond.sub.org) + + * man.c: **changes** ?? + +Sun Jan 22 16:15:04 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version 2.2a14+ + + * configure.in, libdb/mydbm.h libdb/db_gdbm.c: if using gdbm, + explicitly test for gdbm_exists() rather than use header #defines. + + * man/man1/mandb.man1, man/man1/catman.man1: moved to man/man8 and + renamed. + + * apropos(1), whatis(1), manpath(1), zsoelim(1), catman(8), + mandb(8) manual pages: significant revisions. + +Sat Jan 21 14:33:28 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * incorporate Markus' changes with my post 2.2a13 changes. + + * src/version.c (ver): fix, use fprintf() instead of error(). + +Thu 22 Dec 1994 15:12:38 +0100 1994 Markus Armbruster (armbru@pond.sub.org) + + * src/man.c (make_roff_command, make_display_command, + open_cat_stream, close_cat_stream, display, + find_cat_file, checked_system, + get_preprocessors): new functions + + * src/man.c (format_and_display, format_and_display_file, + display_cat_file, parse_roff_directive, + add_directive): removed functions + + * src/man.c (glob_for_file, make_name): made consistent. + + * src/util.c (strappend): new function. + (do_system_command): changed/renamed to do_system(). + + * src/manp.c (global_catpath): replaced/fixed + + * src/security, src/fake_security (do_system_command_drop_privs): + renamed to do_system_dropped_privs(). + + * lib/rename.c: new file + +Mon Jan 9 20:42:38 GMT 1995 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * nls/Makefile, man/Makefile: allow for bogus or non existent + native languages passed in $nls. + + * src/man.c (do_prompt): replaced with less friendly but more + portable version. + + * inline directives replaced with __inline__ to be more ansi. + +Mon Dec 19 12:59:28 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version: 2.2a14 + + * aclocal.m4, configure.in: don't define variable nroff_device + + * src/Makefile, src/paths.h.in: define GNU_NROFF_DEVICE. + If nls != off, GNU_NROFF_DEVICE=" -Tlatin1" + else, GNU_NROFF_DEVICE=" -Tascii" + + * src/man.c, src/catman.c, src/security.c: #include if + available. _exit() from child rather than exit(). + +Sun Dec 18 17:54:22 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/util.c (basename): removed + lib/basename.c: extracted from src/util.c + configure.in: check for/replace basename function if necessary. + + * src/catman.c (add_arg): replace strdup() with xstrdup(). + + * soelim/soelim.*: renamed zsoelim/zsoelim.* + + * manual pages: reflect soelim - zsoelim name change. + +Fri Dec 16 12:17:48 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * configure.in: correctly determine db header and required library + + * src/man.c (main, do_extern): pass manpath to whatis / apropos in + case man was called with -M or -m. + + * src/catman.c (main): interrogate $MANSECT for manual sections. + + * man/man1/catman.man1, man/man1/man.man1 ($MANSEC): replace with + the correct variable - $MANSECT. + + * src/man.c: new option (-7 or --ascii) passes page through minimal + latin1 to ascii translator. Only useful for nroff written in ascii + and formatted with -Tlatin1. + + * man/man1/man.man1: document it. + + * src/man.c (make_command): new routine to piece together man's + system() call. + +Thu Dec 15 13:52:42 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version: 2.2a13 + + * src/catman.c (parse_for_sec): only supply man with -L locale + arguments if locale!=0x0 + + * src/Makefile: fix libmandb.a rule + +Wed Dec 14 22:49:59 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version 2.2a12 + + * major package restructure with creation of new subdirectories + for xcat and the db routines. Allowed split up of single db source + file into some constituent function parts. + + * some Makefile restructuring to allow arbitrary ordering of + subdirectory builds. + + * ./dblib/*, ./xcat/*: new or moved from src/. + + * src/db_storage.c: moved and split up into ./dblib/*.c + src/mydbm.h, db_storage.h: moved into ./dblib + src/nls.h: moved to ./nls.h + src/xcat.c, src/xcat.l, src/Register: moved into ./xcat + +Wed Dec 14 00:17:11 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/manconfig.h: #include for size_t declaration. + + * src/checkmandirs.c (reset_db_time): remove use of strerror() in + debug line for systems without it. + + * src/manp.c: ensure no warnings given if quiet==1 + +Tue Dec 12 22:10:07 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/xcat.l: allow duplicate message id's to exist in single C + source file, do not duplicate in the relative message file or + src/man_db-nls.h. Warn of such duplications as they may be in error. + +Tue Dec 12 19:05:21 GMT 1994 Markus Armbruster (armbru@pond.sub.org) + + * configure.in: fix definition of BINDIR when --prefix not used + + * src/man.c: replace "export foo=bar" with "foo=bar; export foo" in + system() command + + * soelim/Makefile: do not backup old soelim before install + + * lib/error.h: new + + * convert all error message to the form + error(int exitcode, int errno, char *message) + where exitcode!=0 causes exit(exitcode) after message and errno!=0 + causes the error text to be appended to the message. All messages + have ": " prepended. + + * all C source: #include "../lib/error.h" and replace prognam with + program_name. + + * src/db_storage.c (ndbm_flopen, btree_flopen): generalised + (ndbm_trun_open, btree_trunc_open): removed + (ndbm_flclose): new + + * src/gripes.c: functions copied to relevant caller. + src/gripes.c, src/gripes.h: removed + +Sun Dec 11 15:16:42 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version: 2.2a11 (not released) + + * src/man.c (main): putenv("LESSCHARSET=latin1"), remove from + less_options[] + + * src/lexgrog.l: translate \\[ ] (escaped space) to space, + accept '\" as *roff comment, + add a space at *roff end-of-line if necessary. + +Sat Dec 10 21:37:41 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * man/man1/catman.man1: new + + * soelim/soelim.man1: new + + * src/man.c (display_cat_file): if (COMP_SRC), support straycats + with any supported compression extension or none at all. + src/man.c (make_cat_file): replace execle() with execve(). + + * src/catman.c: added ARG_MAX support and use execve() instead of + system(). This should now behave on systems with small execve() + argument capacity by batching more, but smaller, man jobs. + + * Makefile: `make all' now equates to `make nls=all' + +Thu Dec 8 00:03:12 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version: 2.2a10 + + * src/catman.c: new utility. + src/man.c (main): minor changes wrt --catman flag. + + * src/paths.h.in (MAN_BIN): add definition for catman. + + * dvi/: provide dvi files of the packages' manual pages. + +Tue Dec 6 20:58:19 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * man/man.man1: addition of EXAMPLES section. + + * src/man.c (do_prompt): change message. + src/man.c (need_to_rerun): make -u really force an update. + src/checkmandirs.c (reset_db_time): new function. + + * src/mydbm.h, src/db_storage.c (ndbm_flopen, ndbm_trunc_flopen): + provide file locking mechanism for ndbm. + src/db_storage.c (btree_trunc_flopen): renamed (btree_trunc_open), + add mode argument to open() call. + + * src/db_storage.c (make_content): add `static' to declaration of + (dash). + + * src/man.c (try_db_section): ensure db found file entry is + consistent with the physical file, if not, update the db entry + before proceeding. Cache consistency should be getting much better + in a wide variety of circumstances now. This check is not performed + for straycats. + +Tue Dec 6 12:05:57 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * man/man.man1, man/mandb.man1: large changes. + + * aclocal.m4, configure.in (AC_PROG_GNU_ROFF): test for GNU nroff + src/man.c: Do not use col with GNU nroff -Tlatin1 as (a) it is not + needed: see grotty(1) and (b) it is not 8 bit clean. continuation + dashes should now reappear. + +Wed Nov 23 16:49:48 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/check_mandirs.c (test_manfile): Provide better checking for + the existence of both foo.1 and foo.1.gz type problems. This should + catch any problems earlier and relieve the db interface code of the + job of identifying such problems. + + * src/man.c (manopt_to_env): cater for $MANOPT option arguments + that contain spaces (for -r). + src/man.c (man_getopt): revise, change duplicate option behaviour, + modify -[tTZ] handling and add option -D. + src/man/man1/man.man1: document. + + * src/man.c: create LESS_OPTS and LESS_PROMPT and move their + definitions to src/paths.h[.in]. + + * configure.in: append -s by default to whatever pager is found. + favour db.h and -ldb above gdbm.h and -lgdbm. + N.B. + db creates index.bt + gdbm creates index.db + ndbm creates index.dir and index.pag + +Wed Nov 23 16:46:59 GMT 1994 Zoltan Hidvegi (hzoli@cs.elte.hu) + + * src/man.c: changes relating to (less_options) and (prompt). Add + command line support for less' prompt: option -r. + + * man/man1/man.man1: document it. + +Sat Nov 19 20:19:39 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version: 2.2a9 + + * src/mydbm.h, src/db_storage.c: incorporate completely new + database type: a binary tree method using the Berkeley db-1.85.1 + library. Currently experimental and is not used by default, it has + the potential of enhanced speed and easy maintenance as it allows + storage of identical keys, thus reducing the amount of work necessary + to store and lookup multi sectional manual pages such as manpath.1 + and manpath.5. During initial tests, the `walk through' algorithm, + used in apropos searches was 65% faster and the general database + open function is 100% faster when compared with gdbm-1.7.3. + + * src/whatis.c (apropos): #define-optimised for btree database type. + + * src/convert_name.c (convert_name): reorder actions to stop certain + catfiles ending up with a double compression extension, for + instance: foo.1.gz.gz. + + * src/Makefile, src/man.c: enable -DNO_DEFAULT_TBL_OR_COL as an + experiment. + +Fri Nov 18 21:00:47 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version: 2.2a8 (not released) + + * configure.in (config_file, config_prefix): Fix behaviour. + + * src/*.[cl], soelim/soelim.l: + s,malloc,xmalloc,g + s,realloc,xrealloc,g + s,strdup,xstrdup,g + src/manconfig.h: remove redefinitions of malloc, realloc and strdup. + +Thu Nov 17 22:01:11 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/lexgrog.l: changed catfile whatis extraction rules to be a + little more forgiving. Increased char array size from 1024 to 2048. + + * mkcatdirs: shell script to create relative cat dirs. + + * src/$PROGS: replaced all occurances of `optional_argument' with + `required_argument' in (long_options). + + * src/man.c, src/compression.c, src/straycats.c: ensure that a + failed child process is recognised and dealt with (normally exit(0)). + + * src/man.c (make_cat_file): removed need to filter-then-copy if not + setuid. [untested] + + * src/man.c, src/mandb.c (main): optional profiling support if + __profile__ defined. + + * configure.in (config_file, config_prefix): don't work unless + --prefix= is a command line option, temporarily setting + them to /etc/man_db.config and /etc respectively. + +Wed Nov 16 20:34:54 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version: 2.2a7 + + * src/man.c (format_and_display_file): Fix bug which caused + `man -l -' to fail. Produce sensible error message when -l file + is inaccessable. Allow compressed manual pages to be specified when + using -l (must have correct extension) + + * soelim/soelim.l (main): ensure (progname) is the basename of + argv[0] . + + * src/manpath.c (main): remove local declaration of (quiet). + add `--global' option. + +Wed Nov 16 20:29:20 GMT 1994 Markus Armbruster (armbru@pond.sub.org) + + * configure.in: if $prefix=/usr, put config file in /etc else + put it in $prefix/etc + src/manconfig.h (CONFIG_FILE): move to paths.h.in + + * src/nls.h (LC_MESSAGES): define as (LC_ALL) in all cases where + (LC_MESSAGES) is not defined in + + * src/lexgrog.l: #include "manconfig.h" to redefine strdup() to + xstrdup() + +Tue Nov 15 21:38:19 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/manp.c (is_global_mandir): new + src/man.c (locate_page): use it instead of (global_catpath) + + * src/*.h: add suitable predicates to function prototype + declarations + moved all function declarations to header files + src/compression.h.in: renamed to comp_src.h.in + +Mon Nov 14 18:17:48 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version: 2.2a6 + + * src/hashtable.c, src/hashtable.h (struct nlist): replaced + (union) member with (void *) and simplified. Modified users. + + * src/man.c (make_cat_file): fixed NULL ptr reference in call to + (execle) + src/man.c: determined and fixed memory leaks using Checker. + +Mon Nov 14 03:33:37 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/db_storage.c (replace_if_necessary, split_data, + list_extensions): new + src/db_storage.c (free_content): replaced with (free_mandata_struct) + all callers changed + src/db_storage.c (split_content_keep, split_content_temp): replaced + with (split_content) + +Sun Nov 13 13:50:46 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/nls.h: change of macros, add (NLS_INIT, EXIT_FUNC) + src/*.c: removed (NLS_CLOSE) macros, adjustments due to above + src/version.c (close_catalogue): new + configure.in (AC_HAVE_FUNCS): (atexit, on_exit) + + * getmandbver.c: removed + +Sat Nov 12 14:18:02 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/security.h: new, contains security macros from src/manconfig.h + src/manconfig.h: removed security macros + src/security.c, src/security.h: replaced (SYSV_SAVED_IDS) with + (BROKEN_LINUX_SAVED_IDS) + + * src/paths.h.in, src/compression.h.in, configure.in: changed + compression defines + src/paths.h.in: defined (STD_SECTIONS), got rid of (MANPATH_MAIN) + src/*.c: removed all (MANPATH_MAIN) defines + configure.in: added (COMP_CAT) and (COMP_SRC) definitions + src/manconfig.h: removed (COMP_SRC) definition + + * All manual pages: Fixed to be compatible with native *roff + implementations having a request argument limit of 6 + + * src/db_storage.c (gripe_extract_data, gripe_corrupt_data): + new routines + + * All Makefiles: add (exec_prefix, mandir, bindir) where necessary + +Sat Nov 12 13:38:59 GMT 1994 Markus Armbruster (armbru@pond.sub.org) + + * soelim/Makefile (install): made more portable + + * src/manconfig.h: changes to (POSIX_SAVED_IDS) definition + + * src/man.c (main): removed unnecessary #ifdef conditions regading + (SECURE_MANUID) + +Sat Nov 12 13:24:17 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/ult_src.c (ult_src): no longer follow an absolute .so include + src/ult_src.c (test_for_include): new + +Fri Nov 11 10:16:32 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/man.c (manopt_to_env): generalised + + * src/man.c (do_extern): removed (gripe_alloc) call, + modified callers + src/manp.c: removed (gripe_alloc) calls, general tidy + src/gripes.c (gripe_alloc): removed + + * src/ult_src.c (ult_src): fixed loop when (buf) != NULL + changed absolute .so include actions + configure.in (AC_HAVE_FUNCS): removed (memmove) + + * src/mydbm.h (copy_datum): added references + src/db_storage.c (copy_datum): added function + Fixes for `native ndbm' data corruption by Markus Armbruster + + * src/Makefile: removed dbver.o as dependency of manpath + + * aclocal.m4 (AC_FUNC_SPRINTF_COUNT): new file and macro + configure.in: use it + acconfig.h: add (SPRINTF_CHARCOUNT) + src/check_mandirs (add_dir_entries): use it + src/whatis.c (display): use it + + * src/check_mandirs.c (test_mandirs): added a (free(exists)) + + * src/straycats.c (check_for_stray): Fixes regarding straycats + with no compression extension + +Fri Nov 11 00:29:15 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * lib/xmalloc.c, lib/xstrdup.c, lib/error.c: replaced + lib/strdup.c: removed + lib/strstr.c: replaced + lib/strsep.c, lib/strspn.c, lib/strcspn.c, lib/ansidecl.h: new + configure.in (AC_REPLACE_FUNCS): with respect to above + + * src/check_mandirs.c (testmandirs): (free_hashtab) only if + necessary + +Thu Nov 10 11:07:52 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * Version: 2.2a5 + + * src/man.c (usage, man_getopt, parse_roff_directive, ditroff): + add `-Z' option + man/man1/man.man1: document it + +Wed Nov 9 20:16:35 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * configure.in (prefix, nroff, neqn, groff, soelim, CFLAGS, + LDFLAGS): portability changes. + Suggestions from Markus Armbruster + gencat/Makefile (CFLAGS, LDFLAGS): definitions removed + + * soelim/Makefile (install): procedural changes + + * src/ult_src.c (ult_softlink): changes regarding S_ISLNK + + * src/manconfig.h: #define __inline + + * src/man.c, src/whatis.c, src/nls.c (LC_MESSAGES): define + as LC_ALL if necessary + +Tue Nov 8 23:17:22 GMT 1994 Wilf. (G.Wilford@ee.surrey.ac.uk) + + * src/version.c (ver): aesthetic changes + * src/man.c, src/whatis.c, src/manpath.c, src/mandb.c (usage, ver): + calling changes + + * src/version.h, src/update_db: removed + + * src/convert_name.c (conver_name): argument changes + src/man.c (format_and_display): caller of above changed + (need_to_rerun, locate_page): new functions to split (man) + (format_and_display_nosave): renamed to format_and_display_file + + * soelim/soelim.l (usage, ver): new functions + removal of NLS dependence + + * Version: 2.2a4 diff --git a/FAQ b/FAQ new file mode 100644 index 0000000..702fc56 --- /dev/null +++ b/FAQ @@ -0,0 +1,67 @@ +Frequently Asked Questions +-------------------------- + +Why use man-db instead of man? +============================== + +The man (currently http://primates.ximian.com/~flucifredi/man/) and man-db +packages forked from a common code base in the mid-1990s. The original goal +of man-db was, as indicated by the name, to add database caching to manual +page searches. The increase in computer performance has considerably +outpaced the growth of manual page collections, so some people now ask what +the point is of using man-db rather than man. + +These days, the database is indeed not such an important difference between +man-db and man, but there are several other areas where man-db does a +significantly better job than man: + + * Internationalisation + + man uses the obsolete catgets system for translations of the messages + emitted by its programs, which cannot deal with the user using a + different output encoding (e.g. UTF-8) from that provided by the + translators. man-db uses gettext, which is more correct and robust. + + In order to support many cases of non-English manual pages, man requires + manual hardcoding of iconv pipelines (or similar) and *roff device names + in its configuration file, and cannot operate correctly in environments + involving a variety of encodings. man-db handles all this out of the + box. + + * Security and code quality + + Security matters because both man and man-db can be installed setuid to + a special user, and also because man is sometimes used in semi-trusted + or untrusted contexts, such as from CGI scripts. + + Both man and man-db spend a lot of time calling external programs, often + in pipelines. man does so by assembling strings which it then feeds to + the shell; this approach is nowadays well-known to be fragile and prone + to security vulnerabilities. man-db has been redesigned from top to + bottom to have safe and correct command execution, using a special + "libpipeline" library. + + * Performance + + Happily, dealing with manual pages is not normally a + performance-critical task these days; manual pages can normally be found + and rendered comfortably within expected interactive response times. + However, there are a few cases that are still more difficult, such as + 'man -K' to perform a full-text search on all manual pages. Neither man + nor man-db includes a proper full-text search engine, but there is + nevertheless a significant performance difference here: man-db performs + this search at least three times as quickly as man, and in some cases + much better than that. (On the test system, man took five minutes to + search all manual pages, severely degrading interactive performance of + the rest of the system for that time; man-db took around 40 seconds.) + + * Maintenance + + At the time of writing (February 2012), man-db has had ten full releases + since the start of 2008 with substantial feature work, while man has had + one release with a few minor changes. + +I have great respect for the people who maintain man, but as a project it +has fallen badly behind. Rather than continuing to struggle along with +complicated patch sets, those distributions that still use man would +probably be better off switching to man-db. diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..82f2235 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,92 @@ +## Process this file with automake to produce Makefile.in +## +## Copyright (C) 1994, 1995 Graeme Wilford. +## Copyright (C) 2001, 2002, 2003, 2005, 2006, 2007, 2009, 2010, 2011, 2012 +## Colin Watson. +## +## This file is part of man-db. +## +## man-db is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## man-db is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with man-db; if not, write to the Free Software Foundation, +## Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +if HAVE_GNULIB_PO +GNULIB_PO = gl/po +endif + +SUBDIRS = docs gl/lib $(GNULIB_PO) init lib libdb src man manual po tools + +dist_noinst_DATA = FAQ README.md +noinst_HEADERS = include/manconfig.h + +EXTRA_DIST = \ + .gitignore \ + ChangeLog-2013 \ + bootstrap \ + bootstrap.conf \ + patches/argp-domain.patch + +# These macro files are imported by gnulib-tool, but at present not used. We +# include them in the distribution anyway for maximum consistency. +EXTRA_DIST += \ + gl/m4/glibc2.m4 \ + gl/m4/intdiv0.m4 \ + gl/m4/intl.m4 \ + gl/m4/intldir.m4 \ + gl/m4/intmax.m4 \ + gl/m4/inttypes-pri.m4 \ + gl/m4/lcmessage.m4 \ + gl/m4/math_h.m4 \ + gl/m4/printf-posix.m4 \ + gl/m4/sockpfaf.m4 \ + gl/m4/uintmax_t.m4 \ + gl/m4/visibility.m4 + +# Installing in --enable-setuid mode (the default) requires root; disable +# this so that distcheck can be run as non-root. +# The defaults for systemdsystemunitdir and systemdtmpfilesdir are +# intentionally not prefix-sensitive, but we need to adjust them in order +# for distcheck to pass. +AM_DISTCHECK_CONFIGURE_FLAGS = \ + --disable-setuid \ + --with-systemdsystemunitdir=\$${prefix}/lib/systemd/system \ + --with-systemdtmpfilesdir=\$${prefix}/lib/tmpfiles.d + +# We deliberately leave the configuration file in place on uninstall, since +# it may contain local customisations. +distuninstallcheck_listfiles = \ + find . -type f -print | grep -v 'etc/man_db\.conf' + +# Note that autopoint installs into the first directory here. Yes, this +# means that it installs into gl/m4, so we always run gnulib-tool after +# autopoint, at least for now. See +# https://lists.gnu.org/archive/html/bug-gnulib/2009-03/msg00154.html and +# thread. +ACLOCAL_AMFLAGS = -I gl/m4 -I m4 + +dist-hook: gen-ChangeLog + +gen_start_date = 2013-12-09 00:52 +.PHONY: gen-ChangeLog +gen-ChangeLog: + $(AM_V_GEN)if test -d .git; then \ + $(top_srcdir)/build-aux/gitlog-to-changelog \ + --format='%s%n%n%b%n' \ + --since="$(gen_start_date)" > $(distdir)/cl-t; \ + rm -f $(distdir)/ChangeLog; \ + mv $(distdir)/cl-t $(distdir)/ChangeLog; \ + fi + +update-po: + $(MAKE) -C po update-po + $(MAKE) -C man/po4a update-po diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000..13fac5a --- /dev/null +++ b/Makefile.in @@ -0,0 +1,2198 @@ +# Makefile.in generated by automake 1.16.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2021 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ + $(top_srcdir)/m4/man-arg-automatic-update.m4 \ + $(top_srcdir)/m4/man-arg-cache-owner.m4 \ + $(top_srcdir)/m4/man-arg-cats.m4 \ + $(top_srcdir)/m4/man-arg-config-file.m4 \ + $(top_srcdir)/m4/man-arg-db.m4 \ + $(top_srcdir)/m4/man-arg-device.m4 \ + $(top_srcdir)/m4/man-arg-mandirs.m4 \ + $(top_srcdir)/m4/man-arg-manual.m4 \ + $(top_srcdir)/m4/man-arg-override-dir.m4 \ + $(top_srcdir)/m4/man-arg-sections.m4 \ + $(top_srcdir)/m4/man-arg-setuid.m4 \ + $(top_srcdir)/m4/man-arg-snapdir.m4 \ + $(top_srcdir)/m4/man-arg-systemdsystemunitdir.m4 \ + $(top_srcdir)/m4/man-arg-systemdtmpfilesdir.m4 \ + $(top_srcdir)/m4/man-arg-undoc.m4 $(top_srcdir)/m4/man-bdb.m4 \ + $(top_srcdir)/m4/man-check-progs.m4 \ + $(top_srcdir)/m4/man-compress-lib.m4 \ + $(top_srcdir)/m4/man-gnu-nroff.m4 \ + $(top_srcdir)/m4/man-heirloom-nroff.m4 \ + $(top_srcdir)/m4/man-libseccomp.m4 \ + $(top_srcdir)/m4/man-linguas.m4 $(top_srcdir)/m4/man-po4a.m4 \ + $(top_srcdir)/m4/man-tar-sort-name.m4 \ + $(top_srcdir)/m4/man-trans-subst.m4 \ + $(top_srcdir)/gl/m4/00gnulib.m4 \ + $(top_srcdir)/gl/m4/__inline.m4 \ + $(top_srcdir)/gl/m4/absolute-header.m4 \ + $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/argp.m4 \ + $(top_srcdir)/gl/m4/asm-underscore.m4 \ + $(top_srcdir)/gl/m4/btowc.m4 \ + $(top_srcdir)/gl/m4/builtin-expect.m4 \ + $(top_srcdir)/gl/m4/calloc.m4 \ + $(top_srcdir)/gl/m4/canonicalize.m4 \ + $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \ + $(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \ + $(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \ + $(top_srcdir)/gl/m4/ctype_h.m4 $(top_srcdir)/gl/m4/d-ino.m4 \ + $(top_srcdir)/gl/m4/d-type.m4 $(top_srcdir)/gl/m4/dirent_h.m4 \ + $(top_srcdir)/gl/m4/dirfd.m4 \ + $(top_srcdir)/gl/m4/double-slash-root.m4 \ + $(top_srcdir)/gl/m4/dup.m4 $(top_srcdir)/gl/m4/dup2.m4 \ + $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ + $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ + $(top_srcdir)/gl/m4/exponentd.m4 \ + $(top_srcdir)/gl/m4/extensions.m4 \ + $(top_srcdir)/gl/m4/extern-inline.m4 \ + $(top_srcdir)/gl/m4/fchdir.m4 $(top_srcdir)/gl/m4/fcntl-o.m4 \ + $(top_srcdir)/gl/m4/fcntl.m4 $(top_srcdir)/gl/m4/fcntl_h.m4 \ + $(top_srcdir)/gl/m4/fdopendir.m4 \ + $(top_srcdir)/gl/m4/filenamecat.m4 \ + $(top_srcdir)/gl/m4/flexmember.m4 \ + $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/flock.m4 \ + $(top_srcdir)/gl/m4/fnmatch.m4 \ + $(top_srcdir)/gl/m4/fnmatch_h.m4 $(top_srcdir)/gl/m4/free.m4 \ + $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/fstatat.m4 \ + $(top_srcdir)/gl/m4/getcwd-abort-bug.m4 \ + $(top_srcdir)/gl/m4/getcwd-path-max.m4 \ + $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \ + $(top_srcdir)/gl/m4/getdtablesize.m4 \ + $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getlogin.m4 \ + $(top_srcdir)/gl/m4/getlogin_r.m4 \ + $(top_srcdir)/gl/m4/getopt.m4 \ + $(top_srcdir)/gl/m4/getpagesize.m4 \ + $(top_srcdir)/gl/m4/getprogname.m4 \ + $(top_srcdir)/gl/m4/getrandom.m4 \ + $(top_srcdir)/gl/m4/gettext.m4 $(top_srcdir)/gl/m4/gettime.m4 \ + $(top_srcdir)/gl/m4/gettimeofday.m4 \ + $(top_srcdir)/gl/m4/glob.m4 $(top_srcdir)/gl/m4/glob_h.m4 \ + $(top_srcdir)/gl/m4/gnulib-common.m4 \ + $(top_srcdir)/gl/m4/gnulib-comp.m4 \ + $(top_srcdir)/gl/m4/host-cpu-c-abi.m4 \ + $(top_srcdir)/gl/m4/iconv.m4 $(top_srcdir)/gl/m4/idpriv.m4 \ + $(top_srcdir)/gl/m4/include_next.m4 \ + $(top_srcdir)/gl/m4/intlmacosx.m4 \ + $(top_srcdir)/gl/m4/intmax_t.m4 \ + $(top_srcdir)/gl/m4/inttypes.m4 \ + $(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \ + $(top_srcdir)/gl/m4/isblank.m4 \ + $(top_srcdir)/gl/m4/langinfo_h.m4 \ + $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \ + $(top_srcdir)/gl/m4/lib-ignore.m4 \ + $(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \ + $(top_srcdir)/gl/m4/lib-prefix.m4 \ + $(top_srcdir)/gl/m4/libtool.m4 $(top_srcdir)/gl/m4/limits-h.m4 \ + $(top_srcdir)/gl/m4/localcharset.m4 \ + $(top_srcdir)/gl/m4/locale-fr.m4 \ + $(top_srcdir)/gl/m4/locale-ja.m4 \ + $(top_srcdir)/gl/m4/locale-zh.m4 \ + $(top_srcdir)/gl/m4/locale_h.m4 \ + $(top_srcdir)/gl/m4/localeconv.m4 $(top_srcdir)/gl/m4/lock.m4 \ + $(top_srcdir)/gl/m4/lstat.m4 $(top_srcdir)/gl/m4/ltoptions.m4 \ + $(top_srcdir)/gl/m4/ltsugar.m4 \ + $(top_srcdir)/gl/m4/ltversion.m4 \ + $(top_srcdir)/gl/m4/lt~obsolete.m4 \ + $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ + $(top_srcdir)/gl/m4/manywarnings.m4 \ + $(top_srcdir)/gl/m4/mbrtowc.m4 $(top_srcdir)/gl/m4/mbsinit.m4 \ + $(top_srcdir)/gl/m4/mbsrtowcs.m4 \ + $(top_srcdir)/gl/m4/mbstate_t.m4 $(top_srcdir)/gl/m4/mbtowc.m4 \ + $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/memmem.m4 \ + $(top_srcdir)/gl/m4/mempcpy.m4 $(top_srcdir)/gl/m4/memrchr.m4 \ + $(top_srcdir)/gl/m4/minmax.m4 $(top_srcdir)/gl/m4/mkdir.m4 \ + $(top_srcdir)/gl/m4/mkdtemp.m4 $(top_srcdir)/gl/m4/mkstemp.m4 \ + $(top_srcdir)/gl/m4/mmap-anon.m4 $(top_srcdir)/gl/m4/mode_t.m4 \ + $(top_srcdir)/gl/m4/msvc-inval.m4 \ + $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ + $(top_srcdir)/gl/m4/multiarch.m4 \ + $(top_srcdir)/gl/m4/nanosleep.m4 \ + $(top_srcdir)/gl/m4/nl_langinfo.m4 $(top_srcdir)/gl/m4/nls.m4 \ + $(top_srcdir)/gl/m4/nocrash.m4 \ + $(top_srcdir)/gl/m4/nonblocking.m4 \ + $(top_srcdir)/gl/m4/off_t.m4 \ + $(top_srcdir)/gl/m4/open-cloexec.m4 \ + $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ + $(top_srcdir)/gl/m4/openat.m4 $(top_srcdir)/gl/m4/opendir.m4 \ + $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pipe.m4 \ + $(top_srcdir)/gl/m4/po.m4 $(top_srcdir)/gl/m4/printf.m4 \ + $(top_srcdir)/gl/m4/progtest.m4 $(top_srcdir)/gl/m4/pselect.m4 \ + $(top_srcdir)/gl/m4/pthread_rwlock_rdlock.m4 \ + $(top_srcdir)/gl/m4/pthread_sigmask.m4 \ + $(top_srcdir)/gl/m4/raise.m4 $(top_srcdir)/gl/m4/rawmemchr.m4 \ + $(top_srcdir)/gl/m4/readdir.m4 $(top_srcdir)/gl/m4/readlink.m4 \ + $(top_srcdir)/gl/m4/readlinkat.m4 \ + $(top_srcdir)/gl/m4/realloc.m4 \ + $(top_srcdir)/gl/m4/reallocarray.m4 \ + $(top_srcdir)/gl/m4/regex.m4 $(top_srcdir)/gl/m4/rename.m4 \ + $(top_srcdir)/gl/m4/renameat.m4 \ + $(top_srcdir)/gl/m4/rewinddir.m4 $(top_srcdir)/gl/m4/rmdir.m4 \ + $(top_srcdir)/gl/m4/save-cwd.m4 $(top_srcdir)/gl/m4/select.m4 \ + $(top_srcdir)/gl/m4/setenv.m4 \ + $(top_srcdir)/gl/m4/setlocale_null.m4 \ + $(top_srcdir)/gl/m4/sigaction.m4 \ + $(top_srcdir)/gl/m4/signal_h.m4 \ + $(top_srcdir)/gl/m4/signalblocking.m4 \ + $(top_srcdir)/gl/m4/sigpipe.m4 $(top_srcdir)/gl/m4/size_max.m4 \ + $(top_srcdir)/gl/m4/sleep.m4 $(top_srcdir)/gl/m4/socketlib.m4 \ + $(top_srcdir)/gl/m4/sockets.m4 $(top_srcdir)/gl/m4/socklen.m4 \ + $(top_srcdir)/gl/m4/ssize_t.m4 \ + $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ + $(top_srcdir)/gl/m4/stdalign.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ + $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ + $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdint_h.m4 \ + $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ + $(top_srcdir)/gl/m4/stpcpy.m4 $(top_srcdir)/gl/m4/strcase.m4 \ + $(top_srcdir)/gl/m4/strcasestr.m4 \ + $(top_srcdir)/gl/m4/strchrnul.m4 $(top_srcdir)/gl/m4/strdup.m4 \ + $(top_srcdir)/gl/m4/strerror.m4 \ + $(top_srcdir)/gl/m4/string_h.m4 \ + $(top_srcdir)/gl/m4/strings_h.m4 \ + $(top_srcdir)/gl/m4/strndup.m4 $(top_srcdir)/gl/m4/strnlen.m4 \ + $(top_srcdir)/gl/m4/strsep.m4 \ + $(top_srcdir)/gl/m4/sys_file_h.m4 \ + $(top_srcdir)/gl/m4/sys_ioctl_h.m4 \ + $(top_srcdir)/gl/m4/sys_random_h.m4 \ + $(top_srcdir)/gl/m4/sys_select_h.m4 \ + $(top_srcdir)/gl/m4/sys_socket_h.m4 \ + $(top_srcdir)/gl/m4/sys_stat_h.m4 \ + $(top_srcdir)/gl/m4/sys_time_h.m4 \ + $(top_srcdir)/gl/m4/sys_types_h.m4 \ + $(top_srcdir)/gl/m4/sys_uio_h.m4 \ + $(top_srcdir)/gl/m4/sysexits.m4 \ + $(top_srcdir)/gl/m4/tempname.m4 \ + $(top_srcdir)/gl/m4/termios_h.m4 \ + $(top_srcdir)/gl/m4/threadlib.m4 $(top_srcdir)/gl/m4/time_h.m4 \ + $(top_srcdir)/gl/m4/timespec.m4 \ + $(top_srcdir)/gl/m4/unistd-safer.m4 \ + $(top_srcdir)/gl/m4/unistd_h.m4 $(top_srcdir)/gl/m4/unlink.m4 \ + $(top_srcdir)/gl/m4/unlinkat.m4 $(top_srcdir)/gl/m4/utime.m4 \ + $(top_srcdir)/gl/m4/utime_h.m4 $(top_srcdir)/gl/m4/utimens.m4 \ + $(top_srcdir)/gl/m4/utimes.m4 \ + $(top_srcdir)/gl/m4/vasnprintf.m4 \ + $(top_srcdir)/gl/m4/vasprintf.m4 \ + $(top_srcdir)/gl/m4/visibility.m4 \ + $(top_srcdir)/gl/m4/vsnprintf.m4 \ + $(top_srcdir)/gl/m4/warn-on-use.m4 \ + $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ + $(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wcrtomb.m4 \ + $(top_srcdir)/gl/m4/wctype_h.m4 $(top_srcdir)/gl/m4/wint_t.m4 \ + $(top_srcdir)/gl/m4/wmemchr.m4 $(top_srcdir)/gl/m4/wmempcpy.m4 \ + $(top_srcdir)/gl/m4/xalloc.m4 $(top_srcdir)/gl/m4/xgetcwd.m4 \ + $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \ + $(top_srcdir)/gl/m4/xvasprintf.m4 \ + $(top_srcdir)/gl/m4/year2038.m4 \ + $(top_srcdir)/gl/m4/zzgnulib.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(dist_noinst_DATA) $(noinst_HEADERS) \ + $(am__DIST_COMMON) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +DATA = $(dist_noinst_DATA) +HEADERS = $(noinst_HEADERS) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir distdir-am dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \ + config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +DIST_SUBDIRS = docs gl/lib gl/po init lib libdb src man manual po \ + tools +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(top_srcdir)/build-aux/ar-lib $(top_srcdir)/build-aux/compile \ + $(top_srcdir)/build-aux/config.guess \ + $(top_srcdir)/build-aux/config.rpath \ + $(top_srcdir)/build-aux/config.sub \ + $(top_srcdir)/build-aux/install-sh \ + $(top_srcdir)/build-aux/ltmain.sh \ + $(top_srcdir)/build-aux/missing ABOUT-NLS COPYING NEWS.md \ + README.md build-aux/ar-lib build-aux/compile \ + build-aux/config.guess build-aux/config.rpath \ + build-aux/config.sub build-aux/install-sh build-aux/ltmain.sh \ + build-aux/missing +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__post_remove_distdir = $(am__remove_distdir) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +GZIP_ENV = --best +DIST_ARCHIVES = $(distdir).tar.xz +DIST_TARGETS = dist-xz +# Exists only to be overridden by the user if desired. +AM_DISTCHECK_DVI_TARGET = dvi +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +ALLOCA = @ALLOCA@ +ALLOCA_H = @ALLOCA_H@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ +AR = @AR@ +ARFLAGS = @ARFLAGS@ +ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ +BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ +BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ +BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ +BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ +CYGPATH_W = @CYGPATH_W@ +DBLIBS = @DBLIBS@ +DBTYPE = @DBTYPE@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ +EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ +ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ +ENOLINK_VALUE = @ENOLINK_VALUE@ +EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ +EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ +ERRNO_H = @ERRNO_H@ +ETAGS = @ETAGS@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FILECMD = @FILECMD@ +FLOAT_H = @FLOAT_H@ +FNMATCH_H = @FNMATCH_H@ +GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ +GETOPT_H = @GETOPT_H@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GLOB_H = @GLOB_H@ +GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ +GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ +GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ +GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ +GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ +GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ +GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ +GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ +GL_GNULIB_BIND = @GL_GNULIB_BIND@ +GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ +GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ +GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ +GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ +GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ +GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ +GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ +GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ +GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ +GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ +GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ +GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ +GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ +GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ +GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ +GL_GNULIB_DUP = @GL_GNULIB_DUP@ +GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ +GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ +GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ +GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ +GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ +GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ +GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ +GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ +GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ +GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ +GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ +GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ +GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ +GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ +GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ +GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ +GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ +GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ +GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ +GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ +GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ +GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ +GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ +GL_GNULIB_FFS = @GL_GNULIB_FFS@ +GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ +GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ +GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ +GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ +GL_GNULIB_FLOCK = @GL_GNULIB_FLOCK@ +GL_GNULIB_FNMATCH = @GL_GNULIB_FNMATCH@ +GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ +GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ +GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ +GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ +GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ +GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ +GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ +GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ +GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ +GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ +GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ +GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ +GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ +GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ +GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ +GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ +GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ +GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ +GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ +GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ +GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ +GL_GNULIB_GETC = @GL_GNULIB_GETC@ +GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ +GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ +GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ +GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ +GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ +GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ +GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ +GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ +GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ +GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ +GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ +GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ +GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ +GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ +GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ +GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ +GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ +GL_GNULIB_GETRANDOM = @GL_GNULIB_GETRANDOM@ +GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ +GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ +GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ +GL_GNULIB_GETTIMEOFDAY = @GL_GNULIB_GETTIMEOFDAY@ +GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ +GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ +GL_GNULIB_GLOB = @GL_GNULIB_GLOB@ +GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ +GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ +GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ +GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ +GL_GNULIB_IOCTL = @GL_GNULIB_IOCTL@ +GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ +GL_GNULIB_ISBLANK = @GL_GNULIB_ISBLANK@ +GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ +GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ +GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ +GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ +GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ +GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ +GL_GNULIB_LINK = @GL_GNULIB_LINK@ +GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ +GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ +GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ +GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ +GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ +GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ +GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ +GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ +GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ +GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ +GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ +GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ +GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ +GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ +GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ +GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ +GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ +GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ +GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ +GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ +GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ +GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ +GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ +GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ +GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ +GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ +GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ +GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ +GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ +GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ +GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ +GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ +GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ +GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ +GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ +GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ +GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ +GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ +GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ +GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ +GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ +GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ +GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ +GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ +GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ +GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ +GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ +GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ +GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ +GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ +GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ +GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ +GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ +GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ +GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ +GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ +GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ +GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ +GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ +GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ +GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ +GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ +GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ +GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ +GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ +GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ +GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ +GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ +GL_GNULIB_MDA_UTIME = @GL_GNULIB_MDA_UTIME@ +GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ +GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ +GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ +GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ +GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ +GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ +GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ +GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ +GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ +GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ +GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ +GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ +GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ +GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ +GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ +GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ +GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ +GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ +GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ +GL_GNULIB_NL_LANGINFO = @GL_GNULIB_NL_LANGINFO@ +GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ +GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ +GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ +GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ +GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ +GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ +GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ +GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ +GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ +GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ +GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ +GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ +GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ +GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ +GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ +GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ +GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ +GL_GNULIB_PSELECT = @GL_GNULIB_PSELECT@ +GL_GNULIB_PTHREAD_SIGMASK = @GL_GNULIB_PTHREAD_SIGMASK@ +GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ +GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ +GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ +GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ +GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ +GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ +GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ +GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ +GL_GNULIB_RAISE = @GL_GNULIB_RAISE@ +GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ +GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ +GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ +GL_GNULIB_READ = @GL_GNULIB_READ@ +GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ +GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ +GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ +GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ +GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ +GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ +GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ +GL_GNULIB_RECV = @GL_GNULIB_RECV@ +GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ +GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ +GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ +GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ +GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ +GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ +GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ +GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ +GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ +GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ +GL_GNULIB_SELECT = @GL_GNULIB_SELECT@ +GL_GNULIB_SEND = @GL_GNULIB_SEND@ +GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ +GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ +GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ +GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ +GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ +GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ +GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ +GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ +GL_GNULIB_SIGACTION = @GL_GNULIB_SIGACTION@ +GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ +GL_GNULIB_SIGNAL_H_SIGPIPE = @GL_GNULIB_SIGNAL_H_SIGPIPE@ +GL_GNULIB_SIGPROCMASK = @GL_GNULIB_SIGPROCMASK@ +GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ +GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ +GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ +GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ +GL_GNULIB_STAT = @GL_GNULIB_STAT@ +GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ +GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ +GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ +GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ +GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ +GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ +GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ +GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ +GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ +GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ +GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ +GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ +GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ +GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ +GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ +GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ +GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ +GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ +GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ +GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ +GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ +GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ +GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ +GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ +GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ +GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ +GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ +GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ +GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ +GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ +GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ +GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ +GL_GNULIB_TCGETSID = @GL_GNULIB_TCGETSID@ +GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ +GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ +GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ +GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ +GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ +GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ +GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ +GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ +GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ +GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ +GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ +GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ +GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ +GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ +GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ +GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ +GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ +GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ +GL_GNULIB_UTIME = @GL_GNULIB_UTIME@ +GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ +GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ +GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ +GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ +GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ +GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ +GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ +GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ +GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ +GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ +GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ +GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ +GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ +GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ +GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ +GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ +GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ +GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ +GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ +GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ +GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ +GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ +GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ +GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ +GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ +GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ +GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ +GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ +GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ +GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ +GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ +GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ +GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ +GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ +GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ +GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ +GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ +GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ +GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ +GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ +GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ +GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ +GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ +GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ +GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ +GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ +GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ +GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ +GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ +GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ +GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ +GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ +GREP = @GREP@ +HAVE_ACCEPT4 = @HAVE_ACCEPT4@ +HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ +HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ +HAVE_ALPHASORT = @HAVE_ALPHASORT@ +HAVE_ATOLL = @HAVE_ATOLL@ +HAVE_BTOWC = @HAVE_BTOWC@ +HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ +HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ +HAVE_CHOWN = @HAVE_CHOWN@ +HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ +HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ +HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ +HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ +HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ +HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ +HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ +HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ +HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ +HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ +HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ +HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ +HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ +HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ +HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ +HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ +HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ +HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ +HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ +HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ +HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ +HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ +HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ +HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ +HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ +HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ +HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ +HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ +HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ +HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ +HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ +HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ +HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ +HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ +HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ +HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ +HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ +HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ +HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ +HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ +HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ +HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ +HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ +HAVE_DECL_TCGETSID = @HAVE_DECL_TCGETSID@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ +HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ +HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ +HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ +HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ +HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ +HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ +HAVE_DIRENT_H = @HAVE_DIRENT_H@ +HAVE_DPRINTF = @HAVE_DPRINTF@ +HAVE_DUP3 = @HAVE_DUP3@ +HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ +HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ +HAVE_EXECVPE = @HAVE_EXECVPE@ +HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ +HAVE_FACCESSAT = @HAVE_FACCESSAT@ +HAVE_FCHDIR = @HAVE_FCHDIR@ +HAVE_FCHMODAT = @HAVE_FCHMODAT@ +HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ +HAVE_FCNTL = @HAVE_FCNTL@ +HAVE_FDATASYNC = @HAVE_FDATASYNC@ +HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ +HAVE_FEATURES_H = @HAVE_FEATURES_H@ +HAVE_FFS = @HAVE_FFS@ +HAVE_FFSL = @HAVE_FFSL@ +HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FLOCK = @HAVE_FLOCK@ +HAVE_FNMATCH = @HAVE_FNMATCH@ +HAVE_FNMATCH_H = @HAVE_FNMATCH_H@ +HAVE_FREELOCALE = @HAVE_FREELOCALE@ +HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FSTATAT = @HAVE_FSTATAT@ +HAVE_FSYNC = @HAVE_FSYNC@ +HAVE_FTELLO = @HAVE_FTELLO@ +HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_FUTIMENS = @HAVE_FUTIMENS@ +HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ +HAVE_GETENTROPY = @HAVE_GETENTROPY@ +HAVE_GETGROUPS = @HAVE_GETGROUPS@ +HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ +HAVE_GETLOGIN = @HAVE_GETLOGIN@ +HAVE_GETOPT_H = @HAVE_GETOPT_H@ +HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ +HAVE_GETRANDOM = @HAVE_GETRANDOM@ +HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ +HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ +HAVE_GETUMASK = @HAVE_GETUMASK@ +HAVE_GLOB = @HAVE_GLOB@ +HAVE_GLOB_H = @HAVE_GLOB_H@ +HAVE_GLOB_PATTERN_P = @HAVE_GLOB_PATTERN_P@ +HAVE_GRANTPT = @HAVE_GRANTPT@ +HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ +HAVE_INITSTATE = @HAVE_INITSTATE@ +HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ +HAVE_ISBLANK = @HAVE_ISBLANK@ +HAVE_ISWBLANK = @HAVE_ISWBLANK@ +HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ +HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ +HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ +HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ +HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ +HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ +HAVE_LCHMOD = @HAVE_LCHMOD@ +HAVE_LCHOWN = @HAVE_LCHOWN@ +HAVE_LINK = @HAVE_LINK@ +HAVE_LINKAT = @HAVE_LINKAT@ +HAVE_LSTAT = @HAVE_LSTAT@ +HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ +HAVE_MBRLEN = @HAVE_MBRLEN@ +HAVE_MBRTOWC = @HAVE_MBRTOWC@ +HAVE_MBSINIT = @HAVE_MBSINIT@ +HAVE_MBSLEN = @HAVE_MBSLEN@ +HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ +HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ +HAVE_MBTOWC = @HAVE_MBTOWC@ +HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MKDIRAT = @HAVE_MKDIRAT@ +HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_MKFIFO = @HAVE_MKFIFO@ +HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ +HAVE_MKNOD = @HAVE_MKNOD@ +HAVE_MKNODAT = @HAVE_MKNODAT@ +HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ +HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ +HAVE_MKSTEMP = @HAVE_MKSTEMP@ +HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ +HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ +HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ +HAVE_OPENAT = @HAVE_OPENAT@ +HAVE_OPENDIR = @HAVE_OPENDIR@ +HAVE_OS_H = @HAVE_OS_H@ +HAVE_PCLOSE = @HAVE_PCLOSE@ +HAVE_PIPE = @HAVE_PIPE@ +HAVE_PIPE2 = @HAVE_PIPE2@ +HAVE_POPEN = @HAVE_POPEN@ +HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ +HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ +HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ +HAVE_PREAD = @HAVE_PREAD@ +HAVE_PSELECT = @HAVE_PSELECT@ +HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ +HAVE_PTSNAME = @HAVE_PTSNAME@ +HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ +HAVE_PWRITE = @HAVE_PWRITE@ +HAVE_QSORT_R = @HAVE_QSORT_R@ +HAVE_RAISE = @HAVE_RAISE@ +HAVE_RANDOM = @HAVE_RANDOM@ +HAVE_RANDOM_H = @HAVE_RANDOM_H@ +HAVE_RANDOM_R = @HAVE_RANDOM_R@ +HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ +HAVE_READDIR = @HAVE_READDIR@ +HAVE_READLINK = @HAVE_READLINK@ +HAVE_READLINKAT = @HAVE_READLINKAT@ +HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ +HAVE_REALPATH = @HAVE_REALPATH@ +HAVE_RENAMEAT = @HAVE_RENAMEAT@ +HAVE_REWINDDIR = @HAVE_REWINDDIR@ +HAVE_RPMATCH = @HAVE_RPMATCH@ +HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ +HAVE_SCANDIR = @HAVE_SCANDIR@ +HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ +HAVE_SETENV = @HAVE_SETENV@ +HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ +HAVE_SETSTATE = @HAVE_SETSTATE@ +HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ +HAVE_SIGACTION = @HAVE_SIGACTION@ +HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ +HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ +HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ +HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ +HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ +HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ +HAVE_SIGSET_T = @HAVE_SIGSET_T@ +HAVE_SLEEP = @HAVE_SLEEP@ +HAVE_STDINT_H = @HAVE_STDINT_H@ +HAVE_STPCPY = @HAVE_STPCPY@ +HAVE_STPNCPY = @HAVE_STPNCPY@ +HAVE_STRCASECMP = @HAVE_STRCASECMP@ +HAVE_STRCASESTR = @HAVE_STRCASESTR@ +HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ +HAVE_STRINGS_H = @HAVE_STRINGS_H@ +HAVE_STRPBRK = @HAVE_STRPBRK@ +HAVE_STRPTIME = @HAVE_STRPTIME@ +HAVE_STRSEP = @HAVE_STRSEP@ +HAVE_STRTOD = @HAVE_STRTOD@ +HAVE_STRTOL = @HAVE_STRTOL@ +HAVE_STRTOLD = @HAVE_STRTOLD@ +HAVE_STRTOLL = @HAVE_STRTOLL@ +HAVE_STRTOUL = @HAVE_STRTOUL@ +HAVE_STRTOULL = @HAVE_STRTOULL@ +HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ +HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ +HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ +HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ +HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ +HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ +HAVE_SYMLINK = @HAVE_SYMLINK@ +HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ +HAVE_SYSEXITS_H = @HAVE_SYSEXITS_H@ +HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ +HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ +HAVE_SYS_FILE_H = @HAVE_SYS_FILE_H@ +HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ +HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ +HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ +HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ +HAVE_SYS_RANDOM_H = @HAVE_SYS_RANDOM_H@ +HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ +HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ +HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ +HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ +HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ +HAVE_TERMIOS_H = @HAVE_TERMIOS_H@ +HAVE_TIMEGM = @HAVE_TIMEGM@ +HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ +HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ +HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ +HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ +HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNLINKAT = @HAVE_UNLINKAT@ +HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ +HAVE_USLEEP = @HAVE_USLEEP@ +HAVE_UTIME = @HAVE_UTIME@ +HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ +HAVE_UTIME_H = @HAVE_UTIME_H@ +HAVE_VASPRINTF = @HAVE_VASPRINTF@ +HAVE_VDPRINTF = @HAVE_VDPRINTF@ +HAVE_VISIBILITY = @HAVE_VISIBILITY@ +HAVE_WCHAR_H = @HAVE_WCHAR_H@ +HAVE_WCHAR_T = @HAVE_WCHAR_T@ +HAVE_WCPCPY = @HAVE_WCPCPY@ +HAVE_WCPNCPY = @HAVE_WCPNCPY@ +HAVE_WCRTOMB = @HAVE_WCRTOMB@ +HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ +HAVE_WCSCAT = @HAVE_WCSCAT@ +HAVE_WCSCHR = @HAVE_WCSCHR@ +HAVE_WCSCMP = @HAVE_WCSCMP@ +HAVE_WCSCOLL = @HAVE_WCSCOLL@ +HAVE_WCSCPY = @HAVE_WCSCPY@ +HAVE_WCSCSPN = @HAVE_WCSCSPN@ +HAVE_WCSDUP = @HAVE_WCSDUP@ +HAVE_WCSFTIME = @HAVE_WCSFTIME@ +HAVE_WCSLEN = @HAVE_WCSLEN@ +HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ +HAVE_WCSNCAT = @HAVE_WCSNCAT@ +HAVE_WCSNCMP = @HAVE_WCSNCMP@ +HAVE_WCSNCPY = @HAVE_WCSNCPY@ +HAVE_WCSNLEN = @HAVE_WCSNLEN@ +HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ +HAVE_WCSPBRK = @HAVE_WCSPBRK@ +HAVE_WCSRCHR = @HAVE_WCSRCHR@ +HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ +HAVE_WCSSPN = @HAVE_WCSSPN@ +HAVE_WCSSTR = @HAVE_WCSSTR@ +HAVE_WCSTOK = @HAVE_WCSTOK@ +HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ +HAVE_WCSXFRM = @HAVE_WCSXFRM@ +HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ +HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ +HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ +HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ +HAVE_WINT_T = @HAVE_WINT_T@ +HAVE_WMEMCHR = @HAVE_WMEMCHR@ +HAVE_WMEMCMP = @HAVE_WMEMCMP@ +HAVE_WMEMCPY = @HAVE_WMEMCPY@ +HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ +HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ +HAVE_WMEMSET = @HAVE_WMEMSET@ +HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ +HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ +HAVE__BOOL = @HAVE__BOOL@ +HAVE__EXIT = @HAVE__EXIT@ +IGNORE_UNUSED_LIBRARIES_CFLAGS = @IGNORE_UNUSED_LIBRARIES_CFLAGS@ +INCLUDE_NEXT = @INCLUDE_NEXT@ +INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ +INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBCOMPRESS = @LIBCOMPRESS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBMAN_EXPORT_LDFLAGS = @LIBMAN_EXPORT_LDFLAGS@ +LIBMULTITHREAD = @LIBMULTITHREAD@ +LIBOBJS = @LIBOBJS@ +LIBPMULTITHREAD = @LIBPMULTITHREAD@ +LIBPTHREAD = @LIBPTHREAD@ +LIBS = @LIBS@ +LIBSOCKET = @LIBSOCKET@ +LIBSTDTHREAD = @LIBSTDTHREAD@ +LIBTHREAD = @LIBTHREAD@ +LIBTOOL = @LIBTOOL@ +LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_GETLOGIN = @LIB_GETLOGIN@ +LIB_GETRANDOM = @LIB_GETRANDOM@ +LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ +LIB_MBRTOWC = @LIB_MBRTOWC@ +LIB_NANOSLEEP = @LIB_NANOSLEEP@ +LIB_NL_LANGINFO = @LIB_NL_LANGINFO@ +LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ +LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ +LIB_SELECT = @LIB_SELECT@ +LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ +LIMITS_H = @LIMITS_H@ +LINGUAS = @LINGUAS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ +LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ +LOCALE_FR = @LOCALE_FR@ +LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ +LOCALE_JA = @LOCALE_JA@ +LOCALE_ZH_CN = @LOCALE_ZH_CN@ +LTALLOCA = @LTALLOCA@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ +LTLIBOBJS = @LTLIBOBJS@ +LTLIBTHREAD = @LTLIBTHREAD@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANDIR_LAYOUT = @MANDIR_LAYOUT@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MAN_SUBDIRS = @MAN_SUBDIRS@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ +NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ +NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ +NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ +NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ +NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H@ +NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ +NEXT_AS_FIRST_DIRECTIVE_GLOB_H = @NEXT_AS_FIRST_DIRECTIVE_GLOB_H@ +NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ +NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ +NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ +NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ +NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ +NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ +NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ +NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ +NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ +NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H = @NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_FILE_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_FILE_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ +NEXT_AS_FIRST_DIRECTIVE_TERMIOS_H = @NEXT_AS_FIRST_DIRECTIVE_TERMIOS_H@ +NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ +NEXT_AS_FIRST_DIRECTIVE_UTIME_H = @NEXT_AS_FIRST_DIRECTIVE_UTIME_H@ +NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ +NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ +NEXT_CTYPE_H = @NEXT_CTYPE_H@ +NEXT_DIRENT_H = @NEXT_DIRENT_H@ +NEXT_ERRNO_H = @NEXT_ERRNO_H@ +NEXT_FCNTL_H = @NEXT_FCNTL_H@ +NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_FNMATCH_H = @NEXT_FNMATCH_H@ +NEXT_GETOPT_H = @NEXT_GETOPT_H@ +NEXT_GLOB_H = @NEXT_GLOB_H@ +NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ +NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ +NEXT_LIMITS_H = @NEXT_LIMITS_H@ +NEXT_LOCALE_H = @NEXT_LOCALE_H@ +NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ +NEXT_STDARG_H = @NEXT_STDARG_H@ +NEXT_STDDEF_H = @NEXT_STDDEF_H@ +NEXT_STDINT_H = @NEXT_STDINT_H@ +NEXT_STDIO_H = @NEXT_STDIO_H@ +NEXT_STDLIB_H = @NEXT_STDLIB_H@ +NEXT_STRINGS_H = @NEXT_STRINGS_H@ +NEXT_STRING_H = @NEXT_STRING_H@ +NEXT_SYSEXITS_H = @NEXT_SYSEXITS_H@ +NEXT_SYS_FILE_H = @NEXT_SYS_FILE_H@ +NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ +NEXT_SYS_RANDOM_H = @NEXT_SYS_RANDOM_H@ +NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ +NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ +NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ +NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ +NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ +NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ +NEXT_TERMIOS_H = @NEXT_TERMIOS_H@ +NEXT_TIME_H = @NEXT_TIME_H@ +NEXT_UNISTD_H = @NEXT_UNISTD_H@ +NEXT_UTIME_H = @NEXT_UTIME_H@ +NEXT_WCHAR_H = @NEXT_WCHAR_H@ +NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PO4A = @PO4A@ +POSUB = @POSUB@ +PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ +PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ +PRIPTR_PREFIX = @PRIPTR_PREFIX@ +PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ +PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ +RANLIB = @RANLIB@ +REPLACE_ACCESS = @REPLACE_ACCESS@ +REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ +REPLACE_BTOWC = @REPLACE_BTOWC@ +REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ +REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ +REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ +REPLACE_CHMOD = @REPLACE_CHMOD@ +REPLACE_CHOWN = @REPLACE_CHOWN@ +REPLACE_CLOSE = @REPLACE_CLOSE@ +REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ +REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ +REPLACE_CREAT = @REPLACE_CREAT@ +REPLACE_CTIME = @REPLACE_CTIME@ +REPLACE_DIRFD = @REPLACE_DIRFD@ +REPLACE_DPRINTF = @REPLACE_DPRINTF@ +REPLACE_DUP = @REPLACE_DUP@ +REPLACE_DUP2 = @REPLACE_DUP2@ +REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ +REPLACE_EXECL = @REPLACE_EXECL@ +REPLACE_EXECLE = @REPLACE_EXECLE@ +REPLACE_EXECLP = @REPLACE_EXECLP@ +REPLACE_EXECV = @REPLACE_EXECV@ +REPLACE_EXECVE = @REPLACE_EXECVE@ +REPLACE_EXECVP = @REPLACE_EXECVP@ +REPLACE_EXECVPE = @REPLACE_EXECVPE@ +REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ +REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ +REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ +REPLACE_FCLOSE = @REPLACE_FCLOSE@ +REPLACE_FCNTL = @REPLACE_FCNTL@ +REPLACE_FDOPEN = @REPLACE_FDOPEN@ +REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ +REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FFSLL = @REPLACE_FFSLL@ +REPLACE_FNMATCH = @REPLACE_FNMATCH@ +REPLACE_FOPEN = @REPLACE_FOPEN@ +REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ +REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREE = @REPLACE_FREE@ +REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ +REPLACE_FREOPEN = @REPLACE_FREOPEN@ +REPLACE_FSEEK = @REPLACE_FSEEK@ +REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FSTAT = @REPLACE_FSTAT@ +REPLACE_FSTATAT = @REPLACE_FSTATAT@ +REPLACE_FTELL = @REPLACE_FTELL@ +REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ +REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ +REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETDELIM = @REPLACE_GETDELIM@ +REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ +REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ +REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ +REPLACE_GETLINE = @REPLACE_GETLINE@ +REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ +REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ +REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ +REPLACE_GETRANDOM = @REPLACE_GETRANDOM@ +REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ +REPLACE_GLOB = @REPLACE_GLOB@ +REPLACE_GLOB_PATTERN_P = @REPLACE_GLOB_PATTERN_P@ +REPLACE_GMTIME = @REPLACE_GMTIME@ +REPLACE_INITSTATE = @REPLACE_INITSTATE@ +REPLACE_IOCTL = @REPLACE_IOCTL@ +REPLACE_ISATTY = @REPLACE_ISATTY@ +REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ +REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ +REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ +REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ +REPLACE_ITOLD = @REPLACE_ITOLD@ +REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LINK = @REPLACE_LINK@ +REPLACE_LINKAT = @REPLACE_LINKAT@ +REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ +REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ +REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ +REPLACE_LSEEK = @REPLACE_LSEEK@ +REPLACE_LSTAT = @REPLACE_LSTAT@ +REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ +REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ +REPLACE_MBRLEN = @REPLACE_MBRLEN@ +REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ +REPLACE_MBSINIT = @REPLACE_MBSINIT@ +REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ +REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ +REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ +REPLACE_MBTOWC = @REPLACE_MBTOWC@ +REPLACE_MEMCHR = @REPLACE_MEMCHR@ +REPLACE_MEMMEM = @REPLACE_MEMMEM@ +REPLACE_MKDIR = @REPLACE_MKDIR@ +REPLACE_MKFIFO = @REPLACE_MKFIFO@ +REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ +REPLACE_MKNOD = @REPLACE_MKNOD@ +REPLACE_MKNODAT = @REPLACE_MKNODAT@ +REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_MKTIME = @REPLACE_MKTIME@ +REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ +REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ +REPLACE_NULL = @REPLACE_NULL@ +REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ +REPLACE_OPEN = @REPLACE_OPEN@ +REPLACE_OPENAT = @REPLACE_OPENAT@ +REPLACE_OPENDIR = @REPLACE_OPENDIR@ +REPLACE_PERROR = @REPLACE_PERROR@ +REPLACE_POPEN = @REPLACE_POPEN@ +REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ +REPLACE_PREAD = @REPLACE_PREAD@ +REPLACE_PRINTF = @REPLACE_PRINTF@ +REPLACE_PSELECT = @REPLACE_PSELECT@ +REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ +REPLACE_PTSNAME = @REPLACE_PTSNAME@ +REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ +REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_PWRITE = @REPLACE_PWRITE@ +REPLACE_QSORT_R = @REPLACE_QSORT_R@ +REPLACE_RAISE = @REPLACE_RAISE@ +REPLACE_RANDOM = @REPLACE_RANDOM@ +REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ +REPLACE_READ = @REPLACE_READ@ +REPLACE_READLINK = @REPLACE_READLINK@ +REPLACE_READLINKAT = @REPLACE_READLINKAT@ +REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ +REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ +REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ +REPLACE_REALPATH = @REPLACE_REALPATH@ +REPLACE_REMOVE = @REPLACE_REMOVE@ +REPLACE_RENAME = @REPLACE_RENAME@ +REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ +REPLACE_RMDIR = @REPLACE_RMDIR@ +REPLACE_SELECT = @REPLACE_SELECT@ +REPLACE_SETENV = @REPLACE_SETENV@ +REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ +REPLACE_SETSTATE = @REPLACE_SETSTATE@ +REPLACE_SLEEP = @REPLACE_SLEEP@ +REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ +REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STAT = @REPLACE_STAT@ +REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ +REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ +REPLACE_STPNCPY = @REPLACE_STPNCPY@ +REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ +REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ +REPLACE_STRDUP = @REPLACE_STRDUP@ +REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ +REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ +REPLACE_STRFTIME = @REPLACE_STRFTIME@ +REPLACE_STRNCAT = @REPLACE_STRNCAT@ +REPLACE_STRNDUP = @REPLACE_STRNDUP@ +REPLACE_STRNLEN = @REPLACE_STRNLEN@ +REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ +REPLACE_STRSTR = @REPLACE_STRSTR@ +REPLACE_STRTOD = @REPLACE_STRTOD@ +REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ +REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_STRTOL = @REPLACE_STRTOL@ +REPLACE_STRTOLD = @REPLACE_STRTOLD@ +REPLACE_STRTOLL = @REPLACE_STRTOLL@ +REPLACE_STRTOUL = @REPLACE_STRTOUL@ +REPLACE_STRTOULL = @REPLACE_STRTOULL@ +REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ +REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ +REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ +REPLACE_SYMLINK = @REPLACE_SYMLINK@ +REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ +REPLACE_TIMEGM = @REPLACE_TIMEGM@ +REPLACE_TMPFILE = @REPLACE_TMPFILE@ +REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ +REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ +REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ +REPLACE_TZSET = @REPLACE_TZSET@ +REPLACE_UNLINK = @REPLACE_UNLINK@ +REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ +REPLACE_UNSETENV = @REPLACE_UNSETENV@ +REPLACE_USLEEP = @REPLACE_USLEEP@ +REPLACE_UTIME = @REPLACE_UTIME@ +REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ +REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ +REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ +REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ +REPLACE_VPRINTF = @REPLACE_VPRINTF@ +REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ +REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ +REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ +REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ +REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ +REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ +REPLACE_WCSTOK = @REPLACE_WCSTOK@ +REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ +REPLACE_WCTOB = @REPLACE_WCTOB@ +REPLACE_WCTOMB = @REPLACE_WCTOMB@ +REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ +REPLACE_WRITE = @REPLACE_WRITE@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ +SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ +STDALIGN_H = @STDALIGN_H@ +STDARG_H = @STDARG_H@ +STDBOOL_H = @STDBOOL_H@ +STDDEF_H = @STDDEF_H@ +STDINT_H = @STDINT_H@ +STRIP = @STRIP@ +SYSEXITS_H = @SYSEXITS_H@ +SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ +SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ +SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ +TBL_X_FORMAT = @TBL_X_FORMAT@ +TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ +TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ +TRANS_APROPOS = @TRANS_APROPOS@ +TRANS_APROPOS_UPPER = @TRANS_APROPOS_UPPER@ +TRANS_CATMAN = @TRANS_CATMAN@ +TRANS_CATMAN_UPPER = @TRANS_CATMAN_UPPER@ +TRANS_LEXGROG = @TRANS_LEXGROG@ +TRANS_LEXGROG_UPPER = @TRANS_LEXGROG_UPPER@ +TRANS_MAN = @TRANS_MAN@ +TRANS_MANCONV = @TRANS_MANCONV@ +TRANS_MANCONV_UPPER = @TRANS_MANCONV_UPPER@ +TRANS_MANDB = @TRANS_MANDB@ +TRANS_MANDB_UPPER = @TRANS_MANDB_UPPER@ +TRANS_MANPATH = @TRANS_MANPATH@ +TRANS_MANPATH_UPPER = @TRANS_MANPATH_UPPER@ +TRANS_MAN_RECODE = @TRANS_MAN_RECODE@ +TRANS_MAN_RECODE_UPPER = @TRANS_MAN_RECODE_UPPER@ +TRANS_MAN_UPPER = @TRANS_MAN_UPPER@ +TRANS_WHATIS = @TRANS_WHATIS@ +TRANS_WHATIS_UPPER = @TRANS_WHATIS_UPPER@ +TRANS_ZSOELIM = @TRANS_ZSOELIM@ +TRANS_ZSOELIM_UPPER = @TRANS_ZSOELIM_UPPER@ +TROFF = @TROFF@ +UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ +UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ +UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ +UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ +UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ +UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ +UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ +WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ +WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ +WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ +WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ +WINT_T_SUFFIX = @WINT_T_SUFFIX@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +browser = @browser@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +bzip2 = @bzip2@ +cache_top_owner = @cache_top_owner@ +cat = @cat@ +col = @col@ +compress = @compress@ +compressor = @compressor@ +config_file = @config_file@ +config_file_basename = @config_file_basename@ +config_file_dirname = @config_file_dirname@ +datadir = @datadir@ +datarootdir = @datarootdir@ +date = @date@ +docdir = @docdir@ +dvidir = @dvidir@ +eqn = @eqn@ +exec_prefix = @exec_prefix@ +gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ +gl_LIBOBJS = @gl_LIBOBJS@ +gl_LTLIBOBJS = @gl_LTLIBOBJS@ +gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ +gltests_LIBOBJS = @gltests_LIBOBJS@ +gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ +gltests_WITNESS = @gltests_WITNESS@ +grap = @grap@ +grep = @grep@ +gzip = @gzip@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libpipeline_CFLAGS = @libpipeline_CFLAGS@ +libpipeline_LIBS = @libpipeline_LIBS@ +libseccomp_CFLAGS = @libseccomp_CFLAGS@ +libseccomp_LIBS = @libseccomp_LIBS@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lzip = @lzip@ +lzma = @lzma@ +man_mode = @man_mode@ +man_owner = @man_owner@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +neqn = @neqn@ +nroff = @nroff@ +oldincludedir = @oldincludedir@ +override_dir = @override_dir@ +pager = @pager@ +pdfdir = @pdfdir@ +pic = @pic@ +preconv = @preconv@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +refer = @refer@ +roff_version = @roff_version@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sections = @sections@ +sharedstatedir = @sharedstatedir@ +snapdir = @snapdir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +systemdsystemunitdir = @systemdsystemunitdir@ +systemdtmpfilesdir = @systemdtmpfilesdir@ +target_alias = @target_alias@ +tbl = @tbl@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +tr = @tr@ +troff = @troff@ +troff_as_troff_input = @troff_as_troff_input@ +troff_is_groff = @troff_is_groff@ +vgrind = @vgrind@ +xz = @xz@ +zstd = @zstd@ +@HAVE_GNULIB_PO_TRUE@GNULIB_PO = gl/po +SUBDIRS = docs gl/lib $(GNULIB_PO) init lib libdb src man manual po tools +dist_noinst_DATA = FAQ README.md +noinst_HEADERS = include/manconfig.h + +# These macro files are imported by gnulib-tool, but at present not used. We +# include them in the distribution anyway for maximum consistency. +EXTRA_DIST = .gitignore ChangeLog-2013 bootstrap bootstrap.conf \ + patches/argp-domain.patch gl/m4/glibc2.m4 gl/m4/intdiv0.m4 \ + gl/m4/intl.m4 gl/m4/intldir.m4 gl/m4/intmax.m4 \ + gl/m4/inttypes-pri.m4 gl/m4/lcmessage.m4 gl/m4/math_h.m4 \ + gl/m4/printf-posix.m4 gl/m4/sockpfaf.m4 gl/m4/uintmax_t.m4 \ + gl/m4/visibility.m4 + +# Installing in --enable-setuid mode (the default) requires root; disable +# this so that distcheck can be run as non-root. +# The defaults for systemdsystemunitdir and systemdtmpfilesdir are +# intentionally not prefix-sensitive, but we need to adjust them in order +# for distcheck to pass. +AM_DISTCHECK_CONFIGURE_FLAGS = \ + --disable-setuid \ + --with-systemdsystemunitdir=\$${prefix}/lib/systemd/system \ + --with-systemdtmpfilesdir=\$${prefix}/lib/tmpfiles.d + + +# We deliberately leave the configuration file in place on uninstall, since +# it may contain local customisations. +distuninstallcheck_listfiles = \ + find . -type f -print | grep -v 'etc/man_db\.conf' + + +# Note that autopoint installs into the first directory here. Yes, this +# means that it installs into gl/m4, so we always run gnulib-tool after +# autopoint, at least for now. See +# https://lists.gnu.org/archive/html/bug-gnulib/2009-03/msg00154.html and +# thread. +ACLOCAL_AMFLAGS = -I gl/m4 -I m4 +gen_start_date = 2013-12-09 00:52 +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz + $(am__post_remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__post_remove_distdir) + +dist-zstd: distdir + tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst + $(am__post_remove_distdir) + +dist-tarZ: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__post_remove_distdir) + +dist-shar: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz + $(am__post_remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__post_remove_distdir) + +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + *.tar.zst*) \ + zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ + esac + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=../.. --prefix="$$dc_install_base" \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__post_remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile $(DATA) $(HEADERS) config.h +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr \ + distclean-libtool distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) all install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-cscope clean-generic \ + clean-libtool cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \ + dist-tarZ dist-xz dist-zip dist-zstd distcheck distclean \ + distclean-generic distclean-hdr distclean-libtool \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +dist-hook: gen-ChangeLog +.PHONY: gen-ChangeLog +gen-ChangeLog: + $(AM_V_GEN)if test -d .git; then \ + $(top_srcdir)/build-aux/gitlog-to-changelog \ + --format='%s%n%n%b%n' \ + --since="$(gen_start_date)" > $(distdir)/cl-t; \ + rm -f $(distdir)/ChangeLog; \ + mv $(distdir)/cl-t $(distdir)/ChangeLog; \ + fi + +update-po: + $(MAKE) -C po update-po + $(MAKE) -C man/po4a update-po + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/NEWS.md b/NEWS.md new file mode 100644 index 0000000..4547a5d --- /dev/null +++ b/NEWS.md @@ -0,0 +1,1770 @@ +man-db 2.11.2 (8 January 2023) +============================== + +Fixes: + + * Fix compile and test failures when `troff` is not `groff`. + * Fix segfault in typical uses of `man` when `nroff` is not installed. + * Fix crash in `mandb` when processing stray cats. + +Improvements: + + * Check for stray cats even if no manual pages in a given manpath were + changed. + +man-db 2.11.1 (15 November 2022) +================================ + +Build: + + * Transfer Git repository to https://gitlab.com/man-db/man-db. + +Fixes: + + * SECURITY: Replace `$` characters in page names with `?` when constructing + `less` prompts. + * Silence error message when processing an empty manual page hierarchy with + a nonexistent cache directory. + * `man(1)` now sorts whatis references below real pages, even if the whatis + references are from a section with higher priority. + +Improvements: + + * Add section `3type` to the default section list just after `2`. This is + used by the Linux man-pages package. + * Recognize more Hungarian translations of the `NAME` section. + +man-db 2.11.0 (15 October 2022) +=============================== + +Fixes: + + * `mandb` now correctly records filters in the database if it uses cached + whatis information. + * Upgrade Gnulib, fixing syntax error on glibc systems with GCC 11. + * The `CATWIDTH` configuration file directive now overrides `MINCATWIDTH` + and `MAXCATWIDTH`. + * Database entries for links were often incorrectly stored as if they were + entries for the ultimate source of the page. They are now stored with + the correct type. + * Store links in the database using the section and extension of the link + rather than of the ultimate source file. + * Consider pages for adding to the database even if they seem to already + exist; this performance optimization is no longer needed due to caching, + and it produced inconsistent results in some unusual cases. + * `man` now runs any required preprocessors in the same order that `groff` + does, rather than trusting the order of filters in a page's preprocessor + string. + * Fix building on MinGW. (I haven't been able to test this; help from + MinGW experts would be welcome.) + +Improvements: + + * Add more recognized case variants for localized versions of the `NAME` + section. + * Maintain multi keys in sorted order, improving database reproducibility. + * Pick a more consistent name for the target of a whatis entry in the + database. + * Extend rules for when to replace one database entry with another, + producing more stable behaviour. + * Fully reorganize databases after writing them, allowing the reproduction + of bitwise-identical databases regardless of scan order (at least with + GDBM). + +man-db 2.10.2 (17 March 2022) +============================= + +Build: + + * Regenerating man-db's build system now explicitly requires Automake >= + 1.14. (This was already the case since at least man-db 2.10.0, but was + previously undocumented.) + +Fixes: + + * Make `man -H` sleep for a few seconds after starting the browser, since + it may background itself before loading files (Dr. Werner Fink). + * If an override directory is configured using `--with-override-dir`, it is + now applied more consistently when building the manpath, and whether a + page was found in an override directory is considered when sorting + candidates for display (Mihail Konev). + +Improvements: + + * Make the man-db manual build reproducible. + * Add some hardening options to the `systemd` service. + * `configure` now has a `--with-snapdir` option, for use on systems where + `snapd` is configured to use a directory other than `/snap`. + +man-db 2.10.1 (10 February 2022) +================================ + +Fixes: + + * Fix occasional `mandb-symlink-target-timestamp` test failure. + * Fix inadvertent reliance on a GCC extension that caused build failures + with Clang. + * Fix building without `iconv`. + * Fix building on Cygwin. + +man-db 2.10.0 (4 February 2022) +=============================== + +Build: + + * Move Git repository to GitLab (https://gitlab.com/cjwatson/man-db). + * Building man-db now requires a C99 compiler. + * Building man-db now requires Autoconf >= 2.64. + +Fixes: + + * Manpath deduplication no longer mishandles the case where another entry + in the manpath is a suffix of a candidate path to append. + * Fix potential crash in path searching if `getcwd` fails for reasons other + than running out of memory. + * Fix crash in `globbing` test tool if run with no non-option arguments. + * `lexgrog` now produces output in the user's locale. + * Downgrade "malformed .lf request" warning to a debug message and rephrase + it somewhat, since `.lf` requests can use `*roff` arithmetic expressions + and we can't reasonably parse those. + * Avoid modifying the database without changing its mtime, which had been + possible since 2.7.0 if `mandb`'s purge phase found work to do but the + main phase didn't, and which confused some backup systems into reporting + possible filesystem corruption. + * `man` no longer inadvertently modifies the `MANSECT` environment variable + before passing it on to its subprocesses. + * `mandb` now stores the mtime of link targets as the mtime of their + corresponding database entries, rather than sometimes storing the mtime + of the link instead. + * Since man-db 2.4.2, `man` has behaved as if the `-l` option was given if + a manual page argument contains a slash. Since man-db 2.5.6, this has + interacted slightly poorly with the subpage feature, emitting spurious + error messages if given multiple manual page arguments some of which + include a slash. `man` no longer emits spurious error messages in this + case. + +Improvements: + + * Reduce overhead of `MAN_DISABLE_SECCOMP=1` compared to building without + `libseccomp`. + * Document `MAN_DISABLE_SECCOMP` and `PIPELINE_DEBUG` environment variables + in `man(1)`. + * Add `man-pages(7)` reference to `man(1)`. + * Recognize Arabic and Persian translations of the `NAME` section. + * Delay the `systemd` timer using `RandomizedDelaySec`, so that multiple + containers/VMs on the same host are less prone to running `mandb` all at + the same time. + * Significantly improve `mandb(8)` and `man -K` performance in the common + case where pages are of moderate size and compressed using `zlib`: `mandb + -c` goes from 344 seconds to 10 seconds on a test system. + +man-db 2.9.4 (8 February 2021) +============================== + +Improvements: + + * Recognise Romanian translations of the NAME section. + * Treat `\[en]` (etc.) as another synonym for `\-` in NAME sections, + alongside the existing `\(en` (etc.). + +Fixes: + + * Make the `seccomp` sandbox work better with libcs such as `musl` (S. + Gilles). + * Make the `seccomp` sandbox allow `clock_gettime64` as well as + `clock_gettime` (S. Gilles). + +man-db 2.9.3 (22 June 2020) +=========================== + +Fixes: + + * Fix manual page translation infrastructure to compare `po4a` versions + with more than two components correctly. + * Avoid incorrect markup in `man(1)` with `po4a >= 0.58`. + +man-db 2.9.2 (1 June 2020) +========================== + +Fixes: + + * Fix `man -X75-12` and `man -X100-12` to set the document font size (using + `-rS12`) as well as the device (using `-TX75-12` or `-TX100-12`). + * Fix incompatibility of `man -X` and friends with the `seccomp` sandbox. + +Improvements: + + * Add a bug tracker link to man-db's own manual pages. + * Add support for `zstd`-compressed manual pages, thanks to Bernhard + Rosenkränzer. + +man-db 2.9.1 (25 February 2020) +=============================== + +Improvements: + + * Drop `fdutimens` patch for GNU/Hurd; the bug it was working around was + fixed in glibc 2.28. + * Add `MANDB_MAP` entry mapping `/snap/man` to `/var/cache/man/snap`. + +man-db 2.9.0 (23 October 2019) +============================== + +Fixes: + + * `man --recode` and `manconv` now adjust encoding declarations on the + first line of their input to refer to the new encoding. + * Fix comparison of candidate manual pages to correctly handle the case + where the language elements are the same and match the locale, but the + territory elements differ. + +Improvements: + + * Many typographical improvements to man-db's own manual pages, largely + thanks to Bjarni Ingi Gislason. + * Rewrite parts of `man(1)` to make it a more accessible introduction. + * If run with no arguments or only a section, `man` now suggests running + `man man`. + * `man` now understands the `(
)` form on its command line, + so for example `man 'chmod(2)'` is now the same as `man 2 chmod`. While + this requires more quoting, it may also be more convenient when copying + and pasting cross-references to manual pages. + * `manconv` now guesses the input encoding based on the file name if it is + not explicitly specified. + * There is a new `man-recode` program. It fulfils a purpose similar to + `man --recode`, but has an interface designed for bulk conversion and so + can be much faster when used on a large number of pages. + +Compatibility notes: + + * Remove the ability to undefine `COMP_SRC` at build-time to disable + reading compressed manual pages. This was always only a + micro-optimisation, and it wasn't worth the extra code complexity. You + can still configure without any compressors (either by not having them + available at build time, or by configuring with `--with-gzip=` etc.) to + achieve much the same practical effect, although the test suite still + requires at least `gunzip`. + +man-db 2.8.7 (26 August 2019) +============================= + +Fixes: + + * Further workarounds for ESET File Security: allow `sendmsg` when it is in + use. + * The `seccomp` sandbox now causes disallowed system calls to return + `EPERM` rather than raising `SIGSYS`, in the hope of being less + disruptive to preload hacks. + * Make `seccomp` sandbox allow `getrandom`, used by Hardened Malloc. + * `man` no longer saves cat pages if `--no-hyphenation` or + `--no-justification` is used. + * Move decompression code out of `libman`. This should really fix a link + failure using the Darwin linker (unsuccessfully attempted in 2.8.6), and + possibly on other platforms too. + * Pass the database file name around in function parameters, rather than + storing it in a global variable with an unresolved symbol from + `libmandb`. Like the previous item, this fixes a link failure using the + Darwin linker, and possibly on other platforms too. + * Return database entries in sorted order when using NDBM. (This is based + on a similar fix to the GDBM backend in man-db 2.4.2.) + +Improvements: + + * Recognise Esperanto, Tamil, and Ukrainian translations of the `NAME` + section. + +man-db 2.8.6.1 (5 August 2019) +============================== + +Fixes: + + * Fix missing memory copies in `ult_src` that caused segfaults in `mandb`. + +man-db 2.8.6 (3 August 2019) +============================ + +Fixes: + + * If more than one of `../man`, `man`, `../share/man`, and `share/man` + exist relative to a directory on `$PATH`, then all of them are now added + to the automatically-determined manpath; previously, only the first was + considered. + * Remove arbitrary limit on manpath size. + * The `systemd` database maintenance service now runs `mandb` with the + `--quiet` option, avoiding excess log messages. + * Default to `--without-systemdsystemunitdir` and + `--without-systemdtmpfilesdir` on non-Linux systems. + * Fix failure to link `libman` using the Darwin linker. + * `apropos -w` now works when given a non-lower-case pattern. + +Improvements: + + * Convert most list and hash table code to Gnulib's container types: these + are more flexible and normally more concise than home-grown equivalents. + * There is a new configure option `--disable-manual`, which causes the + man-db manual not to be built or installed. + +man-db 2.8.5 (5 January 2019) +============================= + +Build: + + * Building man-db now requires Autoconf >= 2.63 and Automake >= 1.11.2. + +Fixes: + + * Fix build with Berkeley DB. + * Fail to configure if `flex` is needed but missing. + * Fix the comment in the first line of the configuration file in the case + where `configure` was not given a `--with-config-file` option. + * Fix several resource and memory leaks. + * Fix handling of `\-` in the right-hand side of a `NAME` section. + * Work around Microsoft's proprietary "System Center Endpoint Protection" + antivirus program in the seccomp sandbox. + +Improvements: + + * Ship a `systemd` timer to perform daily database maintenance. + * Allow disabling the installation of the `systemd` `tmpfiles` snippet and + the `systemd` timer by configuring with `--with-systemdtmpfilesdir=no` + and `--with-systemdsystemunitdir=no` respectively. + +man-db 2.8.4 (27 July 2018) +=========================== + +Fixes: + + * Rely on decompressors reading from their standard input rather than + redundantly passing them the input file on their command line. This + works better with downstream AppArmor confinement of decompressors. + * Fix invalid syntax in `tmpfiles.d/man-db.conf` when configured with + `--disable-cache-owner`. + * Make `seccomp` sandbox allow `sched_getaffinity`, sometimes used by `xz`. + * Check for `mandb_nfmt` and `mandb_tfmt` in the manual page hierarchy as + documented, not in the current directory. This was broken by the + working-directory-handling changes in 2.8.3. Note that this change means + that `man -l` will never use an external formatter (which was never + documented behaviour and was surely a bad idea). + * Make `seccomp` sandbox allow some shared memory operations across the + board rather than just when ESET File Security is in use; the Astrill VPN + seems to require something similar, and there are doubtless other such + preload hacks. + * Some versions of ESET File Security call `msgget` and `msgsnd`; if this + program is in use, then allow those. + +man-db 2.8.3 (5 April 2018) +=========================== + +Fixes: + + * Make `seccomp` sandbox allow `madvise`, since that's used by `lbzip2`. + * Make `seccomp` sandbox allow `kill` and `tgkill` outright, since `groff` + uses `kill` to pass on signals to its child processes. + * Make `seccomp` sandbox allow sibling architectures on + `x86`/`x86_64`/`x32`, since people sometimes mix and match architectures + there for performance reasons. + * Fix version check in locale macro loading to tolerate `groff` release + candidates. + * `man` now only changes working directory in child processes, so never + fails due to being unable to change back to its original working + directory. + * `accessdb`, `apropos`, and `lexgrog` no longer emit spurious `gettext` + headers in their `--help` output when localised. + +man-db 2.8.2 (28 February 2018) +=============================== + +Fixes: + + * Make `seccomp` sandbox allow `kill` and `tgkill` when the signal is + directed at the current process or one of its threads; this is needed by + `xz`. + * Make `seccomp` sandbox allow `ioctl(fd, TIOCGWINSZ)`, since that's used + by `musl`. + * Work around the proprietary "ESET File Security" antivirus program in + `seccomp` sandbox: if this is in use then we need to allow some + socket-related system calls. + * Work around the `snoopy` `execve()` wrapper and logger in `seccomp` + sandbox: if this is in use then we need to allow some socket-related + system calls. + * Interpret `EFAULT` from `seccomp_load` as meaning that `seccomp` is + unavailable, since this can be returned by some versions of `qemu-user`. + +man-db 2.8.1 (9 February 2018) +============================== + +Fixes: + + * Fix `seccomp` sandbox build on Linux/POWER. + * Fix `manconv` execution under `seccomp` when `man` is installed setuid. + * Make `seccomp` sandbox allow `mremap` (used by `iconv`, for example). + +Improvements: + + * `configure` now has a `--without-libseccomp` option to disable the use of + `seccomp` even if the library is available. + +man-db 2.8.0 (4 February 2018) +============================== + +Fixes: + + * Fix locale macro loading for Chinese to load the macro file corresponding + to just the language part of the user's locale. + * Honour `--enable-cache-owner` in generated `systemd` `tmpfiles` snippet + rather than hardcoding `man`. + * If `man` adds prefixes to a page to handle such things as disabling + hyphenation, then take account of those when looking for a preprocessor + line at the start of the page. + * Fix a segfault in `man -D --help`. + +Improvements: + + * Treat `\(en` as another synonym for `\-` in NAME sections. + * Confine most subprocesses that handle untrusted data using `seccomp`. + This mainly deals with subprocesses that perform encoding conversions, + (de)compressors, `groff` programs, and a few other odds and ends. + `groff` programs use a slightly more permissive filter since they need to + create temporary files, so additional path-based confinement (e.g. using + AppArmor) is still useful. + + If this goes wrong, then `MAN_DISABLE_SECCOMP=1` can be set in the + environment to disable it, but please report any such problem as a bug. + + * `man` now falls back to `cat` if the compile-time default pager is not + executable. + +man-db 2.7.6.1 (12 December 2016) +================================= + +Fixes: + + * Don't `chmod` `CACHEDIR.TAG` if it doesn't exist. + * Correct installation of Swedish manual pages. + +man-db 2.7.6 (11 December 2016) +=============================== + +Fixes: + + * Fix build warnings with Perl 5.22. + * Document that `man -K` searches page source, not rendered text. + * Fix a long-standing bug in man-db's internal cleanup stack mechanism: if + a cleanup function was pushed unexpectedly between a push/pop pair, then + popping the stack would remove the wrong cleanup function and chaos could + ensue. Avoid this by being more precise about which cleanup function + should be popped. + * SECURITY: Eliminate dangerous setgid-root directories. In the default + configuration, cache files and directories are now owned by `man:man` + rather than `man:root`; `man` and `mandb` are now setgid `man` as well as + setuid `man` (except in the `--disable-setuid` case). This is a much + simpler and safer solution to the original problem that caused my + predecessor to make directories setgid `root`, and doesn't introduce any + interesting new privilege since the `man` group's only real purpose is to + be the `man` user's primary group and nothing in cache directories is + group-writeable. + + Maintainers of distribution packages should take care to review their + installation rules in light of this change. + + As far as I know this has no CVE ID, but it is described + [here](https://www.halfdog.net/Security/2015/SetgidDirectoryPrivilegeEscalation/). + + * Fix manual page translation infrastructure to render tables correctly + with `po4a` 0.47. + +Improvements: + + * `man` now understands the `.
` form on its command line, so + for example `man chmod.2` is now the same as `man 2 chmod`. (Contributed + by Mihail Konev.) + * The owner of cache files is now configured separately from whether `man` + and `mandb` are installed setuid, using the `--enable-cache-owner[=USER]` + option. + +man-db 2.7.5 (6 November 2015) +============================== + +Fixes: + + * Adjust line number when inserting extra roff input. + * Disable roff input insertion with `--recode`. + * Build text manual with `LC_ALL=C`, to help reproducible builds. + +man-db 2.7.4 (8 October 2015) +============================= + +Fixes: + + * Fix crash when eliminating manpath duplicates if canonicalising a manpath + entry fails. + * Fix a build system bug that sometimes caused substitutions in manual + pages to be left unexpanded. + * `man` exits with status 3 rather than 0 if its formatting command exits + non-zero, even if its display command exits zero. + * `man` honours `MANWIDTH` in conjunction with the `-Z` option, to make it + easier to diagnose warnings in manual pages. + +man-db 2.7.3 (9 September 2015) +=============================== + +Fixes: + + * Tools that consider the terminal line length now try the `TIOCGWINSZ` + ioctl on `/dev/tty` as well as standard input/output. + * `mandb` does a better job of coping with index files having incorrect + ownership. + * Squeeze blank lines internally rather than relying on the pager + supporting the `-s` option. + * Fix use-after-free in `ult_src`. + * Fix crash when running from a missing and unreadable current directory, + such as an orphaned subdirectory of `/proc`. + * Restore the ability to use `man -a` noninteractively. + +man-db 2.7.2 (16 August 2015) +============================= + +Fixes: + + * `man -k` and `man -f` now pass any provided `-l` option through to the + underlying `apropos`/`whatis` programs. + * `apropos` and `whatis` no longer truncate names if long output was + requested. + * The database handle is no longer stored in a global variable, fixing a + class of possible double-close bugs. + +man-db 2.7.1 (7 November 2014) +============================== + +Fixes: + + * Various portability fixes for Solaris, contributed by Peter Bray. + * `man` now runs correctly when its current working directory has been + deleted. (As a result of this fix, man-db now requires `libpipeline >= + 1.4.0`.) + * `man -a` sends its prompts to `/dev/tty` rather than to `stderr`, and + likewise reads replies from `/dev/tty` rather than from `stdin`. + +man-db 2.7.0.2 (28 September 2014) +================================== + +Fixes: + + * Be more careful to avoid using or double-closing closed database handles. + Fixes test suite failures on some systems. + * Patch the `fdutimens` function imported from Gnulib to work around a + libc bug in GNU/Hurd. + +man-db 2.7.0.1 (24 September 2014) +================================== + +Fixes: + + * Fix test suite in the case where the system supports high-precision + timestamps but the file system containing the build directory does not. + +man-db 2.7.0 (22 September 2014) +================================ + +Upgrading from previous versions: + + * For the first time since version 2.4.0, the database format has changed + slightly, so you will need to run `mandb --create` after installing the + new version to rebuild your databases from scratch. (Distribution + packages should do this automatically for system databases.) + +Fixes: + + * `lexgrog` now filters terminal escape sequences out of cat pages before + trying to parse them. + * Tools that consider the terminal line length now prioritise the `COLUMNS` + environment variable above the `TIOCGWINSZ` ioctl. + * Manpath elements are no longer canonicalised before being inserted into + the search path; this caused the use of incorrect catpaths in some cases. + This was broken by the `LANGUAGE`-handling fixes in 2.5.4. + +Improvements: + + * Ship a `systemd` `tmpfiles` snippet to clean up old cat files after a + week. + * The modification time of manual databases is now simply stored in the + mtime of the database files themselves, rather than using a special row. + This makes databases reproducible between otherwise-identical + installations, as long as the underlying database has predictable + behaviour. As a bonus, man-db now uses high-precision timestamps to + determine whether it needs to update databases. + * Timestamps of manual pages are also now stored in the database with high + precision and compared accordingly. + * Files are now ordered by first physical extent before reading them, for + substantial performance improvements in operations such as `mandb` and + `man -K`. + * `man -H` shows a better error message if no browser is configured. + * `zsoelim` is now installed in `$pkglibexecdir`, to avoid clashes with + other packages. + +man-db 2.6.7.1 (10 April 2014) +============================== + +Fixes: + + * Remove test suite dependency on `realpath(1)`. + +man-db 2.6.7 (10 April 2014) +============================ + +Fixes: + + * Fix a test failure when configured with `--enable-undoc`. + * Run the pager in `man`'s original working directory rather than in the + manual hierarchy. (As a result of this fix, man-db now requires + libpipeline >= 1.3.0.) + * `mandb` only creates a cache directory tag if the catpath is different + from the manpath, since it should only be created in directories that + consist entirely of cached information. + +man-db 2.6.6 (23 January 2014) +============================== + +man-db is now revision-controlled using git (https://git-scm.com/). See +`docs/HACKING` for the location of the repository. + +Fixes: + + * `apropos`'s `--and` option now works again; it was broken by the + optimisations in 2.6.2. + * Restore compatibility with Automake 1.10. + * Improve support for translation of common elements of help messages. + * Don't issue error messages when the database refers to a page that no + longer exists. + * Pass macro and hyphenation language tags to `groff` again (broken in + 2.6.5). + +Improvements: + + * `./configure --with-override-dir=OVERRIDE` arranges to look for manual + pages in `DIR/OVERRIDE` before each path element `DIR`. + +man-db 2.6.5 (27 June 2013) +=========================== + +Fixes: + + * `man`'s `--warnings` option works again on systems with versions of + `groff` that support it (broken in 2.6.4). + * `man` automatically falls back to `C.UTF-8` and then `en_US.UTF-8` if + trying to find a UTF-8 locale on a system without + `/usr/share/i18n/SUPPORTED`. + +man-db 2.6.4 (23 June 2013) +=========================== + +Fixes: + + * `man(1)` and `catman(8)` now document the default section list set at + configure time. + * Build fixes for Automake 1.13. + * man-db 2.6.0 arranged to search the full manpath when expanding `.so` + directives in manual pages (so that `.so name.1` works as well as `.so + man1/name.1`), but this incorrectly did not take effect for manual pages + that consist only of a `.so` directive. This is now fixed. + +Improvements: + + * The `MANLESS` environment variable is now treated as if it were a default + value for the `-r` option to `man`: occurrences of the text `$MAN_PN` are + expanded, and explicitly using the `-r` option overrides the default. + * The (unfortunately still hardcoded) maximum length for paths to manual + page hierarchies in the configuration file is now 511 characters rather + than 49. + * `MANPATH` entries now undergo `glob(7)`-style wildcard expansion, + allowing entries such as `/opt/*/man`. + +man-db 2.6.3 (17 September 2012) +================================ + +Fixes: + + * Build fixes for glibc 2.16 and Automake 1.12. + +man-db 2.6.2 (18 June 2012) +=========================== + +Fixes: + + * `apropos` prints an error message and returns non-zero when it finds no + matches. (Regression introduced in 2.5.1.) + * The presence of a 64-bit GDBM database on the manpath no longer causes a + 32-bit `man` process to exit with a fatal error. + +Improvements: + + * `apropos` is much faster when run with many arguments. + * `whatis` may be given the full path to an executable as an argument, in + which case it will look up the base name of that executable in the + appropriate parts of the manpath. + +man-db 2.6.1 (14 February 2012) +=============================== + +Fixes: + + * `--with-db=db*` and `--with-db=ndbm` compile again. + * Translated manual pages are no longer displayed starting with a spurious + blank line. + * `straycats` tries to ensure that `col` is invoked with `LC_CTYPE` set to + a UTF-8 locale. + * Fix double-free in `mandb` when encountering a symlink outside the manual + hierarchy, thanks to Peter Schiffer. + +Improvements: + + * `mandb` creates a cache directory tag, per the [Cache Directory Tagging + Standard](http://www.brynosaurus.com/cachedir/). + * Add support for Lzip-compressed manual pages, thanks to Matias A. Fonzo. + * Running `man -w` (with a new `--path` alias) without a name now prints + the manpath, for compatibility with other `man` implementations. The + `vim` viewdoc plugin makes use of this. + +man-db 2.6.0.2 (13 April 2011) +============================== + +Fixes: + + * Fix a segfault when scanning links to empty pages. + * Once we've seen at least one record in a page's `NAME` section, ignore + any further records that don't include a `whatis` description, as they + tend to be noise. + +man-db 2.6.0.1 (10 April 2011) +============================== + +Fixes: + + * Ensure that the target of a symlink or `.so` chain is always recorded as + a real page. + * Read a user-specified configuration file even if `HOME` is unset. + +man-db 2.6.0 (9 April 2011) +=========================== + +Fixes: + + * Fix build with versions of GNU `ld` that default to + `--no-copy-dt-needed-entries`. + * Fix failure to display manual pages in some encodings when installed + setuid. + * Wrap long table cells in `man(1)`, fixing test failures with `groff` + 1.21. + * If an explicit section is passed to `man`, then pages that match that + section exactly will be preferred over pages that only have that section + as a prefix. + * Fix a segfault when `man -K` tries to display certain pages. + * Fix a segfault in some situations when processes are killed by `SIGHUP`, + `SIGINT`, or `SIGTERM`. + +Improvements: + + * As promised in the release notes for man-db 2.5.8, man-db no longer ships + its own copy of [libpipeline](https://nongnu.org/libpipeline/). You must + build and install that library separately. + * Search the full manpath when expanding `.so` directives in manual pages. + As part of this, `.so name.1` should now work as well as `.so + man1/name.1`. + * `lexgrog` handles roff named glyphs and `perldoc` strings in `NAME` + sections. + * `man` no longer starts a pager if standard output is not a tty. + * The `-s` option to `whatis` and `apropos` now takes a colon- or + comma-separated list of sections, similar to `man -S`. + * `mandb` error output is neater when `stderr` is not a terminal. + * Add basic support for the implementation of `nroff`/`troff` in the + Heirloom Documentation Tools. Title lengths are not properly set as yet, + and many features are untested. + * `mandb` removes `cat*` and NLS subdirectories of `cat` directories whose + corresponding `man` directories no longer exist. + * `mandb` forces `SIGPIPE` back to its default disposition on startup, to + avoid noisy output in case it was started in a context where `SIGPIPE` + was ignored. + * `SECTION` entries in a user configuration file now override those in the + system configuration file, rather than appending to them. + * The default `less` prompt now includes "(press h for help or q to quit)" + to help novices find their way around. + * man-db may now be built to use Berkeley DB version 5 (`--with-db=db5`). + +man-db 2.5.9 (17 November 2010) +=============================== + +Fixes: + + * Fix test failures on some systems. A change made in 2.5.8 was overly + sensitive to directory ordering. + * Configuring with `--disable-nls` works again. + +man-db 2.5.8 (15 November 2010) +=============================== + +Fixes: + + * Fix assertion failure on `man -l` with an uncompressed page and any of + `--no-hyphenation`, `--no-justification`, or a non-English page. + * 2.5.7 introduced a regression when running `catman` in some locales, most + notably in the C locale: while converting the output to UTF-8, `iconv` + was run after the compressor rather than before it. This release fixes + that. + +Improvements: + + * Add support for XZ-compressed manual pages, thanks to Darren Salt. + * Try underscore-separated subpages as well as hyphen-separated ones, + thanks to Tanguy Ortolo. + * Build `libman` and `libmandb` as shared libraries, reducing installed + footprint by about 200K (at least on GNU/Linux). + * `libintl` is no longer shipped with man-db. If your system does not + already have GNU `libintl` installed and you want man-db's messages to be + translated, then please install [GNU + libintl](https://www.gnu.org/software/gettext/) separately. + * Warnings about unrecognised locales are now suppressed if the + `DPKG_RUNNING_VERSION` environment variable is set (i.e. man-db is + running within a Debian package's maintainer script), since the system + locales are often out of sync with the C library in that context. Thanks + to the Debian Perl maintainers for the idea. + * Allow building with an external + [libpipeline](https://nongnu.org/libpipeline/), which has been split out + from man-db. This is a transitional measure: a future version of man-db + will stop shipping its own copy of `libpipeline`. + * `mandb` should no longer repeatedly rescan manual page hierarchies when a + `whatis` entry turns into a broken link. + +man-db 2.5.7 (16 February 2010) +=============================== + +Fixes: + + * If a subprocess exits before `man` manages to read all the output from + it, it now drains the output file descriptor rather than immediately + discarding it. + * If `/usr/share/i18n/SUPPORTED` is available, `man` attempts to use it to + ensure that `LC_CTYPE` is set to an appropriate locale for the selected + character set when invoking `col`. This fixes `LANG=C man -E UTF-8`, as + used by lintian. + * Don't run tests if cross-compiling. + * Fix possible `mandb` crash when `MAN_MUST_CREATE` is unset. + +Improvements: + + * `man` can now tell `nroff` to disable justification if the + `--no-justification` option is used. + * If the full path to an executable is given as an argument, `man` will try + looking up the corresponding manual page in the appropriate part of the + manpath, rather than just trying to format the text of the executable as + a manual page. + * In the GNU manual hierarchy layout, search `man` directories as + well as just `man` (e.g. `/usr/share/man/man3p` as well as + `/usr/share/man/man3`). + * By request, `man` now prefers getting a page from the best manual section + over getting a page in the correct language. + * All programs now support a `MAN_DEBUG` environment variable which can be + used in place of the `-d`/`--debug` option. This is useful in some + situations where a program is being called deep in a process tree. + * man-db now builds with heirloom-doctools, thanks to Diego Pettenò of + Gentoo. + * Add support for emulating `pipe()` with `socketpair()`, which is faster + on some systems; thanks to Werner Fink of SUSE. + * Cat pages are now always saved in UTF-8, and converted to the proper + encoding at display time, which means that cat pages can now be saved + regardless of locale. Note that a consequence of this is that cat pages + now include formatting information (e.g. overstriking) and need to be + run through `col(1)` before display. + +man-db 2.5.6 (26 August 2009) +============================= + +Fixes: + + * Exact-section database lookups were incorrectly returning all database + entries whose section names were prefixes of the requested section name. + In some cases this could confuse `mandb` into never believing that the + database was up to date. + * Fix handling of pages with comma-separated names ("foo, bar, baz") in + their `NAME` sections, broken by a change in 2.5.0 (!) to ignore manual + page names containing spaces. + * Fixed a buffer overflow in the pipeline library's line-reading functions. + I don't believe this to be exploitable: at worst we might believe that + there's some garbage at the end of manual pages (whose contents are + untrusted anyway) and this bug typically resulted in a failed assertion + the next time anything tried to read a line. + * Plugged two substantial memory leaks in the pipeline library. + * `whatis` and `apropos` only display any given manual page, or pointers to + it, once. + * `man` now sets `less(1)`'s environment up correctly for manual pages + encoded in CP1251. + * `manconv` no longer confuses situations such as "this UTF-8 character is + not representable in the target encoding" with "this text is not in + UTF-8". + +Improvements: + + * The default configuration file now includes section 0, used on some + systems to document C library header files. + * `make check` now passes in the presence of a UTF-8-aware `col`, such as + that in util-linux-ng. + * The `man -K` option is now supported to search the full text of all + manual pages. This was inspired by a similar option in the other `man` + package (currently at version 1.6f) currently maintained by Federico + Lucifredi and formerly by Andries Brouwer, but I took advantage of + man-db's pipeline library to implement it entirely in-process, without + having to start a separate `grep` process for every manual page. In my + tests with fairly typical searches across variously all manual pages or + just one section, man-db's implementation ran between 3 and 10 times + faster. + * Database directories are now only created when there are corresponding + manual page directories, not just because they're mentioned in the + configuration file. + * By default, `man` will now try to interpret pairs of manual page names + given on the command line as equivalent to a single manual page name + containing a hyphen (e.g. `man foo bar` => `foo-bar(1)`). This supports + the common pattern of programs that implement a number of subcommands, + allowing them to provide manual pages for each that can be accessed using + similar syntax as would be used to invoke the subcommands themselves. + Suggested by H. Peter Anvin, Federico Lucifredi, and others on the git + mailing list. + * The build process is now quieter by default. Use `./configure + --disable-silent-rules` or `make V=0` if you don't like this or your + `make(1)` doesn't support the non-standard extension required. + * `make install` now installs the manual. + * `manconv` understands a wider range of Emacs-style coding tags. + * Recommendations to change `MAN_DB_CREATES`, `MAN_DB_UPDATES`, and + `MAN_CATS` `#define` options in `manconfig.h` have been replaced by new + `configure` options `--enable-automatic-create`, + `--disable-automatic-update`, and `--disable-cats` respectively. Note + that automatic user database creation is now off by default, as it is + often too slow for the usefulness it adds; use + `--enable-automatic-create` to enable it. + +man-db 2.5.5 (14 March 2009) +============================ + +Fixes: + + * Pages that declare a non-default encoding in their preprocessor lines are + now handled correctly. + * Fix an uninitialised variable when sorting manual page candidates that + could lead to excessive memory allocation and possible crashes. + +Improvements: + + * man-db's `make check` now tests that all its own manual pages format + without errors or warnings from `groff`, to ensure a better-quality + release. + +man-db 2.5.4 (24 February 2009) +=============================== + +Fixes: + + * Build fixes for systems without GNU Make, and for systems without + `gettext`; this successfully covers at least FreeBSD. + * The `distclean` target now works if `po4a` isn't installed. + * Exit as soon as possible if database writes return `ENOSPC`. + * `lexgrog` now stops on any unrecognised roff request, rather than + continuing and often littering the database with garbage. + * `man` no longer requires both standard input and standard output to be + terminals in order to use the terminal line length. The line length from + standard output is preferred if available. + * The manpath was built completely wrongly when multiple entries were + present in `LANGUAGE`: duplicates were handled strangely, and languages + were effectively iterated in reverse order. It should be rather more + sensible now. + +Improvements: + + * The `MAN_KEEP_STDERR` environment variable can now be used to override + `man`'s default of discarding `stderr` when `stdout` is a terminal. + * Handling of terminal widths for cat pages is now configurable, using the + `MINCATWIDTH`, `MAXCATWIDTH`, and `CATWIDTH` configuration file + directives. + * `man -a` now detects duplicate manual page candidates more reliably, and + sorts them better. + * Belarusian, Estonian, Greek, Latvian, Lithuanian, Macedonian, Romanian, + Slovenian, and Ukrainian pages are now supported. + * `man` can now search for pages using regular expressions (with `--regex`) + or shell wildcards (with `--wildcard`). By default this searches both + page names and descriptions, like `apropos`, but if the `--names-only` + option is used then it searches page names only, like `whatis`. + * `man` can now tell `nroff` to disable hyphenation if the + `--no-hyphenation` option is used. + * man-db already searched for manual pages in `../man` and `man` + directories relative to each `$PATH` component; it now searches in + `../share/man` and `share/man` directories too. + * Groff 1.20 was recently released, including the `preconv` preprocessor. + Although man-db has supported `preconv` to some extent since 2.4.4, + man-db's `configure` now detects its presence and infers that `groff` + supports Unicode input using it; `man` also now takes slightly better + advantage of `preconv` than before. + * Per-locale `groff` macros are now loaded if possible, allowing us to take + advantage of such things as localised versions of predefined strings and + language-aware hyphenation. This only works with Groff 1.20.2 or better + (not yet released), since earlier versions did not allow us to suppress + warnings in the event that the appropriate macro file is not available. + +man-db 2.5.3 (17 November 2008) +=============================== + +Fixes: + + * Cleaned up a number of possible crashes, memory leaks, and missing error + checks found by the Coverity Scan project. + * Fix build if `MAN_CATS` is undefined. + * If the `LINGUAS` environment variable is set while running `configure`, + it now controls building and installation of localised manual pages as + well as program translations. + * The `LANGUAGE` environment variable is now tokenised properly, rather + than only taking the first two characters of each element. + * Fix build if `--disable-nls` is used or `iconv` is not available. + * `man` now correctly propagates the exit code of `whatis` or `apropos` + when called with the `-f` or `-k` option respectively. + +Improvements: + + * A number of inconsistencies and readability problems with man-db's own + manual pages have been cleaned up, thanks mainly to Yuri Kozlov. + * Reduce the number of warnings emitted when using an unrecognised locale. + * `manconv` and `zsoelim` are now called internally rather than by + executing external programs, to improve performance. + * man-db now uses GDBM (`--with-db=gdbm`) in preference to Berkeley DB + (`--with-db=db` or `--with-db=dbN` where `N` is 1, 2, 3, or 4) by + default, since hardware improvements have rendered Berkeley DB's speed + advantages negligible for our purposes and the relatively frequent + `SONAME` and on-disk format changes are not worth the hassle. + Distributors should note that if they follow this change then they will + need to arrange for databases to be rebuilt on upgrade to this version. + * Manual pages may now be compressed with LZMA (although this is probably + only worth it for very large pages). + * Duplicate manual page hierarchies due to symlinks (e.g. `/usr/man` -> + `/usr/share/man`) are detected and removed from the search order. + * A locale modifier (e.g. `@latin`) in a directory name must now match the + locale if the former is set, in addition to the language and territory. + * Bare `.so` includes (e.g. `.so foo.1` rather than `.so man1/foo.1`) now + work, although only within the same manual page hierarchy for now. + +man-db 2.5.2 (5 May 2008) +========================= + +Fixes: + + * `man -H` (without a browser argument) was completely broken in 2.5.1 and + is now fixed. + * `man` no longer breaks in Japanese locales when using `less` as a pager. + +Improvements: + + * The `--encoding` option to `man` can now take a true character encoding + rather than a `*roff` device; the latter was an unreliable, inflexible, + and awkward way to select an output encoding. The old semantics are + still supported for backward compatibility. + * Whatis parsing stops at `.ie` or `.if` conditionals. + * CJK locale specifications where the codeset component is equivalent to + but not stringwise-identical to UTF-8 (e.g. `zh_CN.utf8`) are handled + better. + * `man(1)`'s `OPTIONS` section is ordered more comprehensibly. + * `apropos`, `lexgrog`, `man`, `mandb`, and `whatis` ignore encoding + conversion errors for the last possible encoding of the source page. + This helps, for example, with pages including misencoded non-ASCII names + of authors; it usually seems better to allow these pages to pass with + small errors than to break them entirely. + +man-db 2.5.1 (28 January 2008) +============================== + +Fixes: + + * The manual is now built automatically, avoiding some ordering problems on + `make distclean`. + * Manual pages are converted to the proper input encoding for `troff` + output as well as `nroff` output. + * The `-t`, `-T`, `-X`, and `-Z` options to `man` work again; in 2.5.0, + they read input from `stdin` rather than from the manual page. + * `apropos` and `whatis` no longer segfault when given an explicit locale + using `-L`. + * `man` now understands that `groff`'s `ascii` device takes ASCII input, + not ISO-8859-1. + * `man` no longer discards `stderr` when writing to a file or a pipe; this + was broken by an overenthusiastic change in 2.5.0. + * `manconv` now falls back to the next encoding in its list if any + characters in an entire 64KB block fail to decode using the current + encoding, as was originally intended. + * `manconv` is more careful about extracting `coding:` directives from + manual pages. + * Ctrl-C and Ctrl-\ now work again at the prompt issued by `man -a`. + +Improvements: + + * There is a new `--with-sections` `configure` option to change the default + value of `SECTION` in the configuration file. + * Automake is now used to generate Makefiles. Among other things, this + fixes `VPATH` builds and some bugs in dependency generation, and should + allow building with non-GNU versions of make. + * man-db now uses the Gnulib portability library, allowing the removal of + earlier haphazard portability code. While this results in a somewhat + larger source distribution, it makes man-db easier to maintain and should + make it easier to build on systems to which the maintainer does not have + access. + * In the process of switching to Gnulib, the last vestiges of pre-C89 + support have been removed; they were documented to be broken anyway. + * If the `MANROFFOPT` environment variable is set, `man` now appends its + value to the `*roff` command line. + * `man` now accepts a `--recode` option to output a source manual page + converted to a specified encoding. + * For compatibility with System V, `man` accepts `-s` as an alias for `-S`, + and permits sections to be comma-separated as well as colon-separated. + * All programs, except the obsolete `wrapper`, now accept a `--debug` + option. (`accessdb`, `lexgrog`, and `zsoelim` were lacking it.) + * `man` now accepts a `--warnings` option to enable `groff` warnings. + +man-db 2.5.0 (7 October 2007) +============================= + +Fixes: + + * `mandb --quiet` now suppresses several more warnings. + * The output of `apropos` no longer includes duplicates when multiple + search terms are used. + +Improvements: + + * Databases are now created for non-English manual hierarchies. All + database entries should be encoded in UTF-8; man-db converts from the + character set of the manual hierarchy and to the character set specified + in the user's locale as necessary. + * Per-locale directory handling has been improved. Directories such as + `fr.UTF-8` may be used for occasions when it is appropriate to specify + the character set but not the country, and so a full locale name is + inconvenient. + * There is a new `manconv` program which can try multiple possible + encodings for a file, thus allowing UTF-8 manual pages to be installed in + any directory even without an explicit encoding declaration. + * A decompression library is now in place. This allows man-db to use + `zlib` to decompress gzipped files, and allows most of its uses of + temporary files to be removed. The only remaining exceptions are cat + file creation (which uses a temporary file in the cat tree rather than in + `/tmp`) and viewing HTML manual pages (which uses a temporary directory). + Otherwise, man-db should now work fine even with a read-only `/tmp` + during system recovery. + * Cat pages are now saved in the background while the pager is active, so + `man` will only need to block afterwards if the pager is exited very + quickly. + * `--with-*` options are now available at `configure` time for most of the + auxiliary program locations that you might want to override. + * `man` now supports the `MANPAGER` environment variable, overriding + `PAGER`. + * `apropos`/`whatis` output is now truncated to the terminal width by + default. As with `man`, this may be overridden using the `MANWIDTH` + environment variable. + * `lexgrog` now ignores alleged manual page names containing spaces, as + these usually indicate parsing errors or ill-formed `NAME` sections and + they clutter up `apropos` output badly. I'm only aware of one legitimate + counterexample, the Intercal compiler "oo, ick", which no longer appears + to be known by that name anyway; let me know if there are any others. + * `man` now discards `stderr` from formatting subprocesses when outputting + to a pager, to avoid visual corruption from any error messages. + * If the `MAN_KEEP_FORMATTING` environment variable is set to any non-empty + value, then `man` will preserve formatting characters in its output even + when standard output is not a terminal. This may be useful for programs + such as `pinfo` that call `man` and can interpret its formatted output. + * Setting `NOCACHE` in the configuration file now prevents `man` from ever + creating cat pages automatically. + * `apropos` now accepts the `--and` option to display only items that match + all the supplied keywords. + +man-db 2.4.4 (12 February 2007) +=============================== + +man-db is now revision-controlled using +[bzr](https://bazaar.canonical.com/). See `docs/HACKING` for the location +of the archive (including all CVS history, imported by Canonical). + +Fixes: + + * SECURITY: Fix a buffer overrun if using `-H` and the designated web + browser (argument to `-H` or `$BROWSER`) contains multiple `%s` + expansions. This is CVE-2006-4250. + * Ignore `SIGINT` and `SIGQUIT` while running subprocesses, so that typing + Ctrl-C doesn't kill `less` (broken in 2.4.3). + * Similarly, ignore `SIGPIPE` in subprocesses. + * Various fixes to `SIGCHLD` handling in pipeline library, preventing + "waitpid failed: No child processes" errors. + * Skip `exec` in configuration file commands (perhaps left over from old + installations), which the pipeline execution library cannot handle + directly. + +Improvements: + + * Add support for Chinese in the `--enable-mb-groff` case. + * `lexgrog` now handles pages with multiple descriptions more usefully, by + displaying one description per output line. + +man-db 2.4.3 (3 July 2005) +========================== + +Fixes: + + * Avoid problems creating databases on systems with badly broken clocks set + before the Unix epoch. + * Fix detection of decompression programs, so that `man` doesn't attempt to + execute man pages when it doesn't have a corresponding decompression + program. + +Improvements: + + * `apropos` and `whatis` now accept a `--section` option to restrict their + search to a particular manual section. + * The pipeline execution library is now used for most calls to external + programs, avoiding use of the shell. + * When `stdout` is not a terminal, man pages will be formatted in plain + text without the use of backspace or ANSI formatting characters. + * When invoking `apropos` (`man -k`) or `whatis` (`man -f`) as external + programs, `man` now only passes through command-line options understood + by the respective programs. + * Improve handling of locales with versions and/or modifiers. + * Add support for Croatian, Galician, Indonesian, Slovak, and Turkish + pages. + * man-db may now be built to use Berkeley DB version 4 (`--with-db=db4`). + +Compatibility notes: + + * Setting the line length of manual pages now requires `groff` 1.18 or + later. + +man-db 2.4.2 (20 September 2003) +================================ + +Fixes: + + * SECURITY: Fix a number of buffer overruns in configuration file handling, + ultimate source location, and `MANPATH` processing. This is CVE + CAN-2003-0620. + * SECURITY: Restrict the use of the `DEFINE` directive in `~/.manpath` to + code running with dropped privilege. Previously, the `compressor` + variable could be used to run arbitrary code with raised privilege. This + is CVE CAN-2003-0645. + * Make sure to initialize `mandata` structures to zero. The uses of + uninitialized memory resulting from this had been leading to random + segfaults. + * Drop privileges in order to be able to read pages in non-world-readable + user manpaths while setuid. + * `man` can be built with `--disable-setuid` again. + * `man`'s locale support has been revamped. The encoding of source manual + pages is no longer related to the encoding of the input passed to `*roff` + or to `*roff`'s terminal output device. These frequently differ, + especially in UTF-8 locales but in other circumstances as well, and a + "just send 8-bit data" approach is no longer adequate. If you are using + a version of `groff` with the Debian multibyte patch applied, pass the + `--enable-mb-groff` option to configure. + * When using GDBM, `accessdb` and `apropos` did not return database entries + in sorted order, since GDBM's key traversal interface is not + lexicographically ordered. The database layer has been corrected to cope + with this. + * Directories found in strange places in manual hierarchies don't crash + `mandb`. + +Improvements: + + * `man` now calls `mandb` to update databases rather than doing it itself. + This leaves cat pages as the sole remaining reason for `man` to be + setuid. + * The "undocumented" message is only displayed if a corresponding + executable is found on the `$PATH`. + * All programs that read `~/.manpath` now take a `-C` option to cause them + to read a different user configuration file instead. + * The `--enable-debug` option to `configure` has been removed. man-db's + `Makefile`s now always calculate full dependencies for C files. + * `mandb` caches the contents of directories, significantly speeding up the + purging of obsolete entries. + * `mandb` now knows how to purge database entries corresponding to removed + stray cat pages. + * In addition, a pipeline execution library has been written, which will + make it possible to eliminate all or almost all use of the shell in a + future release. Unfortunately, time pressures due to the security issues + above meant that the pipeline library was not well enough tested for use + in this release, so it is present but unused. That will be the first + item for 2.4.3. + +man-db 2.4.1 (22 December 2002) +=============================== + +The man-db CVS repository has moved from sourceforge.net to +savannah.nongnu.org. + +Fixes: + + * Don't enter an infinite loop when the `SYSTEM` environment variable is + set. + * `man` doesn't segfault when trying to follow a broken symlink. + * `mandb` no longer corrupts databases when deleting entries that are part + of multi keys. + * Prevent a possible buffer overflow when encountering large multi keys. + * Man page names are escaped when globbing, so `[(1)` can now be found even + if the database is not up to date. + * Correct an `access()` check that led to `man -X -l -` producing no + output. + * `lexgrog` can now cope with man pages containing only a `.so` link. + * Manual hierarchies with a specific encoding are put into the search path + in the correct order. A bug in `$LANGUAGE` handling had formerly meant + that `de` would take precedence over `de_DE.UTF-8`. + +Improvements: + + * `man`'s behaviour when searching for page names that begin with a digit + has been made more intuitive, as has its treatment of section names that + are extensions of ones mentioned in the configuration file but are not + themselves explicitly named as sections. + * The default line length for pages formatted for terminal output has been + increased (reducing margin size) to match the default in `groff` 1.18. + * Proofread the manual. + * The `-w` flag to `man` has been changed to display the name of only the + source `nroff` file. A `-W` flag has been introduced which displays the + name of the cat file as well. If both flags are given to `man`, it will + behave as before. + * If `bzip2` is installed, pages compressed with `bzip2` can now be + displayed. + * Add support for displaying an additional message when no man page is + found, which can be used to direct users to a generic "undocumented" + page. + * The manual hierarchy layout will now be guessed where possible if an + explicit `--enable-mandirs` argument is not passed to `configure`. + +man-db 2.4.0 (26 June 2002) +=========================== + +I have changed the package name to man-db, as the underscore was awkward. + +Upgrading from version 2.3.x: + + * The database format has changed slightly, so you will need to run `mandb + --create` after installing the new version to rebuild your databases from + scratch. (Distribution packages should do this automatically for system + databases.) + +Fixes: + + * The GNU `nroff` test in `configure` now works when `/bin/sh` is `ash`. + * When scanning pages for `NAME` sections, `lexgrog` and `mandb` no longer + accidentally eat the line after each occurrence of the no-op request `.`. + * `man --local` drops privileges throughout to avoid problems with + non-world-readable home directories. + * Newly created cat directories are `chown`ed to the `man` user when + running as root. + * `man --html` no longer creates its temporary file with raised privileges, + so that it now works with a setuid `man`. + * `man` detects preprocessors correctly when setuid. + * Various segfault fixes: explicitly null-terminate data returned by the + Berkeley DB library to avoid some rare crashes; don't reuse a freed + pointer in some cases of pages with multiple names; handle `MANPATH`s + containing `::` more safely. + * Correctly parse manual pages using DOS line-ending conventions. + * Work around a misfeature in Berkeley DB: it pauses for several seconds if + asked to read a zero-length database, on the assumption that somebody is + still writing the metadata page. `man` is generally better off just + ignoring the database in this case. + * Work around corrupted databases in the case where the `nextkey` pointer + chain contains a loop. + +Improvements: + + * `man` looks in the filesystem followed by the database, rather than the + other way round. Unix filesystems are quite good databases for this + purpose, and the `man` database is only superior when looking up names + that don't have associated links in the filesystem. + * `apropos --wildcard --exact` makes sure wildcards match an entire + description or page name, unlike `apropos --wildcard` which may match on + word boundaries too. + * `man`'s page-searching code has been substantially rearranged, and now + only starts displaying pages when it has finished searching for + candidates. This allows pages to be sorted more sensibly. + * Manual pages are formatted in UTF-8 if that is the current locale's + character set. The `-E` option is now available to force a particular + encoding. Note that some versions of (e.g.) `less` have problems + displaying UTF-8 in conjunction with backspace characters; `groff` 1.18 + should alleviate this by using ANSI colour escapes instead. + * The `less` prompt string sets `-PM` as well as `-Pm`. + * Invoking `man` from within `less` now sets the correct page title in the + inner `less`. + * Unless the `--match-case` option is used, `man` will search for pages + case-insensitively. + * Update the mechanism for setting the line length so that it also works + with `groff` 1.18. + * The `-R` switch is added to the `less` prompt string, which is needed to + display the ANSI colour escapes generated by `groff` 1.18 correctly. + * The `$MANLESS` environment variable may be used to override the normal + creation of the `less` prompt string. + * Translation updates for French, German, and Spanish, and a new Catalan + translation. See `man/THANKS`. + +man\_db-2.3.20 (7 September 2001) +================================= + +Fixes: + + * A typo in 2.3.19 caused character sets for many languages to be detected + incorrectly. This especially affected multibyte languages. + * Long options in the environment variable `LESS` are handled correctly. + * When checking if cat pages need to be updated, check for different + timestamps rather than whether the cat page is newer, as otherwise we + were confused by tools like `tar` that preserve timestamps in their + archives. Each cat page is now set to have the same mtime as its + corresponding man page. + * Look up the correct character set each time a page is displayed rather + than just the first time, in case pages in several different character + sets are viewed in a single session. + * `groff` requests are no longer assumed to be case-insensitive when + scanning for preprocessors, so for example `mdoc`'s `.Eq` request isn't + mistaken for the `.EQ` which introduces `eqn` commands. + * Escape arguments passed to the shell that might contain dangerous + characters. + * Avoid an infinite loop if the `LANGUAGE` environment variable is set but + empty. + * The `--create` option to `mandb` now implies `--no-purge`. + * Temporary files are handled with more secure permissions. + +Improvements: + + * Use a variant of `mkstemp()` rather than `tempnam()`, to avoid classic + race conditions. (I don't believe the races were usefully exploitable.) + * Tolerate `whatis` entries in a database that point to themselves. + * Detect more translations of the `NAME` section. + * Add examples of man pages written in POD and SGML. + * `lexgrog` is now installed in `/usr/bin` by default, with proper argument + parsing, an improved output format, and a man page. It is expected to be + used by programs that need to validate man pages. + * The `-H` (`--html`) option to `man` is now compiled in by default, and + supports the BROWSER specification (as + [documented](http://www.tuxedo.org/~esr/BROWSER/) and + [amended](https://www.dwheeler.com/browse/secure_browser.html)). + +man\_db-2.3.19 (5 July 2001) +============================ + +Fixes: + + * The user configuration file `~/.manpath` is no longer trusted when + deciding whether to drop privileges. In the process, user cat directory + handling has been improved. + * Commands of the form `man -S "" foo` formerly emptied the list of + acceptable sections and then searched the database anyway, and commands + of the form `man -S ::: foo` segfaulted. Both now use the standard list + of sections. + * The `HUP` and `TERM` signals are now handled better. + * `straycats` processing invokes `col -bx` rather than `col-bx`. + * The `root` user is now correctly allowed to update databases in system + manpaths. + * `apropos` and `whatis` no longer enter infinite recursion if a database + contains an entry pointing to itself. + +Improvements: + + * When compiled with `--enable-setuid`, `man` and `mandb` can be installed + non-setuid. In this mode, they will be unable to write cat pages in + system directories or to modify system databases, but will otherwise + operate correctly. This allows a single binary package to support setuid + and non-setuid modes of operation. + * The ordering of manual sections is read from `SECTION` directives in the + configuration file rather than being hard-coded. + * The `MANDB_MAP` configuration file directive is documented more clearly. + * Multiple `whatis` entries separated by commas, break requests, and/or + paragraph requests are handled more intelligently. + * Fill control requests (`.nf` and `.fi`) cause `lexgrog` to assume a break + at each newline. + * Duplicate manpath entries (often generated in the course of national + language support) are removed, so that `man -a` works better. + * man\_db's binaries are installed unstripped by default. + * Since supporting certain layouts of manual page hierarchies causes + problems for others, the layout is now selectable via `configure`. The + default is to try all layouts. + * `man` only does an on-the-fly update of the database caches when the + `--update` option is given. + * Manual pages are displayed with a line length appropriate to the current + terminal. If a non-standard line length is used (i.e. the terminal is + not between 66 and 80 characters wide) then cat pages will not be saved. + * `mandb` tries to purge obsolete entries from its databases. Using the + `--create` flag should now usually only be necessary in cases of database + corruption. + +man\_db-2.3.18 (14 May 2001) +============================ + +man\_db-2.3.18 is an interim release under new maintenance by Colin Watson, +merging much of the work done by former maintainers (Graeme Wilford and +Fabrizio Polacco). It incorporates several years of changes made in the +Debian GNU/Linux distribution's package of man\_db. + +Here are a few highlights, with the names of the maintainers responsible for +them. As I am documenting after the fact of other people's changes of a few +years ago, I have undoubtedly missed a number of fixes and improvements; I +promise to keep track of these as I go along in future. + +Fixes: + + * Multiple security fixes, including better handling of temporary files, a + format string vulnerability fix, and more careful dropping of privileges + when running setuid. [Fabrizio, Colin] + * Databases no longer disappear temporarily while they are being + regenerated. [Fabrizio] + * Corrected handling of locale environment variables. Setting several + colon-separated locales in `$LANGUAGE` also works now. [Colin] + * `whatis` and `apropos` are more careful about the possibility of a + corrupted database. [Fabrizio, Colin] + +Improvements: + + * If `root` has private manual hierarchies, cat pages generated from them + are no longer chowned to a less-privileged user. [Wilf] + * Rewrote configuration file handling, adding `DEFINE` directives to set + paths to external programs. The configuration file is now called + `man_db.conf`. [Wilf] + * Support FHS paths (`/usr/share/man` and `/var/cache/man`) in preference + to FSSTND paths (`/usr/man` and `/var/catman`). [Fabrizio] + * Converted from `catgets` to GNU `gettext` for national language support. + [Fabrizio, Colin] + * Several new and improved localized message catalogues and translated man + pages. [Fabrizio, Colin, other contributors] + * Added `accessdb` utility, which displays the contents of a manual page + database. [Fabrizio] + * Added user configuration file `~/.manpath`, with the same syntax as the + global configuration file. [Fabrizio] + * Leading or trailing colons in the `MANPATH` environment variable cause + the manpath derived from configuration files to be prepended or appended + respectively. A double colon in the middle of the environment variable + causes the configuration file manpath to be inserted between the colons. + [Fabrizio] + * Added experimental `-H` and `-Thtml` options to take advantage of + `groff`'s new HTML driver. [Fabrizio] + * `lexgrog` now scans manual pages to guess which preprocessors are needed. + [Fabrizio] + * Create cat directories on the fly if necessary. [Fabrizio] + * Supply a wrapper which explicitly drops privileges to uid `man` if `man` + or `mandb` is run as root. In the future, splitting out setuid functions + into a separate helper process may remove the need for this paranoia. + [Fabrizio] + * Add `--test` option to `mandb`, which merely reports errors in manual + page hierarchies rather than actually creating or updating a database. + [Fabrizio, Colin] + * Manual pages may now be symlinks outside the mantree. This should pose + no significant security concerns, and utilities such as GNU stow create + such symlinks. [Colin] + * Deprecate `whatis` references for `man`, and display a warning if + displaying a page relies on going through a `whatis` reference. They + often lead to confusingly non-obviously-deterministic behaviour, and + guaranteeing that `man` will honour them even when the database is out of + date causes performance problems. [Colin] + +man\_db-2.3.11 (21 September 1995) +================================== + + * The man\_db manual is bundled in source form. + * Components of `$PATH` not in the config file were checked for `man` + subdirectories. Now they are also checked for `../man`. + * Untarring a new manual page (with a timestamp older than the relative cat + file) over the original did *not* cause `man`/`catman` to reformat the + replacement. This is changed. As a side effect, untarring an unchanged + man file over the original will also cause a reformat. + +man\_db-2.3.10 (13 July 1995) +============================= + +Fixes: + + * Global databases were not owned by setuid owner (if applicable). As a + consequence only `mandb` could update the databases unless `man` was run + by superuser. Stupid bug. + * The keyword passed to `apropos` _never_ matched the first word of any + whatis line. + * `FAVOUR_STRAYCATS` code (if enabled), did not work properly. + * `zsoelim` did not work as advertised. + +Improvements: + + * `man` removes its temporary files upon abnormal termination. + * `apropos` does proper word matching rather than the fuzzy matching of + 2.3.5. E.g. supplying any of the keywords: `ld.so`, `a.out`, `dynamic`, + `linker` or `loader` will match the following entry: + + ld.so (8) - a.out dynamic linker/loader + + whereas `a.out` and `loader` used to fail. + + * `man`/`whatis`/`apropos` return with exit code 16 if manual page/file or + keyword is not matched. Previously exit code 0 was used making it + difficult for callers to know if the lookup was successful. + * Addition of German message catalogue. + * `apropos` and `man -k` do POSIX specified regex matching rather than + keyword searches if the environment variable `POSIXLY_CORRECT` is + defined. + * Added glob-only support of native system manual hierarchies on HP-UX, OSF + and Solaris operating systems. Improved the `whatis` parsing code to + cope with majority of HP-UX manual pages. + * Ported to NeXTstep. + +man\_db-2.3.5 (21 April 1995) +============================= + +Added support for: + + * Non-standard section names i.e. multi-character + + * Compressed manual pages. + + A new utility `zsoelim` is included to correctly handle `nroff` `.so` + requests that point to a file which has been compressed. + + * Compressed stray cats. + + By definition, stray cats are not re-creatable as they have no relative + source manual page. As they may have non-default compression extensions + and may reside on read-only media, stray cats have the same compression + support as manual pages. + + * FSSTND proposed "extension" support. + + Specific package manual pages may be installed in the standard sections + but with a package-unique extension appended as in `exit(3tcl)` - + `../man/man3/exit.3tcl`. Using the command `man -e tcl exit` would then + display an `exit` manual page with a `tcl` extension, if available. Of + course, `man 3tcl exit` works as always. + + * FSSTND proposed NLS man subdirectories of the form + `.../man//man/`. + + * NLS message catalogue hooks. + + Provision has been made for the programs to emit their messages in a + language dependent form. + + * `whatis` referred manual pages. + + Some manual pages contain relevant information for commands or programs + that would not otherwise reference the page. The `whatis` part of the + manual page is used to create virtual links to these pages by all of the + names mentioned within it. Examples include names such as `.` and `:` + referencing the local shell manual page. + + * `catman` utility, used to pre-format the manual pages into cat pages. + + * Operating systems other than Linux. + + man\_db has been reported to compile on the following platforms: Linux, + SunOS, Solaris, Ultrix, OSF, HP-UX, AIX, IRIX (although portability does + not extend to support of native manual tree structures on some of these + systems, e.g. HP-UX). + + * Berkeley DB library routines. + + This complements the support of both `gdbm` and `ndbm` which already + existed. DB databases may be shared across platforms. + + * `$MANOPTS` environment variable. + + The environment variable `MANOPTS` may be set to any string in command + line option/argument format. It is parsed by `man(1)` prior to its + actual command line. + + * Per manual hierarchy cat directory locations. + + It is possible to redirect your cat pages to other directories or even + other file systems. + + * Per manual hierarchy `nroff`/`[tg]roff` format scripts. + + Ability to create custom formatter scripts that are called by `man(1)` to + enable format/display of non-standard manual pages or manual pages + requiring a special macro package. + + * Extension of `man -l`. + + Arguments following `-l` are interpreted as local files requiring format + and display. Extensions are: + + - `man -l -` formats and displays `stdin`. + - `man -l foo.1.gz` decompresses, formats and displays `foo.1.gz`. + + * Latin1 manual pages/choice of `nroff` output device. + + * Viewing of ASCII manual pages formatted for a latin1 output device on a 7 + bit ASCII terminal (`-7`). + + * `whatis` and `apropos` utilities support regex and wildcard matching. + + * `checkman`. + + Shell script utility that will find and display duplicated manual pages + found across manual page hierarchies. + + * `mkcatdirs`. + + Shell script utility to create appropriate cat directories after + installation and setup. + +Conceptual improvements: + + * Replacement of single database with multiple modular databases. Easier + integration of additional information into the databases in the future. + + * Both user and global databases share the same name `index.`, + where `` could be `bt`, `db`, or `pag` and `dir`. + + * Databases contain `whatis` text. + + `makewhatis` and text `whatis` databases are redundant, although `whatis` + and `apropos` will use the text `whatis` database for information if they + cannot read from a relevant index database. + + * Straycats handled without need for 'placeholders'. + + * Friendly `less(1)` prompt. + + If `man(1)` uses `less(1)` as its pager (dependent on both static and + dynamic factors), the prompt is modified to suit the manual page being + displayed. The modification performed is also changeable by the user. + + * man\_db manual. + + man\_db has a manual that covers the setup, maintenance and use of a + generic online manual page system. + + * Modes of operation. + + The man\_db utilities can be compiled with various modes of operation in + mind. E.g. `man` can be stopped from updating databases and/or creating + cat files in situations where security is extremely important. See the + man\_db manual for details. + +Speed improvements: + + * Background compression/saving of cat files. + + Cat files are compressed and saved in the background, whilst the user is + able to browse the formatted page directly. + + * Merge of `straycats` and `makewhatis` into `mandb`. + + While `mandb` has slowed, it now incorporates `makewhatis` and + `straycats` functionality and is much faster as a whole. 2.0a2 used + `grep`/`awk`, 2.2 used C regex and 2.3 now uses `lex` sourced C to strip + out the `whatis` information from the raw man or cat files. + + * Berkeley DB support. + + Provides lower database initialisation overhead as compared with `gdbm`. + + * Extremely fast `whatis(1)` searches. + + `whatis(1)` uses keyed database lookups to retrieve whatis strings for + standard (non regex/wildcard) searches. + +Fixes: + + * Correct handling of `$MANSECT`. + + The environment variable `MANSECT` is no longer ignored. + + * Acknowledgement of `$MANPATH` order. + + manpath elements are searched in the order specified. diff --git a/README.md b/README.md new file mode 100644 index 0000000..3ee5063 --- /dev/null +++ b/README.md @@ -0,0 +1,316 @@ +# The man-db manual pager suite + + https://gitlab.com/man-db/man-db + + https://man-db.gitlab.io/man-db/ + +Please read the man-db manual, included in the manual subdirectory of this +distribution. It contains configuration details and other aspects of this +manual pager suite that are not duplicated or relevant in this README. +Check manual/README for details of the formatters required. + + * Read docs/INSTALL.autoconf for generic options to configure. + * Read docs/INSTALL.quick if you know all about man-db. + * Read NEWS.md for visible changes since the last public release. + * Read ChangeLog for details of recent source code changes. + * Read docs/TODO for future plans. + +The C source requires an C99 compiler. + + +## Copyright and licensing + +Copyright (C) 1990, 1991 John W. Eaton. + +Copyright (C) 1994, 1995 Markus Armbruster. + +Copyright (C) 1994, 1995 Graeme W. Wilford. (Wilf.) + +Copyright (C) 1995 Carl Edman. + +Copyright (C) 1996, 1997, 1998, 2000 Fabrizio Polacco. + +Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, + 2011, 2012, 2013, 2014 Colin Watson. + +Copyright (C) 1984, 1989, 1990, 1991, 1992, 1995, 1996, 1997, 1998, 1999, + 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, + 2010, 2011, 2012 Free Software Foundation, Inc. + +man-db is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +man-db is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with man-db; if not, write to the Free Software Foundation, +Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +In addition, man-db incorporates Gnulib, copyrighted by the Free Software +Foundation and others. Note that much of Gnulib is distributed under the GNU +General Public License version 3 or later. This means that, although +man-db's own source code is licensed under GPL v2 or later, the work as a +whole falls under the terms of the GPL v3 or later. Unless you take special +pains to remove the GPL v3 portions, you must therefore follow the terms and +conditions of the GPL v3 or later when distributing man-db. + + +## Notice regarding current state of FHS (Linux/?BSD) + +As of May 13th, 2001, the last public release of the Filesystem Hierarchy +Standard proposed the root of the manual page hierarchy as `/usr/share` and +the root of the writable cat hierarchy as `/var/cache/man` for the purposes +of man-to-cat filename translation. As such, the following are defined in +`./include/manconfig.h`: + +```c +#define FHS_CAT_ROOT "/var/cache/man" /* required by fsstnd() */ +#define FHS_MAN_ROOT "/usr/share" /* required by fsstnd() */ +``` + +For compatibility with the old FSSTND, the following locations are also +defined: + +```c +#define CAT_ROOT "/var/catman" /* required by fsstnd() */ +#define MAN_ROOT "/usr" /* required by fsstnd() */ +``` + +Should these locations change, simply define the paths accordingly and +recompile. Other FHS changes relating to man/cat paths will not be +compatible with this version of man-db. + + +## Non-generic arguments to configure + +To allow the configuration program, configure, to be non-interactive, it can +be passed various options to alter the default settings. Generic configure +options are discussed in docs/INSTALL.autoconf. The following list of +options is extracted from the man-db manual. It is strongly recommended +that relevant sections of the manual are read if any of these options are +used. + +* `--enable-cache-owner[=ARG]` + + By default, system-wide cache files will be owned by user man. Use this + option with an argument to change the cache file owner. + +* `--disable-cache-owner` + + Use this option to leave the ownership of system-wide cache files + unconstrained. Users will be allowed to modify them. + +* `--disable-setuid` + + By default, man will be installed as a setuid program to the user that + owns the system-wide cache files. Use this option to install man as a + non-setuid program instead. + +* `--enable-mandirs=OS` + + By default, man-db supports manual page directories in any of several + layouts used by free and proprietary versions of UNIX. However, in + certain cases, this can cause man-db to find the wrong page by mistake, + especially when the names of some manual pages on the system contain + periods. Use this option with an argument of GNU, HPUX, IRIX, Solaris, + or BSD (or more than one of these, separated by commas) to support only + the layouts typically used on each of those systems. Note that man-db is + not currently capable of writing cat pages in the proper BSD layout. + +* `--with-device=DEVICE` + + Use this flag to alter the default output device used by NROFF. DEVICE is + passed to NROFF with the -T option. configure will test that NROFF will + run with the supplied device argument. + +* `--with-db=LIBRARY` + + configure will look for database interface libraries in the order gdbm, + Berkeley DB and finally ndbm and will #define appropriate variables + relative to the first one found. To override the built-in order on + platforms having a choice of interface library, use this option to + specify which library to use. + +* `--enable-automatic-create` + + If this flag is used, man will automatically create index databases for + users' private manual page hierarchies. + +* `--disable-automatic-update` + + Normally, man will update entries in index databases if it finds newly + installed manual pages (if the --update flag is used) or delete entries + if manual pages are removed. This flag suppresses this behaviour. + +* `--disable-cats` + + Normally, man will automatically try to create cat files corresponding to + manual files when a manual page is read. This flag suppresses this + behaviour. + +* `--disable-manual` + + Don't build or install the man-db manual. This may be useful when + cross-compiling, or to reduce the installation size. + + +## Installation + +Configure man-db: + +* **Read** `docs/INSTALL.autoconf` regarding `./configure` options. + +* **Run** `./configure --help` to see what `--enable` and `--with` + options may be useful. + +* **Run** `./configure` with the appropriate options and environment + variable settings. + +**Browse** or **edit** the following files that were created by the +configuration process: + +* `include/manconfig.h` regarding the default section list and other + specific definitions. + +* `lib/compression.c` if the default compressor support is + inadequate for your requirements. (Usually `.Z` [compress], + `.z`, `.gz` [gzip].) + +configure will determine your system's ability to use native language +support (NLS) message catalogues. You may set the environment variable +`LINGUAS` to limit the set of translations installed. `LINGUAS` should +contain a space-separated list of two-letter language identifiers. To +compile man-db with no support for message catalogues, simply pass the +`--disable-nls` option to configure. N.B. This is not related to man's +ability to display NLS manual pages, support for which is compiled in by +default. + +Build man-db: + +* **Run** `make` to compile man-db with the set of translations chosen + when running `./configure`. + +Sort out the man-db configuration file. + +* **Run** `./src/man -l man/man5/manpath.5` from the root of this + distribution to read the man-db configuration file details. + +* **Edit** `./src/man_db.conf` to your local requirements. + +Install the package. + +* (gain superuser privileges for the rest of the steps) + +* **Run** `make install` to install the utilities and manual pages. + +Initialise the index databases for all manpaths marked as global in the +man-db configuration file. + +* **Run** `mandb` (this step is equivalent to running straycats and + makewhatis too). + +The following steps are optional / dependent on local conventions. + +* **Acknowledge** any warnings emitted by mandb. Bogus manual pages + are not included in the database and may be a waste of space. + Those pages without correctly formatted "whatis" lines are + included, but will have a whatis entry of "(unknown)" + +* `cd tools` and **run** `mkcatdirs -t` to see if you have all of the + required cat directories. `mkcatdirs` without an option will + display a usage message. + +* `cd tools` and **run** `checkman` with an argument of colon-separated + manual page hierarchies to cross check for duplicated manual + pages. If no argument is given, your default `$MANPATH` will be + used. + + The output of `checkman` may be piped into a file and used as an + argument to `rm`; the "is newer than" messages are directed to + standard error. E.g. `checkman > dups` + + If you are confident that the duplicates found are indeed + duplicates, you can back them up and delete them to save space. + + At this point, running `checkman` again may yield further duplicates + that were ignored the first time. + +* **Run** `catman` with appropriate options to create any/all cat files + that you would like pre-formatted. + + +## Multiple build directories + +It is possible to build man-db in a directory other than the directory +containing this file (and all of the program sources). This is particularly +useful if compiling on multiple architectures or testing various +configuration options as only a single copy of the sources is required. + +To enable this support, simply change directory to where you would like to +build the package and run the configure program in this directory +*from there*. Further information about this support can be found in the +generic install document `docs/INSTALL.autoconf`. + + +## Makefile targets and variables + +The standard GNU Makefile targets: `all`, `install`, `uninstall`, +`mostlyclean`, `clean`, `distclean`, `realclean` and `TAGS` are available in +every Makefile- supported directory. In addition, the master Makefile has +the `dist` target to create a compressed and tarred distribution file. + +During the configuration process, `configure` sets the installation +variables, `prefix` and `exec_prefix`. These are then used to form other +variables such as `bindir` and `sysconfdir`. To change any of these or +other standard GNU install variables dynamically, issue the `make` command +with variable expressions as arguments, eg. `make prefix=/usr/local/packages` + +N.B. If `prefix=/usr` (either statically or dynamically), then +`sysconfdir=/etc` instead of the usual `$(prefix)/etc`. To force +`sysconfdir` to be `/usr/etc`, set it on the make command line. + + +## Default preprocessors + +man-db uses a manual page directed preprocessor system, that is, each manual +page may request preprocessing by a selection of preprocessors. Some +systems' manual pages do not come with this information built in. In such +circumstances, it is advisable to set a default list of preprocessors that +each manual page should be passed through, so that those requiring special +processing are readable. To achieve this, set `DEFAULT_MANROFFSEQ` (found in +`include/manconfig.h`) to the appropriate preprocessor string, after running +configure, but prior to compilation. This is not necessary for the +following systems whose default preprocessing requirements are known. + +* Known not to require `DEFAULT_MANROFFSEQ`: + + Linux, SunOS + +* Known to require `#define DEFAULT_MANROFFSEQ "t"`: + + Ultrix + +* Known to require `#define DEFAULT_MANROFFSEQ "te"`: + + HP-UX, OSF/1 + +If unsure of the default preprocessors required by a system, the standard +system's man(1) manual page may provide an answer. + + +## Contacting the maintainer + +The current maintainer of man-db is Colin Watson . +Please feel free to contact me with any queries or problems you may have. +You can report bugs here: + + https://gitlab.com/man-db/man-db/-/issues + +Bugs from before the migration to GitLab may be found here: + + https://savannah.nongnu.org/bugs/?group=man-db diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 0000000..0e39ea1 --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,1842 @@ +# generated automatically by aclocal 1.16.5 -*- Autoconf -*- + +# Copyright (C) 1996-2021 Free Software Foundation, Inc. + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],, +[m4_warning([this file was generated for autoconf 2.71. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) + +# pkg.m4 - Macros to locate and use pkg-config. -*- Autoconf -*- +# serial 12 (pkg-config-0.29.2) + +dnl Copyright © 2004 Scott James Remnant . +dnl Copyright © 2012-2015 Dan Nicholson +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +dnl 02111-1307, USA. +dnl +dnl As a special exception to the GNU General Public License, if you +dnl distribute this file as part of a program that contains a +dnl configuration script generated by Autoconf, you may include it under +dnl the same distribution terms that you use for the rest of that +dnl program. + +dnl PKG_PREREQ(MIN-VERSION) +dnl ----------------------- +dnl Since: 0.29 +dnl +dnl Verify that the version of the pkg-config macros are at least +dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's +dnl installed version of pkg-config, this checks the developer's version +dnl of pkg.m4 when generating configure. +dnl +dnl To ensure that this macro is defined, also add: +dnl m4_ifndef([PKG_PREREQ], +dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) +dnl +dnl See the "Since" comment for each macro you use to see what version +dnl of the macros you require. +m4_defun([PKG_PREREQ], +[m4_define([PKG_MACROS_VERSION], [0.29.2]) +m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, + [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) +])dnl PKG_PREREQ + +dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) +dnl ---------------------------------- +dnl Since: 0.16 +dnl +dnl Search for the pkg-config tool and set the PKG_CONFIG variable to +dnl first found in the path. Checks that the version of pkg-config found +dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is +dnl used since that's the first version where most current features of +dnl pkg-config existed. +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])dnl PKG_PROG_PKG_CONFIG + +dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------------------------------- +dnl Since: 0.18 +dnl +dnl Check to see whether a particular set of modules exists. Similar to +dnl PKG_CHECK_MODULES(), but does not set variables or print errors. +dnl +dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +dnl only at the first occurrence in configure.ac, so if the first place +dnl it's called might be skipped (such as if it is within an "if", you +dnl have to call PKG_CHECK_EXISTS manually +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +dnl --------------------------------------------- +dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting +dnl pkg_failed based on the result. +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])dnl _PKG_CONFIG + +dnl _PKG_SHORT_ERRORS_SUPPORTED +dnl --------------------------- +dnl Internal check to see if pkg-config supports short errors. +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])dnl _PKG_SHORT_ERRORS_SUPPORTED + + +dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl -------------------------------------------------------------- +dnl Since: 0.4.0 +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES might not happen, you should be sure to include an +dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $2]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])dnl PKG_CHECK_MODULES + + +dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl --------------------------------------------------------------------- +dnl Since: 0.29 +dnl +dnl Checks for existence of MODULES and gathers its build flags with +dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags +dnl and VARIABLE-PREFIX_LIBS from --libs. +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to +dnl include an explicit call to PKG_PROG_PKG_CONFIG in your +dnl configure.ac. +AC_DEFUN([PKG_CHECK_MODULES_STATIC], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +_save_PKG_CONFIG=$PKG_CONFIG +PKG_CONFIG="$PKG_CONFIG --static" +PKG_CHECK_MODULES($@) +PKG_CONFIG=$_save_PKG_CONFIG[]dnl +])dnl PKG_CHECK_MODULES_STATIC + + +dnl PKG_INSTALLDIR([DIRECTORY]) +dnl ------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable pkgconfigdir as the location where a module +dnl should install pkg-config .pc files. By default the directory is +dnl $libdir/pkgconfig, but the default can be changed by passing +dnl DIRECTORY. The user can override through the --with-pkgconfigdir +dnl parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_INSTALLDIR + + +dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) +dnl -------------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable noarch_pkgconfigdir as the location where a +dnl module should install arch-independent pkg-config .pc files. By +dnl default the directory is $datadir/pkgconfig, but the default can be +dnl changed by passing DIRECTORY. The user can override through the +dnl --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_NOARCH_INSTALLDIR + + +dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------- +dnl Since: 0.28 +dnl +dnl Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])dnl PKG_CHECK_VAR + +dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------ +dnl +dnl Prepare a "--with-" configure option using the lowercase +dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and +dnl PKG_CHECK_MODULES in a single macro. +AC_DEFUN([PKG_WITH_MODULES], +[ +m4_pushdef([with_arg], m4_tolower([$1])) + +m4_pushdef([description], + [m4_default([$5], [build with ]with_arg[ support])]) + +m4_pushdef([def_arg], [m4_default([$6], [auto])]) +m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes]) +m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no]) + +m4_case(def_arg, + [yes],[m4_pushdef([with_without], [--without-]with_arg)], + [m4_pushdef([with_without],[--with-]with_arg)]) + +AC_ARG_WITH(with_arg, + AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),, + [AS_TR_SH([with_]with_arg)=def_arg]) + +AS_CASE([$AS_TR_SH([with_]with_arg)], + [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)], + [auto],[PKG_CHECK_MODULES([$1],[$2], + [m4_n([def_action_if_found]) $3], + [m4_n([def_action_if_not_found]) $4])]) + +m4_popdef([with_arg]) +m4_popdef([description]) +m4_popdef([def_arg]) + +])dnl PKG_WITH_MODULES + +dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ----------------------------------------------- +dnl +dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES +dnl check._[VARIABLE-PREFIX] is exported as make variable. +AC_DEFUN([PKG_HAVE_WITH_MODULES], +[ +PKG_WITH_MODULES([$1],[$2],,,[$3],[$4]) + +AM_CONDITIONAL([HAVE_][$1], + [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"]) +])dnl PKG_HAVE_WITH_MODULES + +dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------------------ +dnl +dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after +dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make +dnl and preprocessor variable. +AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES], +[ +PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4]) + +AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], + [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) +])dnl PKG_HAVE_DEFINE_WITH_MODULES + +# Copyright (C) 2002-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.16' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.16.5], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.16.5])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# Copyright (C) 2011-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_AR([ACT-IF-FAIL]) +# ------------------------- +# Try to determine the archiver interface, and trigger the ar-lib wrapper +# if it is needed. If the detection of archiver interface fails, run +# ACT-IF-FAIL (default is to abort configure with a proper error message). +AC_DEFUN([AM_PROG_AR], +[AC_BEFORE([$0], [LT_INIT])dnl +AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl +AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([ar-lib])dnl +AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false]) +: ${AR=ar} + +AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface], + [AC_LANG_PUSH([C]) + am_cv_ar_interface=ar + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])], + [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([am_ar_try]) + if test "$ac_status" -eq 0; then + am_cv_ar_interface=ar + else + am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([am_ar_try]) + if test "$ac_status" -eq 0; then + am_cv_ar_interface=lib + else + am_cv_ar_interface=unknown + fi + fi + rm -f conftest.lib libconftest.a + ]) + AC_LANG_POP([C])]) + +case $am_cv_ar_interface in +ar) + ;; +lib) + # Microsoft lib, so override with the ar-lib wrapper script. + # FIXME: It is wrong to rewrite AR. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__AR in this case, + # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something + # similar. + AR="$am_aux_dir/ar-lib $AR" + ;; +unknown) + m4_default([$1], + [AC_MSG_ERROR([could not determine $AR interface])]) + ;; +esac +AC_SUBST([AR])dnl +]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is '.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` +]) + +# AM_COND_IF -*- Autoconf -*- + +# Copyright (C) 2008-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_COND_IF +# _AM_COND_ELSE +# _AM_COND_ENDIF +# -------------- +# These macros are only used for tracing. +m4_define([_AM_COND_IF]) +m4_define([_AM_COND_ELSE]) +m4_define([_AM_COND_ENDIF]) + +# AM_COND_IF(COND, [IF-TRUE], [IF-FALSE]) +# --------------------------------------- +# If the shell condition COND is true, execute IF-TRUE, otherwise execute +# IF-FALSE. Allow automake to learn about conditional instantiating macros +# (the AC_CONFIG_FOOS). +AC_DEFUN([AM_COND_IF], +[m4_ifndef([_AM_COND_VALUE_$1], + [m4_fatal([$0: no such condition "$1"])])dnl +_AM_COND_IF([$1])dnl +if test -z "$$1_TRUE"; then : + m4_n([$2])[]dnl +m4_ifval([$3], +[_AM_COND_ELSE([$1])dnl +else + $3 +])dnl +_AM_COND_ENDIF([$1])dnl +fi[]dnl +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + AS_CASE([$CONFIG_FILES], + [*\'*], [eval set x "$CONFIG_FILES"], + [*], [set x $CONFIG_FILES]) + shift + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf + do + # Strip MF so we end up with the name of the file. + am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`AS_DIRNAME(["$am_mf"])` + am_filepart=`AS_BASENAME(["$am_mf"])` + AM_RUN_LOG([cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles]) || am_rc=$? + done + if test $am_rc -ne 0; then + AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE="gmake" (or whatever is + necessary). You can also try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking).]) + fi + AS_UNSET([am_dirpart]) + AS_UNSET([am_filepart]) + AS_UNSET([am_mf]) + AS_UNSET([am_rc]) + rm -f conftest-deps.mk +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking is enabled. +# This creates each '.Po' and '.Plo' makefile fragment that we'll need in +# order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.65])dnl +m4_ifdef([_$0_ALREADY_INIT], + [m4_fatal([$0 expanded multiple times +]m4_defn([_$0_ALREADY_INIT]))], + [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +# Variables for tags utilities; see am/tags.am +if test -z "$CTAGS"; then + CTAGS=ctags +fi +AC_SUBST([CTAGS]) +if test -z "$ETAGS"; then + ETAGS=etags +fi +AC_SUBST([ETAGS]) +if test -z "$CSCOPE"; then + CSCOPE=cscope +fi +AC_SUBST([CSCOPE]) + +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. +]) + +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) + +# Copyright (C) 2003-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAKE_INCLUDE() +# ----------------- +# Check whether make has an 'include' directive that can support all +# the idioms we need for our automatic dependency tracking code. +AC_DEFUN([AM_MAKE_INCLUDE], +[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) +cat > confinc.mk << 'END' +am__doit: + @echo this is the am__doit target >confinc.out +.PHONY: am__doit +END +am__include="#" +am__quote= +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) + AS_CASE([$?:`cat confinc.out 2>/dev/null`], + ['0:this is the am__doit target'], + [AS_CASE([$s], + [BSD], [am__include='.include' am__quote='"'], + [am__include='include' am__quote=''])]) + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +AC_MSG_RESULT([${_am_result}]) +AC_SUBST([am__include])]) +AC_SUBST([am__quote])]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + MISSING="\${SHELL} '$am_aux_dir/missing'" +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# -------------------- +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) + +# _AM_SET_OPTIONS(OPTIONS) +# ------------------------ +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) + +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) + +# Copyright (C) 2009-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor 'install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in "make install-strip", and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +# +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' + +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([m4/man-arg-automatic-create.m4]) +m4_include([m4/man-arg-automatic-update.m4]) +m4_include([m4/man-arg-cache-owner.m4]) +m4_include([m4/man-arg-cats.m4]) +m4_include([m4/man-arg-config-file.m4]) +m4_include([m4/man-arg-db.m4]) +m4_include([m4/man-arg-device.m4]) +m4_include([m4/man-arg-mandirs.m4]) +m4_include([m4/man-arg-manual.m4]) +m4_include([m4/man-arg-override-dir.m4]) +m4_include([m4/man-arg-sections.m4]) +m4_include([m4/man-arg-setuid.m4]) +m4_include([m4/man-arg-snapdir.m4]) +m4_include([m4/man-arg-systemdsystemunitdir.m4]) +m4_include([m4/man-arg-systemdtmpfilesdir.m4]) +m4_include([m4/man-arg-undoc.m4]) +m4_include([m4/man-bdb.m4]) +m4_include([m4/man-check-progs.m4]) +m4_include([m4/man-compress-lib.m4]) +m4_include([m4/man-gnu-nroff.m4]) +m4_include([m4/man-heirloom-nroff.m4]) +m4_include([m4/man-libseccomp.m4]) +m4_include([m4/man-linguas.m4]) +m4_include([m4/man-po4a.m4]) +m4_include([m4/man-tar-sort-name.m4]) +m4_include([m4/man-trans-subst.m4]) +m4_include([gl/m4/00gnulib.m4]) +m4_include([gl/m4/__inline.m4]) +m4_include([gl/m4/absolute-header.m4]) +m4_include([gl/m4/alloca.m4]) +m4_include([gl/m4/argp.m4]) +m4_include([gl/m4/asm-underscore.m4]) +m4_include([gl/m4/btowc.m4]) +m4_include([gl/m4/builtin-expect.m4]) +m4_include([gl/m4/calloc.m4]) +m4_include([gl/m4/canonicalize.m4]) +m4_include([gl/m4/chdir-long.m4]) +m4_include([gl/m4/chown.m4]) +m4_include([gl/m4/clock_time.m4]) +m4_include([gl/m4/close.m4]) +m4_include([gl/m4/closedir.m4]) +m4_include([gl/m4/codeset.m4]) +m4_include([gl/m4/ctype_h.m4]) +m4_include([gl/m4/d-ino.m4]) +m4_include([gl/m4/d-type.m4]) +m4_include([gl/m4/dirent_h.m4]) +m4_include([gl/m4/dirfd.m4]) +m4_include([gl/m4/double-slash-root.m4]) +m4_include([gl/m4/dup.m4]) +m4_include([gl/m4/dup2.m4]) +m4_include([gl/m4/eealloc.m4]) +m4_include([gl/m4/environ.m4]) +m4_include([gl/m4/errno_h.m4]) +m4_include([gl/m4/error.m4]) +m4_include([gl/m4/exponentd.m4]) +m4_include([gl/m4/extensions.m4]) +m4_include([gl/m4/extern-inline.m4]) +m4_include([gl/m4/fchdir.m4]) +m4_include([gl/m4/fcntl-o.m4]) +m4_include([gl/m4/fcntl.m4]) +m4_include([gl/m4/fcntl_h.m4]) +m4_include([gl/m4/fdopendir.m4]) +m4_include([gl/m4/filenamecat.m4]) +m4_include([gl/m4/flexmember.m4]) +m4_include([gl/m4/float_h.m4]) +m4_include([gl/m4/flock.m4]) +m4_include([gl/m4/fnmatch.m4]) +m4_include([gl/m4/fnmatch_h.m4]) +m4_include([gl/m4/free.m4]) +m4_include([gl/m4/fstat.m4]) +m4_include([gl/m4/fstatat.m4]) +m4_include([gl/m4/getcwd-abort-bug.m4]) +m4_include([gl/m4/getcwd-path-max.m4]) +m4_include([gl/m4/getcwd.m4]) +m4_include([gl/m4/getdelim.m4]) +m4_include([gl/m4/getdtablesize.m4]) +m4_include([gl/m4/getline.m4]) +m4_include([gl/m4/getlogin.m4]) +m4_include([gl/m4/getlogin_r.m4]) +m4_include([gl/m4/getopt.m4]) +m4_include([gl/m4/getpagesize.m4]) +m4_include([gl/m4/getprogname.m4]) +m4_include([gl/m4/getrandom.m4]) +m4_include([gl/m4/gettext.m4]) +m4_include([gl/m4/gettime.m4]) +m4_include([gl/m4/gettimeofday.m4]) +m4_include([gl/m4/glob.m4]) +m4_include([gl/m4/glob_h.m4]) +m4_include([gl/m4/gnulib-common.m4]) +m4_include([gl/m4/gnulib-comp.m4]) +m4_include([gl/m4/host-cpu-c-abi.m4]) +m4_include([gl/m4/iconv.m4]) +m4_include([gl/m4/idpriv.m4]) +m4_include([gl/m4/include_next.m4]) +m4_include([gl/m4/intlmacosx.m4]) +m4_include([gl/m4/intmax_t.m4]) +m4_include([gl/m4/inttypes.m4]) +m4_include([gl/m4/inttypes_h.m4]) +m4_include([gl/m4/ioctl.m4]) +m4_include([gl/m4/isblank.m4]) +m4_include([gl/m4/langinfo_h.m4]) +m4_include([gl/m4/largefile.m4]) +m4_include([gl/m4/lchown.m4]) +m4_include([gl/m4/lib-ignore.m4]) +m4_include([gl/m4/lib-ld.m4]) +m4_include([gl/m4/lib-link.m4]) +m4_include([gl/m4/lib-prefix.m4]) +m4_include([gl/m4/libtool.m4]) +m4_include([gl/m4/limits-h.m4]) +m4_include([gl/m4/localcharset.m4]) +m4_include([gl/m4/locale-fr.m4]) +m4_include([gl/m4/locale-ja.m4]) +m4_include([gl/m4/locale-zh.m4]) +m4_include([gl/m4/locale_h.m4]) +m4_include([gl/m4/localeconv.m4]) +m4_include([gl/m4/lock.m4]) +m4_include([gl/m4/lstat.m4]) +m4_include([gl/m4/ltoptions.m4]) +m4_include([gl/m4/ltsugar.m4]) +m4_include([gl/m4/ltversion.m4]) +m4_include([gl/m4/lt~obsolete.m4]) +m4_include([gl/m4/malloc.m4]) +m4_include([gl/m4/malloca.m4]) +m4_include([gl/m4/manywarnings.m4]) +m4_include([gl/m4/mbrtowc.m4]) +m4_include([gl/m4/mbsinit.m4]) +m4_include([gl/m4/mbsrtowcs.m4]) +m4_include([gl/m4/mbstate_t.m4]) +m4_include([gl/m4/mbtowc.m4]) +m4_include([gl/m4/memchr.m4]) +m4_include([gl/m4/memmem.m4]) +m4_include([gl/m4/mempcpy.m4]) +m4_include([gl/m4/memrchr.m4]) +m4_include([gl/m4/minmax.m4]) +m4_include([gl/m4/mkdir.m4]) +m4_include([gl/m4/mkdtemp.m4]) +m4_include([gl/m4/mkstemp.m4]) +m4_include([gl/m4/mmap-anon.m4]) +m4_include([gl/m4/mode_t.m4]) +m4_include([gl/m4/msvc-inval.m4]) +m4_include([gl/m4/msvc-nothrow.m4]) +m4_include([gl/m4/multiarch.m4]) +m4_include([gl/m4/nanosleep.m4]) +m4_include([gl/m4/nl_langinfo.m4]) +m4_include([gl/m4/nls.m4]) +m4_include([gl/m4/nocrash.m4]) +m4_include([gl/m4/nonblocking.m4]) +m4_include([gl/m4/off_t.m4]) +m4_include([gl/m4/open-cloexec.m4]) +m4_include([gl/m4/open-slash.m4]) +m4_include([gl/m4/open.m4]) +m4_include([gl/m4/openat.m4]) +m4_include([gl/m4/opendir.m4]) +m4_include([gl/m4/pathmax.m4]) +m4_include([gl/m4/pipe.m4]) +m4_include([gl/m4/po.m4]) +m4_include([gl/m4/printf.m4]) +m4_include([gl/m4/progtest.m4]) +m4_include([gl/m4/pselect.m4]) +m4_include([gl/m4/pthread_rwlock_rdlock.m4]) +m4_include([gl/m4/pthread_sigmask.m4]) +m4_include([gl/m4/raise.m4]) +m4_include([gl/m4/rawmemchr.m4]) +m4_include([gl/m4/readdir.m4]) +m4_include([gl/m4/readlink.m4]) +m4_include([gl/m4/readlinkat.m4]) +m4_include([gl/m4/realloc.m4]) +m4_include([gl/m4/reallocarray.m4]) +m4_include([gl/m4/regex.m4]) +m4_include([gl/m4/rename.m4]) +m4_include([gl/m4/renameat.m4]) +m4_include([gl/m4/rewinddir.m4]) +m4_include([gl/m4/rmdir.m4]) +m4_include([gl/m4/save-cwd.m4]) +m4_include([gl/m4/select.m4]) +m4_include([gl/m4/setenv.m4]) +m4_include([gl/m4/setlocale_null.m4]) +m4_include([gl/m4/sigaction.m4]) +m4_include([gl/m4/signal_h.m4]) +m4_include([gl/m4/signalblocking.m4]) +m4_include([gl/m4/sigpipe.m4]) +m4_include([gl/m4/size_max.m4]) +m4_include([gl/m4/sleep.m4]) +m4_include([gl/m4/socketlib.m4]) +m4_include([gl/m4/sockets.m4]) +m4_include([gl/m4/socklen.m4]) +m4_include([gl/m4/ssize_t.m4]) +m4_include([gl/m4/stat-time.m4]) +m4_include([gl/m4/stat.m4]) +m4_include([gl/m4/stdalign.m4]) +m4_include([gl/m4/stdarg.m4]) +m4_include([gl/m4/stdbool.m4]) +m4_include([gl/m4/stddef_h.m4]) +m4_include([gl/m4/stdint.m4]) +m4_include([gl/m4/stdint_h.m4]) +m4_include([gl/m4/stdio_h.m4]) +m4_include([gl/m4/stdlib_h.m4]) +m4_include([gl/m4/stpcpy.m4]) +m4_include([gl/m4/strcase.m4]) +m4_include([gl/m4/strcasestr.m4]) +m4_include([gl/m4/strchrnul.m4]) +m4_include([gl/m4/strdup.m4]) +m4_include([gl/m4/strerror.m4]) +m4_include([gl/m4/string_h.m4]) +m4_include([gl/m4/strings_h.m4]) +m4_include([gl/m4/strndup.m4]) +m4_include([gl/m4/strnlen.m4]) +m4_include([gl/m4/strsep.m4]) +m4_include([gl/m4/sys_file_h.m4]) +m4_include([gl/m4/sys_ioctl_h.m4]) +m4_include([gl/m4/sys_random_h.m4]) +m4_include([gl/m4/sys_select_h.m4]) +m4_include([gl/m4/sys_socket_h.m4]) +m4_include([gl/m4/sys_stat_h.m4]) +m4_include([gl/m4/sys_time_h.m4]) +m4_include([gl/m4/sys_types_h.m4]) +m4_include([gl/m4/sys_uio_h.m4]) +m4_include([gl/m4/sysexits.m4]) +m4_include([gl/m4/tempname.m4]) +m4_include([gl/m4/termios_h.m4]) +m4_include([gl/m4/threadlib.m4]) +m4_include([gl/m4/time_h.m4]) +m4_include([gl/m4/timespec.m4]) +m4_include([gl/m4/unistd-safer.m4]) +m4_include([gl/m4/unistd_h.m4]) +m4_include([gl/m4/unlink.m4]) +m4_include([gl/m4/unlinkat.m4]) +m4_include([gl/m4/utime.m4]) +m4_include([gl/m4/utime_h.m4]) +m4_include([gl/m4/utimens.m4]) +m4_include([gl/m4/utimes.m4]) +m4_include([gl/m4/vasnprintf.m4]) +m4_include([gl/m4/vasprintf.m4]) +m4_include([gl/m4/visibility.m4]) +m4_include([gl/m4/vsnprintf.m4]) +m4_include([gl/m4/warn-on-use.m4]) +m4_include([gl/m4/warnings.m4]) +m4_include([gl/m4/wchar_h.m4]) +m4_include([gl/m4/wchar_t.m4]) +m4_include([gl/m4/wcrtomb.m4]) +m4_include([gl/m4/wctype_h.m4]) +m4_include([gl/m4/wint_t.m4]) +m4_include([gl/m4/wmemchr.m4]) +m4_include([gl/m4/wmempcpy.m4]) +m4_include([gl/m4/xalloc.m4]) +m4_include([gl/m4/xgetcwd.m4]) +m4_include([gl/m4/xsize.m4]) +m4_include([gl/m4/xstrndup.m4]) +m4_include([gl/m4/xvasprintf.m4]) +m4_include([gl/m4/year2038.m4]) +m4_include([gl/m4/zzgnulib.m4]) diff --git a/bootstrap b/bootstrap new file mode 100755 index 0000000..1f375ee --- /dev/null +++ b/bootstrap @@ -0,0 +1,1119 @@ +#! /bin/sh +# Print a version string. +scriptversion=2022-06-04.00; # UTC + +# Bootstrap this package from checked-out sources. + +# Copyright (C) 2003-2022 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Originally written by Paul Eggert. The canonical version of this +# script is maintained as build-aux/bootstrap in gnulib, however, to +# be useful to your project, you should place a copy of it under +# version control in the top-level directory of your project. The +# intent is that all customization can be done with a bootstrap.conf +# file also maintained in your version control; gnulib comes with a +# template build-aux/bootstrap.conf to get you started. + +# Please report bugs or propose patches to bug-gnulib@gnu.org. + +nl=' +' + +# Ensure file names are sorted consistently across platforms. +LC_ALL=C +export LC_ALL + +# Ensure that CDPATH is not set. Otherwise, the output from cd +# would cause trouble in at least one use below. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +local_gl_dir=gl + +# Honor $PERL, but work even if there is none. +PERL="${PERL-perl}" + +me=$0 + +default_gnulib_url=https://git.savannah.gnu.org/git/gnulib.git + +usage() { + cat <&2 +} + +# warn_ WORD1... +warn_ () +{ + # If IFS does not start with ' ', set it and emit the warning in a subshell. + case $IFS in + ' '*) warnf_ '%s\n' "$*";; + *) (IFS=' '; warn_ "$@");; + esac +} + +# die WORD1... +die() { warn_ "$@"; exit 1; } + +# Configuration. + +# Name of the Makefile.am +gnulib_mk=gnulib.mk + +# List of gnulib modules needed. +gnulib_modules= + +# Any gnulib files needed that are not in modules. +gnulib_files= + +: ${AUTOPOINT=autopoint} +: ${AUTORECONF=autoreconf} + +# A function to be called for each unrecognized option. Returns 0 if +# the option in $1 has been processed by the function. Returns 1 if +# the option has not been processed by the function. Override it via +# your own definition in bootstrap.conf + +bootstrap_option_hook() { return 1; } + +# A function to be called in order to print the --help information +# corresponding to user-defined command-line options. + +bootstrap_print_option_usage_hook() { :; } + +# A function to be called right after gnulib-tool is run. +# Override it via your own definition in bootstrap.conf. +bootstrap_post_import_hook() { :; } + +# A function to be called after everything else in this script. +# Override it via your own definition in bootstrap.conf. +bootstrap_epilogue() { :; } + +# The command to download all .po files for a specified domain into a +# specified directory. Fill in the first %s with the destination +# directory and the second with the domain name. +po_download_command_format=\ +"wget --mirror --level=1 -nd -nv -A.po -P '%s' \ + https://translationproject.org/latest/%s/" + +# Prefer a non-empty tarname (4th argument of AC_INIT if given), else +# fall back to the package name (1st argument with munging). +extract_package_name=' + /^AC_INIT(\[*/{ + s/// + /^[^,]*,[^,]*,[^,]*,[ []*\([^][ ,)]\)/{ + s//\1/ + s/[],)].*// + p + q + } + s/[],)].*// + s/^GNU // + y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ + s/[^abcdefghijklmnopqrstuvwxyz0123456789_]/-/g + p + } +' +package=$(${AUTOCONF:-autoconf} --trace AC_INIT:\$4 configure.ac 2>/dev/null) +if test -z "$package"; then + package=$(sed -n "$extract_package_name" configure.ac) \ + || die 'cannot find package name in configure.ac' +fi +gnulib_name=lib$package + +build_aux=build-aux +source_base=lib +m4_base=m4 +doc_base=doc +tests_base=tests +gnulib_extra_files=" + build-aux/install-sh + build-aux/mdate-sh + build-aux/texinfo.tex + build-aux/depcomp + build-aux/config.guess + build-aux/config.sub + doc/INSTALL +" + +# Additional gnulib-tool options to use. Use "\newline" to break lines. +gnulib_tool_option_extras= + +# Other locale categories that need message catalogs. +EXTRA_LOCALE_CATEGORIES= + +# Additional xgettext options to use. Use "\\\newline" to break lines. +XGETTEXT_OPTIONS='\\\ + --flag=_:1:pass-c-format\\\ + --flag=N_:1:pass-c-format\\\ + --flag=error:3:c-format --flag=error_at_line:5:c-format\\\ +' + +# Package bug report address and copyright holder for gettext files +COPYRIGHT_HOLDER='Free Software Foundation, Inc.' +MSGID_BUGS_ADDRESS=bug-$package@gnu.org + +# Files we don't want to import. +excluded_files= + +# File that should exist in the top directory of a checked out hierarchy, +# but not in a distribution tarball. +checkout_only_file=README-hacking + +# Whether to use copies instead of symlinks. +copy=false + +# Set this to '.cvsignore .gitignore' in bootstrap.conf if you want +# those files to be generated in directories like lib/, m4/, and po/. +# Or set it to 'auto' to make this script select which to use based +# on which version control system (if any) is used in the source directory. +vc_ignore=auto + +# Set this to true in bootstrap.conf to enable --bootstrap-sync by +# default. +bootstrap_sync=false + +# Use git to update gnulib sources +use_git=true + +check_exists() { + if test "$1" = "--verbose"; then + ($2 --version /dev/null 2>&1 + if test $? -ge 126; then + # If not found, run with diagnostics as one may be + # presented with env variables to set to find the right version + ($2 --version /dev/null 2>&1 + fi + + test $? -lt 126 +} + +# find_tool ENVVAR NAMES... +# ------------------------- +# Search for a required program. Use the value of ENVVAR, if set, +# otherwise find the first of the NAMES that can be run. +# If found, set ENVVAR to the program name, die otherwise. +# +# FIXME: code duplication, see also gnu-web-doc-update. +find_tool () +{ + find_tool_envvar=$1 + shift + find_tool_names=$@ + eval "find_tool_res=\$$find_tool_envvar" + if test x"$find_tool_res" = x; then + for i; do + if check_exists $i; then + find_tool_res=$i + break + fi + done + fi + if test x"$find_tool_res" = x; then + warn_ "one of these is required: $find_tool_names;" + die "alternatively set $find_tool_envvar to a compatible tool" + fi + eval "$find_tool_envvar=\$find_tool_res" + eval "export $find_tool_envvar" +} + +# Strip blank and comment lines to leave significant entries. +gitignore_entries() { + sed '/^#/d; /^$/d' "$@" +} + +# If $STR is not already on a line by itself in $FILE, insert it at the start. +# Entries are inserted at the start of the ignore list to ensure existing +# entries starting with ! are not overridden. Such entries support +# whitelisting exceptions after a more generic blacklist pattern. +insert_if_absent() { + file=$1 + str=$2 + test -f $file || touch $file + test -r $file || die "Error: failed to read ignore file: $file" + duplicate_entries=$(gitignore_entries $file | sort | uniq -d) + if [ "$duplicate_entries" ] ; then + die "Error: Duplicate entries in $file: " $duplicate_entries + fi + linesold=$(gitignore_entries $file | wc -l) + linesnew=$( { echo "$str"; cat $file; } | gitignore_entries | sort -u | wc -l) + if [ $linesold != $linesnew ] ; then + { echo "$str" | cat - $file > $file.bak && mv $file.bak $file; } \ + || die "insert_if_absent $file $str: failed" + fi +} + +# Adjust $PATTERN for $VC_IGNORE_FILE and insert it with +# insert_if_absent. +insert_vc_ignore() { + vc_ignore_file="$1" + pattern="$2" + case $vc_ignore_file in + *.gitignore) + # A .gitignore entry that does not start with '/' applies + # recursively to subdirectories, so prepend '/' to every + # .gitignore entry. + pattern=$(echo "$pattern" | sed s,^,/,);; + esac + insert_if_absent "$vc_ignore_file" "$pattern" +} + +symlink_to_dir() +{ + src=$1/$2 + dst=${3-$2} + + test -f "$src" && { + + # If the destination directory doesn't exist, create it. + # This is required at least for "lib/uniwidth/cjk.h". + dst_dir=$(dirname "$dst") + if ! test -d "$dst_dir"; then + mkdir -p "$dst_dir" + + # If we've just created a directory like lib/uniwidth, + # tell version control system(s) it's ignorable. + # FIXME: for now, this does only one level + parent=$(dirname "$dst_dir") + for dot_ig in x $vc_ignore; do + test $dot_ig = x && continue + ig=$parent/$dot_ig + insert_vc_ignore $ig "${dst_dir##*/}" + done + fi + + if $copy; then + { + test ! -h "$dst" || { + echo "$me: rm -f $dst" && + rm -f "$dst" + } + } && + test -f "$dst" && + cmp -s "$src" "$dst" || { + echo "$me: cp -fp $src $dst" && + cp -fp "$src" "$dst" + } + else + # Leave any existing symlink alone, if it already points to the source, + # so that broken build tools that care about symlink times + # aren't confused into doing unnecessary builds. Conversely, if the + # existing symlink's timestamp is older than the source, make it afresh, + # so that broken tools aren't confused into skipping needed builds. See + # . + test -h "$dst" && + src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 && + dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 && + test "$src_i" = "$dst_i" && + both_ls=$(ls -dt "$src" "$dst") && + test "X$both_ls" = "X$dst$nl$src" || { + dot_dots= + case $src in + /*) ;; + *) + case /$dst/ in + *//* | */../* | */./* | /*/*/*/*/*/) + die "invalid symlink calculation: $src -> $dst";; + /*/*/*/*/) dot_dots=../../../;; + /*/*/*/) dot_dots=../../;; + /*/*/) dot_dots=../;; + esac;; + esac + + echo "$me: ln -fs $dot_dots$src $dst" && + ln -fs "$dot_dots$src" "$dst" + } + fi + } +} + +# Override the default configuration, if necessary. +# Make sure that bootstrap.conf is sourced from the current directory +# if we were invoked as "sh bootstrap". +case "$0" in + */*) test -r "$0.conf" && . "$0.conf" ;; + *) test -r "$0.conf" && . ./"$0.conf" ;; +esac + +if test "$vc_ignore" = auto; then + vc_ignore= + test -d .git && vc_ignore=.gitignore + test -d CVS && vc_ignore="$vc_ignore .cvsignore" +fi + +if test x"$gnulib_modules$gnulib_files$gnulib_extra_files" = x; then + use_gnulib=false +else + use_gnulib=true +fi + +# Translate configuration into internal form. + +# Parse options. + +for option +do + case $option in + --help) + usage + exit;; + --version) + set -e + echo "bootstrap $scriptversion" + echo "$copyright" + exit 0 + ;; + --gnulib-srcdir=*) + GNULIB_SRCDIR=${option#--gnulib-srcdir=};; + --skip-po) + SKIP_PO=t;; + --force) + checkout_only_file=;; + --copy) + copy=true;; + --bootstrap-sync) + bootstrap_sync=true;; + --no-bootstrap-sync) + bootstrap_sync=false;; + --no-git) + use_git=false;; + *) + bootstrap_option_hook $option || die "$option: unknown option";; + esac +done + +$use_git || test -d "$GNULIB_SRCDIR" \ + || die "Error: --no-git requires --gnulib-srcdir" + +if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then + die "Bootstrapping from a non-checked-out distribution is risky." +fi + +# Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac. +found_aux_dir=no +grep '^[ ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'])' configure.ac \ + >/dev/null && found_aux_dir=yes +grep '^[ ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \ + >/dev/null && found_aux_dir=yes +test $found_aux_dir = yes \ + || die "configure.ac lacks 'AC_CONFIG_AUX_DIR([$build_aux])'; add it" + +# If $build_aux doesn't exist, create it now, otherwise some bits +# below will malfunction. If creating it, also mark it as ignored. +if test ! -d $build_aux; then + mkdir $build_aux + for dot_ig in x $vc_ignore; do + test $dot_ig = x && continue + insert_vc_ignore $dot_ig $build_aux + done +fi + +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +sort_ver() { # sort -V is not generally available + ver1="$1" + ver2="$2" + + # split on '.' and compare each component + i=1 + while : ; do + p1=$(echo "$ver1" | cut -d. -f$i) + p2=$(echo "$ver2" | cut -d. -f$i) + if [ ! "$p1" ]; then + echo "$1 $2" + break + elif [ ! "$p2" ]; then + echo "$2 $1" + break + elif [ ! "$p1" = "$p2" ]; then + if [ "$p1" -gt "$p2" ] 2>/dev/null; then # numeric comparison + echo "$2 $1" + elif [ "$p2" -gt "$p1" ] 2>/dev/null; then # numeric comparison + echo "$1 $2" + else # numeric, then lexicographic comparison + lp=$(printf "$p1\n$p2\n" | LANG=C sort -n | tail -n1) + if [ "$lp" = "$p2" ]; then + echo "$1 $2" + else + echo "$2 $1" + fi + fi + break + fi + i=$(($i+1)) + done +} + +get_version_sed=' +# Move version to start of line. +s/.*[v ]\([0-9]\)/\1/ + +# Skip lines that do not start with version. +/^[0-9]/!d + +# Remove characters after the version. +s/[^.a-z0-9-].*// + +# The first component must be digits only. +s/^\([0-9]*\)[a-z-].*/\1/ + +#the following essentially does s/5.005/5.5/ +s/\.0*\([1-9]\)/.\1/g +p +q' + +get_version() { + app=$1 + + $app --version >/dev/null 2>&1 || { $app --version; return 1; } + + $app --version 2>&1 | sed -n "$get_version_sed" +} + +check_versions() { + ret=0 + + while read app req_ver; do + # We only need libtoolize from the libtool package. + if test "$app" = libtool; then + app=libtoolize + fi + # Exempt git if --no-git is in effect. + if test "$app" = git; then + $use_git || continue + fi + # Honor $APP variables ($TAR, $AUTOCONF, etc.) + appvar=$(echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_') + test "$appvar" = TAR && appvar=AMTAR + case $appvar in + GZIP) ;; # Do not use $GZIP: it contains gzip options. + PERL::*) ;; # Keep perl modules as-is + *) eval "app=\${$appvar-$app}" ;; + esac + + # Handle the still-experimental Automake-NG programs specially. + # They remain named as the mainstream Automake programs ("automake", + # and "aclocal") to avoid gratuitous incompatibilities with + # pre-existing usages (by, say, autoreconf, or custom autogen.sh + # scripts), but correctly identify themselves (as being part of + # "GNU automake-ng") when asked their version. + case $app in + automake-ng|aclocal-ng) + app=${app%-ng} + ($app --version | grep '(GNU automake-ng)') >/dev/null 2>&1 || { + warn_ "Error: '$app' not found or not from Automake-NG" + ret=1 + continue + } ;; + # Another check is for perl modules. These can be written as + # e.g. perl::XML::XPath in case of XML::XPath module, etc. + perl::*) + # Extract module name + app="${app#perl::}" + if ! $PERL -m"$app" -e 'exit 0' >/dev/null 2>&1; then + warn_ "Error: perl module '$app' not found" + ret=1 + fi + continue + ;; + esac + if [ "$req_ver" = "-" ]; then + # Merely require app to exist; not all prereq apps are well-behaved + # so we have to rely on $? rather than get_version. + if ! check_exists --verbose $app; then + warn_ "Error: '$app' not found" + ret=1 + fi + else + # Require app to produce a new enough version string. + inst_ver=$(get_version $app) + if [ ! "$inst_ver" ]; then + warn_ "Error: '$app' not found" + ret=1 + else + latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2) + if [ ! "$latest_ver" = "$inst_ver" ]; then + warnf_ '%s\n' \ + "Error: '$app' version == $inst_ver is too old" \ + " '$app' version >= $req_ver is required" + ret=1 + fi + fi + fi + done + + return $ret +} + +print_versions() { + echo "Program Min_version" + echo "----------------------" + printf %s "$buildreq" + echo "----------------------" + # can't depend on column -t +} + +# Find sha1sum, named gsha1sum on MacPorts, shasum on Mac OS X 10.6. +# Also find the compatible sha1 utility on the BSDs +if test x"$SKIP_PO" = x; then + find_tool SHA1SUM sha1sum gsha1sum shasum sha1 +fi + +use_libtool=0 +# We'd like to use grep -E, to see if any of LT_INIT, +# AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac, +# but that's not portable enough (e.g., for Solaris). +grep '^[ ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \ + && use_libtool=1 +grep '^[ ]*LT_INIT' configure.ac >/dev/null \ + && use_libtool=1 +if test $use_libtool = 1; then + find_tool LIBTOOLIZE glibtoolize libtoolize +fi + +# gnulib-tool requires at least automake and autoconf. +# If either is not listed, add it (with minimum version) as a prerequisite. +case $buildreq in + *automake*) ;; + *) buildreq="automake 1.9 +$buildreq" ;; +esac +case $buildreq in + *autoconf*) ;; + *) buildreq="autoconf 2.59 +$buildreq" ;; +esac + +# When we can deduce that gnulib-tool will require patch, +# and when patch is not already listed as a prerequisite, add it, too. +if test -d "$local_gl_dir" \ + && ! find "$local_gl_dir" -name '*.diff' -exec false {} +; then + case $buildreq in + *patch*) ;; + *) buildreq="patch - +$buildreq" ;; + esac +fi + +if ! printf "$buildreq" | check_versions; then + echo >&2 + if test -f README-prereq; then + die "See README-prereq for how to get the prerequisite programs" + else + die "Please install the prerequisite programs" + fi +fi + +# Warn the user if autom4te appears to be broken; this causes known +# issues with at least gettext 0.18.3. +probe=$(echo 'm4_quote([hi])' | autom4te -l M4sugar -t 'm4_quote:$%' -) +if test "x$probe" != xhi; then + warn_ "WARNING: your autom4te wrapper eats stdin;" + warn_ "if bootstrap fails, consider upgrading your autotools" +fi + +echo "$0: Bootstrapping from checked-out $package sources..." + +# See if we can use gnulib's git-merge-changelog merge driver. +if $use_git && test -d .git && check_exists git; then + if git config merge.merge-changelog.driver >/dev/null ; then + : + elif check_exists git-merge-changelog; then + echo "$0: initializing git-merge-changelog driver" + git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver' + git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B' + else + echo "$0: consider installing git-merge-changelog from gnulib" + fi +fi + + +cleanup_gnulib() { + status=$? + rm -fr "$gnulib_path" + exit $status +} + +git_modules_config () { + test -f .gitmodules && git config --file .gitmodules "$@" +} + +if $use_gnulib; then + if $use_git; then + gnulib_path=$(git_modules_config submodule.gnulib.path) + test -z "$gnulib_path" && gnulib_path=gnulib + fi + + # Get gnulib files. Populate $GNULIB_SRCDIR, possibly updating a + # submodule, for use in the rest of the script. + + case ${GNULIB_SRCDIR--} in + -) + # Note that $use_git is necessarily true in this case. + if git_modules_config submodule.gnulib.url >/dev/null; then + echo "$0: getting gnulib files..." + git submodule init -- "$gnulib_path" || exit $? + git submodule update -- "$gnulib_path" || exit $? + + elif [ ! -d "$gnulib_path" ]; then + echo "$0: getting gnulib files..." + + trap cleanup_gnulib 1 2 13 15 + + shallow= + if test -z "$GNULIB_REVISION"; then + git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2' + git clone $shallow ${GNULIB_URL:-$default_gnulib_url} "$gnulib_path" \ + || cleanup_gnulib + else + git fetch -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2' + mkdir -p "$gnulib_path" + # Only want a shallow checkout of $GNULIB_REVISION, but git does not + # support cloning by commit hash. So attempt a shallow fetch by commit + # hash to minimize the amount of data downloaded and changes needed to + # be processed, which can drastically reduce download and processing + # time for checkout. If the fetch by commit fails, a shallow fetch can + # not be performed because we do not know what the depth of the commit + # is without fetching all commits. So fallback to fetching all commits. + git -C "$gnulib_path" init + git -C "$gnulib_path" remote add origin \ + ${GNULIB_URL:-$default_gnulib_url} + git -C "$gnulib_path" fetch $shallow origin "$GNULIB_REVISION" \ + || git -C "$gnulib_path" fetch origin \ + || cleanup_gnulib + git -C "$gnulib_path" reset --hard FETCH_HEAD + fi + + trap - 1 2 13 15 + fi + GNULIB_SRCDIR=$gnulib_path + ;; + *) + # Use GNULIB_SRCDIR directly or as a reference. + if $use_git && test -d "$GNULIB_SRCDIR"/.git && \ + git_modules_config submodule.gnulib.url >/dev/null; then + echo "$0: getting gnulib files..." + if git submodule -h|grep -- --reference > /dev/null; then + # Prefer the one-liner available in git 1.6.4 or newer. + git submodule update --init --reference "$GNULIB_SRCDIR" \ + "$gnulib_path" || exit $? + else + # This fallback allows at least git 1.5.5. + if test -f "$gnulib_path"/gnulib-tool; then + # Since file already exists, assume submodule init already complete. + git submodule update -- "$gnulib_path" || exit $? + else + # Older git can't clone into an empty directory. + rmdir "$gnulib_path" 2>/dev/null + git clone --reference "$GNULIB_SRCDIR" \ + "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \ + && git submodule init -- "$gnulib_path" \ + && git submodule update -- "$gnulib_path" \ + || exit $? + fi + fi + GNULIB_SRCDIR=$gnulib_path + fi + ;; + esac + + if test -d "$GNULIB_SRCDIR"/.git && test -n "$GNULIB_REVISION" \ + && ! git_modules_config submodule.gnulib.url >/dev/null; then + (cd "$GNULIB_SRCDIR" && git checkout "$GNULIB_REVISION") || cleanup_gnulib + fi + + # $GNULIB_SRCDIR now points to the version of gnulib to use, and + # we no longer need to use git or $gnulib_path below here. + + if $bootstrap_sync; then + cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || { + echo "$0: updating bootstrap and restarting..." + case $(sh -c 'echo "$1"' -- a) in + a) ignored=--;; + *) ignored=ignored;; + esac + exec sh -c \ + 'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \ + $ignored "$GNULIB_SRCDIR/build-aux/bootstrap" \ + "$0" "$@" --no-bootstrap-sync + } + fi + + gnulib_tool=$GNULIB_SRCDIR/gnulib-tool + <$gnulib_tool || exit $? +fi + +# Get translations. + +download_po_files() { + subdir=$1 + domain=$2 + echo "$me: getting translations into $subdir for $domain..." + cmd=$(printf "$po_download_command_format" "$subdir" "$domain") + eval "$cmd" +} + +# Mirror .po files to $po_dir/.reference and copy only the new +# or modified ones into $po_dir. Also update $po_dir/LINGUAS. +# Note po files that exist locally only are left in $po_dir but will +# not be included in LINGUAS and hence will not be distributed. +update_po_files() { + # Directory containing primary .po files. + # Overwrite them only when we're sure a .po file is new. + po_dir=$1 + domain=$2 + + # Mirror *.po files into this dir. + # Usually contains *.s1 checksum files. + ref_po_dir="$po_dir/.reference" + + test -d $ref_po_dir || mkdir $ref_po_dir || return + download_po_files $ref_po_dir $domain \ + && ls "$ref_po_dir"/*.po 2>/dev/null | + sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return + + langs=$(cd $ref_po_dir && echo *.po | sed 's/\.po//g') + test "$langs" = '*' && langs=x + for po in $langs; do + case $po in x) continue;; esac + new_po="$ref_po_dir/$po.po" + cksum_file="$ref_po_dir/$po.s1" + if ! test -f "$cksum_file" || + ! test -f "$po_dir/$po.po" || + ! $SHA1SUM -c "$cksum_file" < "$new_po" > /dev/null 2>&1; then + echo "$me: updated $po_dir/$po.po..." + cp "$new_po" "$po_dir/$po.po" \ + && $SHA1SUM < "$new_po" > "$cksum_file" || return + fi + done +} + +case $SKIP_PO in +'') + if test -d po; then + update_po_files po $package || exit + fi + + if test -d runtime-po; then + update_po_files runtime-po $package-runtime || exit + fi;; +esac + +version_controlled_file() { + parent=$1 + file=$2 + if test -d .git; then + git rm -n "$file" > /dev/null 2>&1 + elif test -d .svn; then + svn log -r HEAD "$file" > /dev/null 2>&1 + elif test -d CVS; then + grep -F "/${file##*/}/" "$parent/CVS/Entries" 2>/dev/null | + grep '^/[^/]*/[0-9]' > /dev/null + else + warn_ "no version control for $file?" + false + fi +} + +# NOTE: we have to be careful to run both autopoint and libtoolize +# before gnulib-tool, since gnulib-tool is likely to provide newer +# versions of files "installed" by these two programs. +# Then, *after* gnulib-tool (see below), we have to be careful to +# run autoreconf in such a way that it does not run either of these +# two just-pre-run programs. + +# Import from gettext. +with_gettext=yes +grep '^[ ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \ + with_gettext=no + +if test $with_gettext = yes || test $use_libtool = 1; then + + tempbase=.bootstrap$$ + trap "rm -f $tempbase.0 $tempbase.1" 1 2 13 15 + + > $tempbase.0 > $tempbase.1 && + find . ! -type d -print | sort > $tempbase.0 || exit + + if test $with_gettext = yes; then + # Released autopoint has the tendency to install macros that have been + # obsoleted in current gnulib, so run this before gnulib-tool. + echo "$0: $AUTOPOINT --force" + $AUTOPOINT --force || exit + fi + + # Autoreconf runs aclocal before libtoolize, which causes spurious + # warnings if the initial aclocal is confused by the libtoolized + # (or worse out-of-date) macro directory. + # libtoolize 1.9b added the --install option; but we support back + # to libtoolize 1.5.22, where the install action was default. + if test $use_libtool = 1; then + install= + case $($LIBTOOLIZE --help) in + *--install*) install=--install ;; + esac + echo "running: $LIBTOOLIZE $install --copy" + $LIBTOOLIZE $install --copy + fi + + find . ! -type d -print | sort >$tempbase.1 + old_IFS=$IFS + IFS=$nl + for file in $(comm -13 $tempbase.0 $tempbase.1); do + IFS=$old_IFS + parent=${file%/*} + version_controlled_file "$parent" "$file" || { + for dot_ig in x $vc_ignore; do + test $dot_ig = x && continue + ig=$parent/$dot_ig + insert_vc_ignore "$ig" "${file##*/}" + done + } + done + IFS=$old_IFS + + rm -f $tempbase.0 $tempbase.1 + trap - 1 2 13 15 +fi + +# Import from gnulib. + +if $use_gnulib; then + gnulib_tool_options="\ + --no-changelog\ + --aux-dir=$build_aux\ + --doc-base=$doc_base\ + --lib=$gnulib_name\ + --m4-base=$m4_base/\ + --source-base=$source_base/\ + --tests-base=$tests_base\ + --local-dir=$local_gl_dir\ + $gnulib_tool_option_extras\ + " + if test $use_libtool = 1; then + case "$gnulib_tool_options " in + *' --libtool '*) ;; + *) gnulib_tool_options="$gnulib_tool_options --libtool" ;; + esac + fi + echo "$0: $gnulib_tool $gnulib_tool_options --import ..." + $gnulib_tool $gnulib_tool_options --import $gnulib_modules \ + || die "gnulib-tool failed" + + for file in $gnulib_files; do + symlink_to_dir "$GNULIB_SRCDIR" $file \ + || die "failed to symlink $file" + done +fi + +bootstrap_post_import_hook \ + || die "bootstrap_post_import_hook failed" + +# Don't proceed if there are uninitialized submodules. In particular, +# the next step will remove dangling links, which might be links into +# uninitialized submodules. +# +# Uninitialized submodules are listed with an initial dash. +if $use_git && git submodule | grep '^-' >/dev/null; then + die "some git submodules are not initialized. " \ + "Run 'git submodule update --init' and bootstrap again." +fi + +# Remove any dangling symlink matching "*.m4" or "*.[ch]" in some +# gnulib-populated directories. Such .m4 files would cause aclocal to fail. +# The following requires GNU find 4.2.3 or newer. Considering the usual +# portability constraints of this script, that may seem a very demanding +# requirement, but it should be ok. Ignore any failure, which is fine, +# since this is only a convenience to help developers avoid the relatively +# unusual case in which a symlinked-to .m4 file is git-removed from gnulib +# between successive runs of this script. +find "$m4_base" "$source_base" \ + -depth \( -name '*.m4' -o -name '*.[ch]' \) \ + -type l -xtype l -delete > /dev/null 2>&1 + +# Invoke autoreconf with --force --install to ensure upgrades of tools +# such as ylwrap. +AUTORECONFFLAGS="--verbose --install --force -I $m4_base $ACLOCAL_FLAGS" + +# Some systems (RHEL 5) are using ancient autotools, for which the +# --no-recursive option had not been invented. Detect that lack and +# omit the option when it's not supported. FIXME in 2017: remove this +# hack when RHEL 5 autotools are updated, or when they become irrelevant. +case $($AUTORECONF --help) in + *--no-recursive*) AUTORECONFFLAGS="$AUTORECONFFLAGS --no-recursive";; +esac + +# Tell autoreconf not to invoke autopoint or libtoolize; they were run above. +echo "running: AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS" +AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS \ + || die "autoreconf failed" + +# Get some extra files from gnulib, overriding existing files. +for file in $gnulib_extra_files; do + case $file in + */INSTALL) dst=INSTALL;; + build-aux/*) dst=$build_aux/${file#build-aux/};; + *) dst=$file;; + esac + symlink_to_dir "$GNULIB_SRCDIR" $file $dst \ + || die "failed to symlink $file" +done + +if test $with_gettext = yes; then + # Create gettext configuration. + echo "$0: Creating po/Makevars from po/Makevars.template ..." + rm -f po/Makevars + sed ' + /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/ + /^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/ + /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$MSGID_BUGS_ADDRESS"'| + /^XGETTEXT_OPTIONS *=/{ + s/$/ \\/ + a\ + '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+} + } + ' po/Makevars.template >po/Makevars \ + || die 'cannot generate po/Makevars' + + # If the 'gettext' module is in use, grab the latest Makefile.in.in. + # If only the 'gettext-h' module is in use, assume autopoint already + # put the correct version of this file into place. + case $gnulib_modules in + *gettext-h*) ;; + *gettext*) + cp $GNULIB_SRCDIR/build-aux/po/Makefile.in.in po/Makefile.in.in \ + || die "cannot create po/Makefile.in.in" + ;; + esac + + if test -d runtime-po; then + # Similarly for runtime-po/Makevars, but not quite the same. + rm -f runtime-po/Makevars + sed ' + /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/ + /^subdir *=.*/s/=.*/= runtime-po/ + /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/ + /^XGETTEXT_OPTIONS *=/{ + s/$/ \\/ + a\ + '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+} + } + ' po/Makevars.template >runtime-po/Makevars \ + || die 'cannot generate runtime-po/Makevars' + + # Copy identical files from po to runtime-po. + (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po) + fi +fi + +bootstrap_epilogue + +echo "$0: done. Now you can run './configure'." + +# Local Variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/bootstrap.conf b/bootstrap.conf new file mode 100644 index 0000000..63883fe --- /dev/null +++ b/bootstrap.conf @@ -0,0 +1,157 @@ +# Bootstrap configuration. + +# Copyright (C) 2006-2018 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +GNULIB_REVISION=df336dc1ae60d8ad9f452f2234951133fe617bb0 + +# gnulib modules used by this package. +gnulib_modules=" + argp + array-list + attribute + c99 + canonicalize + closedir + dirent + dirname + error + fcntl-h + flock + fnmatch-gnu + fstat + getline + gettext-h + gitlog-to-changelog + glob + gnupload + hash-map + hash-pjw-bare + hash-set + havelib + idpriv-drop + idpriv-droptemp + lchown + lib-ignore + linkedhash-list + localcharset + manywarnings + memmem + minmax + mkdtemp + mkstemp + nanosleep + nonblocking + openat + opendir + progname + raise + rbtree-list + regex + rename + renameat + setenv + sigaction + signal-h + sigpipe + sigprocmask + stat-time + stdbool + stpcpy + strcase + strcasestr + strerror + strsep + tempname + termios + timespec + unlinkat + utimens + verror + warnings + xalloc + xgetcwd + xlist + xmap + xset + xstdopen + xstrndup + xvasprintf +" + +gnulib_tool_option_extras="\ + --po-base=gl/ref-po \ + --no-conditional-dependencies \ + --libtool \ + --macro-prefix=gl \ + --po-domain=man-db \ + --no-vc-files \ +" + +# This doesn't currently exist, but we set it to avoid confusion with 'gl' +# as the local output directory. +local_gl_dir=gnulib-local + +gnulib_name=libgnu +source_base=gl/lib +m4_base=gl/m4 + +COPYRIGHT_HOLDER='Colin Watson ' +MSGID_BUGS_ADDRESS="$COPYRIGHT_HOLDER" + +# Additional xgettext options to use. Use "\\\newline" to break lines. +XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\ + --from-code=UTF-8\\\ + --flag=debug:1:c-format\\\ + --flag=debug_error:1:c-format\\\ + --flag=fatal:2:c-format\\\ +' + +checkout_only_file= +copy=true +vc_ignore= + +SKIP_PO=t + +# Build prerequisites +buildreq="\ +autoconf 2.64 +automake 1.14 +autopoint 0.18.3 +gettext 0.18.3 +git 1.5.5 +tar - +" + +bootstrap_post_import_hook () { + patch -s -p1 gl/po/Makevars + if ls gl/ref-po/*.po >/dev/null 2>&1; then + cp -a gl/ref-po/*.po gl/po/ + fi + rm -rf gl/ref-po +} + +bootstrap_epilogue () { + mv INSTALL docs/INSTALL.autoconf +} diff --git a/build-aux/ar-lib b/build-aux/ar-lib new file mode 100755 index 0000000..c349042 --- /dev/null +++ b/build-aux/ar-lib @@ -0,0 +1,271 @@ +#! /bin/sh +# Wrapper for Microsoft lib.exe + +me=ar-lib +scriptversion=2019-07-04.01; # UTC + +# Copyright (C) 2010-2021 Free Software Foundation, Inc. +# Written by Peter Rosin . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + + +# func_error message +func_error () +{ + echo "$me: $1" 1>&2 + exit 1 +} + +file_conv= + +# func_file_conv build_file +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN* | MSYS*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv in + mingw) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin | msys) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_at_file at_file operation archive +# Iterate over all members in AT_FILE performing OPERATION on ARCHIVE +# for each of them. +# When interpreting the content of the @FILE, do NOT use func_file_conv, +# since the user would need to supply preconverted file names to +# binutils ar, at least for MinGW. +func_at_file () +{ + operation=$2 + archive=$3 + at_file_contents=`cat "$1"` + eval set x "$at_file_contents" + shift + + for member + do + $AR -NOLOGO $operation:"$member" "$archive" || exit $? + done +} + +case $1 in + '') + func_error "no command. Try '$0 --help' for more information." + ;; + -h | --h*) + cat <. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN* | MSYS*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/* | msys/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/config.guess b/build-aux/config.guess new file mode 100755 index 0000000..1817bdc --- /dev/null +++ b/build-aux/config.guess @@ -0,0 +1,1768 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2022 Free Software Foundation, Inc. + +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2022-05-25' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess +# +# Please send patches to . + + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2022 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +# Just in case it came from the environment. +GUESS= + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039,SC3028 + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD=$driver + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if test -f /.attbin/uname ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case $UNAME_SYSTEM in +Linux|GNU|GNU/*) + LIBC=unknown + + set_cc_for_build + cat <<-EOF > "$dummy.c" + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #elif defined(__GLIBC__) + LIBC=gnu + #else + #include + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif + #endif + EOF + cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "$cc_set_libc" + + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu + fi + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + echo unknown)` + case $UNAME_MACHINE_ARCH in + aarch64eb) machine=aarch64_be-unknown ;; + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; + *) machine=$UNAME_MACHINE_ARCH-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case $UNAME_MACHINE_ARCH in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case $UNAME_MACHINE_ARCH in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case $UNAME_VERSION in + Debian*) + release='-gnu' + ;; + *) + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + GUESS=$machine-${os}${release}${abi-} + ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE + ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE + ;; + *:SecBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE + ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE + ;; + *:MidnightBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE + ;; + *:ekkoBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE + ;; + *:SolidBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE + ;; + *:OS108:*:*) + GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE + ;; + macppc:MirBSD:*:*) + GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE + ;; + *:MirBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE + ;; + *:Sortix:*:*) + GUESS=$UNAME_MACHINE-unknown-sortix + ;; + *:Twizzler:*:*) + GUESS=$UNAME_MACHINE-unknown-twizzler + ;; + *:Redox:*:*) + GUESS=$UNAME_MACHINE-unknown-redox + ;; + mips:OSF1:*.*) + GUESS=mips-dec-osf1 + ;; + alpha:OSF1:*:*) + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + trap '' 0 + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case $ALPHA_CPU_TYPE in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + GUESS=$UNAME_MACHINE-dec-osf$OSF_REL + ;; + Amiga*:UNIX_System_V:4.0:*) + GUESS=m68k-unknown-sysv4 + ;; + *:[Aa]miga[Oo][Ss]:*:*) + GUESS=$UNAME_MACHINE-unknown-amigaos + ;; + *:[Mm]orph[Oo][Ss]:*:*) + GUESS=$UNAME_MACHINE-unknown-morphos + ;; + *:OS/390:*:*) + GUESS=i370-ibm-openedition + ;; + *:z/VM:*:*) + GUESS=s390-ibm-zvmoe + ;; + *:OS400:*:*) + GUESS=powerpc-ibm-os400 + ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + GUESS=arm-acorn-riscix$UNAME_RELEASE + ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + GUESS=arm-unknown-riscos + ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + GUESS=hppa1.1-hitachi-hiuxmpp + ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + case `(/bin/universe) 2>/dev/null` in + att) GUESS=pyramid-pyramid-sysv3 ;; + *) GUESS=pyramid-pyramid-bsd ;; + esac + ;; + NILE*:*:*:dcosx) + GUESS=pyramid-pyramid-svr4 + ;; + DRS?6000:unix:4.0:6*) + GUESS=sparc-icl-nx6 + ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) GUESS=sparc-icl-nx7 ;; + esac + ;; + s390x:SunOS:*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL + ;; + sun4H:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-hal-solaris2$SUN_REL + ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris2$SUN_REL + ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + GUESS=i386-pc-auroraux$UNAME_RELEASE + ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + set_cc_for_build + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$SUN_ARCH-pc-solaris2$SUN_REL + ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris3$SUN_REL + ;; + sun4*:SunOS:*:*) + case `/usr/bin/arch -k` in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` + GUESS=sparc-sun-sunos$SUN_REL + ;; + sun3*:SunOS:*:*) + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case `/bin/arch` in + sun3) + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; + sun4) + GUESS=sparc-sun-sunos$UNAME_RELEASE + ;; + esac + ;; + aushp:SunOS:*:*) + GUESS=sparc-auspex-sunos$UNAME_RELEASE + ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + GUESS=m68k-milan-mint$UNAME_RELEASE + ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + GUESS=m68k-hades-mint$UNAME_RELEASE + ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + GUESS=m68k-unknown-mint$UNAME_RELEASE + ;; + m68k:machten:*:*) + GUESS=m68k-apple-machten$UNAME_RELEASE + ;; + powerpc:machten:*:*) + GUESS=powerpc-apple-machten$UNAME_RELEASE + ;; + RISC*:Mach:*:*) + GUESS=mips-dec-mach_bsd4.3 + ;; + RISC*:ULTRIX:*:*) + GUESS=mips-dec-ultrix$UNAME_RELEASE + ;; + VAX*:ULTRIX*:*:*) + GUESS=vax-dec-ultrix$UNAME_RELEASE + ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + GUESS=clipper-intergraph-clix$UNAME_RELEASE + ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && + { echo "$SYSTEM_NAME"; exit; } + GUESS=mips-mips-riscos$UNAME_RELEASE + ;; + Motorola:PowerMAX_OS:*:*) + GUESS=powerpc-motorola-powermax + ;; + Motorola:*:4.3:PL8-*) + GUESS=powerpc-harris-powermax + ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + GUESS=powerpc-harris-powermax + ;; + Night_Hawk:Power_UNIX:*:*) + GUESS=powerpc-harris-powerunix + ;; + m88k:CX/UX:7*:*) + GUESS=m88k-harris-cxux7 + ;; + m88k:*:4*:R4*) + GUESS=m88k-motorola-sysv4 + ;; + m88k:*:3*:R3*) + GUESS=m88k-motorola-sysv3 + ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 + then + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x + then + GUESS=m88k-dg-dgux$UNAME_RELEASE + else + GUESS=m88k-dg-dguxbcs$UNAME_RELEASE + fi + else + GUESS=i586-dg-dgux$UNAME_RELEASE + fi + ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + GUESS=m88k-dolphin-sysv3 + ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + GUESS=m88k-motorola-sysv3 + ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + GUESS=m88k-tektronix-sysv3 + ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + GUESS=m68k-tektronix-bsd + ;; + *:IRIX*:*:*) + IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` + GUESS=mips-sgi-irix$IRIX_REL + ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id + ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + GUESS=i386-ibm-aix + ;; + ia64:AIX:*:*) + if test -x /usr/bin/oslevel ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE + fi + GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV + ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` + then + GUESS=$SYSTEM_NAME + else + GUESS=rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + GUESS=rs6000-ibm-aix3.2.4 + else + GUESS=rs6000-ibm-aix3.2 + fi + ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if test -x /usr/bin/lslpp ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE + fi + GUESS=$IBM_ARCH-ibm-aix$IBM_REV + ;; + *:AIX:*:*) + GUESS=rs6000-ibm-aix + ;; + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) + GUESS=romp-ibm-bsd4.4 + ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to + ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + GUESS=rs6000-bull-bosx + ;; + DPX/2?00:B.O.S.:*:*) + GUESS=m68k-bull-sysv3 + ;; + 9000/[34]??:4.3bsd:1.*:*) + GUESS=m68k-hp-bsd + ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + GUESS=m68k-hp-bsd4.4 + ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + case $UNAME_MACHINE in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if test -x /usr/bin/getconf; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case $sc_cpu_version in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case $sc_kernel_bits in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac + fi + if test "$HP_ARCH" = ""; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if test "$HP_ARCH" = hppa2.0w + then + set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + GUESS=$HP_ARCH-hp-hpux$HPUX_REV + ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + GUESS=ia64-hp-hpux$HPUX_REV + ;; + 3050*:HI-UX:*:*) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + GUESS=unknown-hitachi-hiuxwe2 + ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) + GUESS=hppa1.1-hp-bsd + ;; + 9000/8??:4.3bsd:*:*) + GUESS=hppa1.0-hp-bsd + ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + GUESS=hppa1.0-hp-mpeix + ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) + GUESS=hppa1.1-hp-osf + ;; + hp8??:OSF1:*:*) + GUESS=hppa1.0-hp-osf + ;; + i*86:OSF1:*:*) + if test -x /usr/sbin/sysversion ; then + GUESS=$UNAME_MACHINE-unknown-osf1mk + else + GUESS=$UNAME_MACHINE-unknown-osf1 + fi + ;; + parisc*:Lites*:*:*) + GUESS=hppa1.1-hp-lites + ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + GUESS=c1-convex-bsd + ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + GUESS=c34-convex-bsd + ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + GUESS=c38-convex-bsd + ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + GUESS=c4-convex-bsd + ;; + CRAY*Y-MP:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=ymp-cray-unicos$CRAY_REL + ;; + CRAY*[A-Z]90:*:*:*) + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=t90-cray-unicos$CRAY_REL + ;; + CRAY*T3E:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=alphaev5-cray-unicosmk$CRAY_REL + ;; + CRAY*SV1:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=sv1-cray-unicos$CRAY_REL + ;; + *:UNICOS/mp:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=craynv-cray-unicosmp$CRAY_REL + ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` + GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE + ;; + sparc*:BSD/OS:*:*) + GUESS=sparc-unknown-bsdi$UNAME_RELEASE + ;; + *:BSD/OS:*:*) + GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE + ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=`uname -p` + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi + else + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf + fi + ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case $UNAME_PROCESSOR in + amd64) + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; + esac + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL + ;; + i*:CYGWIN*:*) + GUESS=$UNAME_MACHINE-pc-cygwin + ;; + *:MINGW64*:*) + GUESS=$UNAME_MACHINE-pc-mingw64 + ;; + *:MINGW*:*) + GUESS=$UNAME_MACHINE-pc-mingw32 + ;; + *:MSYS*:*) + GUESS=$UNAME_MACHINE-pc-msys + ;; + i*:PW*:*) + GUESS=$UNAME_MACHINE-pc-pw32 + ;; + *:SerenityOS:*:*) + GUESS=$UNAME_MACHINE-pc-serenity + ;; + *:Interix*:*) + case $UNAME_MACHINE in + x86) + GUESS=i586-pc-interix$UNAME_RELEASE + ;; + authenticamd | genuineintel | EM64T) + GUESS=x86_64-unknown-interix$UNAME_RELEASE + ;; + IA64) + GUESS=ia64-unknown-interix$UNAME_RELEASE + ;; + esac ;; + i*:UWIN*:*) + GUESS=$UNAME_MACHINE-pc-uwin + ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + GUESS=x86_64-pc-cygwin + ;; + prep*:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=powerpcle-unknown-solaris2$SUN_REL + ;; + *:GNU:*:*) + # the GNU system + GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` + GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL + ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC + ;; + *:Minix:*:*) + GUESS=$UNAME_MACHINE-unknown-minix + ;; + aarch64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arm*:Linux:*:*) + set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi + else + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf + fi + fi + ;; + avr32*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + cris:Linux:*:*) + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; + crisv32:Linux:*:*) + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; + e2k:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + frv:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + hexagon:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + i*86:Linux:*:*) + GUESS=$UNAME_MACHINE-pc-linux-$LIBC + ;; + ia64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + k1om:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + m32r*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + m68*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + mips:Linux:*:* | mips64:Linux:*:*) + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 + sed 's/^ //' << EOF > "$dummy.c" + #undef CPU + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + MIPS_ENDIAN=el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + MIPS_ENDIAN= + #else + MIPS_ENDIAN= + #endif + #endif +EOF + cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` + eval "$cc_set_vars" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } + ;; + mips64el:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + openrisc*:Linux:*:*) + GUESS=or1k-unknown-linux-$LIBC + ;; + or32:Linux:*:* | or1k*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + padre:Linux:*:*) + GUESS=sparc-unknown-linux-$LIBC + ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + GUESS=hppa64-unknown-linux-$LIBC + ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; + PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; + *) GUESS=hppa-unknown-linux-$LIBC ;; + esac + ;; + ppc64:Linux:*:*) + GUESS=powerpc64-unknown-linux-$LIBC + ;; + ppc:Linux:*:*) + GUESS=powerpc-unknown-linux-$LIBC + ;; + ppc64le:Linux:*:*) + GUESS=powerpc64le-unknown-linux-$LIBC + ;; + ppcle:Linux:*:*) + GUESS=powerpcle-unknown-linux-$LIBC + ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + s390:Linux:*:* | s390x:Linux:*:*) + GUESS=$UNAME_MACHINE-ibm-linux-$LIBC + ;; + sh64*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + sh*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + tile*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + vax:Linux:*:*) + GUESS=$UNAME_MACHINE-dec-linux-$LIBC + ;; + x86_64:Linux:*:*) + set_cc_for_build + CPU=$UNAME_MACHINE + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + ABI=64 + sed 's/^ //' << EOF > "$dummy.c" + #ifdef __i386__ + ABI=x86 + #else + #ifdef __ILP32__ + ABI=x32 + #endif + #endif +EOF + cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'` + eval "$cc_set_abi" + case $ABI in + x86) CPU=i686 ;; + x32) LIBCABI=${LIBC}x32 ;; + esac + fi + GUESS=$CPU-pc-linux-$LIBCABI + ;; + xtensa*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + GUESS=i386-sequent-sysv4 + ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION + ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + GUESS=$UNAME_MACHINE-pc-os2-emx + ;; + i*86:XTS-300:*:STOP) + GUESS=$UNAME_MACHINE-unknown-stop + ;; + i*86:atheos:*:*) + GUESS=$UNAME_MACHINE-unknown-atheos + ;; + i*86:syllable:*:*) + GUESS=$UNAME_MACHINE-pc-syllable + ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + GUESS=i386-unknown-lynxos$UNAME_RELEASE + ;; + i*86:*DOS:*:*) + GUESS=$UNAME_MACHINE-pc-msdosdjgpp + ;; + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL + else + GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL + fi + ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL + else + GUESS=$UNAME_MACHINE-pc-sysv32 + fi + ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + GUESS=i586-pc-msdosdjgpp + ;; + Intel:Mach:3*:*) + GUESS=i386-pc-mach3 + ;; + paragon:*:*:*) + GUESS=i860-intel-osf1 + ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 + fi + ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + GUESS=m68010-convergent-sysv + ;; + mc68k:UNIX:SYSTEM5:3.51m) + GUESS=m68k-convergent-sysv + ;; + M680?0:D-NIX:5.3:*) + GUESS=m68k-diab-dnix + ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + GUESS=m68k-unknown-lynxos$UNAME_RELEASE + ;; + mc68030:UNIX_System_V:4.*:*) + GUESS=m68k-atari-sysv4 + ;; + TSUNAMI:LynxOS:2.*:*) + GUESS=sparc-unknown-lynxos$UNAME_RELEASE + ;; + rs6000:LynxOS:2.*:*) + GUESS=rs6000-unknown-lynxos$UNAME_RELEASE + ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + GUESS=powerpc-unknown-lynxos$UNAME_RELEASE + ;; + SM[BE]S:UNIX_SV:*:*) + GUESS=mips-dde-sysv$UNAME_RELEASE + ;; + RM*:ReliantUNIX-*:*:*) + GUESS=mips-sni-sysv4 + ;; + RM*:SINIX-*:*:*) + GUESS=mips-sni-sysv4 + ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + GUESS=$UNAME_MACHINE-sni-sysv4 + else + GUESS=ns32k-sni-sysv + fi + ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + GUESS=i586-unisys-sysv4 + ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + GUESS=hppa1.1-stratus-sysv4 + ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + GUESS=i860-stratus-sysv4 + ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + GUESS=$UNAME_MACHINE-stratus-vos + ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + GUESS=hppa1.1-stratus-vos + ;; + mc68*:A/UX:*:*) + GUESS=m68k-apple-aux$UNAME_RELEASE + ;; + news*:NEWS-OS:6*:*) + GUESS=mips-sony-newsos6 + ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if test -d /usr/nec; then + GUESS=mips-nec-sysv$UNAME_RELEASE + else + GUESS=mips-unknown-sysv$UNAME_RELEASE + fi + ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + GUESS=powerpc-be-beos + ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + GUESS=powerpc-apple-beos + ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + GUESS=i586-pc-beos + ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + GUESS=i586-pc-haiku + ;; + ppc:Haiku:*:*) # Haiku running on Apple PowerPC + GUESS=powerpc-apple-haiku + ;; + *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat) + GUESS=$UNAME_MACHINE-unknown-haiku + ;; + SX-4:SUPER-UX:*:*) + GUESS=sx4-nec-superux$UNAME_RELEASE + ;; + SX-5:SUPER-UX:*:*) + GUESS=sx5-nec-superux$UNAME_RELEASE + ;; + SX-6:SUPER-UX:*:*) + GUESS=sx6-nec-superux$UNAME_RELEASE + ;; + SX-7:SUPER-UX:*:*) + GUESS=sx7-nec-superux$UNAME_RELEASE + ;; + SX-8:SUPER-UX:*:*) + GUESS=sx8-nec-superux$UNAME_RELEASE + ;; + SX-8R:SUPER-UX:*:*) + GUESS=sx8r-nec-superux$UNAME_RELEASE + ;; + SX-ACE:SUPER-UX:*:*) + GUESS=sxace-nec-superux$UNAME_RELEASE + ;; + Power*:Rhapsody:*:*) + GUESS=powerpc-apple-rhapsody$UNAME_RELEASE + ;; + *:Rhapsody:*:*) + GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE + ;; + arm64:Darwin:*:*) + GUESS=aarch64-apple-darwin$UNAME_RELEASE + ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build + fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE + fi + GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE + ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE + ;; + *:QNX:*:4*) + GUESS=i386-pc-qnx + ;; + NEO-*:NONSTOP_KERNEL:*:*) + GUESS=neo-tandem-nsk$UNAME_RELEASE + ;; + NSE-*:NONSTOP_KERNEL:*:*) + GUESS=nse-tandem-nsk$UNAME_RELEASE + ;; + NSR-*:NONSTOP_KERNEL:*:*) + GUESS=nsr-tandem-nsk$UNAME_RELEASE + ;; + NSV-*:NONSTOP_KERNEL:*:*) + GUESS=nsv-tandem-nsk$UNAME_RELEASE + ;; + NSX-*:NONSTOP_KERNEL:*:*) + GUESS=nsx-tandem-nsk$UNAME_RELEASE + ;; + *:NonStop-UX:*:*) + GUESS=mips-compaq-nonstopux + ;; + BS2000:POSIX*:*:*) + GUESS=bs2000-siemens-sysv + ;; + DS/*:UNIX_System_V:*:*) + GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE + ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "${cputype-}" = 386; then + UNAME_MACHINE=i386 + elif test "x${cputype-}" != x; then + UNAME_MACHINE=$cputype + fi + GUESS=$UNAME_MACHINE-unknown-plan9 + ;; + *:TOPS-10:*:*) + GUESS=pdp10-unknown-tops10 + ;; + *:TENEX:*:*) + GUESS=pdp10-unknown-tenex + ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + GUESS=pdp10-dec-tops20 + ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + GUESS=pdp10-xkl-tops20 + ;; + *:TOPS-20:*:*) + GUESS=pdp10-unknown-tops20 + ;; + *:ITS:*:*) + GUESS=pdp10-unknown-its + ;; + SEI:*:*:SEIUX) + GUESS=mips-sei-seiux$UNAME_RELEASE + ;; + *:DragonFly:*:*) + DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL + ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case $UNAME_MACHINE in + A*) GUESS=alpha-dec-vms ;; + I*) GUESS=ia64-dec-vms ;; + V*) GUESS=vax-dec-vms ;; + esac ;; + *:XENIX:*:SysV) + GUESS=i386-pc-xenix + ;; + i*86:skyos:*:*) + SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` + GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL + ;; + i*86:rdos:*:*) + GUESS=$UNAME_MACHINE-pc-rdos + ;; + i*86:Fiwix:*:*) + GUESS=$UNAME_MACHINE-pc-fiwix + ;; + *:AROS:*:*) + GUESS=$UNAME_MACHINE-unknown-aros + ;; + x86_64:VMkernel:*:*) + GUESS=$UNAME_MACHINE-unknown-esx + ;; + amd64:Isilon\ OneFS:*:*) + GUESS=x86_64-unknown-onefs + ;; + *:Unleashed:*:*) + GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE + ;; +esac + +# Do we have a guess based on uname results? +if test "x$GUESS" != x; then + echo "$GUESS" + exit +fi + +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" < +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + +echo "$0: unable to guess system type" >&2 + +case $UNAME_MACHINE:$UNAME_SYSTEM in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 <&2 </dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" +EOF +fi + +exit 1 + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/build-aux/config.rpath b/build-aux/config.rpath new file mode 100755 index 0000000..1e1ab67 --- /dev/null +++ b/build-aux/config.rpath @@ -0,0 +1,684 @@ +#! /bin/sh +# Output a system dependent set of variables, describing how to set the +# run time search path of shared libraries in an executable. +# +# Copyright 1996-2022 Free Software Foundation, Inc. +# Taken from GNU libtool, 2001 +# Originally by Gordon Matzigkeit , 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. +# +# The first argument passed to this file is the canonical host specification, +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld +# should be set by the caller. +# +# The set of defined variables is at the end of this script. + +# Known limitations: +# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer +# than 256 bytes, otherwise the compiler driver will dump core. The only +# known workaround is to choose shorter directory names for the build +# directory and/or the installation directory. + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +shrext=.so + +host="$1" +host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + +# Code taken from libtool.m4's _LT_CC_BASENAME. + +for cc_temp in $CC""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` + +# Code taken from libtool.m4's _LT_COMPILER_PIC. + +wl= +if test "$GCC" = yes; then + wl='-Wl,' +else + case "$host_os" in + aix*) + wl='-Wl,' + ;; + mingw* | cygwin* | pw32* | os2* | cegcc*) + ;; + hpux9* | hpux10* | hpux11*) + wl='-Wl,' + ;; + irix5* | irix6* | nonstopux*) + wl='-Wl,' + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + ecc*) + wl='-Wl,' + ;; + icc* | ifort*) + wl='-Wl,' + ;; + lf95*) + wl='-Wl,' + ;; + nagfor*) + wl='-Wl,-Wl,,' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + wl='-Wl,' + ;; + ccc*) + wl='-Wl,' + ;; + xl* | bgxl* | bgf* | mpixl*) + wl='-Wl,' + ;; + como) + wl='-lopt=' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ F* | *Sun*Fortran*) + wl= + ;; + *Sun\ C*) + wl='-Wl,' + ;; + esac + ;; + esac + ;; + newsos6) + ;; + *nto* | *qnx*) + ;; + osf3* | osf4* | osf5*) + wl='-Wl,' + ;; + rdos*) + ;; + solaris*) + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + wl='-Qoption ld ' + ;; + *) + wl='-Wl,' + ;; + esac + ;; + sunos4*) + wl='-Qoption ld ' + ;; + sysv4 | sysv4.2uw2* | sysv4.3*) + wl='-Wl,' + ;; + sysv4*MP*) + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + wl='-Wl,' + ;; + unicos*) + wl='-Wl,' + ;; + uts4*) + ;; + esac +fi + +# Code taken from libtool.m4's _LT_LINKER_SHLIBS. + +hardcode_libdir_flag_spec= +hardcode_libdir_separator= +hardcode_direct=no +hardcode_minus_L=no + +case "$host_os" in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; +esac + +ld_shlibs=yes +if test "$with_gnu_ld" = yes; then + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + # Unlike libtool, we use -rpath here, not --rpath, since the documented + # option of GNU ld is called -rpath, not --rpath. + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + case "$host_os" in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + fi + ;; + amigaos*) + case "$host_cpu" in + powerpc) + ;; + m68k) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + cygwin* | mingw* | pw32* | cegcc*) + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + haiku*) + ;; + interix[3-9]*) + hardcode_direct=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + netbsd*) + ;; + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + else + ld_shlibs=no + fi + ;; + esac + ;; + sunos4*) + hardcode_direct=yes + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + esac + if test "$ld_shlibs" = no; then + hardcode_libdir_flag_spec= + fi +else + case "$host_os" in + aix3*) + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + else + aix_use_runtimelinking=no + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + fi + hardcode_direct=yes + hardcode_libdir_separator=':' + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + fi + # Begin _LT_AC_SYS_LIBPATH_AIX. + echo 'int main () { return 0; }' > conftest.c + ${CC} ${LDFLAGS} conftest.c -o conftest + aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + fi + if test -z "$aix_libpath"; then + aix_libpath="/usr/lib:/lib" + fi + rm -f conftest.c conftest + # End _LT_AC_SYS_LIBPATH_AIX. + if test "$aix_use_runtimelinking" = yes; then + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + else + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + fi + fi + ;; + amigaos*) + case "$host_cpu" in + powerpc) + ;; + m68k) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + bsdi[45]*) + ;; + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + libext=lib + ;; + darwin* | rhapsody*) + hardcode_direct=no + if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then + : + else + ld_shlibs=no + fi + ;; + dgux*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + freebsd2.[01]*) + hardcode_direct=yes + hardcode_minus_L=yes + ;; + freebsd* | dragonfly* | midnightbsd*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + hpux9*) + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + hpux10*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + hpux11*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + ;; + *) + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + irix5* | irix6* | nonstopux*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + netbsd*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + newsos6) + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + *nto* | *qnx*) + ;; + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + else + case "$host_os" in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + osf3*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + osf4* | osf5*) + if test "$GCC" = yes; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + # Both cc and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + ;; + solaris*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + sunos4*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + ;; + sysv4) + case $host_vendor in + sni) + hardcode_direct=yes # is this really true??? + ;; + siemens) + hardcode_direct=no + ;; + motorola) + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + ;; + sysv4.3*) + ;; + sysv4*MP*) + if test -d /usr/nec; then + ld_shlibs=yes + fi + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + ;; + sysv5* | sco3.2v5* | sco5v6*) + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator=':' + ;; + uts4*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + *) + ld_shlibs=no + ;; + esac +fi + +# Check dynamic linker characteristics +# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. +# Unlike libtool.m4, here we don't care about _all_ names of the library, but +# only about the one the linker finds when passed -lNAME. This is the last +# element of library_names_spec in libtool.m4, or possibly two of them if the +# linker has special search rules. +library_names_spec= # the last element of library_names_spec in libtool.m4 +libname_spec='lib$name' +case "$host_os" in + aix3*) + library_names_spec='$libname.a' + ;; + aix[4-9]*) + library_names_spec='$libname$shrext' + ;; + amigaos*) + case "$host_cpu" in + powerpc*) + library_names_spec='$libname$shrext' ;; + m68k) + library_names_spec='$libname.a' ;; + esac + ;; + beos*) + library_names_spec='$libname$shrext' + ;; + bsdi[45]*) + library_names_spec='$libname$shrext' + ;; + cygwin* | mingw* | pw32* | cegcc*) + shrext=.dll + library_names_spec='$libname.dll.a $libname.lib' + ;; + darwin* | rhapsody*) + shrext=.dylib + library_names_spec='$libname$shrext' + ;; + dgux*) + library_names_spec='$libname$shrext' + ;; + freebsd[23].*) + library_names_spec='$libname$shrext$versuffix' + ;; + freebsd* | dragonfly* | midnightbsd*) + library_names_spec='$libname$shrext' + ;; + gnu*) + library_names_spec='$libname$shrext' + ;; + haiku*) + library_names_spec='$libname$shrext' + ;; + hpux9* | hpux10* | hpux11*) + case $host_cpu in + ia64*) + shrext=.so + ;; + hppa*64*) + shrext=.sl + ;; + *) + shrext=.sl + ;; + esac + library_names_spec='$libname$shrext' + ;; + interix[3-9]*) + library_names_spec='$libname$shrext' + ;; + irix5* | irix6* | nonstopux*) + library_names_spec='$libname$shrext' + case "$host_os" in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; + *) libsuff= shlibsuff= ;; + esac + ;; + esac + ;; + linux*oldld* | linux*aout* | linux*coff*) + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + library_names_spec='$libname$shrext' + ;; + knetbsd*-gnu) + library_names_spec='$libname$shrext' + ;; + netbsd*) + library_names_spec='$libname$shrext' + ;; + newsos6) + library_names_spec='$libname$shrext' + ;; + *nto* | *qnx*) + library_names_spec='$libname$shrext' + ;; + openbsd*) + library_names_spec='$libname$shrext$versuffix' + ;; + os2*) + libname_spec='$name' + shrext=.dll + library_names_spec='$libname.a' + ;; + osf3* | osf4* | osf5*) + library_names_spec='$libname$shrext' + ;; + rdos*) + ;; + solaris*) + library_names_spec='$libname$shrext' + ;; + sunos4*) + library_names_spec='$libname$shrext$versuffix' + ;; + sysv4 | sysv4.3*) + library_names_spec='$libname$shrext' + ;; + sysv4*MP*) + library_names_spec='$libname$shrext' + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + library_names_spec='$libname$shrext' + ;; + tpf*) + library_names_spec='$libname$shrext' + ;; + uts4*) + library_names_spec='$libname$shrext' + ;; +esac + +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' +escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` +shlibext=`echo "$shrext" | sed -e 's,^\.,,'` +escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` + +LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2022 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Split fields of configuration type +# shellcheck disable=SC2162 +saved_IFS=$IFS +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 + ;; + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 + ;; + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac + ;; + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac + ;; + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac + ;; +esac + +# Decode 1-component or ad-hoc basic machines +case $basic_machine in + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond + ;; + op50n) + cpu=hppa1.1 + vendor=oki + ;; + op60c) + cpu=hppa1.1 + vendor=oki + ;; + ibm*) + cpu=i370 + vendor=ibm + ;; + orion105) + cpu=clipper + vendor=highlevel + ;; + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple + ;; + pmac | pmac-mpw) + cpu=powerpc + vendor=apple + ;; + + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + cpu=m68000 + vendor=att + ;; + 3b*) + cpu=we32k + vendor=att + ;; + bluegene*) + cpu=powerpc + vendor=ibm + basic_os=cnk + ;; + decsystem10* | dec10*) + cpu=pdp10 + vendor=dec + basic_os=tops10 + ;; + decsystem20* | dec20*) + cpu=pdp10 + vendor=dec + basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + cpu=m68k + vendor=motorola + ;; + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 + ;; + encore | umax | mmax) + cpu=ns32k + vendor=encore + ;; + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} + ;; + fx2800) + cpu=i860 + vendor=alliant + ;; + genix) + cpu=ns32k + vendor=ns + ;; + h3050r* | hiux*) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + cpu=m68000 + vendor=hp + ;; + hp9k3[2-9][0-9]) + cpu=m68k + vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + i*86v32) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 + ;; + i*86v4*) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 + ;; + i*86v) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv + ;; + i*86sol2) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} + ;; + iris | iris4d) + cpu=mips + vendor=sgi + case $basic_os in + irix*) + ;; + *) + basic_os=irix4 + ;; + esac + ;; + miniframe) + cpu=m68000 + vendor=convergent + ;; + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint + ;; + news-3600 | risc-news) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) + ;; + ns2*) + basic_os=nextstep2 + ;; + *) + basic_os=nextstep3 + ;; + esac + ;; + np1) + cpu=np1 + vendor=gould + ;; + op50n-* | op60c-*) + cpu=hppa1.1 + vendor=oki + basic_os=proelf + ;; + pa-hitachi) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + pbd) + cpu=sparc + vendor=tti + ;; + pbb) + cpu=m68k + vendor=tti + ;; + pc532) + cpu=ns32k + vendor=pc532 + ;; + pn) + cpu=pn + vendor=gould + ;; + power) + cpu=power + vendor=ibm + ;; + ps2) + cpu=i386 + vendor=ibm + ;; + rm[46]00) + cpu=mips + vendor=siemens + ;; + rtpc | rtpc-*) + cpu=romp + vendor=ibm + ;; + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks + ;; + tower | tower-32) + cpu=m68k + vendor=ncr + ;; + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu + ;; + w65) + cpu=w65 + vendor=wdc + ;; + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf + ;; + none) + cpu=none + vendor=none + ;; + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine + ;; + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; + + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read cpu vendor <&2 + exit 1 + ;; + esac + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $vendor in + digital*) + vendor=dec + ;; + commodore*) + vendor=cbm + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if test x$basic_os != x +then + +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` + ;; + os2-emx) + kernel=os2 + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` + ;; + nto-qnx*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read kernel os <&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) + vendor=acorn + ;; + *-sunos*) + vendor=sun + ;; + *-cnk* | *-aix*) + vendor=ibm + ;; + *-beos*) + vendor=be + ;; + *-hpux*) + vendor=hp + ;; + *-mpeix*) + vendor=hp + ;; + *-hiux*) + vendor=hitachi + ;; + *-unos*) + vendor=crds + ;; + *-dgux*) + vendor=dg + ;; + *-luna*) + vendor=omron + ;; + *-genix*) + vendor=ns + ;; + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) + vendor=ibm + ;; + s390-* | s390x-*) + vendor=ibm + ;; + *-ptx*) + vendor=sequent + ;; + *-tpf*) + vendor=ibm + ;; + *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; + *-aux*) + vendor=apple + ;; + *-hms*) + vendor=hitachi + ;; + *-mpw* | *-macos*) + vendor=apple + ;; + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; + *-vos*) + vendor=stratus + ;; + esac + ;; +esac + +echo "$cpu-$vendor-${kernel:+$kernel-}$os" +exit + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/build-aux/depcomp b/build-aux/depcomp new file mode 100755 index 0000000..75323b7 --- /dev/null +++ b/build-aux/depcomp @@ -0,0 +1,790 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 1999-2022 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by 'PROGRAMS ARGS'. + object Object file output by 'PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputting dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +alpha=${upper}${lower} + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Avoid interferences from the environment. +gccflag= dashmflag= + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The second -e expression handles DOS-style file names with drive + # letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the "deleted header file" problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. +## Some versions of gcc put a space before the ':'. On the theory +## that the space means something, we add a space to the output as +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like '#:fec' to the end of the + # dependency line. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ + | tr "$nl" ' ' >> "$depfile" + echo >> "$depfile" + # The second pass generates a dummy entry for each header file. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" + ;; + +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts '$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" + rm -f "$tmpdepfile" + ;; + +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using '\' : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi + + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/'"$tab"'\1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/'"$tab"'/ + G + p +}' >> "$depfile" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for ':' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. + "$@" $dashmflag | + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E \ + | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + | sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/gitlog-to-changelog b/build-aux/gitlog-to-changelog new file mode 100755 index 0000000..82d9f97 --- /dev/null +++ b/build-aux/gitlog-to-changelog @@ -0,0 +1,516 @@ +#!/bin/sh +#! -*-perl-*- + +# Convert git log output to ChangeLog format. + +# Copyright (C) 2008-2022 Free Software Foundation, Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# Written by Jim Meyering + +# This is a prologue that allows to run a perl script as an executable +# on systems that are compliant to a POSIX version before POSIX:2017. +# On such systems, the usual invocation of an executable through execlp() +# or execvp() fails with ENOEXEC if it is a script that does not start +# with a #! line. The script interpreter mentioned in the #! line has +# to be /bin/sh, because on GuixSD systems that is the only program that +# has a fixed file name. The second line is essential for perl and is +# also useful for editing this file in Emacs. The next two lines below +# are valid code in both sh and perl. When executed by sh, they re-execute +# the script through the perl program found in $PATH. The '-x' option +# is essential as well; without it, perl would re-execute the script +# through /bin/sh. When executed by perl, the next two lines are a no-op. +eval 'exec perl -wSx "$0" "$@"' + if 0; + +my $VERSION = '2022-01-27 18:49'; # UTC +# The definition above must lie within the first 8 lines in order +# for the Emacs time-stamp write hook (at end) to update it. +# If you change this file with Emacs, please let the write hook +# do its job. Otherwise, update this string manually. + +use strict; +use warnings; +use Getopt::Long; +use POSIX qw(strftime); + +(my $ME = $0) =~ s|.*/||; + +# use File::Coda; # https://meyering.net/code/Coda/ +END { + defined fileno STDOUT or return; + close STDOUT and return; + warn "$ME: failed to close standard output: $!\n"; + $? ||= 1; +} + +sub usage ($) +{ + my ($exit_code) = @_; + my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR); + if ($exit_code != 0) + { + print $STREAM "Try '$ME --help' for more information.\n"; + } + else + { + print $STREAM < ChangeLog + $ME -- -n 5 foo > last-5-commits-to-branch-foo + +SPECIAL SYNTAX: + +The following types of strings are interpreted specially when they appear +at the beginning of a log message line. They are not copied to the output. + + Copyright-paperwork-exempt: Yes + Append the "(tiny change)" notation to the usual "date name email" + ChangeLog header to mark a change that does not require a copyright + assignment. + Co-authored-by: Joe User + List the specified name and email address on a second + ChangeLog header, denoting a co-author. + Signed-off-by: Joe User + These lines are simply elided. + +In a FILE specified via --amend, comment lines (starting with "#") are ignored. +FILE must consist of pairs where SHA is a 40-byte SHA1 (alone on +a line) referring to a commit in the current project, and CODE refers to one +or more consecutive lines of Perl code. Pairs must be separated by one or +more blank line. + +Here is sample input for use with --amend=FILE, from coreutils: + +3a169f4c5d9159283548178668d2fae6fced3030 +# fix typo in title: +s/all tile types/all file types/ + +1379ed974f1fa39b12e2ffab18b3f7a607082202 +# Due to a bug in vc-dwim, I mis-attributed a patch by Paul to myself. +# Change the author to be Paul. Note the escaped "@": +s,Jim .*>,Paul Eggert , + +EOF + } + exit $exit_code; +} + +# If the string $S is a well-behaved file name, simply return it. +# If it contains white space, quotes, etc., quote it, and return the new string. +sub shell_quote($) +{ + my ($s) = @_; + if ($s =~ m![^\w+/.,-]!) + { + # Convert each single quote to '\'' + $s =~ s/\'/\'\\\'\'/g; + # Then single quote the string. + $s = "'$s'"; + } + return $s; +} + +sub quoted_cmd(@) +{ + return join (' ', map {shell_quote $_} @_); +} + +# Parse file F. +# Comment lines (starting with "#") are ignored. +# F must consist of pairs where SHA is a 40-byte SHA1 +# (alone on a line) referring to a commit in the current project, and +# CODE refers to one or more consecutive lines of Perl code. +# Pairs must be separated by one or more blank line. +sub parse_amend_file($) +{ + my ($f) = @_; + + open F, '<', $f + or die "$ME: $f: failed to open for reading: $!\n"; + + my $fail; + my $h = {}; + my $in_code = 0; + my $sha; + while (defined (my $line = )) + { + $line =~ /^\#/ + and next; + chomp $line; + $line eq '' + and $in_code = 0, next; + + if (!$in_code) + { + $line =~ /^([[:xdigit:]]{40})$/ + or (warn "$ME: $f:$.: invalid line; expected an SHA1\n"), + $fail = 1, next; + $sha = lc $1; + $in_code = 1; + exists $h->{$sha} + and (warn "$ME: $f:$.: duplicate SHA1\n"), + $fail = 1, next; + } + else + { + $h->{$sha} ||= ''; + $h->{$sha} .= "$line\n"; + } + } + close F; + + $fail + and exit 1; + + return $h; +} + +# git_dir_option $SRCDIR +# +# From $SRCDIR, the --git-dir option to pass to git (none if $SRCDIR +# is undef). Return as a list (0 or 1 element). +sub git_dir_option($) +{ + my ($srcdir) = @_; + my @res = (); + if (defined $srcdir) + { + my $qdir = shell_quote $srcdir; + my $cmd = "cd $qdir && git rev-parse --show-toplevel"; + my $qcmd = shell_quote $cmd; + my $git_dir = qx($cmd); + defined $git_dir + or die "$ME: cannot run $qcmd: $!\n"; + $? == 0 + or die "$ME: $qcmd had unexpected exit code or signal ($?)\n"; + chomp $git_dir; + push @res, "--git-dir=$git_dir/.git"; + } + @res; +} + +{ + my $since_date; + my $until_date; + my $format_string = '%s%n%b%n'; + my $amend_file; + my $append_dot = 0; + my $cluster = 1; + my $ignore_matching; + my $ignore_line; + my $strip_tab = 0; + my $strip_cherry_pick = 0; + my $srcdir; + GetOptions + ( + help => sub { usage 0 }, + version => sub { print "$ME version $VERSION\n"; exit }, + 'since=s' => \$since_date, + 'until=s' => \$until_date, + 'format=s' => \$format_string, + 'amend=s' => \$amend_file, + 'append-dot' => \$append_dot, + 'cluster!' => \$cluster, + 'ignore-matching=s' => \$ignore_matching, + 'ignore-line=s' => \$ignore_line, + 'strip-tab' => \$strip_tab, + 'strip-cherry-pick' => \$strip_cherry_pick, + 'srcdir=s' => \$srcdir, + ) or usage 1; + + defined $since_date + and unshift @ARGV, "--since=$since_date"; + defined $until_date + and unshift @ARGV, "--until=$until_date"; + + # This is a hash that maps an SHA1 to perl code (i.e., s/old/new/) + # that makes a correction in the log or attribution of that commit. + my $amend_code = defined $amend_file ? parse_amend_file $amend_file : {}; + + my @cmd = ('git', + git_dir_option $srcdir, + qw(log --log-size), + '--pretty=format:%H:%ct %an <%ae>%n%n'.$format_string, @ARGV); + open PIPE, '-|', @cmd + or die ("$ME: failed to run '". quoted_cmd (@cmd) ."': $!\n" + . "(Is your Git too old? Version 1.5.1 or later is required.)\n"); + + my $prev_multi_paragraph; + my $prev_date_line = ''; + my @prev_coauthors = (); + my @skipshas = (); + while (1) + { + defined (my $in = ) + or last; + $in =~ /^log size (\d+)$/ + or die "$ME:$.: Invalid line (expected log size):\n$in"; + my $log_nbytes = $1; + + my $log; + my $n_read = read PIPE, $log, $log_nbytes; + $n_read == $log_nbytes + or die "$ME:$.: unexpected EOF\n"; + + # Extract leading hash. + my ($sha, $rest) = split ':', $log, 2; + defined $sha + or die "$ME:$.: malformed log entry\n"; + $sha =~ /^[[:xdigit:]]{40}$/ + or die "$ME:$.: invalid SHA1: $sha\n"; + + my $skipflag = 0; + if (@skipshas) + { + foreach(@skipshas) + { + if ($sha =~ /^$_/) + { + $skipflag = $_; + last; + } + } + } + + # If this commit's log requires any transformation, do it now. + my $code = $amend_code->{$sha}; + if (defined $code) + { + eval 'use Safe'; + my $s = new Safe; + # Put the unpreprocessed entry into "$_". + $_ = $rest; + + # Let $code operate on it, safely. + my $r = $s->reval("$code") + or die "$ME:$.:$sha: failed to eval \"$code\":\n$@\n"; + + # Note that we've used this entry. + delete $amend_code->{$sha}; + + # Update $rest upon success. + $rest = $_; + } + + # Remove lines inserted by "git cherry-pick". + if ($strip_cherry_pick) + { + $rest =~ s/^\s*Conflicts:\n.*//sm; + $rest =~ s/^\s*\(cherry picked from commit [\da-f]+\)\n//m; + } + + my @line = split /[ \t]*\n/, $rest; + my $author_line = shift @line; + defined $author_line + or die "$ME:$.: unexpected EOF\n"; + $author_line =~ /^(\d+) (.*>)$/ + or die "$ME:$.: Invalid line " + . "(expected date/author/email):\n$author_line\n"; + + # Format 'Copyright-paperwork-exempt: Yes' as a standard ChangeLog + # `(tiny change)' annotation. + my $tiny = (grep (/^(?:Copyright-paperwork-exempt|Tiny-change):\s+[Yy]es$/, @line) + ? ' (tiny change)' : ''); + + my $date_line = sprintf "%s %s$tiny\n", + strftime ("%Y-%m-%d", localtime ($1)), $2; + + my @coauthors = grep /^Co-authored-by:.*$/, @line; + # Omit meta-data lines we've already interpreted. + @line = grep !/^(?:Signed-off-by:[ ].*>$ + |Co-authored-by:[ ] + |Copyright-paperwork-exempt:[ ] + |Tiny-change:[ ] + )/x, @line; + + # Remove leading and trailing blank lines. + if (@line) + { + while ($line[0] =~ /^\s*$/) { shift @line; } + while ($line[$#line] =~ /^\s*$/) { pop @line; } + } + + # Handle Emacs gitmerge.el "skipped" commits. + # Yes, this should be controlled by an option. So sue me. + if ( grep /^(; )?Merge from /, @line ) + { + my $found = 0; + foreach (@line) + { + if (grep /^The following commit.*skipped:$/, $_) + { + $found = 1; + ## Reset at each merge to reduce chance of false matches. + @skipshas = (); + next; + } + if ($found && $_ =~ /^([[:xdigit:]]{7,}) [^ ]/) + { + push ( @skipshas, $1 ); + } + } + } + + # Ignore commits that match the --ignore-matching pattern, if specified. + if (defined $ignore_matching && @line && $line[0] =~ /$ignore_matching/) + { + $skipflag = 1; + } + elsif ($skipflag) + { + ## Perhaps only warn if a pattern matches more than once? + warn "$ME: warning: skipping $sha due to $skipflag\n"; + } + + if (! $skipflag) + { + if (defined $ignore_line && @line) + { + @line = grep ! /$ignore_line/, @line; + while ($line[$#line] =~ /^\s*$/) { pop @line; } + } + + # Record whether there are two or more paragraphs. + my $multi_paragraph = grep /^\s*$/, @line; + + # Format 'Co-authored-by: A U Thor ' lines in + # standard multi-author ChangeLog format. + for (@coauthors) + { + s/^Co-authored-by:\s*/\t /; + s/\s*/ + or warn "$ME: warning: missing email address for " + . substr ($_, 5) . "\n"; + } + + # If clustering of commit messages has been disabled, if this header + # would be different from the previous date/name/etc. header, + # or if this or the previous entry consists of two or more paragraphs, + # then print the header. + if ( ! $cluster + || $date_line ne $prev_date_line + || "@coauthors" ne "@prev_coauthors" + || $multi_paragraph + || $prev_multi_paragraph) + { + $prev_date_line eq '' + or print "\n"; + print $date_line; + @coauthors + and print join ("\n", @coauthors), "\n"; + } + $prev_date_line = $date_line; + @prev_coauthors = @coauthors; + $prev_multi_paragraph = $multi_paragraph; + + # If there were any lines + if (@line == 0) + { + warn "$ME: warning: empty commit message:\n" + . " commit $sha\n $date_line\n"; + } + else + { + if ($append_dot) + { + # If the first line of the message has enough room, then + if (length $line[0] < 72) + { + # append a dot if there is no other punctuation or blank + # at the end. + $line[0] =~ /[[:punct:]\s]$/ + or $line[0] .= '.'; + } + } + + # Remove one additional leading TAB from each line. + $strip_tab + and map { s/^\t// } @line; + + # Prefix each non-empty line with a TAB. + @line = map { length $_ ? "\t$_" : '' } @line; + + print "\n", join ("\n", @line), "\n"; + } + } + + defined ($in = ) + or last; + $in ne "\n" + and die "$ME:$.: unexpected line:\n$in"; + } + + close PIPE + or die "$ME: error closing pipe from " . quoted_cmd (@cmd) . "\n"; + # FIXME-someday: include $PROCESS_STATUS in the diagnostic + + # Complain about any unused entry in the --amend=F specified file. + my $fail = 0; + foreach my $sha (keys %$amend_code) + { + warn "$ME:$amend_file: unused entry: $sha\n"; + $fail = 1; + } + + exit $fail; +} + +# Local Variables: +# mode: perl +# indent-tabs-mode: nil +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-line-limit: 50 +# time-stamp-start: "my $VERSION = '" +# time-stamp-format: "%:y-%02m-%02d %02H:%02M" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "'; # UTC" +# End: diff --git a/build-aux/gnupload b/build-aux/gnupload new file mode 100755 index 0000000..b97e566 --- /dev/null +++ b/build-aux/gnupload @@ -0,0 +1,480 @@ +#!/bin/sh +# Sign files and upload them. + +scriptversion=2022-01-27.18; # UTC + +# Copyright (C) 2004-2022 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Originally written by Alexandre Duret-Lutz . +# The master copy of this file is maintained in the gnulib Git repository. +# Please send bug reports and feature requests to bug-gnulib@gnu.org. + +set -e + +GPG=gpg +# Choose the proper version of gpg, so as to avoid a +# "gpg-agent is not available in this session" error +# when gpg-agent is version 2 but gpg is still version 1. +# FIXME-2020: remove, once all major distros ship gpg version 2 as /usr/bin/gpg +gpg_agent_version=`(gpg-agent --version) 2>/dev/null | sed -e '2,$d' -e 's/^[^0-9]*//'` +case "$gpg_agent_version" in + 2.*) + gpg_version=`(gpg --version) 2>/dev/null | sed -e '2,$d' -e 's/^[^0-9]*//'` + case "$gpg_version" in + 1.*) + if (type gpg2) >/dev/null 2>/dev/null; then + # gpg2 is present. + GPG=gpg2 + else + # gpg2 is missing. Ubuntu users should install the package 'gnupg2'. + echo "WARNING: Using 'gpg', which is too old. You should install 'gpg2'." 1>&2 + fi + ;; + esac + ;; +esac + +GPG="${GPG} --batch --no-tty" +conffile=.gnuploadrc +to= +dry_run=false +replace= +symlink_files= +delete_files= +delete_symlinks= +collect_var= +dbg= +nl=' +' + +usage="Usage: $0 [OPTION]... [CMD] FILE... [[CMD] FILE...] + +Sign all FILES, and process them at the destinations specified with --to. +If CMD is not given, it defaults to uploading. See examples below. + +Commands: + --delete delete FILES from destination + --symlink create symbolic links + --rmsymlink remove symbolic links + -- treat the remaining arguments as files to upload + +Options: + --to DEST specify a destination DEST for FILES + (multiple --to options are allowed) + --user NAME sign with key NAME + --replace allow replacements of existing files + --symlink-regex[=EXPR] use sed script EXPR to compute symbolic link names + -n, --dry-run do nothing, show what would have been done + (including the constructed directive file) + --version output version information and exit + -h, --help print this help text and exit + +If --symlink-regex is given without EXPR, then the link target name +is created by replacing the version information with '-latest', e.g.: + foo-1.3.4.tar.gz -> foo-latest.tar.gz + +Recognized destinations are: + alpha.gnu.org:DIRECTORY + savannah.gnu.org:DIRECTORY + savannah.nongnu.org:DIRECTORY + ftp.gnu.org:DIRECTORY + build directive files and upload files by FTP + download.gnu.org.ua:{alpha|ftp}/DIRECTORY + build directive files and upload files by SFTP + [user@]host:DIRECTORY upload files with scp + +Options and commands are applied in order. If the file $conffile exists +in the current working directory, its contents are prepended to the +actual command line options. Use this to keep your defaults. Comments +(#) and empty lines in $conffile are allowed. + + +gives some further background. + +Examples: +1. Upload foobar-1.0.tar.gz to ftp.gnu.org: + gnupload --to ftp.gnu.org:foobar foobar-1.0.tar.gz + +2. Upload foobar-1.0.tar.gz and foobar-1.0.tar.xz to ftp.gnu.org: + gnupload --to ftp.gnu.org:foobar foobar-1.0.tar.gz foobar-1.0.tar.xz + +3. Same as above, and also create symbolic links to foobar-latest.tar.*: + gnupload --to ftp.gnu.org:foobar \\ + --symlink-regex \\ + foobar-1.0.tar.gz foobar-1.0.tar.xz + +4. Create a symbolic link foobar-latest.tar.gz -> foobar-1.0.tar.gz + and likewise for the corresponding .sig file: + gnupload --to ftp.gnu.org:foobar \\ + --symlink foobar-1.0.tar.gz foobar-latest.tar.gz \\ + foobar-1.0.tar.gz.sig foobar-latest.tar.gz.sig + or (equivalent): + gnupload --to ftp.gnu.org:foobar \\ + --symlink foobar-1.0.tar.gz foobar-latest.tar.gz \\ + --symlink foobar-1.0.tar.gz.sig foobar-latest.tar.gz.sig + +5. Upload foobar-0.9.90.tar.gz to two sites: + gnupload --to alpha.gnu.org:foobar \\ + --to sources.redhat.com:~ftp/pub/foobar \\ + foobar-0.9.90.tar.gz + +6. Delete oopsbar-0.9.91.tar.gz and upload foobar-0.9.91.tar.gz + (the -- terminates the list of files to delete): + gnupload --to alpha.gnu.org:foobar \\ + --to sources.redhat.com:~ftp/pub/foobar \\ + --delete oopsbar-0.9.91.tar.gz \\ + -- foobar-0.9.91.tar.gz + +gnupload executes a program ncftpput to do the transfers; if you don't +happen to have an ncftp package installed, the ncftpput-ftp script in +the build-aux/ directory of the gnulib package +(https://savannah.gnu.org/projects/gnulib) may serve as a replacement. + +Send patches and bug reports to ." + +copyright_year=`echo "$scriptversion" | sed -e 's/[^0-9].*//'` +copyright="Copyright (C) ${copyright_year} Free Software Foundation, Inc. +License GPLv2+: GNU GPL version 2 or later . +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law." + +# Read local configuration file +if test -r "$conffile"; then + echo "$0: Reading configuration file $conffile" + conf=`sed 's/#.*$//;/^$/d' "$conffile" | tr "\015$nl" ' '` + eval set x "$conf \"\$@\"" + shift +fi + +while test -n "$1"; do + case $1 in + -*) + collect_var= + case $1 in + -h | --help) + echo "$usage" + exit $? + ;; + --to) + if test -z "$2"; then + echo "$0: Missing argument for --to" 1>&2 + exit 1 + elif echo "$2" | grep 'ftp-upload\.gnu\.org' >/dev/null; then + echo "$0: Use ftp.gnu.org:PKGNAME or alpha.gnu.org:PKGNAME" >&2 + echo "$0: for the destination, not ftp-upload.gnu.org (which" >&2 + echo "$0: is used for direct ftp uploads, not with gnupload)." >&2 + echo "$0: See --help and its examples if need be." >&2 + exit 1 + else + to="$to $2" + shift + fi + ;; + --user) + if test -z "$2"; then + echo "$0: Missing argument for --user" 1>&2 + exit 1 + else + GPG="$GPG --local-user $2" + shift + fi + ;; + --delete) + collect_var=delete_files + ;; + --replace) + replace="replace: true" + ;; + --rmsymlink) + collect_var=delete_symlinks + ;; + --symlink-regex=*) + symlink_expr=`expr "$1" : '[^=]*=\(.*\)'` + ;; + --symlink-regex) + symlink_expr='s|-[0-9][0-9\.]*\(-[0-9][0-9]*\)\{0,1\}\.|-latest.|' + ;; + --symlink) + collect_var=symlink_files + ;; + -n | --dry-run) + dry_run=: + ;; + --version) + echo "gnupload $scriptversion" + echo "$copyright" + exit 0 + ;; + --) + shift + break + ;; + -*) + echo "$0: Unknown option '$1', try '$0 --help'" 1>&2 + exit 1 + ;; + esac + ;; + *) + if test -z "$collect_var"; then + break + else + eval "$collect_var=\"\$$collect_var $1\"" + fi + ;; + esac + shift +done + +dprint() +{ + echo "Running $* ..." +} + +if $dry_run; then + dbg=dprint +fi + +if test -z "$to"; then + echo "$0: Missing destination sites" >&2 + exit 1 +fi + +if test -n "$symlink_files"; then + x=`echo "$symlink_files" | sed 's/[^ ]//g;s/ //g'` + if test -n "$x"; then + echo "$0: Odd number of symlink arguments" >&2 + exit 1 + fi +fi + +if test $# = 0; then + if test -z "${symlink_files}${delete_files}${delete_symlinks}"; then + echo "$0: No file to upload" 1>&2 + exit 1 + fi +else + # Make sure all files exist. We don't want to ask + # for the passphrase if the script will fail. + for file + do + if test ! -f $file; then + echo "$0: Cannot find '$file'" 1>&2 + exit 1 + elif test -n "$symlink_expr"; then + linkname=`echo $file | sed "$symlink_expr"` + if test -z "$linkname"; then + echo "$0: symlink expression produces empty results" >&2 + exit 1 + elif test "$linkname" = $file; then + echo "$0: symlink expression does not alter file name" >&2 + exit 1 + fi + fi + done +fi + +# Make sure passphrase is not exported in the environment. +unset passphrase +unset passphrase_fd_0 +GNUPGHOME=${GNUPGHOME:-$HOME/.gnupg} + +# Reset PATH to be sure that echo is a built-in. We will later use +# 'echo $passphrase' to output the passphrase, so it is important that +# it is a built-in (third-party programs tend to appear in 'ps' +# listings with their arguments...). +# Remember this script runs with 'set -e', so if echo is not built-in +# it will exit now. +if $dry_run || grep -q "^use-agent" $GNUPGHOME/gpg.conf; then :; else + PATH=/empty echo -n "Enter GPG passphrase: " + stty -echo + read -r passphrase + stty echo + echo + passphrase_fd_0="--passphrase-fd 0" +fi + +if test $# -ne 0; then + for file + do + echo "Signing $file ..." + rm -f $file.sig + echo "$passphrase" | $dbg $GPG $passphrase_fd_0 -ba -o $file.sig $file + done +fi + + +# mkdirective DESTDIR BASE FILE STMT +# Arguments: See upload, below +mkdirective () +{ + stmt="$4" + if test -n "$3"; then + stmt=" +filename: $3$stmt" + fi + + cat >${2}.directive<&2 + fi + $dbg ncftpput savannah.gnu.org /incoming/savannah/$destdir $files + ;; + savannah.nongnu.org:*) + if test -z "$files"; then + echo "$0: warning: standalone directives not applicable for $dest" >&2 + fi + $dbg ncftpput savannah.nongnu.org /incoming/savannah/$destdir $files + ;; + download.gnu.org.ua:alpha/*|download.gnu.org.ua:ftp/*) + destdir_p1=`echo "$destdir" | sed 's,^[^/]*/,,'` + destdir_topdir=`echo "$destdir" | sed 's,/.*,,'` + mkdirective "$destdir_p1" "$base" "$file" "$stmt" + echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive + for f in $files $base.directive.asc + do + echo put $f + done | $dbg sftp -b - puszcza.gnu.org.ua:/incoming/$destdir_topdir + ;; + /*) + dest_host=`echo "$dest" | sed 's,:.*,,'` + mkdirective "$destdir" "$base" "$file" "$stmt" + echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive + $dbg cp $files $base.directive.asc $dest_host + ;; + *) + if test -z "$files"; then + echo "$0: warning: standalone directives not applicable for $dest" >&2 + fi + $dbg scp $files $dest + ;; + esac + rm -f $base.directive $base.directive.asc +} + +##### +# Process any standalone directives +stmt= +if test -n "$symlink_files"; then + stmt="$stmt +`mksymlink $symlink_files`" +fi + +for file in $delete_files +do + stmt="$stmt +archive: $file" +done + +for file in $delete_symlinks +do + stmt="$stmt +rmsymlink: $file" +done + +if test -n "$stmt"; then + for dest in $to + do + destdir=`echo $dest | sed 's/[^:]*://'` + upload "$dest" "$destdir" "`hostname`-$$" "" "$stmt" + done +fi + +# Process actual uploads +for dest in $to +do + for file + do + echo "Uploading $file to $dest ..." + stmt= + # + # allowing file replacement is all or nothing. + if test -n "$replace"; then stmt="$stmt +$replace" + fi + # + files="$file $file.sig" + destdir=`echo $dest | sed 's/[^:]*://'` + if test -n "$symlink_expr"; then + linkname=`echo $file | sed "$symlink_expr"` + stmt="$stmt +symlink: $file $linkname +symlink: $file.sig $linkname.sig" + fi + upload "$dest" "$destdir" "$file" "$file" "$stmt" "$files" + done +done + +exit 0 + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/install-sh b/build-aux/install-sh new file mode 100755 index 0000000..ec298b5 --- /dev/null +++ b/build-aux/install-sh @@ -0,0 +1,541 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2020-11-14.01; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# 'make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +tab=' ' +nl=' +' +IFS=" $tab$nl" + +# Set DOITPROG to "echo" to test this script. + +doit=${DOITPROG-} +doit_exec=${doit:-exec} + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +# Create dirs (including intermediate dirs) using mode 755. +# This is like GNU 'install' as of coreutils 8.32 (2020). +mkdir_umask=22 + +backupsuffix= +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +is_target_a_directory=possibly + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -p pass -p to $cpprog. + -s $stripprog installed files. + -S SUFFIX attempt to back up existing files, with suffix SUFFIX. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG + +By default, rm is invoked with -f; when overridden with RMPROG, +it's up to you to specify -f if you want it. + +If -S is not specified, no backups are attempted. + +Email bug reports to bug-automake@gnu.org. +Automake home page: https://www.gnu.org/software/automake/ +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -p) cpprog="$cpprog -p";; + + -s) stripcmd=$stripprog;; + + -S) backupsuffix="$2" + shift;; + + -t) + is_target_a_directory=always + dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) is_target_a_directory=never;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +# We allow the use of options -d and -T together, by making -d +# take the precedence; this is for compatibility with GNU install. + +if test -n "$dir_arg"; then + if test -n "$dst_arg"; then + echo "$0: target directory not allowed when installing a directory." >&2 + exit 1 + fi +fi + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call 'install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + if test $# -gt 1 || test "$is_target_a_directory" = always; then + if test ! -d "$dst_arg"; then + echo "$0: $dst_arg: Is not a directory." >&2 + exit 1 + fi + fi +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for 'test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + # Don't chown directories that already exist. + if test $dstdir_status = 0; then + chowncmd="" + fi + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename. + if test -d "$dst"; then + if test "$is_target_a_directory" = never; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dstbase=`basename "$src"` + case $dst in + */) dst=$dst$dstbase;; + *) dst=$dst/$dstbase;; + esac + dstdir_status=0 + else + dstdir=`dirname "$dst"` + test -d "$dstdir" + dstdir_status=$? + fi + fi + + case $dstdir in + */) dstdirslash=$dstdir;; + *) dstdirslash=$dstdir/;; + esac + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + # The $RANDOM variable is not portable (e.g., dash). Use it + # here however when possible just to lower collision chance. + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + + trap ' + ret=$? + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null + exit $ret + ' 0 + + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p'. + if (umask $mkdir_umask && + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null + fi + trap '' 0;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; + esac + + oIFS=$IFS + IFS=/ + set -f + set fnord $dstdir + shift + set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=${dstdirslash}_inst.$$_ + rmtmp=${dstdirslash}_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && + { test -z "$stripcmd" || { + # Create $dsttmp read-write so that cp doesn't create it read-only, + # which would cause strip to fail. + if test -z "$doit"; then + : >"$dsttmp" # No need to fork-exec 'touch'. + else + $doit touch "$dsttmp" + fi + } + } && + $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + set +f && + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # If $backupsuffix is set, and the file being installed + # already exists, attempt a backup. Don't worry if it fails, + # e.g., if mv doesn't support -f. + if test -n "$backupsuffix" && test -f "$dst"; then + $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null + fi + + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh new file mode 100755 index 0000000..9b12fbb --- /dev/null +++ b/build-aux/ltmain.sh @@ -0,0 +1,11448 @@ +#! /usr/bin/env sh +## DO NOT EDIT - This file generated from ./build-aux/ltmain.in +## by inline-source v2019-02-19.15 + +# libtool (GNU libtool) 2.4.7 +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit , 1996 + +# Copyright (C) 1996-2019, 2021-2022 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +PROGRAM=libtool +PACKAGE=libtool +VERSION="2.4.7 Debian-2.4.7-5" +package_revision=2.4.7 + + +## ------ ## +## Usage. ## +## ------ ## + +# Run './libtool --help' for help with using this script from the +# command line. + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# After configure completes, it has a better idea of some of the +# shell tools we need than the defaults used by the functions shared +# with bootstrap, so set those here where they can still be over- +# ridden by the user, but otherwise take precedence. + +: ${AUTOCONF="autoconf"} +: ${AUTOMAKE="automake"} + + +## -------------------------- ## +## Source external libraries. ## +## -------------------------- ## + +# Much of our low-level functionality needs to be sourced from external +# libraries, which are installed to $pkgauxdir. + +# Set a version string for this script. +scriptversion=2019-02-19.15; # UTC + +# General shell script boiler plate, and helper functions. +# Written by Gary V. Vaughan, 2004 + +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2004-2019, 2021 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 2 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. + +# Please report bugs or propose patches to: +# + + +## ------ ## +## Usage. ## +## ------ ## + +# Evaluate this file near the top of your script to gain access to +# the functions and variables defined here: +# +# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh +# +# If you need to override any of the default environment variable +# settings, do that before evaluating this file. + + +## -------------------- ## +## Shell normalisation. ## +## -------------------- ## + +# Some shells need a little help to be as Bourne compatible as possible. +# Before doing anything else, make sure all that help has been provided! + +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac +fi + +# NLS nuisances: We save the old values in case they are required later. +_G_user_locale= +_G_safe_locale= +for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test set = \"\${$_G_var+set}\"; then + save_$_G_var=\$$_G_var + $_G_var=C + export $_G_var + _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" + _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" + fi" +done +# These NLS vars are set unconditionally (bootstrap issue #24). Unset those +# in case the environment reset is needed later and the $save_* variant is not +# defined (see the code above). +LC_ALL=C +LANGUAGE=C +export LANGUAGE LC_ALL + +# Make sure IFS has a sensible default +sp=' ' +nl=' +' +IFS="$sp $nl" + +# There are apparently some retarded systems that use ';' as a PATH separator! +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# func_unset VAR +# -------------- +# Portably unset VAR. +# In some shells, an 'unset VAR' statement leaves a non-zero return +# status if VAR is already unset, which might be problematic if the +# statement is used at the end of a function (thus poisoning its return +# value) or when 'set -e' is active (causing even a spurious abort of +# the script in this case). +func_unset () +{ + { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; } +} + + +# Make sure CDPATH doesn't cause `cd` commands to output the target dir. +func_unset CDPATH + +# Make sure ${,E,F}GREP behave sanely. +func_unset GREP_OPTIONS + + +## ------------------------- ## +## Locate command utilities. ## +## ------------------------- ## + + +# func_executable_p FILE +# ---------------------- +# Check that FILE is an executable regular file. +func_executable_p () +{ + test -f "$1" && test -x "$1" +} + + +# func_path_progs PROGS_LIST CHECK_FUNC [PATH] +# -------------------------------------------- +# Search for either a program that responds to --version with output +# containing "GNU", or else returned by CHECK_FUNC otherwise, by +# trying all the directories in PATH with each of the elements of +# PROGS_LIST. +# +# CHECK_FUNC should accept the path to a candidate program, and +# set $func_check_prog_result if it truncates its output less than +# $_G_path_prog_max characters. +func_path_progs () +{ + _G_progs_list=$1 + _G_check_func=$2 + _G_PATH=${3-"$PATH"} + + _G_path_prog_max=0 + _G_path_prog_found=false + _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} + for _G_dir in $_G_PATH; do + IFS=$_G_save_IFS + test -z "$_G_dir" && _G_dir=. + for _G_prog_name in $_G_progs_list; do + for _exeext in '' .EXE; do + _G_path_prog=$_G_dir/$_G_prog_name$_exeext + func_executable_p "$_G_path_prog" || continue + case `"$_G_path_prog" --version 2>&1` in + *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; + *) $_G_check_func $_G_path_prog + func_path_progs_result=$func_check_prog_result + ;; + esac + $_G_path_prog_found && break 3 + done + done + done + IFS=$_G_save_IFS + test -z "$func_path_progs_result" && { + echo "no acceptable sed could be found in \$PATH" >&2 + exit 1 + } +} + + +# We want to be able to use the functions in this file before configure +# has figured out where the best binaries are kept, which means we have +# to search for them ourselves - except when the results are already set +# where we skip the searches. + +# Unless the user overrides by setting SED, search the path for either GNU +# sed, or the sed that truncates its output the least. +test -z "$SED" && { + _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for _G_i in 1 2 3 4 5 6 7; do + _G_sed_script=$_G_sed_script$nl$_G_sed_script + done + echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed + _G_sed_script= + + func_check_prog_sed () + { + _G_path_prog=$1 + + _G_count=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo '' >> conftest.nl + "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin" + rm -f conftest.sed + SED=$func_path_progs_result +} + + +# Unless the user overrides by setting GREP, search the path for either GNU +# grep, or the grep that truncates its output the least. +test -z "$GREP" && { + func_check_prog_grep () + { + _G_path_prog=$1 + + _G_count=0 + _G_path_prog_max=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo 'GREP' >> conftest.nl + "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin" + GREP=$func_path_progs_result +} + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# All uppercase variable names are used for environment variables. These +# variables can be overridden by the user before calling a script that +# uses them if a suitable command of that name is not already available +# in the command search PATH. + +: ${CP="cp -f"} +: ${ECHO="printf %s\n"} +: ${EGREP="$GREP -E"} +: ${FGREP="$GREP -F"} +: ${LN_S="ln -s"} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} + + +## -------------------- ## +## Useful sed snippets. ## +## -------------------- ## + +sed_dirname='s|/[^/]*$||' +sed_basename='s|^.*/||' + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' + +# Same as above, but do not quote variable references. +sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' + +# Sed substitution that converts a w32 file name or path +# that contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-'\' parameter expansions in output of sed_double_quote_subst that +# were '\'-ed in input to the same. If an odd number of '\' preceded a +# '$' in input to sed_double_quote_subst, that '$' was protected from +# expansion. Since each input '\' is now two '\'s, look for any number +# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. +_G_bs='\\' +_G_bs2='\\\\' +_G_bs4='\\\\\\\\' +_G_dollar='\$' +sed_double_backslash="\ + s/$_G_bs4/&\\ +/g + s/^$_G_bs2$_G_dollar/$_G_bs&/ + s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g + s/\n//g" + +# require_check_ifs_backslash +# --------------------------- +# Check if we can use backslash as IFS='\' separator, and set +# $check_ifs_backshlash_broken to ':' or 'false'. +require_check_ifs_backslash=func_require_check_ifs_backslash +func_require_check_ifs_backslash () +{ + _G_save_IFS=$IFS + IFS='\' + _G_check_ifs_backshlash='a\\b' + for _G_i in $_G_check_ifs_backshlash + do + case $_G_i in + a) + check_ifs_backshlash_broken=false + ;; + '') + break + ;; + *) + check_ifs_backshlash_broken=: + break + ;; + esac + done + IFS=$_G_save_IFS + require_check_ifs_backslash=: +} + + +## ----------------- ## +## Global variables. ## +## ----------------- ## + +# Except for the global variables explicitly listed below, the following +# functions in the '^func_' namespace, and the '^require_' namespace +# variables initialised in the 'Resource management' section, sourcing +# this file will not pollute your global namespace with anything +# else. There's no portable way to scope variables in Bourne shell +# though, so actually running these functions will sometimes place +# results into a variable named after the function, and often use +# temporary variables in the '^_G_' namespace. If you are careful to +# avoid using those namespaces casually in your sourcing script, things +# should continue to work as you expect. And, of course, you can freely +# overwrite any of the functions or variables defined here before +# calling anything to customize them. + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +# Allow overriding, eg assuming that you follow the convention of +# putting '$debug_cmd' at the start of all your functions, you can get +# bash to show function call trace with: +# +# debug_cmd='echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +debug_cmd=${debug_cmd-":"} +exit_cmd=: + +# By convention, finish your script with: +# +# exit $exit_status +# +# so that you can set exit_status to non-zero if you want to indicate +# something went wrong during execution without actually bailing out at +# the point of failure. +exit_status=$EXIT_SUCCESS + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath=$0 + +# The name of this program. +progname=`$ECHO "$progpath" |$SED "$sed_basename"` + +# Make sure we have an absolute progpath for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` + progdir=`cd "$progdir" && pwd` + progpath=$progdir/$progname + ;; + *) + _G_IFS=$IFS + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS=$_G_IFS + test -x "$progdir/$progname" && break + done + IFS=$_G_IFS + test -n "$progdir" || progdir=`pwd` + progpath=$progdir/$progname + ;; +esac + + +## ----------------- ## +## Standard options. ## +## ----------------- ## + +# The following options affect the operation of the functions defined +# below, and should be set appropriately depending on run-time para- +# meters passed on the command line. + +opt_dry_run=false +opt_quiet=false +opt_verbose=false + +# Categories 'all' and 'none' are always available. Append any others +# you will pass as the first argument to func_warning from your own +# code. +warning_categories= + +# By default, display warnings according to 'opt_warning_types'. Set +# 'warning_func' to ':' to elide all warnings, or func_fatal_error to +# treat the next displayed warning as a fatal error. +warning_func=func_warn_and_continue + +# Set to 'all' to display all warnings, 'none' to suppress all +# warnings, or a space delimited list of some subset of +# 'warning_categories' to display only the listed warnings. +opt_warning_types=all + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Call them using their associated +# 'require_*' variable to ensure that they are executed, at most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_term_colors +# ------------------- +# Allow display of bold text on terminals that support it. +require_term_colors=func_require_term_colors +func_require_term_colors () +{ + $debug_cmd + + test -t 1 && { + # COLORTERM and USE_ANSI_COLORS environment variables take + # precedence, because most terminfo databases neglect to describe + # whether color sequences are supported. + test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} + + if test 1 = "$USE_ANSI_COLORS"; then + # Standard ANSI escape sequences + tc_reset='' + tc_bold=''; tc_standout='' + tc_red=''; tc_green='' + tc_blue=''; tc_cyan='' + else + # Otherwise trust the terminfo database after all. + test -n "`tput sgr0 2>/dev/null`" && { + tc_reset=`tput sgr0` + test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` + tc_standout=$tc_bold + test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` + test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` + test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` + test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` + test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` + } + fi + } + + require_term_colors=: +} + + +## ----------------- ## +## Function library. ## +## ----------------- ## + +# This section contains a variety of useful functions to call in your +# scripts. Take note of the portable wrappers for features provided by +# some modern shells, which will fall back to slower equivalents on +# less featureful shells. + + +# func_append VAR VALUE +# --------------------- +# Append VALUE onto the existing contents of VAR. + + # We should try to minimise forks, especially on Windows where they are + # unreasonably slow, so skip the feature probes when bash or zsh are + # being used: + if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then + : ${_G_HAVE_ARITH_OP="yes"} + : ${_G_HAVE_XSI_OPS="yes"} + # The += operator was introduced in bash 3.1 + case $BASH_VERSION in + [12].* | 3.0 | 3.0*) ;; + *) + : ${_G_HAVE_PLUSEQ_OP="yes"} + ;; + esac + fi + + # _G_HAVE_PLUSEQ_OP + # Can be empty, in which case the shell is probed, "yes" if += is + # useable or anything else if it does not work. + test -z "$_G_HAVE_PLUSEQ_OP" \ + && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ + && _G_HAVE_PLUSEQ_OP=yes + +if test yes = "$_G_HAVE_PLUSEQ_OP" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_append () + { + $debug_cmd + + eval "$1+=\$2" + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_append () + { + $debug_cmd + + eval "$1=\$$1\$2" + } +fi + + +# func_append_quoted VAR VALUE +# ---------------------------- +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +if test yes = "$_G_HAVE_PLUSEQ_OP"; then + eval 'func_append_quoted () + { + $debug_cmd + + func_quote_arg pretty "$2" + eval "$1+=\\ \$func_quote_arg_result" + }' +else + func_append_quoted () + { + $debug_cmd + + func_quote_arg pretty "$2" + eval "$1=\$$1\\ \$func_quote_arg_result" + } +fi + + +# func_append_uniq VAR VALUE +# -------------------------- +# Append unique VALUE onto the existing contents of VAR, assuming +# entries are delimited by the first character of VALUE. For example: +# +# func_append_uniq options " --another-option option-argument" +# +# will only append to $options if " --another-option option-argument " +# is not already present somewhere in $options already (note spaces at +# each end implied by leading space in second argument). +func_append_uniq () +{ + $debug_cmd + + eval _G_current_value='`$ECHO $'$1'`' + _G_delim=`expr "$2" : '\(.\)'` + + case $_G_delim$_G_current_value$_G_delim in + *"$2$_G_delim"*) ;; + *) func_append "$@" ;; + esac +} + + +# func_arith TERM... +# ------------------ +# Set func_arith_result to the result of evaluating TERMs. + test -z "$_G_HAVE_ARITH_OP" \ + && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ + && _G_HAVE_ARITH_OP=yes + +if test yes = "$_G_HAVE_ARITH_OP"; then + eval 'func_arith () + { + $debug_cmd + + func_arith_result=$(( $* )) + }' +else + func_arith () + { + $debug_cmd + + func_arith_result=`expr "$@"` + } +fi + + +# func_basename FILE +# ------------------ +# Set func_basename_result to FILE with everything up to and including +# the last / stripped. +if test yes = "$_G_HAVE_XSI_OPS"; then + # If this shell supports suffix pattern removal, then use it to avoid + # forking. Hide the definitions single quotes in case the shell chokes + # on unsupported syntax... + _b='func_basename_result=${1##*/}' + _d='case $1 in + */*) func_dirname_result=${1%/*}$2 ;; + * ) func_dirname_result=$3 ;; + esac' + +else + # ...otherwise fall back to using sed. + _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' + _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` + if test "X$func_dirname_result" = "X$1"; then + func_dirname_result=$3 + else + func_append func_dirname_result "$2" + fi' +fi + +eval 'func_basename () +{ + $debug_cmd + + '"$_b"' +}' + + +# func_dirname FILE APPEND NONDIR_REPLACEMENT +# ------------------------------------------- +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +eval 'func_dirname () +{ + $debug_cmd + + '"$_d"' +}' + + +# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT +# -------------------------------------------------------- +# Perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# For efficiency, we do not delegate to the functions above but instead +# duplicate the functionality here. +eval 'func_dirname_and_basename () +{ + $debug_cmd + + '"$_b"' + '"$_d"' +}' + + +# func_echo ARG... +# ---------------- +# Echo program name prefixed message. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_echo_all ARG... +# -------------------- +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + + +# func_echo_infix_1 INFIX ARG... +# ------------------------------ +# Echo program name, followed by INFIX on the first line, with any +# additional lines not showing INFIX. +func_echo_infix_1 () +{ + $debug_cmd + + $require_term_colors + + _G_infix=$1; shift + _G_indent=$_G_infix + _G_prefix="$progname: $_G_infix: " + _G_message=$* + + # Strip color escape sequences before counting printable length + for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" + do + test -n "$_G_tc" && { + _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` + _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` + } + done + _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes + + func_echo_infix_1_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_infix_1_IFS + $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 + _G_prefix=$_G_indent + done + IFS=$func_echo_infix_1_IFS +} + + +# func_error ARG... +# ----------------- +# Echo program name prefixed message to standard error. +func_error () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 +} + + +# func_fatal_error ARG... +# ----------------------- +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + $debug_cmd + + func_error "$*" + exit $EXIT_FAILURE +} + + +# func_grep EXPRESSION FILENAME +# ----------------------------- +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $debug_cmd + + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_len STRING +# --------------- +# Set func_len_result to the length of STRING. STRING may not +# start with a hyphen. + test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_len () + { + $debug_cmd + + func_len_result=${#1} + }' +else + func_len () + { + $debug_cmd + + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` + } +fi + + +# func_mkdir_p DIRECTORY-PATH +# --------------------------- +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + $debug_cmd + + _G_directory_path=$1 + _G_dir_list= + + if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then + + # Protect directory names starting with '-' + case $_G_directory_path in + -*) _G_directory_path=./$_G_directory_path ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$_G_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + _G_dir_list=$_G_directory_path:$_G_dir_list + + # If the last portion added has no slash in it, the list is done + case $_G_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` + done + _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` + + func_mkdir_p_IFS=$IFS; IFS=: + for _G_dir in $_G_dir_list; do + IFS=$func_mkdir_p_IFS + # mkdir can fail with a 'File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$_G_dir" 2>/dev/null || : + done + IFS=$func_mkdir_p_IFS + + # Bail out if we (or some other process) failed to create a directory. + test -d "$_G_directory_path" || \ + func_fatal_error "Failed to create '$1'" + fi +} + + +# func_mktempdir [BASENAME] +# ------------------------- +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, BASENAME is the basename for that directory. +func_mktempdir () +{ + $debug_cmd + + _G_template=${TMPDIR-/tmp}/${1-$progname} + + if test : = "$opt_dry_run"; then + # Return a directory name, but don't create it in dry-run mode + _G_tmpdir=$_G_template-$$ + else + + # If mktemp works, use that first and foremost + _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` + + if test ! -d "$_G_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + _G_tmpdir=$_G_template-${RANDOM-0}$$ + + func_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$_G_tmpdir" + umask $func_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$_G_tmpdir" || \ + func_fatal_error "cannot create temporary directory '$_G_tmpdir'" + fi + + $ECHO "$_G_tmpdir" +} + + +# func_normal_abspath PATH +# ------------------------ +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +func_normal_abspath () +{ + $debug_cmd + + # These SED scripts presuppose an absolute path with a trailing slash. + _G_pathcar='s|^/\([^/]*\).*$|\1|' + _G_pathcdr='s|^/[^/]*||' + _G_removedotparts=':dotsl + s|/\./|/|g + t dotsl + s|/\.$|/|' + _G_collapseslashes='s|/\{1,\}|/|g' + _G_finalslash='s|/*$|/|' + + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` + while :; do + # Processed it all yet? + if test / = "$func_normal_abspath_tpath"; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result"; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + + +# func_notquiet ARG... +# -------------------- +# Echo program name prefixed message only when not in quiet mode. +func_notquiet () +{ + $debug_cmd + + $opt_quiet || func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + + +# func_relative_path SRCDIR DSTDIR +# -------------------------------- +# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. +func_relative_path () +{ + $debug_cmd + + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=$func_dirname_result + if test -z "$func_relative_path_tlibdir"; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test -n "$func_stripname_result"; then + func_append func_relative_path_result "/$func_stripname_result" + fi + + # Normalisation. If bindir is libdir, return '.' else relative path. + if test -n "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + fi + + test -n "$func_relative_path_result" || func_relative_path_result=. + + : +} + + +# func_quote_portable EVAL ARG +# ---------------------------- +# Internal function to portably implement func_quote_arg. Note that we still +# keep attention to performance here so we as much as possible try to avoid +# calling sed binary (so far O(N) complexity as long as func_append is O(1)). +func_quote_portable () +{ + $debug_cmd + + $require_check_ifs_backslash + + func_quote_portable_result=$2 + + # one-time-loop (easy break) + while true + do + if $1; then + func_quote_portable_result=`$ECHO "$2" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` + break + fi + + # Quote for eval. + case $func_quote_portable_result in + *[\\\`\"\$]*) + # Fallback to sed for $func_check_bs_ifs_broken=:, or when the string + # contains the shell wildcard characters. + case $check_ifs_backshlash_broken$func_quote_portable_result in + :*|*[\[\*\?]*) + func_quote_portable_result=`$ECHO "$func_quote_portable_result" \ + | $SED "$sed_quote_subst"` + break + ;; + esac + + func_quote_portable_old_IFS=$IFS + for _G_char in '\' '`' '"' '$' + do + # STATE($1) PREV($2) SEPARATOR($3) + set start "" "" + func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy + IFS=$_G_char + for _G_part in $func_quote_portable_result + do + case $1 in + quote) + func_append func_quote_portable_result "$3$2" + set quote "$_G_part" "\\$_G_char" + ;; + start) + set first "" "" + func_quote_portable_result= + ;; + first) + set quote "$_G_part" "" + ;; + esac + done + done + IFS=$func_quote_portable_old_IFS + ;; + *) ;; + esac + break + done + + func_quote_portable_unquoted_result=$func_quote_portable_result + case $func_quote_portable_result in + # double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # many bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_portable_result=\"$func_quote_portable_result\" + ;; + esac +} + + +# func_quotefast_eval ARG +# ----------------------- +# Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG', +# but optimized for speed. Result is stored in $func_quotefast_eval. +if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then + printf -v _GL_test_printf_tilde %q '~' + if test '\~' = "$_GL_test_printf_tilde"; then + func_quotefast_eval () + { + printf -v func_quotefast_eval_result %q "$1" + } + else + # Broken older Bash implementations. Make those faster too if possible. + func_quotefast_eval () + { + case $1 in + '~'*) + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + ;; + *) + printf -v func_quotefast_eval_result %q "$1" + ;; + esac + } + fi +else + func_quotefast_eval () + { + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + } +fi + + +# func_quote_arg MODEs ARG +# ------------------------ +# Quote one ARG to be evaled later. MODEs argument may contain zero or more +# specifiers listed below separated by ',' character. This function returns two +# values: +# i) func_quote_arg_result +# double-quoted (when needed), suitable for a subsequent eval +# ii) func_quote_arg_unquoted_result +# has all characters that are still active within double +# quotes backslashified. Available only if 'unquoted' is specified. +# +# Available modes: +# ---------------- +# 'eval' (default) +# - escape shell special characters +# 'expand' +# - the same as 'eval'; but do not quote variable references +# 'pretty' +# - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might +# be used later in func_quote to get output like: 'echo "a b"' instead +# of 'echo a\ b'. This is slower than default on some shells. +# 'unquoted' +# - produce also $func_quote_arg_unquoted_result which does not contain +# wrapping double-quotes. +# +# Examples for 'func_quote_arg pretty,unquoted string': +# +# string | *_result | *_unquoted_result +# ------------+-----------------------+------------------- +# " | \" | \" +# a b | "a b" | a b +# "a b" | "\"a b\"" | \"a b\" +# * | "*" | * +# z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\" +# +# Examples for 'func_quote_arg pretty,unquoted,expand string': +# +# string | *_result | *_unquoted_result +# --------------+---------------------+-------------------- +# z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\" +func_quote_arg () +{ + _G_quote_expand=false + case ,$1, in + *,expand,*) + _G_quote_expand=: + ;; + esac + + case ,$1, in + *,pretty,*|*,expand,*|*,unquoted,*) + func_quote_portable $_G_quote_expand "$2" + func_quote_arg_result=$func_quote_portable_result + func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result + ;; + *) + # Faster quote-for-eval for some shells. + func_quotefast_eval "$2" + func_quote_arg_result=$func_quotefast_eval_result + ;; + esac +} + + +# func_quote MODEs ARGs... +# ------------------------ +# Quote all ARGs to be evaled later and join them into single command. See +# func_quote_arg's description for more info. +func_quote () +{ + $debug_cmd + _G_func_quote_mode=$1 ; shift + func_quote_result= + while test 0 -lt $#; do + func_quote_arg "$_G_func_quote_mode" "$1" + if test -n "$func_quote_result"; then + func_append func_quote_result " $func_quote_arg_result" + else + func_append func_quote_result "$func_quote_arg_result" + fi + shift + done +} + + +# func_stripname PREFIX SUFFIX NAME +# --------------------------------- +# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_stripname () + { + $debug_cmd + + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary variable first. + func_stripname_result=$3 + func_stripname_result=${func_stripname_result#"$1"} + func_stripname_result=${func_stripname_result%"$2"} + }' +else + func_stripname () + { + $debug_cmd + + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; + esac + } +fi + + +# func_show_eval CMD [FAIL_EXP] +# ----------------------------- +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + func_quote_arg pretty,expand "$_G_cmd" + eval "func_notquiet $func_quote_arg_result" + + $opt_dry_run || { + eval "$_G_cmd" + _G_status=$? + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_show_eval_locale CMD [FAIL_EXP] +# ------------------------------------ +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + $opt_quiet || { + func_quote_arg expand,pretty "$_G_cmd" + eval "func_echo $func_quote_arg_result" + } + + $opt_dry_run || { + eval "$_G_user_locale + $_G_cmd" + _G_status=$? + eval "$_G_safe_locale" + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_tr_sh +# ---------- +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + $debug_cmd + + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_verbose ARG... +# ------------------- +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $debug_cmd + + $opt_verbose && func_echo "$*" + + : +} + + +# func_warn_and_continue ARG... +# ----------------------------- +# Echo program name prefixed warning message to standard error. +func_warn_and_continue () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 +} + + +# func_warning CATEGORY ARG... +# ---------------------------- +# Echo program name prefixed warning message to standard error. Warning +# messages can be filtered according to CATEGORY, where this function +# elides messages where CATEGORY is not listed in the global variable +# 'opt_warning_types'. +func_warning () +{ + $debug_cmd + + # CATEGORY must be in the warning_categories list! + case " $warning_categories " in + *" $1 "*) ;; + *) func_internal_error "invalid warning category '$1'" ;; + esac + + _G_category=$1 + shift + + case " $opt_warning_types " in + *" $_G_category "*) $warning_func ${1+"$@"} ;; + esac +} + + +# func_sort_ver VER1 VER2 +# ----------------------- +# 'sort -V' is not generally available. +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +func_sort_ver () +{ + $debug_cmd + + printf '%s\n%s\n' "$1" "$2" \ + | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n +} + +# func_lt_ver PREV CURR +# --------------------- +# Return true if PREV and CURR are in the correct order according to +# func_sort_ver, otherwise false. Use it like this: +# +# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." +func_lt_ver () +{ + $debug_cmd + + test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# A portable, pluggable option parser for Bourne shell. +# Written by Gary V. Vaughan, 2010 + +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2010-2019, 2021 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 2 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. + +# Please report bugs or propose patches to: +# + +# Set a version string for this script. +scriptversion=2019-02-19.15; # UTC + + +## ------ ## +## Usage. ## +## ------ ## + +# This file is a library for parsing options in your shell scripts along +# with assorted other useful supporting features that you can make use +# of too. +# +# For the simplest scripts you might need only: +# +# #!/bin/sh +# . relative/path/to/funclib.sh +# . relative/path/to/options-parser +# scriptversion=1.0 +# func_options ${1+"$@"} +# eval set dummy "$func_options_result"; shift +# ...rest of your script... +# +# In order for the '--version' option to work, you will need to have a +# suitably formatted comment like the one at the top of this file +# starting with '# Written by ' and ending with '# Copyright'. +# +# For '-h' and '--help' to work, you will also need a one line +# description of your script's purpose in a comment directly above the +# '# Written by ' line, like the one at the top of this file. +# +# The default options also support '--debug', which will turn on shell +# execution tracing (see the comment above debug_cmd below for another +# use), and '--verbose' and the func_verbose function to allow your script +# to display verbose messages only when your user has specified +# '--verbose'. +# +# After sourcing this file, you can plug in processing for additional +# options by amending the variables from the 'Configuration' section +# below, and following the instructions in the 'Option parsing' +# section further down. + +## -------------- ## +## Configuration. ## +## -------------- ## + +# You should override these variables in your script after sourcing this +# file so that they reflect the customisations you have added to the +# option parser. + +# The usage line for option parsing errors and the start of '-h' and +# '--help' output messages. You can embed shell variables for delayed +# expansion at the time the message is displayed, but you will need to +# quote other shell meta-characters carefully to prevent them being +# expanded when the contents are evaled. +usage='$progpath [OPTION]...' + +# Short help message in response to '-h' and '--help'. Add to this or +# override it after sourcing this library to reflect the full set of +# options your script accepts. +usage_message="\ + --debug enable verbose shell tracing + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -v, --verbose verbosely report processing + --version print version information and exit + -h, --help print short or long help message and exit +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=" +Warning categories include: + 'all' show all warnings + 'none' turn off all the warnings + 'error' warnings are treated as fatal errors" + +# Help message printed before fatal option parsing errors. +fatal_help="Try '\$progname --help' for more information." + + + +## ------------------------- ## +## Hook function management. ## +## ------------------------- ## + +# This section contains functions for adding, removing, and running hooks +# in the main code. A hook is just a list of function names that can be +# run in order later on. + +# func_hookable FUNC_NAME +# ----------------------- +# Declare that FUNC_NAME will run hooks added with +# 'func_add_hook FUNC_NAME ...'. +func_hookable () +{ + $debug_cmd + + func_append hookable_fns " $1" +} + + +# func_add_hook FUNC_NAME HOOK_FUNC +# --------------------------------- +# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must +# first have been declared "hookable" by a call to 'func_hookable'. +func_add_hook () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not accept hook functions." ;; + esac + + eval func_append ${1}_hooks '" $2"' +} + + +# func_remove_hook FUNC_NAME HOOK_FUNC +# ------------------------------------ +# Remove HOOK_FUNC from the list of hook functions to be called by +# FUNC_NAME. +func_remove_hook () +{ + $debug_cmd + + eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' +} + + +# func_propagate_result FUNC_NAME_A FUNC_NAME_B +# --------------------------------------------- +# If the *_result variable of FUNC_NAME_A _is set_, assign its value to +# *_result variable of FUNC_NAME_B. +func_propagate_result () +{ + $debug_cmd + + func_propagate_result_result=: + if eval "test \"\${${1}_result+set}\" = set" + then + eval "${2}_result=\$${1}_result" + else + func_propagate_result_result=false + fi +} + + +# func_run_hooks FUNC_NAME [ARG]... +# --------------------------------- +# Run all hook functions registered to FUNC_NAME. +# It's assumed that the list of hook functions contains nothing more +# than a whitespace-delimited list of legal shell function names, and +# no effort is wasted trying to catch shell meta-characters or preserve +# whitespace. +func_run_hooks () +{ + $debug_cmd + + _G_rc_run_hooks=false + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not support hook functions." ;; + esac + + eval _G_hook_fns=\$$1_hooks; shift + + for _G_hook in $_G_hook_fns; do + func_unset "${_G_hook}_result" + eval $_G_hook '${1+"$@"}' + func_propagate_result $_G_hook func_run_hooks + if $func_propagate_result_result; then + eval set dummy "$func_run_hooks_result"; shift + fi + done +} + + + +## --------------- ## +## Option parsing. ## +## --------------- ## + +# In order to add your own option parsing hooks, you must accept the +# full positional parameter list from your hook function. You may remove +# or edit any options that you action, and then pass back the remaining +# unprocessed options in '_result', escaped +# suitably for 'eval'. +# +# The '_result' variable is automatically unset +# before your hook gets called; for best performance, only set the +# *_result variable when necessary (i.e. don't call the 'func_quote' +# function unnecessarily because it can be an expensive operation on some +# machines). +# +# Like this: +# +# my_options_prep () +# { +# $debug_cmd +# +# # Extend the existing usage message. +# usage_message=$usage_message' +# -s, --silent don'\''t print informational messages +# ' +# # No change in '$@' (ignored completely by this hook). Leave +# # my_options_prep_result variable intact. +# } +# func_add_hook func_options_prep my_options_prep +# +# +# my_silent_option () +# { +# $debug_cmd +# +# args_changed=false +# +# # Note that, for efficiency, we parse as many options as we can +# # recognise in a loop before passing the remainder back to the +# # caller on the first unrecognised argument we encounter. +# while test $# -gt 0; do +# opt=$1; shift +# case $opt in +# --silent|-s) opt_silent=: +# args_changed=: +# ;; +# # Separate non-argument short options: +# -s*) func_split_short_opt "$_G_opt" +# set dummy "$func_split_short_opt_name" \ +# "-$func_split_short_opt_arg" ${1+"$@"} +# shift +# args_changed=: +# ;; +# *) # Make sure the first unrecognised option "$_G_opt" +# # is added back to "$@" in case we need it later, +# # if $args_changed was set to 'true'. +# set dummy "$_G_opt" ${1+"$@"}; shift; break ;; +# esac +# done +# +# # Only call 'func_quote' here if we processed at least one argument. +# if $args_changed; then +# func_quote eval ${1+"$@"} +# my_silent_option_result=$func_quote_result +# fi +# } +# func_add_hook func_parse_options my_silent_option +# +# +# my_option_validation () +# { +# $debug_cmd +# +# $opt_silent && $opt_verbose && func_fatal_help "\ +# '--silent' and '--verbose' options are mutually exclusive." +# } +# func_add_hook func_validate_options my_option_validation +# +# You'll also need to manually amend $usage_message to reflect the extra +# options you parse. It's preferable to append if you can, so that +# multiple option parsing hooks can be added safely. + + +# func_options_finish [ARG]... +# ---------------------------- +# Finishing the option parse loop (call 'func_options' hooks ATM). +func_options_finish () +{ + $debug_cmd + + func_run_hooks func_options ${1+"$@"} + func_propagate_result func_run_hooks func_options_finish +} + + +# func_options [ARG]... +# --------------------- +# All the functions called inside func_options are hookable. See the +# individual implementations for details. +func_hookable func_options +func_options () +{ + $debug_cmd + + _G_options_quoted=false + + for my_func in options_prep parse_options validate_options options_finish + do + func_unset func_${my_func}_result + func_unset func_run_hooks_result + eval func_$my_func '${1+"$@"}' + func_propagate_result func_$my_func func_options + if $func_propagate_result_result; then + eval set dummy "$func_options_result"; shift + _G_options_quoted=: + fi + done + + $_G_options_quoted || { + # As we (func_options) are top-level options-parser function and + # nobody quoted "$@" for us yet, we need to do it explicitly for + # caller. + func_quote eval ${1+"$@"} + func_options_result=$func_quote_result + } +} + + +# func_options_prep [ARG]... +# -------------------------- +# All initialisations required before starting the option parse loop. +# Note that when calling hook functions, we pass through the list of +# positional parameters. If a hook function modifies that list, and +# needs to propagate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before returning. +func_hookable func_options_prep +func_options_prep () +{ + $debug_cmd + + # Option defaults: + opt_verbose=false + opt_warning_types= + + func_run_hooks func_options_prep ${1+"$@"} + func_propagate_result func_run_hooks func_options_prep +} + + +# func_parse_options [ARG]... +# --------------------------- +# The main option parsing loop. +func_hookable func_parse_options +func_parse_options () +{ + $debug_cmd + + _G_parse_options_requote=false + # this just eases exit handling + while test $# -gt 0; do + # Defer to hook functions for initial option parsing, so they + # get priority in the event of reusing an option name. + func_run_hooks func_parse_options ${1+"$@"} + func_propagate_result func_run_hooks func_parse_options + if $func_propagate_result_result; then + eval set dummy "$func_parse_options_result"; shift + # Even though we may have changed "$@", we passed the "$@" array + # down into the hook and it quoted it for us (because we are in + # this if-branch). No need to quote it again. + _G_parse_options_requote=false + fi + + # Break out of the loop if we already parsed every option. + test $# -gt 0 || break + + # We expect that one of the options parsed in this function matches + # and thus we remove _G_opt from "$@" and need to re-quote. + _G_match_parse_options=: + _G_opt=$1 + shift + case $_G_opt in + --debug|-x) debug_cmd='set -x' + func_echo "enabling shell trace mode" >&2 + $debug_cmd + ;; + + --no-warnings|--no-warning|--no-warn) + set dummy --warnings none ${1+"$@"} + shift + ;; + + --warnings|--warning|-W) + if test $# = 0 && func_missing_arg $_G_opt; then + _G_parse_options_requote=: + break + fi + case " $warning_categories $1" in + *" $1 "*) + # trailing space prevents matching last $1 above + func_append_uniq opt_warning_types " $1" + ;; + *all) + opt_warning_types=$warning_categories + ;; + *none) + opt_warning_types=none + warning_func=: + ;; + *error) + opt_warning_types=$warning_categories + warning_func=func_fatal_error + ;; + *) + func_fatal_error \ + "unsupported warning category: '$1'" + ;; + esac + shift + ;; + + --verbose|-v) opt_verbose=: ;; + --version) func_version ;; + -\?|-h) func_usage ;; + --help) func_help ;; + + # Separate optargs to long options (plugins may need this): + --*=*) func_split_equals "$_G_opt" + set dummy "$func_split_equals_lhs" \ + "$func_split_equals_rhs" ${1+"$@"} + shift + ;; + + # Separate optargs to short options: + -W*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-v*|-x*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) _G_parse_options_requote=: ; break ;; + -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift + _G_match_parse_options=false + break + ;; + esac + + if $_G_match_parse_options; then + _G_parse_options_requote=: + fi + done + + if $_G_parse_options_requote; then + # save modified positional parameters for caller + func_quote eval ${1+"$@"} + func_parse_options_result=$func_quote_result + fi +} + + +# func_validate_options [ARG]... +# ------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +func_hookable func_validate_options +func_validate_options () +{ + $debug_cmd + + # Display all warnings if -W was not given. + test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" + + func_run_hooks func_validate_options ${1+"$@"} + func_propagate_result func_run_hooks func_validate_options + + # Bail if the options were screwed! + $exit_cmd $EXIT_FAILURE +} + + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of the +# hookable option parser framework in ascii-betical order. + + +# func_fatal_help ARG... +# ---------------------- +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + eval \$ECHO \""$fatal_help"\" + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + + +# func_help +# --------- +# Echo long help message to standard output and exit. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message" + exit 0 +} + + +# func_missing_arg ARGNAME +# ------------------------ +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $debug_cmd + + func_error "Missing argument for '$1'." + exit_cmd=exit +} + + +# func_split_equals STRING +# ------------------------ +# Set func_split_equals_lhs and func_split_equals_rhs shell variables +# after splitting STRING at the '=' sign. +test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=${1%%=*} + func_split_equals_rhs=${1#*=} + if test "x$func_split_equals_lhs" = "x$1"; then + func_split_equals_rhs= + fi + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` + func_split_equals_rhs= + test "x$func_split_equals_lhs=" = "x$1" \ + || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` + } +fi #func_split_equals + + +# func_split_short_opt SHORTOPT +# ----------------------------- +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"} + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_name=`expr "x$1" : 'x\(-.\)'` + func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` + } +fi #func_split_short_opt + + +# func_usage +# ---------- +# Echo short help message to standard output and exit. +func_usage () +{ + $debug_cmd + + func_usage_message + $ECHO "Run '$progname --help |${PAGER-more}' for full usage" + exit 0 +} + + +# func_usage_message +# ------------------ +# Echo short help message to standard output. +func_usage_message () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + echo + $SED -n 's|^# || + /^Written by/{ + x;p;x + } + h + /^Written by/q' < "$progpath" + echo + eval \$ECHO \""$usage_message"\" +} + + +# func_version +# ------------ +# Echo version message to standard output and exit. +# The version message is extracted from the calling file's header +# comments, with leading '# ' stripped: +# 1. First display the progname and version +# 2. Followed by the header comment line matching /^# Written by / +# 3. Then a blank line followed by the first following line matching +# /^# Copyright / +# 4. Immediately followed by any lines between the previous matches, +# except lines preceding the intervening completely blank line. +# For example, see the header comments of this file. +func_version () +{ + $debug_cmd + + printf '%s\n' "$progname $scriptversion" + $SED -n ' + /^# Written by /!b + s|^# ||; p; n + + :fwd2blnk + /./ { + n + b fwd2blnk + } + p; n + + :holdwrnt + s|^# || + s|^# *$|| + /^Copyright /!{ + /./H + n + b holdwrnt + } + + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + G + s|\(\n\)\n*|\1|g + p; q' < "$progpath" + + exit $? +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: + +# Set a version string. +scriptversion='(GNU libtool) 2.4.7' + + +# func_echo ARG... +# ---------------- +# Libtool also displays the current mode in messages, so override +# funclib.sh func_echo with this custom definition. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_warning ARG... +# ------------------- +# Libtool warnings are not categorized, so override funclib.sh +# func_warning with this simpler definition. +func_warning () +{ + $debug_cmd + + $warning_func ${1+"$@"} +} + + +## ---------------- ## +## Options parsing. ## +## ---------------- ## + +# Hook in the functions to make sure our own options are parsed during +# the option parsing loop. + +usage='$progpath [OPTION]... [MODE-ARG]...' + +# Short help message in response to '-h'. +usage_message="Options: + --config show all configuration variables + --debug enable verbose shell tracing + -n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --mode=MODE use operation mode MODE + --no-warnings equivalent to '-Wnone' + --preserve-dup-deps don't remove duplicate dependency libraries + --quiet, --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + -v, --verbose print more informational messages than default + --version print version information + -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] + -h, --help, --help-all print short, long, or detailed help message +" + +# Additional text appended to 'usage_message' in response to '--help'. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message + +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. When passed as first option, +'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. +Try '$progname --help --mode=MODE' for a more detailed description of MODE. + +When reporting a bug, please describe a test case to reproduce it and +include the following information: + + host-triplet: $host + shell: $SHELL + compiler: $LTCC + compiler flags: $LTCFLAGS + linker: $LD (gnu? $with_gnu_ld) + version: $progname $scriptversion Debian-2.4.7-5 + automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` + autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` + +Report bugs to . +GNU libtool home page: . +General help using GNU software: ." + exit 0 +} + + +# func_lo2o OBJECT-NAME +# --------------------- +# Transform OBJECT-NAME from a '.lo' suffix to the platform specific +# object suffix. + +lo2o=s/\\.lo\$/.$objext/ +o2lo=s/\\.$objext\$/.lo/ + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_lo2o () + { + case $1 in + *.lo) func_lo2o_result=${1%.lo}.$objext ;; + * ) func_lo2o_result=$1 ;; + esac + }' + + # func_xform LIBOBJ-OR-SOURCE + # --------------------------- + # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) + # suffix to a '.lo' libtool-object suffix. + eval 'func_xform () + { + func_xform_result=${1%.*}.lo + }' +else + # ...otherwise fall back to using sed. + func_lo2o () + { + func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` + } + + func_xform () + { + func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` + } +fi + + +# func_fatal_configuration ARG... +# ------------------------------- +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func_fatal_error ${1+"$@"} \ + "See the $PACKAGE documentation for more information." \ + "Fatal configuration error." +} + + +# func_config +# ----------- +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + + +# func_features +# ------------- +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test yes = "$build_libtool_libs"; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test yes = "$build_old_libs"; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + + +# func_enable_tag TAGNAME +# ----------------------- +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname=$1 + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf=/$re_begincf/,/$re_endcf/p + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + + +# func_check_version_match +# ------------------------ +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# libtool_options_prep [ARG]... +# ----------------------------- +# Preparation for options parsed by libtool. +libtool_options_prep () +{ + $debug_mode + + # Option defaults: + opt_config=false + opt_dlopen= + opt_dry_run=false + opt_help=false + opt_mode= + opt_preserve_dup_deps=false + opt_quiet=false + + nonopt= + preserve_args= + + _G_rc_lt_options_prep=: + + _G_rc_lt_options_prep=: + + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + *) + _G_rc_lt_options_prep=false + ;; + esac + + if $_G_rc_lt_options_prep; then + # Pass back the list of options. + func_quote eval ${1+"$@"} + libtool_options_prep_result=$func_quote_result + fi +} +func_add_hook func_options_prep libtool_options_prep + + +# libtool_parse_options [ARG]... +# --------------------------------- +# Provide handling for libtool specific options. +libtool_parse_options () +{ + $debug_cmd + + _G_rc_lt_parse_options=false + + # Perform our own loop to consume as many options as possible in + # each iteration. + while test $# -gt 0; do + _G_match_lt_parse_options=: + _G_opt=$1 + shift + case $_G_opt in + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + + --config) func_config ;; + + --dlopen|-dlopen) + opt_dlopen="${opt_dlopen+$opt_dlopen +}$1" + shift + ;; + + --preserve-dup-deps) + opt_preserve_dup_deps=: ;; + + --features) func_features ;; + + --finish) set dummy --mode finish ${1+"$@"}; shift ;; + + --help) opt_help=: ;; + + --help-all) opt_help=': help-all' ;; + + --mode) test $# = 0 && func_missing_arg $_G_opt && break + opt_mode=$1 + case $1 in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $_G_opt" + exit_cmd=exit + break + ;; + esac + shift + ;; + + --no-silent|--no-quiet) + opt_quiet=false + func_append preserve_args " $_G_opt" + ;; + + --no-warnings|--no-warning|--no-warn) + opt_warning=false + func_append preserve_args " $_G_opt" + ;; + + --no-verbose) + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --silent|--quiet) + opt_quiet=: + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --tag) test $# = 0 && func_missing_arg $_G_opt && break + opt_tag=$1 + func_append preserve_args " $_G_opt $1" + func_enable_tag "$1" + shift + ;; + + --verbose|-v) opt_quiet=false + opt_verbose=: + func_append preserve_args " $_G_opt" + ;; + + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"} ; shift + _G_match_lt_parse_options=false + break + ;; + esac + $_G_match_lt_parse_options && _G_rc_lt_parse_options=: + done + + if $_G_rc_lt_parse_options; then + # save modified positional parameters for caller + func_quote eval ${1+"$@"} + libtool_parse_options_result=$func_quote_result + fi +} +func_add_hook func_parse_options libtool_parse_options + + + +# libtool_validate_options [ARG]... +# --------------------------------- +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +libtool_validate_options () +{ + # save first non-option argument + if test 0 -lt $#; then + nonopt=$1 + shift + fi + + # preserve --debug + test : = "$debug_cmd" || func_append preserve_args " --debug" + + case $host in + # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 + # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 + *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + test yes != "$build_libtool_libs" \ + && test yes != "$build_old_libs" \ + && func_fatal_configuration "not configured to build any kind of library" + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test execute != "$opt_mode"; then + func_error "unrecognized option '-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help=$help + help="Try '$progname --help --mode=$opt_mode' for more information." + } + + # Pass back the unparsed argument list + func_quote eval ${1+"$@"} + libtool_validate_options_result=$func_quote_result +} +func_add_hook func_validate_options libtool_validate_options + + +# Process options as early as possible so that --help and --version +# can return quickly. +func_options ${1+"$@"} +eval set dummy "$func_options_result"; shift + + + +## ----------- ## +## Main. ## +## ----------- ## + +magic='%%%MAGIC variable%%%' +magic_exe='%%%MAGIC EXE variable%%%' + +# Global variables. +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# func_generated_by_libtool +# True iff stdin has been generated by Libtool. This function is only +# a basic sanity check; it will hardly flush out determined imposters. +func_generated_by_libtool_p () +{ + $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if 'file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case $lalib_p_line in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test yes = "$lalib_p" +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + test -f "$1" && + $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $debug_cmd + + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# 'FILE.' does not work on cygwin managed mounts. +func_source () +{ + $debug_cmd + + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case $lt_sysroot:$1 in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result='='$func_stripname_result + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $debug_cmd + + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with '--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=$1 + if test yes = "$build_libtool_libs"; then + write_lobj=\'$2\' + else + write_lobj=none + fi + + if test yes = "$build_old_libs"; then + write_oldobj=\'$3\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T </dev/null` + if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $debug_cmd + + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result= + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result"; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $debug_cmd + + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $debug_cmd + + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $debug_cmd + + if test -z "$2" && test -n "$1"; then + func_error "Could not determine host file name corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result=$1 + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $debug_cmd + + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " '$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result=$3 + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $debug_cmd + + case $4 in + $1 ) func_to_host_path_result=$3$func_to_host_path_result + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via '$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $debug_cmd + + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $debug_cmd + + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result=$1 +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result=$func_convert_core_msys_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result=$func_convert_core_file_wine_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via '$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $debug_cmd + + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd=func_convert_path_$func_stripname_result + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $debug_cmd + + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result=$1 +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_msys_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_path_wine_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_dll_def_p FILE +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with _LT_DLL_DEF_P in libtool.m4 +func_dll_def_p () +{ + $debug_cmd + + func_dll_def_p_tmp=`$SED -n \ + -e 's/^[ ]*//' \ + -e '/^\(;.*\)*$/d' \ + -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ + -e q \ + "$1"` + test DEF = "$func_dll_def_p_tmp" +} + + +# func_mode_compile arg... +func_mode_compile () +{ + $debug_cmd + + # Get the compilation command and the source file. + base_compile= + srcfile=$nonopt # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg=$arg + arg_mode=normal + ;; + + target ) + libobj=$arg + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify '-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs=$IFS; IFS=, + for arg in $args; do + IFS=$save_ifs + func_append_quoted lastarg "$arg" + done + IFS=$save_ifs + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg=$srcfile + srcfile=$arg + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with '-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj=$func_basename_result + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from '$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test yes = "$build_libtool_libs" \ + || func_fatal_configuration "cannot build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_arg pretty "$libobj" + test "X$libobj" != "X$func_quote_arg_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name '$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname=$func_basename_result + xdir=$func_dirname_result + lobj=$xdir$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test yes = "$build_old_libs"; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test no = "$compiler_c_o"; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext + lockfile=$output_obj.lock + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test yes = "$need_locks"; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test warn = "$need_locks"; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_arg pretty "$srcfile" + qsrcfile=$func_quote_arg_result + + # Only build a PIC object if we are building libtool libraries. + if test yes = "$build_libtool_libs"; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test no != "$pic_mode"; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test yes = "$suppress_opt"; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test yes = "$build_old_libs"; then + if test yes != "$pic_mode"; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test yes = "$compiler_c_o"; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test no != "$need_locks"; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test compile = "$opt_mode" && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a '.o' file suitable for static linking + -static only build a '.o' file suitable for static linking + -Wc,FLAG + -Xcompiler FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a 'standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix '.c' with the +library object suffix, '.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to '-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the '--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the 'install' or 'cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE use a list of object files found in FILE to specify objects + -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wa,FLAG + -Xassembler FLAG pass linker-specific FLAG directly to the assembler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with '-') are ignored. + +Every other argument is treated as a filename. Files ending in '.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in '.la', then a libtool library is created, +only library objects ('.lo' files) may be specified, and '-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created +using 'ar' and 'ranlib', or on Windows using 'lib'. + +If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode '$opt_mode'" + ;; + esac + + echo + $ECHO "Try '$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test : = "$opt_help"; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | $SED -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + $SED '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $debug_cmd + + # The first argument is the command name. + cmd=$nonopt + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "'$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "'$file' was not linked with '-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir=$func_dirname_result + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir=$func_dirname_result + ;; + + *) + func_warning "'-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir=$absdir + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic=$magic + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file=$progdir/$program + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file=$progdir/$program + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if $opt_dry_run; then + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + else + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd=\$cmd$args + fi +} + +test execute = "$opt_mode" && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $debug_cmd + + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "'$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument '$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and '=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_quiet && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the '-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the '$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the '$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the '$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test finish = "$opt_mode" && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $debug_cmd + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac + then + # Aesthetically quote it. + func_quote_arg pretty "$nonopt" + install_prog="$func_quote_arg_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_arg pretty "$arg" + func_append install_prog "$func_quote_arg_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=false + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=: ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test X-m = "X$prev" && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_arg pretty "$arg" + func_append install_prog " $func_quote_arg_result" + if test -n "$arg2"; then + func_quote_arg pretty "$arg2" + fi + func_append install_shared_prog " $func_quote_arg_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the '$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_arg pretty "$install_override_mode" + func_append install_shared_prog " -m $func_quote_arg_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=: + if $isdir; then + destdir=$dest + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir=$func_dirname_result + destname=$func_basename_result + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "'$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "'$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir=$func_dirname_result + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking '$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname=$1 + shift + + srcname=$realname + test -n "$relink_command" && srcname=${realname}T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme=$stripme + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme= + ;; + esac + ;; + os2*) + case $realname in + *_dll.a) + tstripme= + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try 'ln -sf' first, because the 'ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib=$destdir/$realname + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name=$func_basename_result + instname=$dir/${name}i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest=$destfile + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to '$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test yes = "$build_old_libs"; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext= + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=.exe + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script '$wrapper'" + + finalize=: + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "'$lib' has not been installed in '$libdir'" + finalize=false + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test no = "$fast_install" && test -n "$relink_command"; then + $opt_dry_run || { + if $finalize; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file=$func_basename_result + outputname=$tmpdir/$file + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_quiet || { + func_quote_arg expand,pretty "$relink_command" + eval "func_echo $func_quote_arg_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink '$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file=$outputname + else + func_warning "cannot relink '$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name=$func_basename_result + + # Set up the ranlib parameters. + oldlib=$destdir/$name + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run '$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test install = "$opt_mode" && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $debug_cmd + + my_outputname=$1 + my_originator=$2 + my_pic_p=${3-false} + my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms=${my_outputname}S.c + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist=$output_objdir/$my_outputname.nm + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* External symbol declarations for the compiler. */\ +" + + if test yes = "$dlself"; then + func_verbose "generating symbol list for '$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from '$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols=$output_objdir/$outputname.exp + $opt_dry_run || { + $RM $export_symbols + eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from '$dlprefile'" + func_basename "$dlprefile" + name=$func_basename_result + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename= + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname"; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename=$func_basename_result + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename"; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + func_show_eval '$RM "${nlist}I"' + if test -n "$global_symbol_to_import"; then + eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[];\ +" + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ +static void lt_syminit(void) +{ + LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; + for (; symbol->name; ++symbol) + {" + $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" + echo >> "$output_objdir/$my_dlsyms" "\ + } +}" + fi + echo >> "$output_objdir/$my_dlsyms" "\ +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{ {\"$my_originator\", (void *) 0}," + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ + {\"@INIT@\", (void *) <_syminit}," + fi + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + $my_pic_p && pic_flag_for_symtable=" $pic_flag" + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' + + # Transform the symbol file into the correct name. + symfileobj=$output_objdir/${my_outputname}S.$objext + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for '$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $debug_cmd + + win32_libid_type=unknown + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + case $nm_interface in + "MS dumpbin") + if func_cygming_ms_implib_p "$1" || + func_cygming_gnu_implib_p "$1" + then + win32_nmres=import + else + win32_nmres= + fi + ;; + *) + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s|.*|import| + p + q + } + }'` + ;; + esac + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $debug_cmd + + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $debug_cmd + + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive that possess that section. Heuristic: eliminate + # all those that have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $debug_cmd + + if func_cygming_gnu_implib_p "$1"; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1"; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result= + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $debug_cmd + + f_ex_an_ar_dir=$1; shift + f_ex_an_ar_oldlib=$1 + if test yes = "$lock_old_archive_extraction"; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test yes = "$lock_old_archive_extraction"; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $debug_cmd + + my_gentop=$1; shift + my_oldlibs=${1+"$@"} + my_oldobjs= + my_xlib= + my_xabs= + my_xdir= + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib=$func_basename_result + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir=$my_gentop/$my_xlib_u + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + func_basename "$darwin_archive" + darwin_base_archive=$func_basename_result + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches; do + func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" + $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" + cd "unfat-$$/$darwin_base_archive-$darwin_arch" + func_extract_an_archive "`pwd`" "$darwin_base_archive" + cd "$darwin_curdir" + $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result=$my_oldobjs +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory where it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + func_quote_arg pretty "$ECHO" + qECHO=$func_quote_arg_result + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=$qECHO + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ that is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options that match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test yes = "$fast_install"; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + \$ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat < +#include +#ifdef _MSC_VER +# include +# include +# include +#else +# include +# include +# ifdef __CYGWIN__ +# include +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* declarations of non-ANSI functions */ +#if defined __MINGW32__ +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined __CYGWIN__ +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined other_platform || defined ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined _MSC_VER +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +#elif defined __MINGW32__ +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined __CYGWIN__ +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined other platforms ... */ +#endif + +#if defined PATH_MAX +# define LT_PATHMAX PATH_MAX +#elif defined MAXPATHLEN +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ + defined __OS2__ +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free (stale); stale = 0; } \ +} while (0) + +#if defined LT_DEBUGWRAPPER +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + size_t tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined HAVE_DOS_BASED_FILE_SYSTEM + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined HAVE_DOS_BASED_FILE_SYSTEM + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = (size_t) (q - p); + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (STREQ (str, pat)) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + size_t len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + size_t orig_value_len = strlen (orig_value); + size_t add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + size_t len = strlen (new_value); + while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[--len] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $debug_cmd + + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_suncc_cstd_abi +# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! +# Several compiler flags select an ABI that is incompatible with the +# Cstd library. Avoid specifying it if any are in CXXFLAGS. +func_suncc_cstd_abi () +{ + $debug_cmd + + case " $compile_command " in + *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) + suncc_use_cstd_abi=no + ;; + *) + suncc_use_cstd_abi=yes + ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $debug_cmd + + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # what system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll that has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + os2dllname= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=false + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module=$wl-single_module + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test yes != "$build_libtool_libs" \ + && func_fatal_configuration "cannot build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg=$1 + shift + func_quote_arg pretty,unquoted "$arg" + qarg=$func_quote_arg_unquoted_result + func_append libtool_args " $func_quote_arg_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir=$arg + prev= + continue + ;; + dlfiles|dlprefiles) + $preload || { + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=: + } + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test no = "$dlself"; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test dlprefiles = "$prev"; then + dlself=yes + elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test dlfiles = "$prev"; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols=$arg + test -f "$arg" \ + || func_fatal_error "symbol file '$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex=$arg + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir=$arg + prev= + continue + ;; + mllvm) + # Clang does not use LLVM to link, so we can simply discard any + # '-mllvm $arg' options when doing the link step. + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + if test none != "$pic_object"; then + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + fi + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file '$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + os2dllname) + os2dllname=$arg + prev= + continue + ;; + precious_regex) + precious_files_regex=$arg + prev= + continue + ;; + release) + release=-$arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test rpath = "$prev"; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds=$arg + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xassembler) + func_append compiler_flags " -Xassembler $qarg" + prev= + func_append compile_command " -Xassembler $qarg" + func_append finalize_command " -Xassembler $qarg" + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg=$arg + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "'-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test X-export-symbols = "X$arg"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between '-L' and '$1'" + else + func_fatal_error "need path for '-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of '$dir'" + dir=$absdir + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test X-lc = "X$arg" || test X-lm = "X$arg"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test X-lc = "X$arg" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*) + # Do not include libc due to us having libc/libc_r. + test X-lc = "X$arg" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test X-lc = "X$arg" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test X-lc = "X$arg" && continue + ;; + esac + elif test X-lc_r = "X$arg"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -mllvm) + prev=mllvm + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + # Solaris ld rejects as of 11.4. Refer to Oracle bug 22985199. + -pthread) + case $host in + *solaris2*) ;; + *) + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + ;; + esac + continue + ;; + -mt|-mthreads|-kthread|-Kthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module=$wl-multi_module + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "'-no-install' is ignored for $host" + func_warning "assuming '-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -os2dllname) + prev=os2dllname + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_arg pretty "$flag" + func_append arg " $func_quote_arg_result" + func_append compiler_flags " $func_quote_arg_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_arg pretty "$flag" + func_append arg " $wl$func_quote_arg_result" + func_append compiler_flags " $wl$func_quote_arg_result" + func_append linker_flags " $func_quote_arg_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xassembler) + prev=xassembler + continue + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # -fstack-protector* stack protector flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -specs=* GCC specs files + # -stdlib=* select c++ std lib with clang + # -fsanitize=* Clang/GCC memory and address sanitizer + # -fuse-ld=* Linker select flags for GCC + # -static-* direct GCC to link specific libraries statically + # -fcilkplus Cilk Plus language extension features for C/C++ + # -Wa,* Pass flags directly to the assembler + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ + -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus|-Wa,*) + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + -Z*) + if test os2 = "`expr $host : '.*\(os2\)'`"; then + # OS/2 uses -Zxxx to specify OS/2-specific options + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case $arg in + -Zlinker | -Zstack) + prev=xcompiler + ;; + esac + continue + else + # Otherwise treat like 'Some other compiler flag' below + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result + fi + ;; + + # Some other compiler flag. + -* | +*) + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + test none = "$pic_object" || { + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + } + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test dlfiles = "$prev"; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test dlprefiles = "$prev"; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the '$prevarg' option requires an argument" + + if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname=$func_basename_result + libobjs_save=$libobjs + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + # Definition is injected by LT_CONFIG during libtool generation. + func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" + + func_dirname "$output" "/" "" + output_objdir=$func_dirname_result$objdir + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test lib = "$linkmode"; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=false + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test lib,link = "$linkmode,$pass"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs=$tmp_deplibs + fi + + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass"; then + libs=$deplibs + deplibs= + fi + if test prog = "$linkmode"; then + case $pass in + dlopen) libs=$dlfiles ;; + dlpreopen) libs=$dlprefiles ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; + esac + fi + if test lib,dlpreopen = "$linkmode,$pass"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs=$dlprefiles + fi + if test dlopen = "$pass"; then + # Collect dlpreopened libraries + save_deplibs=$deplibs + deplibs= + fi + + for deplib in $libs; do + lib= + found=false + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test lib != "$linkmode" && test prog != "$linkmode"; then + func_warning "'-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test lib = "$linkmode"; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib=$searchdir/lib$name$search_ext + if test -f "$lib"; then + if test .la = "$search_ext"; then + found=: + else + found=false + fi + break 2 + fi + done + done + if $found; then + # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll=$l + done + if test "X$ll" = "X$old_library"; then # only static version available + found=false + func_dirname "$lib" "" "." + ladir=$func_dirname_result + lib=$ladir/$old_library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + else + # deplib doesn't seem to be a libtool library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + ;; # -l + *.ltframework) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test conv = "$pass" && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + if test scan = "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "'-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test link = "$pass"; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=false + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=: + fi + ;; + pass_all) + valid_a_lib=: + ;; + esac + if $valid_a_lib; then + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + else + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + fi + ;; + esac + continue + ;; + prog) + if test link != "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + elif test prog = "$linkmode"; then + if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=: + continue + ;; + esac # case $deplib + + $found || test -f "$lib" \ + || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "'$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir=$func_dirname_result + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass" || + { test prog != "$linkmode" && test lib != "$linkmode"; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test conv = "$pass"; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + elif test prog != "$linkmode" && test lib != "$linkmode"; then + func_fatal_error "'$lib' is not a convenience library" + fi + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test yes = "$prefer_static_libs" || + test built,no = "$prefer_static_libs,$installed"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib=$l + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + + # This library was specified with -dlopen. + if test dlopen = "$pass"; then + test -z "$libdir" \ + && func_fatal_error "cannot -dlopen a convenience library: '$lib'" + if test -z "$dlname" || + test yes != "$dlopen_support" || + test no = "$build_libtool_libs" + then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of '$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir=$ladir + fi + ;; + esac + func_basename "$lib" + laname=$func_basename_result + + # Find the relevant object directory and library name. + if test yes = "$installed"; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library '$lib' was moved." + dir=$ladir + absdir=$abs_ladir + libdir=$abs_ladir + else + dir=$lt_sysroot$libdir + absdir=$lt_sysroot$libdir + fi + test yes = "$hardcode_automatic" && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir=$ladir + absdir=$abs_ladir + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir=$ladir/$objdir + absdir=$abs_ladir/$objdir + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test dlpreopen = "$pass"; then + if test -z "$libdir" && test prog = "$linkmode"; then + func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" + fi + case $host in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test lib = "$linkmode"; then + deplibs="$dir/$old_library $deplibs" + elif test prog,link = "$linkmode,$pass"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test prog = "$linkmode" && test link != "$pass"; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=false + if test no != "$link_all_deplibs" || test -z "$library_names" || + test no = "$build_libtool_libs"; then + linkalldeplibs=: + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if $linkalldeplibs; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test prog,link = "$linkmode,$pass"; then + if test -n "$library_names" && + { { test no = "$prefer_static_libs" || + test built,yes = "$prefer_static_libs,$installed"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then + # Make sure the rpath contains only unique directories. + case $temp_rpath: in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if $alldeplibs && + { test pass_all = "$deplibs_check_method" || + { test yes = "$build_libtool_libs" && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test built = "$use_static_libs" && test yes = "$installed"; then + use_static_libs=no + fi + if test -n "$library_names" && + { test no = "$use_static_libs" || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc* | *os2*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test no = "$installed"; then + func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule= + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule=$dlpremoduletest + break + fi + done + if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then + echo + if test prog = "$linkmode"; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test lib = "$linkmode" && + test yes = "$hardcode_into_libs"; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname=$1 + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname=$dlname + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc* | *os2*) + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + esac + eval soname=\"$soname_spec\" + else + soname=$realname + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot=$soname + func_basename "$soroot" + soname=$func_basename_result + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from '$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for '$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test prog = "$linkmode" || test relink != "$opt_mode"; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test no = "$hardcode_direct"; then + add=$dir/$linklib + case $host in + *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; + *-*-sysv4*uw2*) add_dir=-L$dir ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir=-L$dir ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we cannot + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library"; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add=$dir/$old_library + fi + elif test -n "$old_library"; then + add=$dir/$old_library + fi + fi + esac + elif test no = "$hardcode_minus_L"; then + case $host in + *-*-sunos*) add_shlibpath=$dir ;; + esac + add_dir=-L$dir + add=-l$name + elif test no = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + relink) + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$dir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$absdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test yes != "$lib_linked"; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test prog = "$linkmode"; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test yes != "$hardcode_direct" && + test yes != "$hardcode_minus_L" && + test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test prog = "$linkmode" || test relink = "$opt_mode"; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$libdir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$libdir + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add=-l$name + elif test yes = "$hardcode_automatic"; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib"; then + add=$inst_prefix_dir$libdir/$linklib + else + add=$libdir/$linklib + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir=-L$libdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + fi + + if test prog = "$linkmode"; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test prog = "$linkmode"; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test unsupported != "$hardcode_direct"; then + test -n "$old_library" && linklib=$old_library + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test yes = "$build_libtool_libs"; then + # Not a shared library + if test pass_all != "$deplibs_check_method"; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system cannot link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test yes = "$module"; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test lib = "$linkmode"; then + if test -n "$dependency_libs" && + { test yes != "$hardcode_into_libs" || + test yes = "$build_old_libs" || + test yes = "$link_static"; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs=$temp_deplibs + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test no != "$link_all_deplibs"; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path=$deplib ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of '$dir'" + absdir=$dir + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names"; then + for tmp in $deplibrary_names; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl"; then + depdepl=$absdir/$objdir/$depdepl + darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" + func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" + path= + fi + fi + ;; + *) + path=-L$absdir/$objdir + ;; + esac + else + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "'$deplib' seems to be moved" + + path=-L$absdir + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test link = "$pass"; then + if test prog = "$linkmode"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs=$newdependency_libs + if test dlpreopen = "$pass"; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test dlopen != "$pass"; then + test conv = "$pass" || { + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + } + + if test prog,link = "$linkmode,$pass"; then + vars="compile_deplibs finalize_deplibs" + else + vars=deplibs + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + + # Add Sun CC postdeps if required: + test CXX = "$tagname" && { + case $host_os in + linux*) + case `$CC -V 2>&1 | $SED 5q` in + *Sun\ C*) # Sun C++ 5.9 + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + + solaris*) + func_cc_basename "$CC" + case $func_cc_basename_result in + CC* | sunCC*) + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + esac + } + + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i= + ;; + esac + if test -n "$i"; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test prog = "$linkmode"; then + dlfiles=$newdlfiles + fi + if test prog = "$linkmode" || test lib = "$linkmode"; then + dlprefiles=$newdlprefiles + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "'-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "'-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs=$output + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form 'libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test no = "$module" \ + && func_fatal_help "libtool library '$output' must begin with 'lib'" + + if test no != "$need_lib_prefix"; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test pass_all != "$deplibs_check_method"; then + func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test no = "$dlself" \ + || func_warning "'-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test 1 -lt "$#" \ + && func_warning "ignoring multiple '-rpath's for a libtool library" + + install_libdir=$1 + + oldlibs= + if test -z "$rpath"; then + if test yes = "$build_libtool_libs"; then + # Building a libtool convenience library. + # Some compilers have problems with a '.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "'-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs=$IFS; IFS=: + set dummy $vinfo 0 0 0 + shift + IFS=$save_ifs + + test -n "$7" && \ + func_fatal_help "too many parameters to '-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major=$1 + number_minor=$2 + number_revision=$3 + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # that has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|freebsd-elf|linux|midnightbsd-elf|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_revision + ;; + freebsd-aout|qnx|sunos) + current=$number_major + revision=$number_minor + age=0 + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_minor + lt_irix_increment=no + ;; + *) + func_fatal_configuration "$modename: unknown library version type '$version_type'" + ;; + esac + ;; + no) + current=$1 + revision=$2 + age=$3 + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT '$current' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION '$revision' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE '$age' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE '$age' is greater than the current interface number '$current'" + func_fatal_error "'$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers + case $CC in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; + *) + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + esac + ;; + + freebsd-aout) + major=.$current + versuffix=.$current.$revision + ;; + + freebsd-elf | midnightbsd-elf) + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + irix | nonstopux) + if test no = "$lt_irix_increment"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring=$verstring_prefix$major.$revision + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test 0 -ne "$loop"; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring_prefix$major.$iface:$verstring + done + + # Before this point, $major must not contain '.'. + major=.$major + versuffix=$major.$revision + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=.$current.$age.$revision + verstring=$current.$age.$revision + + # Add in all the interfaces that we are compatible with. + loop=$age + while test 0 -ne "$loop"; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring:$iface.0 + done + + # Make executables depend on our current version. + func_append verstring ":$current.0" + ;; + + qnx) + major=.$current + versuffix=.$current + ;; + + sco) + major=.$current + versuffix=.$current + ;; + + sunos) + major=.$current + versuffix=.$current.$revision + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 file systems. + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + + *) + func_fatal_configuration "unknown library version type '$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring=0.0 + ;; + esac + if test no = "$need_version"; then + versuffix= + else + versuffix=.0.0 + fi + fi + + # Remove version info from name if versioning should be avoided + if test yes,no = "$avoid_version,$need_version"; then + major= + versuffix= + verstring= + fi + + # Check to see if the archive will have undefined symbols. + if test yes = "$allow_undefined"; then + if test unsupported = "$allow_undefined_flag"; then + if test yes = "$build_old_libs"; then + func_warning "undefined symbols not allowed in $host shared libraries; building static only" + build_libtool_libs=no + else + func_fatal_error "can't build $host shared library unless -no-undefined is specified" + fi + fi + else + # Don't allow undefined symbols. + allow_undefined_flag=$no_undefined_flag + fi + + fi + + func_generate_dlsyms "$libname" "$libname" : + func_append libobjs " $symfileobj" + test " " = "$libobjs" && libobjs= + + if test relink != "$opt_mode"; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) + if test -n "$precious_files_regex"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles=$dlfiles + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles=$dlprefiles + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test yes = "$build_libtool_libs"; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test yes = "$build_libtool_need_lc"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release= + versuffix= + major= + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c </dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib=$potent_lib + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | $SED 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; + *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib= + ;; + esac + fi + if test -n "$a_deplib"; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib=$potent_lib # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs= + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + for i in $predeps $postdeps; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test none = "$deplibs_check_method"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test yes = "$droppeddeps"; then + if test yes = "$module"; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test no = "$allow_undefined"; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs=$new_libs + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test yes = "$build_libtool_libs"; then + # Remove $wl instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test yes = "$hardcode_into_libs"; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath=$finalize_rpath + test relink = "$opt_mode" || rpath=$compile_rpath$rpath + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath=$finalize_shlibpath + test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname=$1 + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname=$realname + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib=$output_objdir/$realname + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols=$output_objdir/$libname.uexp + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + func_dll_def_p "$export_symbols" || { + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols=$export_symbols + export_symbols= + always_export_symbols=yes + } + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs=$IFS; IFS='~' + for cmd1 in $cmds; do + IFS=$save_ifs + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test yes = "$try_normal_branch" \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=$output_objdir/$output_la.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS=$save_ifs + if test -n "$export_symbols_regex" && test : != "$skipped_export"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test : != "$skipped_export" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs=$tmp_deplibs + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test yes = "$compiler_needs_object" && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test : != "$skipped_export" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then + output=$output_objdir/$output_la.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then + output=$output_objdir/$output_la.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test yes = "$compiler_needs_object"; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-$k.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test -z "$objlist" || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test 1 -eq "$k"; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-$k.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-$k.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + ${skipped_export-false} && { + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + } + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs=$IFS; IFS='~' + for cmd in $concat_cmds; do + IFS=$save_ifs + $opt_quiet || { + func_quote_arg expand,pretty "$cmd" + eval "func_echo $func_quote_arg_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + ${skipped_export-false} && { + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + } + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs=$IFS; IFS='~' + for cmd in $cmds; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + $opt_quiet || { + func_quote_arg expand,pretty "$cmd" + eval "func_echo $func_quote_arg_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test yes = "$module" || test yes = "$export_dynamic"; then + # On all known operating systems, these are identical. + dlname=$soname + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "'-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object '$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj=$output + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # if reload_cmds runs $LD directly, get rid of -Wl from + # whole_archive_flag_spec and hope we can get by with turning comma + # into space. + case $reload_cmds in + *\$LD[\ \$]*) wl= ;; + esac + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags + else + gentop=$output_objdir/${obj}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test yes = "$build_libtool_libs" || libobjs=$non_pic_objects + + # Create the old-style object. + reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs + + output=$obj + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + test yes = "$build_libtool_libs" || { + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + } + + if test -n "$pic_flag" || test default != "$pic_mode"; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output=$libobj + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "'-release' is ignored for programs" + + $preload \ + && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ + && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test CXX = "$tagname"; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " $wl-bind_at_load" + func_append finalize_command " $wl-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs=$new_libs + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath=$rpath + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath=$rpath + + if test -n "$libobjs" && test yes = "$build_old_libs"; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" false + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=: + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=false + ;; + *cygwin* | *mingw* ) + test yes = "$build_libtool_libs" || wrappers_required=false + ;; + *) + if test no = "$need_relink" || test yes != "$build_libtool_libs"; then + wrappers_required=false + fi + ;; + esac + $wrappers_required || { + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command=$compile_command$compile_rpath + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.$objext"; then + func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' + fi + + exit $exit_status + } + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test yes = "$no_install"; then + # We don't need to create a wrapper script. + link_command=$compile_var$compile_command$compile_rpath + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + case $hardcode_action,$fast_install in + relink,*) + # Fast installation is not supported + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "'$output' will be relinked during installation" + ;; + *,yes) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + ;; + *,no) + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + ;; + *,needless) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command= + ;; + esac + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_arg pretty "$var_value" + relink_command="$var=$func_quote_arg_result; export $var; $relink_command" + fi + done + func_quote eval cd "`pwd`" + func_quote_arg pretty,unquoted "($func_quote_result; $relink_command)" + relink_command=$func_quote_arg_unquoted_result + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource=$output_path/$objdir/lt-$output_name.c + cwrapper=$output_path/$output_name.exe + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host"; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + case $build_libtool_libs in + convenience) + oldobjs="$libobjs_save $symfileobj" + addlibs=$convenience + build_libtool_libs=no + ;; + module) + oldobjs=$libobjs_save + addlibs=$old_convenience + build_libtool_libs=no + ;; + *) + oldobjs="$old_deplibs $non_pic_objects" + $preload && test -f "$symfileobj" \ + && func_append oldobjs " $symfileobj" + addlibs=$old_convenience + ;; + esac + + if test -n "$addlibs"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase=$func_basename_result + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj"; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test -z "$oldobjs"; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test yes = "$build_old_libs" && old_library=$libname.$libext + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_arg pretty,unquoted "$var_value" + relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + func_quote eval cd "`pwd`" + relink_command="($func_quote_result; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + func_quote_arg pretty,unquoted "$relink_command" + relink_command=$func_quote_arg_unquoted_result + if test yes = "$hardcode_automatic"; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test yes = "$installed"; then + if test -z "$install_libdir"; then + break + fi + output=$output_objdir/${outputname}i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name=$func_basename_result + func_resolve_sysroot "$deplib" + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs=$newdependency_libs + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles=$newdlprefiles + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles=$newdlprefiles + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test -n "$bindir"; then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result/$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test no,yes = "$installed,$need_relink"; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +if test link = "$opt_mode" || test relink = "$opt_mode"; then + func_mode_link ${1+"$@"} +fi + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $debug_cmd + + RM=$nonopt + files= + rmforce=false + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=: ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir=$func_dirname_result + if test . = "$dir"; then + odir=$objdir + else + odir=$dir/$objdir + fi + func_basename "$file" + name=$func_basename_result + test uninstall = "$opt_mode" && odir=$dir + + # Remember odir for removal later, being careful to avoid duplicates + if test clean = "$opt_mode"; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif $rmforce; then + continue + fi + + rmfiles=$file + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case $opt_mode in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && test none != "$pic_object"; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && test none != "$non_pic_object"; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test clean = "$opt_mode"; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.$objext" + if test yes = "$fast_install" && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name"; then + func_append rmfiles " $odir/lt-$noexename.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the $objdir's in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then + func_mode_uninstall ${1+"$@"} +fi + +test -z "$opt_mode" && { + help=$generic_help + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode '$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# where we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/build-aux/missing b/build-aux/missing new file mode 100755 index 0000000..1fe1611 --- /dev/null +++ b/build-aux/missing @@ -0,0 +1,215 @@ +#! /bin/sh +# Common wrapper for a few potentially missing GNU programs. + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try '$0 --help' for more information" + exit 1 +fi + +case $1 in + + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; + + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man + +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" + exit 1 + ;; + +esac + +# Run the given program, remember its exit status. +"$@"; st=$? + +# If it succeeded, we are done. +test $st -eq 0 && exit 0 + +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi + +perl_URL=https://www.perl.org/ +flex_URL=https://github.com/westes/flex +gnu_software_URL=https://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'autom4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/test-driver b/build-aux/test-driver new file mode 100755 index 0000000..be73b80 --- /dev/null +++ b/build-aux/test-driver @@ -0,0 +1,153 @@ +#! /bin/sh +# test-driver - basic testsuite driver script. + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 2011-2021 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +# Make unconditional expansion of undefined variables an error. This +# helps a lot in preventing typo-related bugs. +set -u + +usage_error () +{ + echo "$0: $*" >&2 + print_usage >&2 + exit 2 +} + +print_usage () +{ + cat <"$log_file" +"$@" >>"$log_file" 2>&1 +estatus=$? + +if test $enable_hard_errors = no && test $estatus -eq 99; then + tweaked_estatus=1 +else + tweaked_estatus=$estatus +fi + +case $tweaked_estatus:$expect_failure in + 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; + 0:*) col=$grn res=PASS recheck=no gcopy=no;; + 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; + 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; + *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; + *:*) col=$red res=FAIL recheck=yes gcopy=yes;; +esac + +# Report the test outcome and exit status in the logs, so that one can +# know whether the test passed or failed simply by looking at the '.log' +# file, without the need of also peaking into the corresponding '.trs' +# file (automake bug#11814). +echo "$res $test_name (exit status: $estatus)" >>"$log_file" + +# Report outcome to console. +echo "${col}${res}${std}: $test_name" + +# Register the test result, and other relevant metadata. +echo ":test-result: $res" > $trs_file +echo ":global-test-result: $res" >> $trs_file +echo ":recheck: $recheck" >> $trs_file +echo ":copy-in-global-log: $gcopy" >> $trs_file + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/ylwrap b/build-aux/ylwrap new file mode 100755 index 0000000..e8ec109 --- /dev/null +++ b/build-aux/ylwrap @@ -0,0 +1,247 @@ +#! /bin/sh +# ylwrap - wrapper for lex/yacc invocations. + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +get_dirname () +{ + case $1 in + */*|*\\*) printf '%s\n' "$1" | sed -e 's|\([\\/]\)[^\\/]*$|\1|';; + # Otherwise, we want the empty string (not "."). + esac +} + +# guard FILE +# ---------- +# The CPP macro used to guard inclusion of FILE. +guard () +{ + printf '%s\n' "$1" \ + | sed \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ + -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g' \ + -e 's/__*/_/g' +} + +# quote_for_sed [STRING] +# ---------------------- +# Return STRING (or stdin) quoted to be used as a sed pattern. +quote_for_sed () +{ + case $# in + 0) cat;; + 1) printf '%s\n' "$1";; + esac \ + | sed -e 's|[][\\.*]|\\&|g' +} + +case "$1" in + '') + echo "$0: No files given. Try '$0 --help' for more information." 1>&2 + exit 1 + ;; + --basedir) + basedir=$2 + shift 2 + ;; + -h|--h*) + cat <<\EOF +Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]... + +Wrapper for lex/yacc invocations, renaming files as desired. + + INPUT is the input file + OUTPUT is one file PROG generates + DESIRED is the file we actually want instead of OUTPUT + PROGRAM is program to run + ARGS are passed to PROG + +Any number of OUTPUT,DESIRED pairs may be used. + +Report bugs to . +EOF + exit $? + ;; + -v|--v*) + echo "ylwrap $scriptversion" + exit $? + ;; +esac + + +# The input. +input=$1 +shift +# We'll later need for a correct munging of "#line" directives. +input_sub_rx=`get_dirname "$input" | quote_for_sed` +case $input in + [\\/]* | ?:[\\/]*) + # Absolute path; do nothing. + ;; + *) + # Relative path. Make it absolute. + input=`pwd`/$input + ;; +esac +input_rx=`get_dirname "$input" | quote_for_sed` + +# Since DOS filename conventions don't allow two dots, +# the DOS version of Bison writes out y_tab.c instead of y.tab.c +# and y_tab.h instead of y.tab.h. Test to see if this is the case. +y_tab_nodot=false +if test -f y_tab.c || test -f y_tab.h; then + y_tab_nodot=true +fi + +# The parser itself, the first file, is the destination of the .y.c +# rule in the Makefile. +parser=$1 + +# A sed program to s/FROM/TO/g for all the FROM/TO so that, for +# instance, we rename #include "y.tab.h" into #include "parse.h" +# during the conversion from y.tab.c to parse.c. +sed_fix_filenames= + +# Also rename header guards, as Bison 2.7 for instance uses its header +# guard in its implementation file. +sed_fix_header_guards= + +while test $# -ne 0; do + if test x"$1" = x"--"; then + shift + break + fi + from=$1 + # Handle y_tab.c and y_tab.h output by DOS + if $y_tab_nodot; then + case $from in + "y.tab.c") from=y_tab.c;; + "y.tab.h") from=y_tab.h;; + esac + fi + shift + to=$1 + shift + sed_fix_filenames="${sed_fix_filenames}s|"`quote_for_sed "$from"`"|$to|g;" + sed_fix_header_guards="${sed_fix_header_guards}s|"`guard "$from"`"|"`guard "$to"`"|g;" +done + +# The program to run. +prog=$1 +shift +# Make any relative path in $prog absolute. +case $prog in + [\\/]* | ?:[\\/]*) ;; + *[\\/]*) prog=`pwd`/$prog ;; +esac + +dirname=ylwrap$$ +do_exit="cd '`pwd`' && rm -rf $dirname > /dev/null 2>&1;"' (exit $ret); exit $ret' +trap "ret=129; $do_exit" 1 +trap "ret=130; $do_exit" 2 +trap "ret=141; $do_exit" 13 +trap "ret=143; $do_exit" 15 +mkdir $dirname || exit 1 + +cd $dirname + +case $# in + 0) "$prog" "$input" ;; + *) "$prog" "$@" "$input" ;; +esac +ret=$? + +if test $ret -eq 0; then + for from in * + do + to=`printf '%s\n' "$from" | sed "$sed_fix_filenames"` + if test -f "$from"; then + # If $2 is an absolute path name, then just use that, + # otherwise prepend '../'. + case $to in + [\\/]* | ?:[\\/]*) target=$to;; + *) target=../$to;; + esac + + # Do not overwrite unchanged header files to avoid useless + # recompilations. Always update the parser itself: it is the + # destination of the .y.c rule in the Makefile. Divert the + # output of all other files to a temporary file so we can + # compare them to existing versions. + if test $from != $parser; then + realtarget=$target + target=tmp-`printf '%s\n' "$target" | sed 's|.*[\\/]||g'` + fi + + # Munge "#line" or "#" directives. Don't let the resulting + # debug information point at an absolute srcdir. Use the real + # output file name, not yy.lex.c for instance. Adjust the + # include guards too. + sed -e "/^#/!b" \ + -e "s|$input_rx|$input_sub_rx|" \ + -e "$sed_fix_filenames" \ + -e "$sed_fix_header_guards" \ + "$from" >"$target" || ret=$? + + # Check whether files must be updated. + if test "$from" != "$parser"; then + if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then + echo "$to is unchanged" + rm -f "$target" + else + echo "updating $to" + mv -f "$target" "$realtarget" + fi + fi + else + # A missing file is only an error for the parser. This is a + # blatant hack to let us support using "yacc -d". If -d is not + # specified, don't fail when the header file is "missing". + if test "$from" = "$parser"; then + ret=1 + fi + fi + done +fi + +# Remove the directory. +cd .. +rm -rf $dirname + +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/config.h.in b/config.h.in new file mode 100644 index 0000000..847159a --- /dev/null +++ b/config.h.in @@ -0,0 +1,2714 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + +/* Define if you have, and want to use, Berkeley database header files. */ +#undef BDB_H + +/* Define to the number of bits in type 'ptrdiff_t'. */ +#undef BITSIZEOF_PTRDIFF_T + +/* Define to the number of bits in type 'sig_atomic_t'. */ +#undef BITSIZEOF_SIG_ATOMIC_T + +/* Define to the number of bits in type 'size_t'. */ +#undef BITSIZEOF_SIZE_T + +/* Define to the number of bits in type 'wchar_t'. */ +#undef BITSIZEOF_WCHAR_T + +/* Define to the number of bits in type 'wint_t'. */ +#undef BITSIZEOF_WINT_T + +/* Define if you have, and want to use, the Berkeley database library. */ +#undef BTREE + +/* Define to 1 if chown fails to change ctime when at least one argument was + not -1. */ +#undef CHOWN_CHANGE_TIME_BUG + +/* Define if chown is not POSIX compliant regarding IDs of -1. */ +#undef CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE + +/* Define if chown modifies symlinks. */ +#undef CHOWN_MODIFIES_SYMLINK + +/* Define to 1 if chown mishandles trailing slash. */ +#undef CHOWN_TRAILING_SLASH_BUG + +/* Default compression extension, used for compressing cat pages. */ +#undef COMPRESS_EXT + +/* Define if you have compressors and want to support compressed cat files. */ +#undef COMP_CAT + +/* Define to 1 if using 'alloca.c'. */ +#undef C_ALLOCA + +/* Define as the bit index in the word where to find bit 0 of the exponent of + 'double'. */ +#undef DBL_EXPBIT0_BIT + +/* Define as the word index where to find the exponent of 'double'. */ +#undef DBL_EXPBIT0_WORD + +/* the name of the file descriptor member of DIR */ +#undef DIR_FD_MEMBER_NAME + +#ifdef DIR_FD_MEMBER_NAME +# define DIR_TO_FD(Dir_p) ((Dir_p)->DIR_FD_MEMBER_NAME) +#else +# define DIR_TO_FD(Dir_p) -1 +#endif + + +/* Define to 1 if // is a file system root distinct from /. */ +#undef DOUBLE_SLASH_IS_DISTINCT_ROOT + +/* Define if struct dirent has a member d_ino that actually works. */ +#undef D_INO_IN_DIRENT + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +#undef ENABLE_NLS + +/* Define this to 1 if F_DUPFD behavior does not match POSIX */ +#undef FCNTL_DUPFD_BUGGY + +/* Define to nothing if C supports flexible array members, and to 1 if it does + not. That way, with a declaration like 'struct s { int n; short + d[FLEXIBLE_ARRAY_MEMBER]; };', the struct hack can be used with pre-C99 + compilers. Use 'FLEXSIZEOF (struct s, d, N * sizeof (short))' to calculate + the size in bytes of such a struct containing an N-element array. */ +#undef FLEXIBLE_ARRAY_MEMBER + +/* Define to 1 if mkdir mistakenly creates a directory given with a trailing + dot component. */ +#undef FUNC_MKDIR_DOT_BUG + +/* Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string. */ +#undef FUNC_NL_LANGINFO_YESEXPR_WORKS + +/* Define to 1 if realpath() can malloc memory, always gives an absolute path, + and handles a trailing slash correctly. */ +#undef FUNC_REALPATH_NEARLY_WORKS + +/* Define to 1 if realpath() can malloc memory, always gives an absolute path, + and handles leading slashes and a trailing slash correctly. */ +#undef FUNC_REALPATH_WORKS + +/* Define to 1 if futimesat mishandles a NULL file name. */ +#undef FUTIMESAT_NULL_BUG + +/* Define if you have, and want to use, gdbm interface routines. */ +#undef GDBM + +/* Define this to 'void' or 'struct timezone' to match the system's + declaration of the second argument to gettimeofday. */ +#undef GETTIMEOFDAY_TIMEZONE + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module canonicalize shall be considered present. */ +#undef GNULIB_CANONICALIZE + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module canonicalize-lgpl shall be considered present. */ +#undef GNULIB_CANONICALIZE_LGPL + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module dirname shall be considered present. */ +#undef GNULIB_DIRNAME + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module fdopendir shall be considered present. */ +#undef GNULIB_FDOPENDIR + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module fd-safer-flag shall be considered present. */ +#undef GNULIB_FD_SAFER_FLAG + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module fnmatch-gnu shall be considered present. */ +#undef GNULIB_FNMATCH_GNU + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module fscanf shall be considered present. */ +#undef GNULIB_FSCANF + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module getcwd shall be considered present. */ +#undef GNULIB_GETCWD + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module isblank shall be considered present. */ +#undef GNULIB_ISBLANK + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module lock shall be considered present. */ +#undef GNULIB_LOCK + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module msvc-nothrow shall be considered present. */ +#undef GNULIB_MSVC_NOTHROW + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module nonblocking shall be considered present. */ +#undef GNULIB_NONBLOCKING + +/* Define to 1 to disable use of VLAs. */ +#undef GNULIB_NO_VLA + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module openat shall be considered present. */ +#undef GNULIB_OPENAT + +/* Define to 1 if printf and friends should be labeled with attribute + "__gnu_printf__" instead of "__printf__" */ +#undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU + +/* Define to 1 to add extern declaration of program_invocation_name to argp.h + */ +#undef GNULIB_PROGRAM_INVOCATION_NAME + +/* Define to 1 to add extern declaration of program_invocation_short_name to + argp.h */ +#undef GNULIB_PROGRAM_INVOCATION_SHORT_NAME + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module reallocarray shall be considered present. */ +#undef GNULIB_REALLOCARRAY + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module scanf shall be considered present. */ +#undef GNULIB_SCANF + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module sigpipe shall be considered present. */ +#undef GNULIB_SIGPIPE + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module strerror shall be considered present. */ +#undef GNULIB_STRERROR + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module tempname shall be considered present. */ +#undef GNULIB_TEMPNAME + +/* Define to 1 when the gnulib module btowc should be tested. */ +#undef GNULIB_TEST_BTOWC + +/* Define to 1 when the gnulib module calloc-gnu should be tested. */ +#undef GNULIB_TEST_CALLOC_GNU + +/* Define to 1 when the gnulib module calloc-posix should be tested. */ +#undef GNULIB_TEST_CALLOC_POSIX + +/* Define to 1 when the gnulib module canonicalize should be tested. */ +#undef GNULIB_TEST_CANONICALIZE + +/* Define to 1 when the gnulib module canonicalize_file_name should be tested. + */ +#undef GNULIB_TEST_CANONICALIZE_FILE_NAME + +/* Define to 1 when the gnulib module chdir should be tested. */ +#undef GNULIB_TEST_CHDIR + +/* Define to 1 when the gnulib module chown should be tested. */ +#undef GNULIB_TEST_CHOWN + +/* Define to 1 when the gnulib module cloexec should be tested. */ +#undef GNULIB_TEST_CLOEXEC + +/* Define to 1 when the gnulib module close should be tested. */ +#undef GNULIB_TEST_CLOSE + +/* Define to 1 when the gnulib module closedir should be tested. */ +#undef GNULIB_TEST_CLOSEDIR + +/* Define to 1 when the gnulib module dirfd should be tested. */ +#undef GNULIB_TEST_DIRFD + +/* Define to 1 when the gnulib module dup should be tested. */ +#undef GNULIB_TEST_DUP + +/* Define to 1 when the gnulib module dup2 should be tested. */ +#undef GNULIB_TEST_DUP2 + +/* Define to 1 when the gnulib module environ should be tested. */ +#undef GNULIB_TEST_ENVIRON + +/* Define to 1 when the gnulib module fchdir should be tested. */ +#undef GNULIB_TEST_FCHDIR + +/* Define to 1 when the gnulib module fcntl should be tested. */ +#undef GNULIB_TEST_FCNTL + +/* Define to 1 when the gnulib module fdopendir should be tested. */ +#undef GNULIB_TEST_FDOPENDIR + +/* Define to 1 when the gnulib module fgetc should be tested. */ +#undef GNULIB_TEST_FGETC + +/* Define to 1 when the gnulib module fgets should be tested. */ +#undef GNULIB_TEST_FGETS + +/* Define to 1 when the gnulib module fnmatch should be tested. */ +#undef GNULIB_TEST_FNMATCH + +/* Define to 1 when the gnulib module fprintf should be tested. */ +#undef GNULIB_TEST_FPRINTF + +/* Define to 1 when the gnulib module fputc should be tested. */ +#undef GNULIB_TEST_FPUTC + +/* Define to 1 when the gnulib module fputs should be tested. */ +#undef GNULIB_TEST_FPUTS + +/* Define to 1 when the gnulib module fread should be tested. */ +#undef GNULIB_TEST_FREAD + +/* Define to 1 when the gnulib module free-posix should be tested. */ +#undef GNULIB_TEST_FREE_POSIX + +/* Define to 1 when the gnulib module fscanf should be tested. */ +#undef GNULIB_TEST_FSCANF + +/* Define to 1 when the gnulib module fstat should be tested. */ +#undef GNULIB_TEST_FSTAT + +/* Define to 1 when the gnulib module fstatat should be tested. */ +#undef GNULIB_TEST_FSTATAT + +/* Define to 1 when the gnulib module fwrite should be tested. */ +#undef GNULIB_TEST_FWRITE + +/* Define to 1 when the gnulib module getc should be tested. */ +#undef GNULIB_TEST_GETC + +/* Define to 1 when the gnulib module getchar should be tested. */ +#undef GNULIB_TEST_GETCHAR + +/* Define to 1 when the gnulib module getcwd should be tested. */ +#undef GNULIB_TEST_GETCWD + +/* Define to 1 when the gnulib module getdelim should be tested. */ +#undef GNULIB_TEST_GETDELIM + +/* Define to 1 when the gnulib module getdtablesize should be tested. */ +#undef GNULIB_TEST_GETDTABLESIZE + +/* Define to 1 when the gnulib module getline should be tested. */ +#undef GNULIB_TEST_GETLINE + +/* Define to 1 when the gnulib module getlogin_r should be tested. */ +#undef GNULIB_TEST_GETLOGIN_R + +/* Define to 1 when the gnulib module getopt-posix should be tested. */ +#undef GNULIB_TEST_GETOPT_POSIX + +/* Define to 1 when the gnulib module getrandom should be tested. */ +#undef GNULIB_TEST_GETRANDOM + +/* Define to 1 when the gnulib module gettimeofday should be tested. */ +#undef GNULIB_TEST_GETTIMEOFDAY + +/* Define to 1 when the gnulib module glob should be tested. */ +#undef GNULIB_TEST_GLOB + +/* Define to 1 when the gnulib module ioctl should be tested. */ +#undef GNULIB_TEST_IOCTL + +/* Define to 1 when the gnulib module lchown should be tested. */ +#undef GNULIB_TEST_LCHOWN + +/* Define to 1 when the gnulib module localeconv should be tested. */ +#undef GNULIB_TEST_LOCALECONV + +/* Define to 1 when the gnulib module lstat should be tested. */ +#undef GNULIB_TEST_LSTAT + +/* Define to 1 when the gnulib module malloc-gnu should be tested. */ +#undef GNULIB_TEST_MALLOC_GNU + +/* Define to 1 when the gnulib module malloc-posix should be tested. */ +#undef GNULIB_TEST_MALLOC_POSIX + +/* Define to 1 when the gnulib module mbrtowc should be tested. */ +#undef GNULIB_TEST_MBRTOWC + +/* Define to 1 when the gnulib module mbsinit should be tested. */ +#undef GNULIB_TEST_MBSINIT + +/* Define to 1 when the gnulib module mbsrtowcs should be tested. */ +#undef GNULIB_TEST_MBSRTOWCS + +/* Define to 1 when the gnulib module mbtowc should be tested. */ +#undef GNULIB_TEST_MBTOWC + +/* Define to 1 when the gnulib module memchr should be tested. */ +#undef GNULIB_TEST_MEMCHR + +/* Define to 1 when the gnulib module memmem should be tested. */ +#undef GNULIB_TEST_MEMMEM + +/* Define to 1 when the gnulib module mempcpy should be tested. */ +#undef GNULIB_TEST_MEMPCPY + +/* Define to 1 when the gnulib module memrchr should be tested. */ +#undef GNULIB_TEST_MEMRCHR + +/* Define to 1 when the gnulib module mkdir should be tested. */ +#undef GNULIB_TEST_MKDIR + +/* Define to 1 when the gnulib module mkdtemp should be tested. */ +#undef GNULIB_TEST_MKDTEMP + +/* Define to 1 when the gnulib module mkstemp should be tested. */ +#undef GNULIB_TEST_MKSTEMP + +/* Define to 1 when the gnulib module nanosleep should be tested. */ +#undef GNULIB_TEST_NANOSLEEP + +/* Define to 1 when the gnulib module nl_langinfo should be tested. */ +#undef GNULIB_TEST_NL_LANGINFO + +/* Define to 1 when the gnulib module nonblocking should be tested. */ +#undef GNULIB_TEST_NONBLOCKING + +/* Define to 1 when the gnulib module open should be tested. */ +#undef GNULIB_TEST_OPEN + +/* Define to 1 when the gnulib module openat should be tested. */ +#undef GNULIB_TEST_OPENAT + +/* Define to 1 when the gnulib module opendir should be tested. */ +#undef GNULIB_TEST_OPENDIR + +/* Define to 1 when the gnulib module pipe should be tested. */ +#undef GNULIB_TEST_PIPE + +/* Define to 1 when the gnulib module printf should be tested. */ +#undef GNULIB_TEST_PRINTF + +/* Define to 1 when the gnulib module pselect should be tested. */ +#undef GNULIB_TEST_PSELECT + +/* Define to 1 when the gnulib module pthread_sigmask should be tested. */ +#undef GNULIB_TEST_PTHREAD_SIGMASK + +/* Define to 1 when the gnulib module putc should be tested. */ +#undef GNULIB_TEST_PUTC + +/* Define to 1 when the gnulib module putchar should be tested. */ +#undef GNULIB_TEST_PUTCHAR + +/* Define to 1 when the gnulib module puts should be tested. */ +#undef GNULIB_TEST_PUTS + +/* Define to 1 when the gnulib module raise should be tested. */ +#undef GNULIB_TEST_RAISE + +/* Define to 1 when the gnulib module rawmemchr should be tested. */ +#undef GNULIB_TEST_RAWMEMCHR + +/* Define to 1 when the gnulib module readdir should be tested. */ +#undef GNULIB_TEST_READDIR + +/* Define to 1 when the gnulib module readlink should be tested. */ +#undef GNULIB_TEST_READLINK + +/* Define to 1 when the gnulib module readlinkat should be tested. */ +#undef GNULIB_TEST_READLINKAT + +/* Define to 1 when the gnulib module reallocarray should be tested. */ +#undef GNULIB_TEST_REALLOCARRAY + +/* Define to 1 when the gnulib module realloc-gnu should be tested. */ +#undef GNULIB_TEST_REALLOC_GNU + +/* Define to 1 when the gnulib module realloc-posix should be tested. */ +#undef GNULIB_TEST_REALLOC_POSIX + +/* Define to 1 when the gnulib module realpath should be tested. */ +#undef GNULIB_TEST_REALPATH + +/* Define to 1 when the gnulib module rename should be tested. */ +#undef GNULIB_TEST_RENAME + +/* Define to 1 when the gnulib module renameat should be tested. */ +#undef GNULIB_TEST_RENAMEAT + +/* Define to 1 when the gnulib module rewinddir should be tested. */ +#undef GNULIB_TEST_REWINDDIR + +/* Define to 1 when the gnulib module rmdir should be tested. */ +#undef GNULIB_TEST_RMDIR + +/* Define to 1 when the gnulib module scanf should be tested. */ +#undef GNULIB_TEST_SCANF + +/* Define to 1 when the gnulib module select should be tested. */ +#undef GNULIB_TEST_SELECT + +/* Define to 1 when the gnulib module setenv should be tested. */ +#undef GNULIB_TEST_SETENV + +/* Define to 1 when the gnulib module setlocale_null should be tested. */ +#undef GNULIB_TEST_SETLOCALE_NULL + +/* Define to 1 when the gnulib module sigaction should be tested. */ +#undef GNULIB_TEST_SIGACTION + +/* Define to 1 when the gnulib module sigprocmask should be tested. */ +#undef GNULIB_TEST_SIGPROCMASK + +/* Define to 1 when the gnulib module sleep should be tested. */ +#undef GNULIB_TEST_SLEEP + +/* Define to 1 when the gnulib module stat should be tested. */ +#undef GNULIB_TEST_STAT + +/* Define to 1 when the gnulib module stpcpy should be tested. */ +#undef GNULIB_TEST_STPCPY + +/* Define to 1 when the gnulib module strcasestr should be tested. */ +#undef GNULIB_TEST_STRCASESTR + +/* Define to 1 when the gnulib module strchrnul should be tested. */ +#undef GNULIB_TEST_STRCHRNUL + +/* Define to 1 when the gnulib module strdup should be tested. */ +#undef GNULIB_TEST_STRDUP + +/* Define to 1 when the gnulib module strerror should be tested. */ +#undef GNULIB_TEST_STRERROR + +/* Define to 1 when the gnulib module strndup should be tested. */ +#undef GNULIB_TEST_STRNDUP + +/* Define to 1 when the gnulib module strnlen should be tested. */ +#undef GNULIB_TEST_STRNLEN + +/* Define to 1 when the gnulib module strsep should be tested. */ +#undef GNULIB_TEST_STRSEP + +/* Define to 1 when the gnulib module unlink should be tested. */ +#undef GNULIB_TEST_UNLINK + +/* Define to 1 when the gnulib module unlinkat should be tested. */ +#undef GNULIB_TEST_UNLINKAT + +/* Define to 1 when the gnulib module utime should be tested. */ +#undef GNULIB_TEST_UTIME + +/* Define to 1 when the gnulib module vasprintf should be tested. */ +#undef GNULIB_TEST_VASPRINTF + +/* Define to 1 when the gnulib module vfprintf should be tested. */ +#undef GNULIB_TEST_VFPRINTF + +/* Define to 1 when the gnulib module vprintf should be tested. */ +#undef GNULIB_TEST_VPRINTF + +/* Define to 1 when the gnulib module vsnprintf should be tested. */ +#undef GNULIB_TEST_VSNPRINTF + +/* Define to 1 when the gnulib module wcrtomb should be tested. */ +#undef GNULIB_TEST_WCRTOMB + +/* Define to 1 when the gnulib module wmemchr should be tested. */ +#undef GNULIB_TEST_WMEMCHR + +/* Define to 1 when the gnulib module wmempcpy should be tested. */ +#undef GNULIB_TEST_WMEMPCPY + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module xalloc shall be considered present. */ +#undef GNULIB_XALLOC + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module xalloc-die shall be considered present. */ +#undef GNULIB_XALLOC_DIE + +/* Define if nroff is GNU nroff. */ +#undef GNU_NROFF + +/* Define if you have troff. */ +#undef HAS_TROFF + +/* Define to 1 if you have 'alloca' after including , a header that + may be supplied by this distribution. */ +#undef HAVE_ALLOCA + +/* Define to 1 if works. */ +#undef HAVE_ALLOCA_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_BCRYPT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_BP_SYM_H + +/* Define if you have browser. */ +#undef HAVE_BROWSER + +/* Define to 1 if you have the `btowc' function. */ +#undef HAVE_BTOWC + +/* Define to 1 if nanosleep mishandles large arguments. */ +#undef HAVE_BUG_BIG_NANOSLEEP + +/* Define if you have bzip2. */ +#undef HAVE_BZIP2 + +/* Define to 1 if you have the `canonicalize_file_name' function. */ +#undef HAVE_CANONICALIZE_FILE_NAME + +/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the + CoreFoundation framework. */ +#undef HAVE_CFLOCALECOPYCURRENT + +/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +#undef HAVE_CFPREFERENCESCOPYAPPVALUE + +/* Define to 1 if you have the `chown' function. */ +#undef HAVE_CHOWN + +/* Define to 1 if you have the `clock_getres' function. */ +#undef HAVE_CLOCK_GETRES + +/* Define to 1 if you have the `clock_gettime' function. */ +#undef HAVE_CLOCK_GETTIME + +/* Define to 1 if you have the `clock_settime' function. */ +#undef HAVE_CLOCK_SETTIME + +/* Define to 1 if you have the `closedir' function. */ +#undef HAVE_CLOSEDIR + +/* Define if you have col. */ +#undef HAVE_COL + +/* Define if you have compress. */ +#undef HAVE_COMPRESS + +/* Define to 1 if you have the header file. */ +#undef HAVE_CRTDEFS_H + +/* Define to 1 if C supports variable-length arrays. */ +#undef HAVE_C_VARARRAYS + +/* Define to 1 if you have the header file. */ +#undef HAVE_DB1_DB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_DB2_185_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_DB2_DB_185_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_DB3_DB_185_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_DB4_DB_185_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_DB5_DB_185_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_DB_185_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_DB_DB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_DB_H + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +#undef HAVE_DCGETTEXT + +/* Define to 1 if you have the declaration of `alarm', and to 0 if you don't. + */ +#undef HAVE_DECL_ALARM + +/* Define to 1 if you have the declaration of `clearerr_unlocked', and to 0 if + you don't. */ +#undef HAVE_DECL_CLEARERR_UNLOCKED + +/* Define to 1 if you have the declaration of `dirfd', and to 0 if you don't. + */ +#undef HAVE_DECL_DIRFD + +/* Define to 1 if you have the declaration of `ecvt', and to 0 if you don't. + */ +#undef HAVE_DECL_ECVT + +/* Define to 1 if you have the declaration of `execvpe', and to 0 if you + don't. */ +#undef HAVE_DECL_EXECVPE + +/* Define to 1 if you have the declaration of `fchdir', and to 0 if you don't. + */ +#undef HAVE_DECL_FCHDIR + +/* Define to 1 if you have the declaration of `fcloseall', and to 0 if you + don't. */ +#undef HAVE_DECL_FCLOSEALL + +/* Define to 1 if you have the declaration of `fcvt', and to 0 if you don't. + */ +#undef HAVE_DECL_FCVT + +/* Define to 1 if you have the declaration of `fdopendir', and to 0 if you + don't. */ +#undef HAVE_DECL_FDOPENDIR + +/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you + don't. */ +#undef HAVE_DECL_FEOF_UNLOCKED + +/* Define to 1 if you have the declaration of `ferror_unlocked', and to 0 if + you don't. */ +#undef HAVE_DECL_FERROR_UNLOCKED + +/* Define to 1 if you have the declaration of `fflush_unlocked', and to 0 if + you don't. */ +#undef HAVE_DECL_FFLUSH_UNLOCKED + +/* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if + you don't. */ +#undef HAVE_DECL_FGETS_UNLOCKED + +/* Define to 1 if you have the declaration of `fputc_unlocked', and to 0 if + you don't. */ +#undef HAVE_DECL_FPUTC_UNLOCKED + +/* Define to 1 if you have the declaration of `fputs_unlocked', and to 0 if + you don't. */ +#undef HAVE_DECL_FPUTS_UNLOCKED + +/* Define to 1 if you have the declaration of `fread_unlocked', and to 0 if + you don't. */ +#undef HAVE_DECL_FREAD_UNLOCKED + +/* Define to 1 if you have the declaration of `fwrite_unlocked', and to 0 if + you don't. */ +#undef HAVE_DECL_FWRITE_UNLOCKED + +/* Define to 1 if you have the declaration of `gcvt', and to 0 if you don't. + */ +#undef HAVE_DECL_GCVT + +/* Define to 1 if you have the declaration of `getchar_unlocked', and to 0 if + you don't. */ +#undef HAVE_DECL_GETCHAR_UNLOCKED + +/* Define to 1 if you have the declaration of `getcwd', and to 0 if you don't. + */ +#undef HAVE_DECL_GETCWD + +/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you + don't. */ +#undef HAVE_DECL_GETC_UNLOCKED + +/* Define to 1 if you have the declaration of `getdelim', and to 0 if you + don't. */ +#undef HAVE_DECL_GETDELIM + +/* Define to 1 if you have the declaration of `getdtablesize', and to 0 if you + don't. */ +#undef HAVE_DECL_GETDTABLESIZE + +/* Define to 1 if you have the declaration of `getline', and to 0 if you + don't. */ +#undef HAVE_DECL_GETLINE + +/* Define to 1 if you have the declaration of `getlogin', and to 0 if you + don't. */ +#undef HAVE_DECL_GETLOGIN + +/* Define to 1 if you have the declaration of `getlogin_r', and to 0 if you + don't. */ +#undef HAVE_DECL_GETLOGIN_R + +/* Define to 1 if you have the declaration of `isblank', and to 0 if you + don't. */ +#undef HAVE_DECL_ISBLANK + +/* Define to 1 if you have the declaration of `mbrtowc', and to 0 if you + don't. */ +#undef HAVE_DECL_MBRTOWC + +/* Define to 1 if you have the declaration of `mbsinit', and to 0 if you + don't. */ +#undef HAVE_DECL_MBSINIT + +/* Define to 1 if you have the declaration of `mbsrtowcs', and to 0 if you + don't. */ +#undef HAVE_DECL_MBSRTOWCS + +/* Define to 1 if you have the declaration of `memmem', and to 0 if you don't. + */ +#undef HAVE_DECL_MEMMEM + +/* Define to 1 if you have the declaration of `memrchr', and to 0 if you + don't. */ +#undef HAVE_DECL_MEMRCHR + +/* Define to 1 if you have the declaration of `program_invocation_name', and + to 0 if you don't. */ +#undef HAVE_DECL_PROGRAM_INVOCATION_NAME + +/* Define to 1 if you have the declaration of `program_invocation_short_name', + and to 0 if you don't. */ +#undef HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME + +/* Define to 1 if you have the declaration of `putchar_unlocked', and to 0 if + you don't. */ +#undef HAVE_DECL_PUTCHAR_UNLOCKED + +/* Define to 1 if you have the declaration of `putc_unlocked', and to 0 if you + don't. */ +#undef HAVE_DECL_PUTC_UNLOCKED + +/* Define to 1 if you have the declaration of `setenv', and to 0 if you don't. + */ +#undef HAVE_DECL_SETENV + +/* Define to 1 if you have the declaration of `sleep', and to 0 if you don't. + */ +#undef HAVE_DECL_SLEEP + +/* Define to 1 if you have the declaration of `strdup', and to 0 if you don't. + */ +#undef HAVE_DECL_STRDUP + +/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you + don't. */ +#undef HAVE_DECL_STRERROR_R + +/* Define to 1 if you have the declaration of `strncasecmp', and to 0 if you + don't. */ +#undef HAVE_DECL_STRNCASECMP + +/* Define to 1 if you have the declaration of `strndup', and to 0 if you + don't. */ +#undef HAVE_DECL_STRNDUP + +/* Define to 1 if you have the declaration of `strnlen', and to 0 if you + don't. */ +#undef HAVE_DECL_STRNLEN + +/* Define to 1 if you have the declaration of `towlower', and to 0 if you + don't. */ +#undef HAVE_DECL_TOWLOWER + +/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you + don't. */ +#undef HAVE_DECL_VSNPRINTF + +/* Define to 1 if you have the declaration of `wcrtomb', and to 0 if you + don't. */ +#undef HAVE_DECL_WCRTOMB + +/* Define to 1 if you have the declaration of `wcsdup', and to 0 if you don't. + */ +#undef HAVE_DECL_WCSDUP + +/* Define to 1 if you have the declaration of `_snprintf', and to 0 if you + don't. */ +#undef HAVE_DECL__SNPRINTF + +/* Define to 1 if you have the declaration of `__argv', and to 0 if you don't. + */ +#undef HAVE_DECL___ARGV + +/* Define to 1 if you have the header file. */ +#undef HAVE_DIRENT_H + +/* Define to 1 if you have the `dirfd' function. */ +#undef HAVE_DIRFD + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define if you have the declaration of environ. */ +#undef HAVE_ENVIRON_DECL + +/* Define if you have eqn. */ +#undef HAVE_EQN + +/* Define to 1 if you have the `faccessat' function. */ +#undef HAVE_FACCESSAT + +/* Define to 1 if you have the `fchdir' function. */ +#undef HAVE_FCHDIR + +/* Define to 1 if you have the `fchown' function. */ +#undef HAVE_FCHOWN + +/* Define to 1 if you have the `fcntl' function. */ +#undef HAVE_FCNTL + +/* Define to 1 if you have the `fdopendir' function. */ +#undef HAVE_FDOPENDIR + +/* Define to 1 if you have the header file. */ +#undef HAVE_FEATURES_H + +/* Define to 1 if you have the `flock' function. */ +#undef HAVE_FLOCK + +/* Define to 1 if you have the `flockfile' function. */ +#undef HAVE_FLOCKFILE + +/* Define to 1 if you have the `fnmatch' function. */ +#undef HAVE_FNMATCH + +/* Define to 1 if you have the header file. */ +#undef HAVE_FNMATCH_H + +/* Define if the 'free' function is guaranteed to preserve errno. */ +#undef HAVE_FREE_POSIX + +/* Define to 1 if you have the `fstatat' function. */ +#undef HAVE_FSTATAT + +/* Define to 1 if you have the `funlockfile' function. */ +#undef HAVE_FUNLOCKFILE + +/* Define to 1 if you have the `futimens' function. */ +#undef HAVE_FUTIMENS + +/* Define to 1 if you have the `futimes' function. */ +#undef HAVE_FUTIMES + +/* Define to 1 if you have the `futimesat' function. */ +#undef HAVE_FUTIMESAT + +/* Define to 1 if you have the `gdbm_exists' function. */ +#undef HAVE_GDBM_EXISTS + +/* Define to 1 if you have the `getcwd' function. */ +#undef HAVE_GETCWD + +/* Define to 1 if getcwd works, but with shorter paths than is generally + tested with the replacement. */ +#undef HAVE_GETCWD_SHORTER + +/* Define to 1 if you have the `getdelim' function. */ +#undef HAVE_GETDELIM + +/* Define to 1 if you have the `getdtablesize' function. */ +#undef HAVE_GETDTABLESIZE + +/* Define to 1 if you have the `getegid' function. */ +#undef HAVE_GETEGID + +/* Define to 1 if you have the `geteuid' function. */ +#undef HAVE_GETEUID + +/* Define to 1 if you have the `getexecname' function. */ +#undef HAVE_GETEXECNAME + +/* Define to 1 if you have the `getgid' function. */ +#undef HAVE_GETGID + +/* Define to 1 if you have the `getlogin_r' function. */ +#undef HAVE_GETLOGIN_R + +/* Define to 1 if you have the header file. */ +#undef HAVE_GETOPT_H + +/* Define to 1 if you have the `getopt_long_only' function. */ +#undef HAVE_GETOPT_LONG_ONLY + +/* Define to 1 if the system has the 'getpagesize' function. */ +#undef HAVE_GETPAGESIZE + +/* Define to 1 if you have the `getprogname' function. */ +#undef HAVE_GETPROGNAME + +/* Define to 1 if you have the `getpwnam_r' function. */ +#undef HAVE_GETPWNAM_R + +/* Define to 1 if you have the `getrandom' function. */ +#undef HAVE_GETRANDOM + +/* Define to 1 if you have the `getresgid' function. */ +#undef HAVE_GETRESGID + +/* Define to 1 if you have the `getresuid' function. */ +#undef HAVE_GETRESUID + +/* Define if the GNU gettext() function is already present or preinstalled. */ +#undef HAVE_GETTEXT + +/* Define to 1 if you have the `gettimeofday' function. */ +#undef HAVE_GETTIMEOFDAY + +/* Define to 1 if you have the `getuid' function. */ +#undef HAVE_GETUID + +/* Define to 1 if you have the `glob' function. */ +#undef HAVE_GLOB + +/* Define to 1 if you have the header file. */ +#undef HAVE_GLOB_H + +/* Define to 1 if you have the `glob_pattern_p' function. */ +#undef HAVE_GLOB_PATTERN_P + +/* Define if you have grap. */ +#undef HAVE_GRAP + +/* Define if you have gzip. */ +#undef HAVE_GZIP + +/* Define if you have the iconv() function and it works. */ +#undef HAVE_ICONV + +/* Define if you have the 'intmax_t' type in or . */ +#undef HAVE_INTMAX_T + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define if exists, doesn't clash with , and + declares uintmax_t. */ +#undef HAVE_INTTYPES_H_WITH_UINTMAX + +/* Define to 1 if you have the `ioctl' function. */ +#undef HAVE_IOCTL + +/* Define to 1 if you have the `isblank' function. */ +#undef HAVE_ISBLANK + +/* Define to 1 if you have the `iswcntrl' function. */ +#undef HAVE_ISWCNTRL + +/* Define to 1 if you have the `iswctype' function. */ +#undef HAVE_ISWCTYPE + +/* Define if you have and nl_langinfo(CODESET). */ +#undef HAVE_LANGINFO_CODESET + +/* Define to 1 if you have the header file. */ +#undef HAVE_LANGINFO_H + +/* Define to 1 if you have the `lchmod' function. */ +#undef HAVE_LCHMOD + +/* Define to 1 if you have the `lchown' function. */ +#undef HAVE_LCHOWN + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIBINTL_H + +/* Define to 1 if you have the `libseccomp' library. */ +#undef HAVE_LIBSECCOMP + +/* Define to 1 if you have the `z' library (-lz). */ +#undef HAVE_LIBZ + +/* Define to 1 if the bcrypt library is guaranteed to be present. */ +#undef HAVE_LIB_BCRYPT + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIMITS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_LINEWRAP_H + +/* Define to 1 if you have the `link' function. */ +#undef HAVE_LINK + +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_FIEMAP_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_FS_H + +/* Define to 1 if the system has the type 'long long int'. */ +#undef HAVE_LONG_LONG_INT + +/* Define to 1 if you have the `lstat' function. */ +#undef HAVE_LSTAT + +/* Define to 1 if you have the `lutimes' function. */ +#undef HAVE_LUTIMES + +/* Define if you have lzip. */ +#undef HAVE_LZIP + +/* Define if you have lzma. */ +#undef HAVE_LZMA + +/* Define to 1 if you have the header file. */ +#undef HAVE_MALLOC_H + +/* Define if malloc, realloc, and calloc set errno on allocation failure. */ +#undef HAVE_MALLOC_POSIX + +/* Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including + config.h and . */ +#undef HAVE_MAP_ANONYMOUS + +/* Define to 1 if you have the `mbrtowc' function. */ +#undef HAVE_MBRTOWC + +/* Define to 1 if you have the `mbsinit' function. */ +#undef HAVE_MBSINIT + +/* Define to 1 if you have the `mbsrtowcs' function. */ +#undef HAVE_MBSRTOWCS + +/* Define to 1 if declares mbstate_t. */ +#undef HAVE_MBSTATE_T + +/* Define to 1 if you have the `mbtowc' function. */ +#undef HAVE_MBTOWC + +/* Define to 1 if you have the `memmem' function. */ +#undef HAVE_MEMMEM + +/* Define to 1 if you have the `mempcpy' function. */ +#undef HAVE_MEMPCPY + +/* Define to 1 if you have the `memrchr' function. */ +#undef HAVE_MEMRCHR + +/* Define to 1 if getcwd minimally works, that is, its result can be trusted + when it succeeds. */ +#undef HAVE_MINIMALLY_WORKING_GETCWD + +/* Define to 1 if you have the header file. */ +#undef HAVE_MINIX_CONFIG_H + +/* Define to 1 if defines the MIN and MAX macros. */ +#undef HAVE_MINMAX_IN_LIMITS_H + +/* Define to 1 if defines the MIN and MAX macros. */ +#undef HAVE_MINMAX_IN_SYS_PARAM_H + +/* Define to 1 if you have the `mkdtemp' function. */ +#undef HAVE_MKDTEMP + +/* Define to 1 if you have the `mkstemp' function. */ +#undef HAVE_MKSTEMP + +/* Define to 1 if you have the `mprotect' function. */ +#undef HAVE_MPROTECT + +/* Define to 1 on MSVC platforms that have the "invalid parameter handler" + concept. */ +#undef HAVE_MSVC_INVALID_PARAMETER_HANDLER + +/* Define if you have neqn. */ +#undef HAVE_NEQN + +/* Define to 1 if you have the `nl_langinfo' function. */ +#undef HAVE_NL_LANGINFO + +/* Define if you have nroff. */ +#undef HAVE_NROFF + +/* Define to 1 if you have the `openat' function. */ +#undef HAVE_OPENAT + +/* Define to 1 if you have the `opendir' function. */ +#undef HAVE_OPENDIR + +/* Define if you have pager. */ +#undef HAVE_PAGER + +/* Define to 1 if getcwd works, except it sometimes fails when it shouldn't, + setting errno to ERANGE, ENAMETOOLONG, or ENOENT. */ +#undef HAVE_PARTLY_WORKING_GETCWD + +/* Define if you have pic. */ +#undef HAVE_PIC + +/* Define to 1 if you have the `pipe' function. */ +#undef HAVE_PIPE + +/* Define to 1 if you have the `posix_fadvise' function. */ +#undef HAVE_POSIX_FADVISE + +/* Define if program_invocation_name is defined */ +#undef HAVE_PROGRAM_INVOCATION_NAME + +/* Define if program_invocation_short_name is defined */ +#undef HAVE_PROGRAM_INVOCATION_SHORT_NAME + +/* Define to 1 if you have the `pselect' function. */ +#undef HAVE_PSELECT + +/* Define if you have the header and the POSIX threads API. */ +#undef HAVE_PTHREAD_API + +/* Define if the defines PTHREAD_MUTEX_RECURSIVE. */ +#undef HAVE_PTHREAD_MUTEX_RECURSIVE + +/* Define if the POSIX multithreading library has read/write locks. */ +#undef HAVE_PTHREAD_RWLOCK + +/* Define if the 'pthread_rwlock_rdlock' function prefers a writer to a + reader. */ +#undef HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER + +/* Define to 1 if the pthread_sigmask function can be used (despite bugs). */ +#undef HAVE_PTHREAD_SIGMASK + +/* Define to 1 if you have the `raise' function. */ +#undef HAVE_RAISE + +/* Define to 1 if you have the `rawmemchr' function. */ +#undef HAVE_RAWMEMCHR + +/* Define to 1 if you have the `readdir' function. */ +#undef HAVE_READDIR + +/* Define to 1 if you have the `readlink' function. */ +#undef HAVE_READLINK + +/* Define to 1 if you have the `readlinkat' function. */ +#undef HAVE_READLINKAT + +/* Define to 1 if you have the `reallocarray' function. */ +#undef HAVE_REALLOCARRAY + +/* Define to 1 if you have the `realpath' function. */ +#undef HAVE_REALPATH + +/* Define if you have refer. */ +#undef HAVE_REFER + +/* Define to 1 if you have the `renameat' function. */ +#undef HAVE_RENAMEAT + +/* Define to 1 if you have the `renameat2' function. */ +#undef HAVE_RENAMEAT2 + +/* Define to 1 if you have the `rewinddir' function. */ +#undef HAVE_REWINDDIR + +/* Define to 1 if the system has the type `sa_family_t'. */ +#undef HAVE_SA_FAMILY_T + +/* Define to 1 if you have the header file. */ +#undef HAVE_SDKDDKVER_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SEARCH_H + +/* Define to 1 if you have the `setdtablesize' function. */ +#undef HAVE_SETDTABLESIZE + +/* Define to 1 if you have the `setegid' function. */ +#undef HAVE_SETEGID + +/* Define to 1 if you have the `setenv' function. */ +#undef HAVE_SETENV + +/* Define to 1 if you have the `seteuid' function. */ +#undef HAVE_SETEUID + +/* Define to 1 if you have the `setregid' function. */ +#undef HAVE_SETREGID + +/* Define to 1 if you have the `setresgid' function. */ +#undef HAVE_SETRESGID + +/* Define to 1 if you have the `setresuid' function. */ +#undef HAVE_SETRESUID + +/* Define to 1 if you have the `setreuid' function. */ +#undef HAVE_SETREUID + +/* Define to 1 if you have the `shutdown' function. */ +#undef HAVE_SHUTDOWN + +/* Define to 1 if you have the `sigaction' function. */ +#undef HAVE_SIGACTION + +/* Define to 1 if you have the `sigaltstack' function. */ +#undef HAVE_SIGALTSTACK + +/* Define to 1 if the system has the type `siginfo_t'. */ +#undef HAVE_SIGINFO_T + +/* Define to 1 if you have the `siginterrupt' function. */ +#undef HAVE_SIGINTERRUPT + +/* Define to 1 if 'sig_atomic_t' is a signed integer type. */ +#undef HAVE_SIGNED_SIG_ATOMIC_T + +/* Define to 1 if 'wchar_t' is a signed integer type. */ +#undef HAVE_SIGNED_WCHAR_T + +/* Define to 1 if 'wint_t' is a signed integer type. */ +#undef HAVE_SIGNED_WINT_T + +/* Define to 1 if the system has the type `sigset_t'. */ +#undef HAVE_SIGSET_T + +/* Define to 1 if you have the `sleep' function. */ +#undef HAVE_SLEEP + +/* Define to 1 if you have the `snprintf' function. */ +#undef HAVE_SNPRINTF + +/* Define if the return value of the snprintf function is the number of of + bytes (excluding the terminating NUL) that would have been produced if the + buffer had been large enough. */ +#undef HAVE_SNPRINTF_RETVAL_C99 + +/* Define if the string produced by the snprintf function is always NUL + terminated. */ +#undef HAVE_SNPRINTF_TRUNCATION_C99 + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define if exists, doesn't clash with , and declares + uintmax_t. */ +#undef HAVE_STDINT_H_WITH_UINTMAX + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDIO_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the `stpcpy' function. */ +#undef HAVE_STPCPY + +/* Define to 1 if you have the `strcasecmp' function. */ +#undef HAVE_STRCASECMP + +/* Define to 1 if you have the `strcasestr' function. */ +#undef HAVE_STRCASESTR + +/* Define to 1 if you have the `strchrnul' function. */ +#undef HAVE_STRCHRNUL + +/* Define if you have `strerror_r'. */ +#undef HAVE_STRERROR_R + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the `strncasecmp' function. */ +#undef HAVE_STRNCASECMP + +/* Define to 1 if you have the `strndup' function. */ +#undef HAVE_STRNDUP + +/* Define to 1 if you have the `strnlen' function. */ +#undef HAVE_STRNLEN + +/* Define to 1 if you have the `strsep' function. */ +#undef HAVE_STRSEP + +/* Define if there is a member named d_type in the struct describing directory + headers. */ +#undef HAVE_STRUCT_DIRENT_D_TYPE + +/* Define to 1 if `l_type' is a member of `struct flock'. */ +#undef HAVE_STRUCT_FLOCK_L_TYPE + +/* Define to 1 if `decimal_point' is a member of `struct lconv'. */ +#undef HAVE_STRUCT_LCONV_DECIMAL_POINT + +/* Define to 1 if `sa_sigaction' is a member of `struct sigaction'. */ +#undef HAVE_STRUCT_SIGACTION_SA_SIGACTION + +/* Define to 1 if the system has the type `struct sockaddr_storage'. */ +#undef HAVE_STRUCT_SOCKADDR_STORAGE + +/* Define to 1 if `ss_family' is a member of `struct sockaddr_storage'. */ +#undef HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY + +/* Define to 1 if `st_atimensec' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_ATIMENSEC + +/* Define to 1 if `st_atimespec.tv_nsec' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC + +/* Define to 1 if `st_atim.st__tim.tv_nsec' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC + +/* Define to 1 if `st_atim.tv_nsec' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC + +/* Define to 1 if `st_birthtimensec' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC + +/* Define to 1 if `st_birthtimespec.tv_nsec' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC + +/* Define to 1 if `st_birthtim.tv_nsec' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC + +/* Define to 1 if you have the `symlink' function. */ +#undef HAVE_SYMLINK + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYSEXITS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_BITYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_CDEFS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_FILE_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_INTTYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_IOCTL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_MMAN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_PARAM_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_RANDOM_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SELECT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SOCKET_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TIME_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_UIO_H + +/* Define if you have tbl. */ +#undef HAVE_TBL + +/* Define to 1 if you have the header file. */ +#undef HAVE_TERMIOS_H + +/* Define to 1 if you have the `thrd_create' function. */ +#undef HAVE_THRD_CREATE + +/* Define to 1 if you have the header file. */ +#undef HAVE_THREADS_H + +/* Define to 1 if you have the `timespec_get' function. */ +#undef HAVE_TIMESPEC_GET + +/* Define to 1 if you have the `towlower' function. */ +#undef HAVE_TOWLOWER + +/* Define to 1 if you have the `tsearch' function. */ +#undef HAVE_TSEARCH + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if you have the `unlinkat' function. */ +#undef HAVE_UNLINKAT + +/* Define to 1 if the system has the type 'unsigned long long int'. */ +#undef HAVE_UNSIGNED_LONG_LONG_INT + +/* Define to 1 if you have the `utime' function. */ +#undef HAVE_UTIME + +/* Define to 1 if you have the `utimensat' function. */ +#undef HAVE_UTIMENSAT + +/* Define to 1 if you have the header file. */ +#undef HAVE_UTIME_H + +/* Define if you have a global __progname variable */ +#undef HAVE_VAR___PROGNAME + +/* Define to 1 if you have the `vasnprintf' function. */ +#undef HAVE_VASNPRINTF + +/* Define to 1 if you have the `vasprintf' function. */ +#undef HAVE_VASPRINTF + +/* Define if you have vgrind. */ +#undef HAVE_VGRIND + +/* Define to 1 or 0, depending whether the compiler supports simple visibility + declarations. */ +#undef HAVE_VISIBILITY + +/* Define to 1 if you have the `vsnprintf' function. */ +#undef HAVE_VSNPRINTF + +/* Define to 1 if you have the header file. */ +#undef HAVE_WCHAR_H + +/* Define if you have the 'wchar_t' type. */ +#undef HAVE_WCHAR_T + +/* Define to 1 if you have the `wcrtomb' function. */ +#undef HAVE_WCRTOMB + +/* Define to 1 if you have the `wcslen' function. */ +#undef HAVE_WCSLEN + +/* Define to 1 if you have the `wcsnlen' function. */ +#undef HAVE_WCSNLEN + +/* Define to 1 if you have the header file. */ +#undef HAVE_WCTYPE_H + +/* Define to 1 if the compiler and linker support weak declarations of + symbols. */ +#undef HAVE_WEAK_SYMBOLS + +/* Define to 1 if you have the header file. */ +#undef HAVE_WINSOCK2_H + +/* Define if you have the 'wint_t' type. */ +#undef HAVE_WINT_T + +/* Define to 1 if you have the `wmempcpy' function. */ +#undef HAVE_WMEMPCPY + +/* Define to 1 if fstatat (..., 0) works. For example, it does not work in AIX + 7.1. */ +#undef HAVE_WORKING_FSTATAT_ZERO_FLAG + +/* Define to 1 if O_NOATIME works. */ +#undef HAVE_WORKING_O_NOATIME + +/* Define to 1 if O_NOFOLLOW works. */ +#undef HAVE_WORKING_O_NOFOLLOW + +/* Define if utimes works properly. */ +#undef HAVE_WORKING_UTIMES + +/* Define to 1 if you have the header file. */ +#undef HAVE_WS2TCPIP_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_XLOCALE_H + +/* Define if you have xz. */ +#undef HAVE_XZ + +/* Define if you have zstd. */ +#undef HAVE_ZSTD + +/* Define to 1 if the system has the type `_Bool'. */ +#undef HAVE__BOOL + +/* Define to 1 if you have the `_set_invalid_parameter_handler' function. */ +#undef HAVE__SET_INVALID_PARAMETER_HANDLER + +/* Define to 1 if the compiler supports __builtin_expect, + and to 2 if does. */ +#undef HAVE___BUILTIN_EXPECT +#ifndef HAVE___BUILTIN_EXPECT +# define __builtin_expect(e, c) (e) +#elif HAVE___BUILTIN_EXPECT == 2 +# include +#endif + + +/* Define to 1 if ctype.h defines __header_inline. */ +#undef HAVE___HEADER_INLINE + +/* Please see the Gnulib manual for how to use these macros. + + Suppress extern inline with HP-UX cc, as it appears to be broken; see + . + + Suppress extern inline with Sun C in standards-conformance mode, as it + mishandles inline functions that call each other. E.g., for 'inline void f + (void) { } inline void g (void) { f (); }', c99 incorrectly complains + 'reference to static identifier "f" in extern inline function'. + This bug was observed with Oracle Developer Studio 12.6 + (Sun C 5.15 SunOS_sparc 2017/05/30). + + Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) + on configurations that mistakenly use 'static inline' to implement + functions or macros in standard C headers like . For example, + if isdigit is mistakenly implemented via a static inline function, + a program containing an extern inline function that calls isdigit + may not work since the C standard prohibits extern inline functions + from calling static functions (ISO C 99 section 6.7.4.(3). + This bug is known to occur on: + + OS X 10.8 and earlier; see: + https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html + + DragonFly; see + http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log + + FreeBSD; see: + https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html + + OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and + for clang but remains for g++; see . + Assume DragonFly and FreeBSD will be similar. + + GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 + inline semantics, unless -fgnu89-inline is used. It defines a macro + __GNUC_STDC_INLINE__ to indicate this situation or a macro + __GNUC_GNU_INLINE__ to indicate the opposite situation. + GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline + semantics but warns, unless -fgnu89-inline is used: + warning: C99 inline functions are not supported; using GNU89 + warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute + It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. + */ +#if (((defined __APPLE__ && defined __MACH__) \ + || defined __DragonFly__ || defined __FreeBSD__) \ + && (defined HAVE___HEADER_INLINE \ + ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ + && ! defined __clang__) \ + : ((! defined _DONT_USE_CTYPE_INLINE_ \ + && (defined __GNUC__ || defined __cplusplus)) \ + || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ + && defined __GNUC__ && ! defined __cplusplus)))) +# define _GL_EXTERN_INLINE_STDHEADER_BUG +#endif +#if ((__GNUC__ \ + ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ + : (199901L <= __STDC_VERSION__ \ + && !defined __HP_cc \ + && !defined __PGI \ + && !(defined __SUNPRO_C && __STDC__))) \ + && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) +# define _GL_INLINE inline +# define _GL_EXTERN_INLINE extern inline +# define _GL_EXTERN_INLINE_IN_USE +#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ + && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) +# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ + /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ +# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) +# else +# define _GL_INLINE extern inline +# endif +# define _GL_EXTERN_INLINE extern +# define _GL_EXTERN_INLINE_IN_USE +#else +# define _GL_INLINE _GL_UNUSED static +# define _GL_EXTERN_INLINE _GL_UNUSED static +#endif + +/* In GCC 4.6 (inclusive) to 5.1 (exclusive), + suppress bogus "no previous prototype for 'FOO'" + and "no previous declaration for 'FOO'" diagnostics, + when FOO is an inline function in the header; see + and + . */ +#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ +# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ +# define _GL_INLINE_HEADER_CONST_PRAGMA +# else +# define _GL_INLINE_HEADER_CONST_PRAGMA \ + _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") +# endif +# define _GL_INLINE_HEADER_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ + _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ + _GL_INLINE_HEADER_CONST_PRAGMA +# define _GL_INLINE_HEADER_END \ + _Pragma ("GCC diagnostic pop") +#else +# define _GL_INLINE_HEADER_BEGIN +# define _GL_INLINE_HEADER_END +#endif + +/* Define to 1 if the compiler supports the keyword '__inline'. */ +#undef HAVE___INLINE + +/* Define if nroff is Heirloom nroff. */ +#undef HEIRLOOM_NROFF + +/* Define as const if the declaration of iconv() needs const. */ +#undef ICONV_CONST + +/* Define to 1 if 'lstat' dereferences a symlink specified with a trailing + slash. */ +#undef LSTAT_FOLLOWS_SLASHED_SYMLINK + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#undef LT_OBJDIR + +/* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */ +#undef MALLOC_0_IS_NONNULL + +/* Define to the manual page hierarchy organization(s) in use. */ +#undef MANDIR_LAYOUT + +/* Allow man to create/update cat files. */ +#undef MAN_CATS + +/* Allow man to create user databases on the fly. */ +#undef MAN_DB_CREATES + +/* Allow man to update databases on the fly. */ +#undef MAN_DB_UPDATES + +/* Define as the owner of system-wide cache files. */ +#undef MAN_OWNER + +/* Define to a substitute value for mmap()'s MAP_ANONYMOUS flag. */ +#undef MAP_ANONYMOUS + +/* Define if the mbrtowc function does not return (size_t) -2 for empty input. + */ +#undef MBRTOWC_EMPTY_INPUT_BUG + +/* Define if the mbrtowc function may signal encoding errors in the C locale. + */ +#undef MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ + +/* Define if the mbrtowc function has the NULL pwc argument bug. */ +#undef MBRTOWC_NULL_ARG1_BUG + +/* Define if the mbrtowc function has the NULL string argument bug. */ +#undef MBRTOWC_NULL_ARG2_BUG + +/* Define if the mbrtowc function does not return 0 for a NUL character. */ +#undef MBRTOWC_NUL_RETVAL_BUG + +/* Define if the mbrtowc function returns a wrong return value. */ +#undef MBRTOWC_RETVAL_BUG + +/* Define if the mbrtowc function stores a wide character when reporting + incomplete input. */ +#undef MBRTOWC_STORES_INCOMPLETE_BUG + +/* Use GNU style printf and scanf. */ +#ifndef __USE_MINGW_ANSI_STDIO +# undef __USE_MINGW_ANSI_STDIO +#endif + + +/* Define if your groff installation has the Debian multibyte patch. */ +#undef MULTIBYTE_GROFF + +/* Define if you have, and want to use, ndbm interface routines. */ +#undef NDBM + +/* Define to 1 if nl_langinfo is multithread-safe. */ +#undef NL_LANGINFO_MTSAFE + +/* Define if you don't have nroff. */ +#undef NROFF_MISSING + +/* Define if nroff supports warning control. */ +#undef NROFF_WARNINGS + +/* Define to 1 if open() fails to recognize a trailing slash. */ +#undef OPEN_TRAILING_SLASH_BUG + +/* Relative override directory inside man path. */ +#undef OVERRIDE_DIR + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Program to use as browser. */ +#undef PROG_BROWSER + +/* Program to use as bunzip2. */ +#undef PROG_BUNZIP2 + +/* Program to use as cat. */ +#undef PROG_CAT + +/* Program to use as col. */ +#undef PROG_COL + +/* Default compressor, used for compressing cat pages. */ +#undef PROG_COMPRESSOR + +/* Program to use as eqn. */ +#undef PROG_EQN + +/* Program to use as grap. */ +#undef PROG_GRAP + +/* Program to use as grep. */ +#undef PROG_GREP + +/* Program to use as gunzip. */ +#undef PROG_GUNZIP + +/* Program to use as neqn. */ +#undef PROG_NEQN + +/* Program to use as nroff. */ +#undef PROG_NROFF + +/* Program to use as pager. */ +#undef PROG_PAGER + +/* Program to use as pic. */ +#undef PROG_PIC + +/* Program to use as refer. */ +#undef PROG_REFER + +/* Program to use as tbl. */ +#undef PROG_TBL + +/* Program to use as tr. */ +#undef PROG_TR + +/* Program to use as troff. */ +#undef PROG_TROFF + +/* Program to use as uncompress. */ +#undef PROG_UNCOMPRESS + +/* Program to use as unlzip. */ +#undef PROG_UNLZIP + +/* Program to use as unlzma. */ +#undef PROG_UNLZMA + +/* Program to use as unxz. */ +#undef PROG_UNXZ + +/* Program to use as unzstd. */ +#undef PROG_UNZSTD + +/* Program to use as vgrind. */ +#undef PROG_VGRIND + +/* Define to the type that is the result of default argument promotions of + type mode_t. */ +#undef PROMOTED_MODE_T + +/* Define if the pthread_in_use() detection is hard. */ +#undef PTHREAD_IN_USE_DETECTION_HARD + +/* Define to 1 if pthread_sigmask(), when it fails, returns -1 and sets errno. + */ +#undef PTHREAD_SIGMASK_FAILS_WITH_ERRNO + +/* Define to 1 if pthread_sigmask may return 0 and have no effect. */ +#undef PTHREAD_SIGMASK_INEFFECTIVE + +/* Define to 1 if pthread_sigmask() unblocks signals incorrectly. */ +#undef PTHREAD_SIGMASK_UNBLOCK_BUG + +/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type + 'ptrdiff_t'. */ +#undef PTRDIFF_T_SUFFIX + +/* Define to 1 if readlink fails to recognize a trailing slash. */ +#undef READLINK_TRAILING_SLASH_BUG + +/* Define to 1 if readlink sets errno instead of truncating a too-long link. + */ +#undef READLINK_TRUNCATE_BUG + +/* Define if rename does not work when the destination file exists, as on + Cygwin 1.5 or Windows. */ +#undef RENAME_DEST_EXISTS_BUG + +/* Define if rename fails to leave hard links alone, as on NetBSD 1.6 or + Cygwin 1.5. */ +#undef RENAME_HARD_LINK_BUG + +/* Define if rename does not correctly handle slashes on the destination + argument, such as on Solaris 11 or NetBSD 1.6. */ +#undef RENAME_TRAILING_SLASH_DEST_BUG + +/* Define if rename does not correctly handle slashes on the source argument, + such as on Solaris 9 or cygwin 1.5. */ +#undef RENAME_TRAILING_SLASH_SOURCE_BUG + +/* Define to 1 if gnulib's dirfd() replacement is used. */ +#undef REPLACE_DIRFD + +/* Define to 1 if gnulib's fchdir() replacement is used. */ +#undef REPLACE_FCHDIR + +/* Define to 1 if stat needs help when passed a file name with a trailing + slash */ +#undef REPLACE_FUNC_STAT_FILE + +/* Define to 1 if utime needs help when passed a file name with a trailing + slash */ +#undef REPLACE_FUNC_UTIME_FILE + +/* Define if nl_langinfo exists but is overridden by gnulib. */ +#undef REPLACE_NL_LANGINFO + +/* Define to 1 if open() should work around the inability to open a directory. + */ +#undef REPLACE_OPEN_DIRECTORY + +/* Define to 1 if strerror(0) does not return a message implying success. */ +#undef REPLACE_STRERROR_0 + +/* Define if vasnprintf exists but is overridden by gnulib. */ +#undef REPLACE_VASNPRINTF + +/* Define to 1 if setlocale (LC_ALL, NULL) is multithread-safe. */ +#undef SETLOCALE_NULL_ALL_MTSAFE + +/* Define to 1 if setlocale (category, NULL) is multithread-safe. */ +#undef SETLOCALE_NULL_ONE_MTSAFE + +/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type + 'sig_atomic_t'. */ +#undef SIG_ATOMIC_T_SUFFIX + +/* Define as the maximum value of type 'size_t', if the system doesn't define + it. */ +#ifndef SIZE_MAX +# undef SIZE_MAX +#endif + +/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type + 'size_t'. */ +#undef SIZE_T_SUFFIX + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at runtime. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown */ +#undef STACK_DIRECTION + +/* Define to 1 if the `S_IS*' macros in do not work properly. */ +#undef STAT_MACROS_BROKEN + +/* Define to 1 if all of the C90 standard headers exist (not just the ones + required in a freestanding environment). This macro is provided for + backward compatibility; new code need not use it. */ +#undef STDC_HEADERS + +/* Define to 1 if strerror_r returns char *. */ +#undef STRERROR_R_CHAR_P + +/* Define if you are using groff as troff. */ +#undef TROFF_IS_GROFF + +/* Define to 1 if the type of the st_atim member of a struct stat is struct + timespec. */ +#undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC + +/* Define as the name of a command you want to suggest when a non-existent + page is requested. */ +#undef UNDOC_COMMAND + +/* Define to 1 if unlink() on a parent directory may succeed */ +#undef UNLINK_PARENT_BUG + +/* Define to the prefix of C symbols at the assembler and linker level, either + an underscore or empty. */ +#undef USER_LABEL_PREFIX + +/* Define if the combination of the ISO C and POSIX multithreading APIs can be + used. */ +#undef USE_ISOC_AND_POSIX_THREADS + +/* Define if the ISO C multithreading library can be used. */ +#undef USE_ISOC_THREADS + +/* Define if the POSIX multithreading library can be used. */ +#undef USE_POSIX_THREADS + +/* Define if references to the POSIX multithreading library are satisfied by + libc. */ +#undef USE_POSIX_THREADS_FROM_LIBC + +/* Define if references to the POSIX multithreading library should be made + weak. */ +#undef USE_POSIX_THREADS_WEAK + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif +/* Enable general extensions on macOS. */ +#ifndef _DARWIN_C_SOURCE +# undef _DARWIN_C_SOURCE +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable X/Open compliant socket functions that do not require linking + with -lxnet on HP-UX 11.11. */ +#ifndef _HPUX_ALT_XOPEN_SOCKET_API +# undef _HPUX_ALT_XOPEN_SOCKET_API +#endif +/* Identify the host operating system as Minix. + This macro does not affect the system headers' behavior. + A future release of Autoconf may stop defining this macro. */ +#ifndef _MINIX +# undef _MINIX +#endif +/* Enable general extensions on NetBSD. + Enable NetBSD compatibility extensions on Minix. */ +#ifndef _NETBSD_SOURCE +# undef _NETBSD_SOURCE +#endif +/* Enable OpenBSD compatibility extensions on NetBSD. + Oddly enough, this does nothing on OpenBSD. */ +#ifndef _OPENBSD_SOURCE +# undef _OPENBSD_SOURCE +#endif +/* Define to 1 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_SOURCE +# undef _POSIX_SOURCE +#endif +/* Define to 2 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_1_SOURCE +# undef _POSIX_1_SOURCE +#endif +/* Enable POSIX-compatible threading on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ +#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ +# undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ +#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ +# undef __STDC_WANT_IEC_60559_BFP_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ +#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ +# undef __STDC_WANT_IEC_60559_DFP_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ +#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ +# undef __STDC_WANT_IEC_60559_FUNCS_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ +#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ +# undef __STDC_WANT_IEC_60559_TYPES_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ +#ifndef __STDC_WANT_LIB_EXT2__ +# undef __STDC_WANT_LIB_EXT2__ +#endif +/* Enable extensions specified by ISO/IEC 24747:2009. */ +#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ +# undef __STDC_WANT_MATH_SPEC_FUNCS__ +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif +/* Enable X/Open extensions. Define to 500 only if necessary + to make mbstate_t available. */ +#ifndef _XOPEN_SOURCE +# undef _XOPEN_SOURCE +#endif + + +/* Define if the native Windows multithreading API can be used. */ +#undef USE_WINDOWS_THREADS + +/* Version number of package */ +#undef VERSION + +/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type + 'wchar_t'. */ +#undef WCHAR_T_SUFFIX + +/* Define if the wcrtomb function does not work in the C locale. */ +#undef WCRTOMB_C_LOCALE_BUG + +/* Define if the wcrtomb function has an incorrect return value. */ +#undef WCRTOMB_RETVAL_BUG + +/* Define if WSAStartup is needed. */ +#undef WINDOWS_SOCKETS + +/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type + 'wint_t'. */ +#undef WINT_T_SUFFIX + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif + +/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a + `char[]'. */ +#undef YYTEXT_POINTER + +/* Number of bits in a file offset, on hosts where this is settable. */ +#undef _FILE_OFFSET_BITS + +/* True if the compiler says it groks GNU C version MAJOR.MINOR. */ +#if defined __GNUC__ && defined __GNUC_MINOR__ +# define _GL_GNUC_PREREQ(major, minor) \ + ((major) < __GNUC__ + ((minor) <= __GNUC_MINOR__)) +#else +# define _GL_GNUC_PREREQ(major, minor) 0 +#endif + + +/* Define to enable the declarations of ISO C 11 types and functions. */ +#undef _ISOC11_SOURCE + +/* Define for large files, on AIX-style hosts. */ +#undef _LARGE_FILES + +/* Define to 1 on Solaris. */ +#undef _LCONV_C99 + +/* The _Noreturn keyword of C11. */ +#ifndef _Noreturn +# if (defined __cplusplus \ + && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ + || (defined _MSC_VER && 1900 <= _MSC_VER)) \ + && 0) + /* [[noreturn]] is not practically usable, because with it the syntax + extern _Noreturn void func (...); + would not be valid; such a declaration would only be valid with 'extern' + and '_Noreturn' swapped, or without the 'extern' keyword. However, some + AIX system header files and several gnulib header files use precisely + this syntax with 'extern'. */ +# define _Noreturn [[noreturn]] +# elif ((!defined __cplusplus || defined __clang__) \ + && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ + || (!defined __STRICT_ANSI__ \ + && (_GL_GNUC_PREREQ (4, 7) \ + || (defined __apple_build_version__ \ + ? 6000000 <= __apple_build_version__ \ + : 3 < __clang_major__ + (5 <= __clang_minor__)))))) + /* _Noreturn works as-is. */ +# elif _GL_GNUC_PREREQ (2, 8) || defined __clang__ || 0x5110 <= __SUNPRO_C +# define _Noreturn __attribute__ ((__noreturn__)) +# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn +# endif +#endif + + +/* Define to 1 in order to get the POSIX compatible declarations of socket + functions. */ +#undef _POSIX_PII_SOCKET + +/* Define if you want to include , so that it consistently + overrides 's RE_DUP_MAX. */ +#undef _REGEX_INCLUDE_LIMITS_H + +/* Define if you want regoff_t to be at least as wide POSIX requires. */ +#undef _REGEX_LARGE_OFFSETS + +/* Number of bits in a timestamp, on hosts where this is settable. */ +#undef _TIME_BITS + +/* For standard stat data types on VMS. */ +#undef _USE_STD_STAT + +/* Define to rpl_ if the getopt replacement functions and variables should be + used. */ +#undef __GETOPT_PREFIX + +/* For 64-bit time_t on 32-bit mingw. */ +#undef __MINGW_USE_VC2005_COMPAT + +/* Define to 1 if the system predates C++11. */ +#undef __STDC_CONSTANT_MACROS + +/* Define to 1 if the system predates C++11. */ +#undef __STDC_LIMIT_MACROS + +/* Define to 1 if C does not support variable-length arrays, and if the + compiler does not already define this. */ +#undef __STDC_NO_VLA__ + +/* The _GL_ASYNC_SAFE marker should be attached to functions that are + signal handlers (for signals other than SIGABRT, SIGPIPE) or can be + invoked from such signal handlers. Such functions have some restrictions: + * All functions that it calls should be marked _GL_ASYNC_SAFE as well, + or should be listed as async-signal-safe in POSIX + + section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in + particular, are NOT async-signal-safe. + * All memory locations (variables and struct fields) that these functions + access must be marked 'volatile'. This holds for both read and write + accesses. Otherwise the compiler might optimize away stores to and + reads from such locations that occur in the program, depending on its + data flow analysis. For example, when the program contains a loop + that is intended to inspect a variable set from within a signal handler + while (!signal_occurred) + ; + the compiler is allowed to transform this into an endless loop if the + variable 'signal_occurred' is not declared 'volatile'. + Additionally, recall that: + * A signal handler should not modify errno (except if it is a handler + for a fatal signal and ends by raising the same signal again, thus + provoking the termination of the process). If it invokes a function + that may clobber errno, it needs to save and restore the value of + errno. */ +#define _GL_ASYNC_SAFE + + +/* Attributes. */ +#if (defined __has_attribute \ + && (!defined __clang_minor__ \ + || (defined __apple_build_version__ \ + ? 6000000 <= __apple_build_version__ \ + : 3 < __clang_major__ + (5 <= __clang_minor__)))) +# define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__) +#else +# define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr +# define _GL_ATTR_alloc_size _GL_GNUC_PREREQ (4, 3) +# define _GL_ATTR_always_inline _GL_GNUC_PREREQ (3, 2) +# define _GL_ATTR_artificial _GL_GNUC_PREREQ (4, 3) +# define _GL_ATTR_cold _GL_GNUC_PREREQ (4, 3) +# define _GL_ATTR_const _GL_GNUC_PREREQ (2, 95) +# define _GL_ATTR_deprecated _GL_GNUC_PREREQ (3, 1) +# define _GL_ATTR_diagnose_if 0 +# define _GL_ATTR_error _GL_GNUC_PREREQ (4, 3) +# define _GL_ATTR_externally_visible _GL_GNUC_PREREQ (4, 1) +# define _GL_ATTR_fallthrough _GL_GNUC_PREREQ (7, 0) +# define _GL_ATTR_format _GL_GNUC_PREREQ (2, 7) +# define _GL_ATTR_leaf _GL_GNUC_PREREQ (4, 6) +# define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0) +# ifdef _ICC +# define _GL_ATTR_may_alias 0 +# else +# define _GL_ATTR_may_alias _GL_GNUC_PREREQ (3, 3) +# endif +# define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1) +# define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3) +# define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0) +# define _GL_ATTR_nothrow _GL_GNUC_PREREQ (3, 3) +# define _GL_ATTR_packed _GL_GNUC_PREREQ (2, 7) +# define _GL_ATTR_pure _GL_GNUC_PREREQ (2, 96) +# define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9) +# define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0) +# define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7) +# define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4) +#endif + +#ifdef __has_c_attribute +# if ((defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) <= 201710 \ + && _GL_GNUC_PREREQ (4, 6)) +# pragma GCC diagnostic ignored "-Wpedantic" +# endif +# define _GL_HAS_C_ATTRIBUTE(attr) __has_c_attribute (__##attr##__) +#else +# define _GL_HAS_C_ATTRIBUTE(attr) 0 +#endif + + +/* _GL_ATTRIBUTE_ALLOC_SIZE ((N)) declares that the Nth argument of the function + is the size of the returned memory block. + _GL_ATTRIBUTE_ALLOC_SIZE ((M, N)) declares that the Mth argument multiplied + by the Nth argument of the function is the size of the returned memory block. + */ +/* Applies to: function, pointer to function, function types. */ +#if _GL_HAS_ATTRIBUTE (alloc_size) +# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args)) +#else +# define _GL_ATTRIBUTE_ALLOC_SIZE(args) +#endif + +/* _GL_ATTRIBUTE_ALWAYS_INLINE tells that the compiler should always inline the + function and report an error if it cannot do so. */ +/* Applies to: function. */ +#if _GL_HAS_ATTRIBUTE (always_inline) +# define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__)) +#else +# define _GL_ATTRIBUTE_ALWAYS_INLINE +#endif + +/* _GL_ATTRIBUTE_ARTIFICIAL declares that the function is not important to show + in stack traces when debugging. The compiler should omit the function from + stack traces. */ +/* Applies to: function. */ +#if _GL_HAS_ATTRIBUTE (artificial) +# define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__)) +#else +# define _GL_ATTRIBUTE_ARTIFICIAL +#endif + +/* _GL_ATTRIBUTE_COLD declares that the function is rarely executed. */ +/* Applies to: functions. */ +/* Avoid __attribute__ ((cold)) on MinGW; see thread starting at + . + Also, Oracle Studio 12.6 requires 'cold' not '__cold__'. */ +#if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__ +# ifndef __SUNPRO_C +# define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__)) +# else +# define _GL_ATTRIBUTE_COLD __attribute__ ((cold)) +# endif +#else +# define _GL_ATTRIBUTE_COLD +#endif + +/* _GL_ATTRIBUTE_CONST declares that it is OK for a compiler to omit duplicate + calls to the function with the same arguments. + This attribute is safe for a function that neither depends on nor affects + observable state, and always returns exactly once - e.g., does not loop + forever, and does not call longjmp. + (This attribute is stricter than _GL_ATTRIBUTE_PURE.) */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (const) +# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) +#else +# define _GL_ATTRIBUTE_CONST +#endif + +/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers + that can be freed by passing them as the Ith argument to the + function F. + _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that + can be freed via 'free'; it can be used only after declaring 'free'. */ +/* Applies to: functions. Cannot be used on inline functions. */ +#if _GL_GNUC_PREREQ (11, 0) +# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) +#else +# define _GL_ATTRIBUTE_DEALLOC(f, i) +#endif +/* If gnulib's or has already defined this macro, continue + to use this earlier definition, since may not have been included + yet. */ +#ifndef _GL_ATTRIBUTE_DEALLOC_FREE +# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1) +#endif + +/* _GL_ATTRIBUTE_DEPRECATED: Declares that an entity is deprecated. + The compiler may warn if the entity is used. */ +/* Applies to: + - function, variable, + - struct, union, struct/union member, + - enumeration, enumeration item, + - typedef, + in C++ also: namespace, class, template specialization. */ +#if _GL_HAS_C_ATTRIBUTE (deprecated) +# define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]] +#elif _GL_HAS_ATTRIBUTE (deprecated) +# define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__)) +#else +# define _GL_ATTRIBUTE_DEPRECATED +#endif + +/* _GL_ATTRIBUTE_ERROR(msg) requests an error if a function is called and + the function call is not optimized away. + _GL_ATTRIBUTE_WARNING(msg) requests a warning if a function is called and + the function call is not optimized away. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (error) +# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg))) +# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg))) +#elif _GL_HAS_ATTRIBUTE (diagnose_if) +# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error"))) +# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning"))) +#else +# define _GL_ATTRIBUTE_ERROR(msg) +# define _GL_ATTRIBUTE_WARNING(msg) +#endif + +/* _GL_ATTRIBUTE_EXTERNALLY_VISIBLE declares that the entity should remain + visible to debuggers etc., even with '-fwhole-program'. */ +/* Applies to: functions, variables. */ +#if _GL_HAS_ATTRIBUTE (externally_visible) +# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible)) +#else +# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE +#endif + +/* _GL_ATTRIBUTE_FALLTHROUGH declares that it is not a programming mistake if + the control flow falls through to the immediately following 'case' or + 'default' label. The compiler should not warn in this case. */ +/* Applies to: Empty statement (;), inside a 'switch' statement. */ +/* Always expands to something. */ +#if _GL_HAS_C_ATTRIBUTE (fallthrough) +# define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]] +#elif _GL_HAS_ATTRIBUTE (fallthrough) +# define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__)) +#else +# define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0) +#endif + +/* _GL_ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK)) + declares that the STRING-INDEXth function argument is a format string of + style ARCHETYPE, which is one of: + printf, gnu_printf + scanf, gnu_scanf, + strftime, gnu_strftime, + strfmon, + or the same thing prefixed and suffixed with '__'. + If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK + are suitable for the format string. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (format) +# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) +#else +# define _GL_ATTRIBUTE_FORMAT(spec) +#endif + +/* _GL_ATTRIBUTE_LEAF declares that if the function is called from some other + compilation unit, it executes code from that unit only by return or by + exception handling. This declaration lets the compiler optimize that unit + more aggressively. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (leaf) +# define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__)) +#else +# define _GL_ATTRIBUTE_LEAF +#endif + +/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly + allocated memory. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (malloc) +# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) +#else +# define _GL_ATTRIBUTE_MALLOC +#endif + +/* _GL_ATTRIBUTE_MAY_ALIAS declares that pointers to the type may point to the + same storage as pointers to other types. Thus this declaration disables + strict aliasing optimization. */ +/* Applies to: types. */ +/* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK. */ +#if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C +# define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__)) +#else +# define _GL_ATTRIBUTE_MAY_ALIAS +#endif + +/* _GL_ATTRIBUTE_MAYBE_UNUSED declares that it is not a programming mistake if + the entity is not used. The compiler should not warn if the entity is not + used. */ +/* Applies to: + - function, variable, + - struct, union, struct/union member, + - enumeration, enumeration item, + - typedef, + in C++ also: class. */ +/* In C++ and C2x, this is spelled [[__maybe_unused__]]. + GCC's syntax is __attribute__ ((__unused__)). + clang supports both syntaxes. */ +#if _GL_HAS_C_ATTRIBUTE (maybe_unused) +# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]] +#else +# define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED +#endif +/* Alternative spelling of this macro, for convenience. */ +#define _GL_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED +/* Earlier spellings of this macro. */ +#define _UNUSED_PARAMETER_ _GL_ATTRIBUTE_MAYBE_UNUSED + +/* _GL_ATTRIBUTE_NODISCARD declares that the caller of the function should not + discard the return value. The compiler may warn if the caller does not use + the return value, unless the caller uses something like ignore_value. */ +/* Applies to: function, enumeration, class. */ +#if _GL_HAS_C_ATTRIBUTE (nodiscard) +# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]] +#elif _GL_HAS_ATTRIBUTE (warn_unused_result) +# define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__)) +#else +# define _GL_ATTRIBUTE_NODISCARD +#endif + +/* _GL_ATTRIBUTE_NOINLINE tells that the compiler should not inline the + function. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (noinline) +# define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__)) +#else +# define _GL_ATTRIBUTE_NOINLINE +#endif + +/* _GL_ATTRIBUTE_NONNULL ((N1, N2,...)) declares that the arguments N1, N2,... + must not be NULL. + _GL_ATTRIBUTE_NONNULL () declares that all pointer arguments must not be + null. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (nonnull) +# define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args)) +#else +# define _GL_ATTRIBUTE_NONNULL(args) +#endif + +/* _GL_ATTRIBUTE_NONSTRING declares that the contents of a character array is + not meant to be NUL-terminated. */ +/* Applies to: struct/union members and variables that are arrays of element + type '[[un]signed] char'. */ +#if _GL_HAS_ATTRIBUTE (nonstring) +# define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__)) +#else +# define _GL_ATTRIBUTE_NONSTRING +#endif + +/* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead. */ + +/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions. + */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus +# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) +#else +# define _GL_ATTRIBUTE_NOTHROW +#endif + +/* _GL_ATTRIBUTE_PACKED declares: + For struct members: The member has the smallest possible alignment. + For struct, union, class: All members have the smallest possible alignment, + minimizing the memory required. */ +/* Applies to: struct members, struct, union, + in C++ also: class. */ +#if _GL_HAS_ATTRIBUTE (packed) +# define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__)) +#else +# define _GL_ATTRIBUTE_PACKED +#endif + +/* _GL_ATTRIBUTE_PURE declares that It is OK for a compiler to omit duplicate + calls to the function with the same arguments if observable state is not + changed between calls. + This attribute is safe for a function that does not affect + observable state, and always returns exactly once. + (This attribute is looser than _GL_ATTRIBUTE_CONST.) */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (pure) +# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) +#else +# define _GL_ATTRIBUTE_PURE +#endif + +/* _GL_ATTRIBUTE_RETURNS_NONNULL declares that the function's return value is + a non-NULL pointer. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (returns_nonnull) +# define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__)) +#else +# define _GL_ATTRIBUTE_RETURNS_NONNULL +#endif + +/* _GL_ATTRIBUTE_SENTINEL(pos) declares that the variadic function expects a + trailing NULL argument. + _GL_ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99). + _GL_ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (sentinel) +# define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos)) +#else +# define _GL_ATTRIBUTE_SENTINEL(pos) +#endif + +/* A helper macro. Don't use it directly. */ +#if _GL_HAS_ATTRIBUTE (unused) +# define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +#else +# define _GL_ATTRIBUTE_UNUSED +#endif + + +/* _GL_UNUSED_LABEL; declares that it is not a programming mistake if the + immediately preceding label is not used. The compiler should not warn + if the label is not used. */ +/* Applies to: label (both in C and C++). */ +/* Note that g++ < 4.5 does not support the '__attribute__ ((__unused__)) ;' + syntax. But clang does. */ +#if !(defined __cplusplus && !_GL_GNUC_PREREQ (4, 5)) || defined __clang__ +# define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED +#else +# define _GL_UNUSED_LABEL +#endif + + +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const + +/* Define to `int' if doesn't define. */ +#undef gid_t + +/* A replacement for va_copy, if needed. */ +#define gl_va_copy(a,b) ((a) = (b)) + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#undef inline +#endif + +/* Define to long or long long if and don't define. */ +#undef intmax_t + +/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports + the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of + earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. + __APPLE__ && __MACH__ test for Mac OS X. + __APPLE_CC__ tests for the Apple compiler and its version. + __STDC_VERSION__ tests for the C99 mode. */ +#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ +# define __GNUC_STDC_INLINE__ 1 +#endif + +/* Define to a type if does not define. */ +#undef mbstate_t + +/* _GL_CMP (n1, n2) performs a three-valued comparison on n1 vs. n2, where + n1 and n2 are expressions without side effects, that evaluate to real + numbers (excluding NaN). + It returns + 1 if n1 > n2 + 0 if n1 == n2 + -1 if n1 < n2 + The naïve code (n1 > n2 ? 1 : n1 < n2 ? -1 : 0) produces a conditional + jump with nearly all GCC versions up to GCC 10. + This variant (n1 < n2 ? -1 : n1 > n2) produces a conditional with many + GCC versions up to GCC 9. + The better code (n1 > n2) - (n1 < n2) from Hacker's Delight § 2-9 + avoids conditional jumps in all GCC versions >= 3.4. */ +#define _GL_CMP(n1, n2) (((n1) > (n2)) - ((n1) < (n2))) + + +/* Define to `int' if does not define. */ +#undef mode_t + +/* Define to the type of st_nlink in struct stat, or a supertype. */ +#undef nlink_t + +/* Define as a signed integer type capable of holding a process identifier. */ +#undef pid_t + +/* Define as the type of the result of subtracting two pointers, if the system + doesn't define it. */ +#undef ptrdiff_t + +/* Define to rpl_re_comp if the replacement should be used. */ +#undef re_comp + +/* Define to rpl_re_compile_fastmap if the replacement should be used. */ +#undef re_compile_fastmap + +/* Define to rpl_re_compile_pattern if the replacement should be used. */ +#undef re_compile_pattern + +/* Define to rpl_re_exec if the replacement should be used. */ +#undef re_exec + +/* Define to rpl_re_match if the replacement should be used. */ +#undef re_match + +/* Define to rpl_re_match_2 if the replacement should be used. */ +#undef re_match_2 + +/* Define to rpl_re_search if the replacement should be used. */ +#undef re_search + +/* Define to rpl_re_search_2 if the replacement should be used. */ +#undef re_search_2 + +/* Define to rpl_re_set_registers if the replacement should be used. */ +#undef re_set_registers + +/* Define to rpl_re_set_syntax if the replacement should be used. */ +#undef re_set_syntax + +/* Define to rpl_re_syntax_options if the replacement should be used. */ +#undef re_syntax_options + +/* Define to rpl_regcomp if the replacement should be used. */ +#undef regcomp + +/* Define to rpl_regerror if the replacement should be used. */ +#undef regerror + +/* Define to rpl_regexec if the replacement should be used. */ +#undef regexec + +/* Define to rpl_regfree if the replacement should be used. */ +#undef regfree + +/* Define to the equivalent of the C99 'restrict' keyword, or to + nothing if this is not supported. Do not define if restrict is + supported only directly. */ +#undef restrict +/* Work around a bug in older versions of Sun C++, which did not + #define __restrict__ or support _Restrict or __restrict__ + even though the corresponding Sun C compiler ended up with + "#define restrict _Restrict" or "#define restrict __restrict__" + in the previous line. This workaround can be removed once + we assume Oracle Developer Studio 12.5 (2016) or later. */ +#if defined __SUNPRO_CC && !defined __RESTRICT && !defined __restrict__ +# define _Restrict +# define __restrict__ +#endif + +/* Define to `unsigned int' if does not define. */ +#undef size_t + +/* type to use in place of socklen_t if not defined */ +#undef socklen_t + +/* Define as a signed type of the same size as size_t. */ +#undef ssize_t + +/* Define to `int' if doesn't define. */ +#undef uid_t + +/* Define as a macro for copying va_list variables. */ +#undef va_copy diff --git a/configure b/configure new file mode 100755 index 0000000..108ad4c --- /dev/null +++ b/configure @@ -0,0 +1,60620 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.71 for man-db 2.11.2. +# +# Report bugs to . +# +# +# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, +# Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else $as_nop + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. +as_nl=' +' +export as_nl +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi + +# The user is always right. +if ${PATH_SEPARATOR+false} :; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="as_nop=: +if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else \$as_nop + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ) +then : + +else \$as_nop + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +blah=\$(echo \$(echo blah)) +test x\"\$blah\" = xblah || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" + if (eval "$as_required") 2>/dev/null +then : + as_have_required=yes +else $as_nop + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null +then : + +else $as_nop + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$as_shell as_have_required=yes + if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null +then : + break 2 +fi +fi + done;; + esac + as_found=false +done +IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi +fi + + + if test "x$CONFIG_SHELL" != x +then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno +then : + printf "%s\n" "$0: This script requires a shell more modern than all" + printf "%s\n" "$0: the shells that I found on your system." + if test ${ZSH_VERSION+y} ; then + printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" + printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." + else + printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and +$0: cjwatson@debian.org about your system, including any +$0: error possibly output before this message. Then install +$0: a modern shell, or manually run the script under such a +$0: shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else $as_nop + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else $as_nop + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + printf "%s\n" "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='man-db' +PACKAGE_TARNAME='man-db' +PACKAGE_VERSION='2.11.2' +PACKAGE_STRING='man-db 2.11.2' +PACKAGE_BUGREPORT='cjwatson@debian.org' +PACKAGE_URL='' + +ac_unique_file="src/man.c" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_STDIO_H +# include +#endif +#ifdef HAVE_STDLIB_H +# include +#endif +#ifdef HAVE_STRING_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_header_c_list= +ac_func_c_list= +gl_use_threads_default= +gl_use_winpthreads_default= +ac_config_libobj_dir=gl/lib +gl_fnmatch_required=POSIX +gl_getopt_required=POSIX +gt_needs= +ac_subst_vars='gltests_LIBOBJDEPS +gltests_LTLIBOBJS +gltests_LIBOBJS +gl_LIBOBJDEPS +gl_LTLIBOBJS +gl_LIBOBJS +am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +HAVE_GNULIB_PO_FALSE +HAVE_GNULIB_PO_TRUE +CROSS_COMPILING_FALSE +CROSS_COMPILING_TRUE +TRANS_ZSOELIM_UPPER +TRANS_ZSOELIM +TRANS_WHATIS_UPPER +TRANS_WHATIS +TRANS_MANPATH_UPPER +TRANS_MANPATH +TRANS_MANDB_UPPER +TRANS_MANDB +TRANS_MANCONV_UPPER +TRANS_MANCONV +TRANS_MAN_RECODE_UPPER +TRANS_MAN_RECODE +TRANS_MAN_UPPER +TRANS_MAN +TRANS_LEXGROG_UPPER +TRANS_LEXGROG +TRANS_CATMAN_UPPER +TRANS_CATMAN +TRANS_APROPOS_UPPER +TRANS_APROPOS +libseccomp_LIBS +libseccomp_CFLAGS +DBLIBS +DBTYPE +libpipeline_LIBS +libpipeline_CFLAGS +MAN_SUBDIRS +PO4A_FALSE +PO4A_TRUE +PO4A +LINGUAS +POSUB +INTLLIBS +LTLIBICONV +LIBICONV +INTL_MACOSX_LIBS +XGETTEXT_EXTRA_OPTIONS +MSGMERGE +XGETTEXT_015 +XGETTEXT +GMSGFMT_015 +MSGFMT_015 +GMSGFMT +MSGFMT +GETTEXT_MACRO_VERSION +USE_NLS +GL_CFLAG_GNULIB_WARNINGS +GL_CFLAG_ALLOW_WARNINGS +gltests_WITNESS +GL_COND_OBJ_WMEMPCPY_FALSE +GL_COND_OBJ_WMEMPCPY_TRUE +GL_COND_OBJ_WMEMCHR_FALSE +GL_COND_OBJ_WMEMCHR_TRUE +GL_COND_OBJ_WINDOWS_RWLOCK_FALSE +GL_COND_OBJ_WINDOWS_RWLOCK_TRUE +GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE +GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE +GL_COND_OBJ_WINDOWS_ONCE_FALSE +GL_COND_OBJ_WINDOWS_ONCE_TRUE +GL_COND_OBJ_WINDOWS_MUTEX_FALSE +GL_COND_OBJ_WINDOWS_MUTEX_TRUE +GL_GNULIB_TOWCTRANS +GL_GNULIB_WCTRANS +GL_GNULIB_ISWCTYPE +GL_GNULIB_WCTYPE +GL_GNULIB_ISWXDIGIT +GL_GNULIB_ISWDIGIT +GL_GNULIB_ISWBLANK +REPLACE_TOWLOWER +REPLACE_ISWCNTRL +HAVE_WCTYPE_H +NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H +NEXT_WCTYPE_H +HAVE_ISWCNTRL +REPLACE_ISWXDIGIT +REPLACE_ISWDIGIT +REPLACE_ISWBLANK +HAVE_WCTRANS_T +HAVE_WCTYPE_T +HAVE_ISWBLANK +GL_COND_OBJ_WCRTOMB_FALSE +GL_COND_OBJ_WCRTOMB_TRUE +HAVE_CRTDEFS_H +HAVE_WINT_T +NEXT_AS_FIRST_DIRECTIVE_WCHAR_H +NEXT_WCHAR_H +HAVE_FEATURES_H +HAVE_UTIME_H +NEXT_AS_FIRST_DIRECTIVE_UTIME_H +NEXT_UTIME_H +GL_GNULIB_MDA_UTIME +GL_GNULIB_UTIME +GL_COND_OBJ_UTIME_FALSE +GL_COND_OBJ_UTIME_TRUE +REPLACE_UTIME +HAVE_UTIME +GL_COND_OBJ_UNLINKAT_FALSE +GL_COND_OBJ_UNLINKAT_TRUE +GL_COND_OBJ_UNLINK_FALSE +GL_COND_OBJ_UNLINK_TRUE +HAVE_UNISTD_H +NEXT_AS_FIRST_DIRECTIVE_UNISTD_H +NEXT_UNISTD_H +TIME_H_DEFINES_TIME_UTC +UNISTD_H_DEFINES_STRUCT_TIMESPEC +PTHREAD_H_DEFINES_STRUCT_TIMESPEC +SYS_TIME_H_DEFINES_STRUCT_TIMESPEC +TIME_H_DEFINES_STRUCT_TIMESPEC +NEXT_AS_FIRST_DIRECTIVE_TIME_H +NEXT_TIME_H +GL_GNULIB_TCGETSID +NEXT_AS_FIRST_DIRECTIVE_TERMIOS_H +NEXT_TERMIOS_H +HAVE_TERMIOS_H +HAVE_DECL_TCGETSID +GL_GENERATE_SYSEXITS_H_FALSE +GL_GENERATE_SYSEXITS_H_TRUE +SYSEXITS_H +HAVE_SYSEXITS_H +NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H +NEXT_SYSEXITS_H +HAVE_SYS_UIO_H +NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H +NEXT_SYS_UIO_H +WINDOWS_STAT_INODES +WINDOWS_64_BIT_OFF_T +NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H +NEXT_SYS_TYPES_H +GL_GNULIB_ACCEPT4 +GL_GNULIB_SHUTDOWN +GL_GNULIB_SETSOCKOPT +GL_GNULIB_SENDTO +GL_GNULIB_RECVFROM +GL_GNULIB_SEND +GL_GNULIB_RECV +GL_GNULIB_LISTEN +GL_GNULIB_GETSOCKOPT +GL_GNULIB_GETSOCKNAME +GL_GNULIB_GETPEERNAME +GL_GNULIB_BIND +GL_GNULIB_ACCEPT +GL_GNULIB_CONNECT +GL_GNULIB_SOCKET +HAVE_SYS_RANDOM_H +NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H +NEXT_SYS_RANDOM_H +NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H +NEXT_SYS_IOCTL_H +HAVE_SYS_IOCTL_H +HAVE_SYS_FILE_H +NEXT_AS_FIRST_DIRECTIVE_SYS_FILE_H +NEXT_SYS_FILE_H +GL_COND_OBJ_STRSEP_FALSE +GL_COND_OBJ_STRSEP_TRUE +GL_COND_OBJ_STRNLEN_FALSE +GL_COND_OBJ_STRNLEN_TRUE +GL_COND_OBJ_STRNDUP_FALSE +GL_COND_OBJ_STRNDUP_TRUE +GL_GNULIB_FFS +HAVE_STRINGS_H +NEXT_AS_FIRST_DIRECTIVE_STRINGS_H +NEXT_STRINGS_H +NEXT_AS_FIRST_DIRECTIVE_STRING_H +NEXT_STRING_H +GL_COND_OBJ_STRERROR_OVERRIDE_FALSE +GL_COND_OBJ_STRERROR_OVERRIDE_TRUE +GL_COND_OBJ_STRERROR_FALSE +GL_COND_OBJ_STRERROR_TRUE +GL_COND_OBJ_STRDUP_FALSE +GL_COND_OBJ_STRDUP_TRUE +GL_COND_OBJ_STRCHRNUL_FALSE +GL_COND_OBJ_STRCHRNUL_TRUE +GL_COND_OBJ_STRNCASECMP_FALSE +GL_COND_OBJ_STRNCASECMP_TRUE +GL_COND_OBJ_STRCASECMP_FALSE +GL_COND_OBJ_STRCASECMP_TRUE +HAVE_DECL_STRNCASECMP +HAVE_STRCASECMP +HAVE_FFS +GL_COND_OBJ_STPCPY_FALSE +GL_COND_OBJ_STPCPY_TRUE +NEXT_AS_FIRST_DIRECTIVE_STDLIB_H +NEXT_STDLIB_H +GL_COND_OBJ_STDIO_WRITE_FALSE +GL_COND_OBJ_STDIO_WRITE_TRUE +GL_COND_OBJ_STDIO_READ_FALSE +GL_COND_OBJ_STDIO_READ_TRUE +NEXT_AS_FIRST_DIRECTIVE_STDIO_H +NEXT_STDIO_H +GL_GENERATE_STDINT_H_FALSE +GL_GENERATE_STDINT_H_TRUE +STDINT_H +GL_GENERATE_STDDEF_H_FALSE +GL_GENERATE_STDDEF_H_TRUE +STDDEF_H +GL_GENERATE_STDBOOL_H_FALSE +GL_GENERATE_STDBOOL_H_TRUE +STDBOOL_H +HAVE__BOOL +GL_GENERATE_STDARG_H_FALSE +GL_GENERATE_STDARG_H_TRUE +STDARG_H +NEXT_AS_FIRST_DIRECTIVE_STDARG_H +NEXT_STDARG_H +GL_GENERATE_STDALIGN_H_FALSE +GL_GENERATE_STDALIGN_H_TRUE +STDALIGN_H +GL_COND_OBJ_STAT_FALSE +GL_COND_OBJ_STAT_TRUE +GL_COND_OBJ_SLEEP_FALSE +GL_COND_OBJ_SLEEP_TRUE +GL_COND_OBJ_SIGPROCMASK_FALSE +GL_COND_OBJ_SIGPROCMASK_TRUE +NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H +NEXT_SIGNAL_H +GL_COND_OBJ_SIGACTION_FALSE +GL_COND_OBJ_SIGACTION_TRUE +GL_COND_OBJ_SETLOCALE_LOCK_FALSE +GL_COND_OBJ_SETLOCALE_LOCK_TRUE +GL_COND_OBJ_SETENV_FALSE +GL_COND_OBJ_SETENV_TRUE +GL_COND_OBJ_SELECT_FALSE +GL_COND_OBJ_SELECT_TRUE +LIB_SELECT +LIBSOCKET +GL_COND_OBJ_RMDIR_FALSE +GL_COND_OBJ_RMDIR_TRUE +GL_COND_OBJ_REWINDDIR_FALSE +GL_COND_OBJ_REWINDDIR_TRUE +GL_COND_OBJ_RENAMEAT_FALSE +GL_COND_OBJ_RENAMEAT_TRUE +GL_COND_OBJ_RENAME_FALSE +GL_COND_OBJ_RENAME_TRUE +GL_COND_OBJ_REGEX_FALSE +GL_COND_OBJ_REGEX_TRUE +GL_COND_OBJ_REALLOCARRAY_FALSE +GL_COND_OBJ_REALLOCARRAY_TRUE +GL_COND_OBJ_READLINKAT_FALSE +GL_COND_OBJ_READLINKAT_TRUE +GL_COND_OBJ_READLINK_FALSE +GL_COND_OBJ_READLINK_TRUE +GL_COND_OBJ_READDIR_FALSE +GL_COND_OBJ_READDIR_TRUE +GL_COND_OBJ_RAWMEMCHR_FALSE +GL_COND_OBJ_RAWMEMCHR_TRUE +GL_COND_OBJ_RAISE_FALSE +GL_COND_OBJ_RAISE_TRUE +GL_GNULIB_SIGACTION +GL_GNULIB_SIGPROCMASK +GL_GNULIB_SIGNAL_H_SIGPIPE +GL_GNULIB_RAISE +GL_GNULIB_PTHREAD_SIGMASK +GL_COND_OBJ_PTHREAD_SIGMASK_FALSE +GL_COND_OBJ_PTHREAD_SIGMASK_TRUE +LIB_PTHREAD_SIGMASK +REPLACE_RAISE +REPLACE_PTHREAD_SIGMASK +HAVE_SIGHANDLER_T +HAVE_TYPE_VOLATILE_SIG_ATOMIC_T +HAVE_STRUCT_SIGACTION_SA_SIGACTION +HAVE_SIGACTION +HAVE_SIGINFO_T +HAVE_SIGSET_T +HAVE_RAISE +HAVE_PTHREAD_SIGMASK +HAVE_POSIX_SIGNALBLOCKING +GL_GNULIB_SELECT +GL_GNULIB_PSELECT +GL_COND_OBJ_PSELECT_FALSE +GL_COND_OBJ_PSELECT_TRUE +HAVE_SYS_SELECT_H +NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H +NEXT_SYS_SELECT_H +REPLACE_SELECT +REPLACE_PSELECT +HAVE_PSELECT +GL_COND_OBJ_PIPE_FALSE +GL_COND_OBJ_PIPE_TRUE +GL_COND_OBJ_OPENDIR_FALSE +GL_COND_OBJ_OPENDIR_TRUE +GL_COND_OBJ_OPENAT_FALSE +GL_COND_OBJ_OPENAT_TRUE +GL_COND_OBJ_OPEN_FALSE +GL_COND_OBJ_OPEN_TRUE +ASM_SYMBOL_PREFIX +GL_COND_OBJ_NL_LANGINFO_LOCK_FALSE +GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE +GL_COND_OBJ_NL_LANGINFO_FALSE +GL_COND_OBJ_NL_LANGINFO_TRUE +LIB_NL_LANGINFO +GL_GNULIB_MDA_TZSET +GL_GNULIB_TZSET +GL_GNULIB_TIME_RZ +GL_GNULIB_TIME_R +GL_GNULIB_TIMESPEC_GETRES +GL_GNULIB_TIMESPEC_GET +GL_GNULIB_TIMEGM +GL_GNULIB_STRPTIME +GL_GNULIB_STRFTIME +GL_GNULIB_NANOSLEEP +GL_GNULIB_LOCALTIME +GL_GNULIB_MKTIME +GL_GNULIB_CTIME +GL_COND_OBJ_NANOSLEEP_FALSE +GL_COND_OBJ_NANOSLEEP_TRUE +LIB_NANOSLEEP +REPLACE_LOCALTIME +REPLACE_GMTIME +GNULIB_GETTIMEOFDAY +REPLACE_TZSET +REPLACE_TIMEGM +REPLACE_STRFTIME +REPLACE_NANOSLEEP +REPLACE_MKTIME +REPLACE_LOCALTIME_R +REPLACE_CTIME +HAVE_TIMEZONE_T +HAVE_TIMESPEC_GETRES +HAVE_TIMESPEC_GET +HAVE_TIMEGM +HAVE_STRPTIME +HAVE_NANOSLEEP +HAVE_DECL_LOCALTIME_R +GL_COND_OBJ_MSVC_NOTHROW_FALSE +GL_COND_OBJ_MSVC_NOTHROW_TRUE +GL_COND_OBJ_MSVC_INVAL_FALSE +GL_COND_OBJ_MSVC_INVAL_TRUE +GL_COND_OBJ_MKSTEMP_FALSE +GL_COND_OBJ_MKSTEMP_TRUE +GL_COND_OBJ_MKDTEMP_FALSE +GL_COND_OBJ_MKDTEMP_TRUE +GL_COND_OBJ_MKDIR_FALSE +GL_COND_OBJ_MKDIR_TRUE +GL_COND_OBJ_MEMRCHR_FALSE +GL_COND_OBJ_MEMRCHR_TRUE +GL_COND_OBJ_MEMPCPY_FALSE +GL_COND_OBJ_MEMPCPY_TRUE +GL_GNULIB_MDA_STRDUP +GL_GNULIB_MDA_MEMCCPY +GL_GNULIB_STRVERSCMP +GL_GNULIB_STRSIGNAL +GL_GNULIB_SIGDESCR_NP +GL_GNULIB_SIGABBREV_NP +GL_GNULIB_STRERRORNAME_NP +GL_GNULIB_STRERROR_R +GL_GNULIB_STRERROR +GL_GNULIB_MBSTOK_R +GL_GNULIB_MBSSEP +GL_GNULIB_MBSSPN +GL_GNULIB_MBSPBRK +GL_GNULIB_MBSCSPN +GL_GNULIB_MBSCASESTR +GL_GNULIB_MBSPCASECMP +GL_GNULIB_MBSNCASECMP +GL_GNULIB_MBSCASECMP +GL_GNULIB_MBSSTR +GL_GNULIB_MBSRCHR +GL_GNULIB_MBSCHR +GL_GNULIB_MBSNLEN +GL_GNULIB_MBSLEN +GL_GNULIB_STRTOK_R +GL_GNULIB_STRCASESTR +GL_GNULIB_STRSTR +GL_GNULIB_STRSEP +GL_GNULIB_STRPBRK +GL_GNULIB_STRNLEN +GL_GNULIB_STRNDUP +GL_GNULIB_STRNCAT +GL_GNULIB_STRDUP +GL_GNULIB_STRCHRNUL +GL_GNULIB_STPNCPY +GL_GNULIB_STPCPY +GL_GNULIB_RAWMEMCHR +GL_GNULIB_MEMRCHR +GL_GNULIB_MEMPCPY +GL_GNULIB_MEMMEM +GL_GNULIB_MEMCHR +GL_GNULIB_FFSLL +GL_GNULIB_FFSL +GL_GNULIB_EXPLICIT_BZERO +GL_COND_OBJ_MEMCHR_FALSE +GL_COND_OBJ_MEMCHR_TRUE +UNDEFINE_STRTOK_R +REPLACE_STRSIGNAL +REPLACE_STRERRORNAME_NP +REPLACE_STRERROR_R +REPLACE_STRERROR +REPLACE_STRTOK_R +REPLACE_STRCASESTR +REPLACE_STRSTR +REPLACE_STRNLEN +REPLACE_STRNDUP +REPLACE_STRNCAT +REPLACE_STRDUP +REPLACE_STRCHRNUL +REPLACE_STPNCPY +REPLACE_MEMMEM +REPLACE_MEMCHR +REPLACE_FFSLL +HAVE_STRVERSCMP +HAVE_DECL_STRSIGNAL +HAVE_SIGDESCR_NP +HAVE_SIGABBREV_NP +HAVE_STRERRORNAME_NP +HAVE_DECL_STRERROR_R +HAVE_DECL_STRTOK_R +HAVE_STRCASESTR +HAVE_STRSEP +HAVE_STRPBRK +HAVE_DECL_STRNLEN +HAVE_DECL_STRNDUP +HAVE_DECL_STRDUP +HAVE_STRCHRNUL +HAVE_STPNCPY +HAVE_STPCPY +HAVE_RAWMEMCHR +HAVE_DECL_MEMRCHR +HAVE_MEMPCPY +HAVE_DECL_MEMMEM +HAVE_FFSLL +HAVE_FFSL +HAVE_EXPLICIT_BZERO +HAVE_MBSLEN +GL_COND_OBJ_MBTOWC_FALSE +GL_COND_OBJ_MBTOWC_TRUE +GL_COND_OBJ_MBSRTOWCS_FALSE +GL_COND_OBJ_MBSRTOWCS_TRUE +GL_COND_OBJ_MBSINIT_FALSE +GL_COND_OBJ_MBSINIT_TRUE +HAVE_VISIBILITY +CFLAG_VISIBILITY +GL_COND_OBJ_MBRTOWC_FALSE +GL_COND_OBJ_MBRTOWC_TRUE +LIB_MBRTOWC +LOCALE_ZH_CN +LOCALE_FR_UTF8 +LOCALE_JA +GL_COND_OBJ_LSTAT_FALSE +GL_COND_OBJ_LSTAT_TRUE +LTLIBMULTITHREAD +LIBMULTITHREAD +LTLIBTHREAD +LIBTHREAD +LIBSTDTHREAD +GL_COND_OBJ_LOCALECONV_FALSE +GL_COND_OBJ_LOCALECONV_TRUE +GL_GNULIB_LOCALENAME +GL_GNULIB_DUPLOCALE +GL_GNULIB_SETLOCALE_NULL +GL_GNULIB_SETLOCALE +GL_GNULIB_LOCALECONV +NEXT_AS_FIRST_DIRECTIVE_LOCALE_H +NEXT_LOCALE_H +HAVE_XLOCALE_H +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H +NEXT_STDDEF_H +HAVE_WCHAR_T +HAVE_MAX_ALIGN_T +REPLACE_NULL +LOCALENAME_ENHANCE_LOCALE_FUNCS +REPLACE_STRUCT_LCONV +REPLACE_FREELOCALE +REPLACE_DUPLOCALE +REPLACE_NEWLOCALE +REPLACE_SETLOCALE +REPLACE_LOCALECONV +HAVE_FREELOCALE +HAVE_DUPLOCALE +HAVE_NEWLOCALE +LOCALCHARSET_TESTS_ENVIRONMENT +GL_GENERATE_LIMITS_H_FALSE +GL_GENERATE_LIMITS_H_TRUE +LIMITS_H +IGNORE_UNUSED_LIBRARIES_CFLAGS +GL_COND_OBJ_LCHOWN_FALSE +GL_COND_OBJ_LCHOWN_TRUE +GL_GNULIB_NL_LANGINFO +HAVE_LANGINFO_YESEXPR +HAVE_LANGINFO_ERA +HAVE_LANGINFO_ALTMON +HAVE_LANGINFO_T_FMT_AMPM +HAVE_LANGINFO_CODESET +HAVE_LANGINFO_H +NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H +NEXT_LANGINFO_H +REPLACE_NL_LANGINFO +HAVE_NL_LANGINFO +GL_COND_OBJ_ISBLANK_FALSE +GL_COND_OBJ_ISBLANK_TRUE +GL_GNULIB_IOCTL +GL_COND_OBJ_IOCTL_FALSE +GL_COND_OBJ_IOCTL_TRUE +HAVE_WS2TCPIP_H +HAVE_SYS_SOCKET_H +NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H +NEXT_SYS_SOCKET_H +HAVE_ACCEPT4 +HAVE_SA_FAMILY_T +HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY +HAVE_STRUCT_SOCKADDR_STORAGE +GL_GNULIB_STRTOUMAX +GL_GNULIB_STRTOIMAX +GL_GNULIB_IMAXDIV +GL_GNULIB_IMAXABS +NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H +NEXT_INTTYPES_H +UINT64_MAX_EQ_ULONG_MAX +UINT32_MAX_LT_UINTMAX_MAX +PRIPTR_PREFIX +INT64_MAX_EQ_LONG_MAX +INT32_MAX_LT_INTMAX_MAX +REPLACE_STRTOUMAX +REPLACE_STRTOIMAX +HAVE_IMAXDIV_T +HAVE_DECL_STRTOUMAX +HAVE_DECL_STRTOIMAX +HAVE_DECL_IMAXDIV +HAVE_DECL_IMAXABS +HAVE_SYS_INTTYPES_H +HAVE_SYS_BITYPES_H +HAVE_C99_STDINT_H +WINT_T_SUFFIX +WCHAR_T_SUFFIX +SIG_ATOMIC_T_SUFFIX +SIZE_T_SUFFIX +PTRDIFF_T_SUFFIX +HAVE_SIGNED_WINT_T +HAVE_SIGNED_WCHAR_T +HAVE_SIGNED_SIG_ATOMIC_T +BITSIZEOF_WINT_T +BITSIZEOF_WCHAR_T +BITSIZEOF_SIG_ATOMIC_T +BITSIZEOF_SIZE_T +BITSIZEOF_PTRDIFF_T +APPLE_UNIVERSAL_BUILD +HAVE_STDINT_H +NEXT_AS_FIRST_DIRECTIVE_STDINT_H +NEXT_STDINT_H +HAVE_SYS_TYPES_H +HAVE_INTTYPES_H +HAVE_WCHAR_H +GNULIBHEADERS_OVERRIDE_WINT_T +NEXT_AS_FIRST_DIRECTIVE_LIMITS_H +NEXT_LIMITS_H +LIB_HARD_LOCALE +LIB_SETLOCALE_NULL +LIB_SCHED_YIELD +LIBPMULTITHREAD +LIBPTHREAD +GL_COND_OBJ_GLOB_PATTERN_P_FALSE +GL_COND_OBJ_GLOB_PATTERN_P_TRUE +GL_COND_OBJ_GLOB_FALSE +GL_COND_OBJ_GLOB_TRUE +GL_GENERATE_GLOB_H_FALSE +GL_GENERATE_GLOB_H_TRUE +GLOB_H +GL_GNULIB_GLOB +HAVE_GLOB_H +NEXT_AS_FIRST_DIRECTIVE_GLOB_H +NEXT_GLOB_H +REPLACE_GLOB_PATTERN_P +REPLACE_GLOB +HAVE_GLOB_PATTERN_P +HAVE_GLOB +GL_GNULIB_GETTIMEOFDAY +GL_COND_OBJ_GETTIMEOFDAY_FALSE +GL_COND_OBJ_GETTIMEOFDAY_TRUE +NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H +NEXT_SYS_TIME_H +REPLACE_STRUCT_TIMEVAL +REPLACE_GETTIMEOFDAY +HAVE_SYS_TIME_H +HAVE_STRUCT_TIMEVAL +HAVE_GETTIMEOFDAY +LTLIBINTL +LIBINTL +GL_GNULIB_GETRANDOM +GL_COND_OBJ_GETRANDOM_FALSE +GL_COND_OBJ_GETRANDOM_TRUE +LIB_GETRANDOM +REPLACE_GETRANDOM +HAVE_GETRANDOM +GL_COND_OBJ_GETOPT_FALSE +GL_COND_OBJ_GETOPT_TRUE +GL_GENERATE_GETOPT_CDEFS_H_FALSE +GL_GENERATE_GETOPT_CDEFS_H_TRUE +GETOPT_CDEFS_H +GL_GENERATE_GETOPT_H_FALSE +GL_GENERATE_GETOPT_H_TRUE +GETOPT_H +HAVE_SYS_CDEFS_H +HAVE_GETOPT_H +NEXT_AS_FIRST_DIRECTIVE_GETOPT_H +NEXT_GETOPT_H +LIB_GETLOGIN +GL_COND_OBJ_GETLOGIN_R_FALSE +GL_COND_OBJ_GETLOGIN_R_TRUE +GL_COND_OBJ_GETLINE_FALSE +GL_COND_OBJ_GETLINE_TRUE +GL_COND_OBJ_GETDTABLESIZE_FALSE +GL_COND_OBJ_GETDTABLESIZE_TRUE +GL_GNULIB_MDA_TEMPNAM +GL_GNULIB_MDA_PUTW +GL_GNULIB_MDA_GETW +GL_GNULIB_MDA_FILENO +GL_GNULIB_MDA_FDOPEN +GL_GNULIB_MDA_FCLOSEALL +GL_GNULIB_VSPRINTF_POSIX +GL_GNULIB_VSNPRINTF +GL_GNULIB_VPRINTF_POSIX +GL_GNULIB_VPRINTF +GL_GNULIB_VFPRINTF_POSIX +GL_GNULIB_VFPRINTF +GL_GNULIB_VDPRINTF +GL_GNULIB_VSCANF +GL_GNULIB_VFSCANF +GL_GNULIB_VASPRINTF +GL_GNULIB_TMPFILE +GL_GNULIB_STDIO_H_SIGPIPE +GL_GNULIB_STDIO_H_NONBLOCKING +GL_GNULIB_SPRINTF_POSIX +GL_GNULIB_SNPRINTF +GL_GNULIB_SCANF +GL_GNULIB_RENAMEAT +GL_GNULIB_RENAME +GL_GNULIB_REMOVE +GL_GNULIB_PUTS +GL_GNULIB_PUTCHAR +GL_GNULIB_PUTC +GL_GNULIB_PRINTF_POSIX +GL_GNULIB_PRINTF +GL_GNULIB_POPEN +GL_GNULIB_PERROR +GL_GNULIB_PCLOSE +GL_GNULIB_OBSTACK_PRINTF_POSIX +GL_GNULIB_OBSTACK_PRINTF +GL_GNULIB_GETLINE +GL_GNULIB_GETDELIM +GL_GNULIB_GETCHAR +GL_GNULIB_GETC +GL_GNULIB_FWRITE +GL_GNULIB_FTELLO +GL_GNULIB_FTELL +GL_GNULIB_FSEEKO +GL_GNULIB_FSEEK +GL_GNULIB_FSCANF +GL_GNULIB_FREOPEN +GL_GNULIB_FREAD +GL_GNULIB_FPUTS +GL_GNULIB_FPUTC +GL_GNULIB_FPURGE +GL_GNULIB_FPRINTF_POSIX +GL_GNULIB_FPRINTF +GL_GNULIB_FOPEN_GNU +GL_GNULIB_FOPEN +GL_GNULIB_FGETS +GL_GNULIB_FGETC +GL_GNULIB_FFLUSH +GL_GNULIB_FDOPEN +GL_GNULIB_FCLOSE +GL_GNULIB_DPRINTF +GL_COND_OBJ_GETDELIM_FALSE +GL_COND_OBJ_GETDELIM_TRUE +REPLACE_VSPRINTF +REPLACE_VSNPRINTF +REPLACE_VPRINTF +REPLACE_VFPRINTF +REPLACE_VDPRINTF +REPLACE_VASPRINTF +REPLACE_TMPFILE +REPLACE_STDIO_WRITE_FUNCS +REPLACE_STDIO_READ_FUNCS +REPLACE_SPRINTF +REPLACE_SNPRINTF +REPLACE_RENAMEAT +REPLACE_RENAME +REPLACE_REMOVE +REPLACE_PRINTF +REPLACE_POPEN +REPLACE_PERROR +REPLACE_OBSTACK_PRINTF +REPLACE_GETLINE +REPLACE_GETDELIM +REPLACE_FTELLO +REPLACE_FTELL +REPLACE_FSEEKO +REPLACE_FSEEK +REPLACE_FREOPEN +REPLACE_FPURGE +REPLACE_FPRINTF +REPLACE_FOPEN_FOR_FOPEN_GNU +REPLACE_FOPEN +REPLACE_FFLUSH +REPLACE_FDOPEN +REPLACE_FCLOSE +REPLACE_DPRINTF +HAVE_VDPRINTF +HAVE_VASPRINTF +HAVE_RENAMEAT +HAVE_POPEN +HAVE_PCLOSE +HAVE_FTELLO +HAVE_FSEEKO +HAVE_DPRINTF +HAVE_DECL_VSNPRINTF +HAVE_DECL_SNPRINTF +HAVE_DECL_OBSTACK_PRINTF +HAVE_DECL_GETLINE +HAVE_DECL_GETDELIM +HAVE_DECL_FTELLO +HAVE_DECL_FSEEKO +HAVE_DECL_FPURGE +HAVE_DECL_FCLOSEALL +GL_COND_OBJ_GETCWD_LGPL_FALSE +GL_COND_OBJ_GETCWD_LGPL_TRUE +GL_COND_OBJ_GETCWD_FALSE +GL_COND_OBJ_GETCWD_TRUE +GL_COND_OBJ_FSTATAT_FALSE +GL_COND_OBJ_FSTATAT_TRUE +GL_GNULIB_MDA_UMASK +GL_GNULIB_MDA_MKDIR +GL_GNULIB_MDA_CHMOD +GL_GNULIB_OVERRIDES_STRUCT_STAT +GL_GNULIB_UTIMENSAT +GL_GNULIB_STAT +GL_GNULIB_MKNODAT +GL_GNULIB_MKNOD +GL_GNULIB_MKFIFOAT +GL_GNULIB_MKFIFO +GL_GNULIB_MKDIRAT +GL_GNULIB_MKDIR +GL_GNULIB_LSTAT +GL_GNULIB_LCHMOD +GL_GNULIB_GETUMASK +GL_GNULIB_FUTIMENS +GL_GNULIB_FSTATAT +GL_GNULIB_FSTAT +GL_GNULIB_FCHMODAT +GL_GNULIB_CHMOD +WINDOWS_64_BIT_ST_SIZE +WINDOWS_STAT_TIMESPEC +NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H +NEXT_SYS_STAT_H +GL_COND_OBJ_FSTAT_FALSE +GL_COND_OBJ_FSTAT_TRUE +REPLACE_UTIMENSAT +REPLACE_STAT +REPLACE_MKNODAT +REPLACE_MKNOD +REPLACE_MKFIFOAT +REPLACE_MKFIFO +REPLACE_MKDIR +REPLACE_LSTAT +REPLACE_FUTIMENS +REPLACE_FSTATAT +REPLACE_FSTAT +REPLACE_FCHMODAT +REPLACE_CHMOD +HAVE_UTIMENSAT +HAVE_MKNODAT +HAVE_MKNOD +HAVE_MKFIFOAT +HAVE_MKFIFO +HAVE_MKDIRAT +HAVE_LSTAT +HAVE_LCHMOD +HAVE_GETUMASK +HAVE_FUTIMENS +HAVE_FSTATAT +HAVE_FCHMODAT +GL_COND_OBJ_FREE_FALSE +GL_COND_OBJ_FREE_TRUE +GL_GENERATE_FNMATCH_H_FALSE +GL_GENERATE_FNMATCH_H_TRUE +FNMATCH_H +GL_GNULIB_FNMATCH +HAVE_FNMATCH_H +NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H +NEXT_FNMATCH_H +REPLACE_FNMATCH +HAVE_FNMATCH +GL_GNULIB_FLOCK +GL_COND_OBJ_FLOCK_FALSE +GL_COND_OBJ_FLOCK_TRUE +HAVE_FLOCK +GL_COND_OBJ_ITOLD_FALSE +GL_COND_OBJ_ITOLD_TRUE +GL_COND_OBJ_FLOAT_FALSE +GL_COND_OBJ_FLOAT_TRUE +GL_GENERATE_FLOAT_H_FALSE +GL_GENERATE_FLOAT_H_TRUE +FLOAT_H +REPLACE_ITOLD +NEXT_AS_FIRST_DIRECTIVE_FLOAT_H +NEXT_FLOAT_H +GL_COND_OBJ_FDOPENDIR_FALSE +GL_COND_OBJ_FDOPENDIR_TRUE +NEXT_AS_FIRST_DIRECTIVE_FCNTL_H +NEXT_FCNTL_H +GL_GNULIB_MDA_OPEN +GL_GNULIB_MDA_CREAT +GL_GNULIB_OPENAT +GL_GNULIB_OPEN +GL_GNULIB_NONBLOCKING +GL_GNULIB_FCNTL +GL_GNULIB_CREAT +GL_COND_OBJ_FCNTL_FALSE +GL_COND_OBJ_FCNTL_TRUE +REPLACE_OPENAT +REPLACE_OPEN +REPLACE_FCNTL +REPLACE_CREAT +HAVE_OPENAT +HAVE_FCNTL +GL_COND_OBJ_FCHDIR_FALSE +GL_COND_OBJ_FCHDIR_TRUE +GL_COND_OBJ_ERROR_FALSE +GL_COND_OBJ_ERROR_TRUE +GL_GENERATE_ERRNO_H_FALSE +GL_GENERATE_ERRNO_H_TRUE +ERRNO_H +EOVERFLOW_VALUE +EOVERFLOW_HIDDEN +ENOLINK_VALUE +ENOLINK_HIDDEN +EMULTIHOP_VALUE +EMULTIHOP_HIDDEN +NEXT_AS_FIRST_DIRECTIVE_ERRNO_H +NEXT_ERRNO_H +GL_COND_OBJ_DUP2_FALSE +GL_COND_OBJ_DUP2_TRUE +GL_COND_OBJ_DUP_FALSE +GL_COND_OBJ_DUP_TRUE +GL_COND_OBJ_DIRFD_FALSE +GL_COND_OBJ_DIRFD_TRUE +HAVE_DIRENT_H +NEXT_AS_FIRST_DIRECTIVE_DIRENT_H +NEXT_DIRENT_H +GL_GNULIB_ISBLANK +NEXT_AS_FIRST_DIRECTIVE_CTYPE_H +NEXT_CTYPE_H +PRAGMA_COLUMNS +PRAGMA_SYSTEM_HEADER +INCLUDE_NEXT_AS_FIRST_DIRECTIVE +INCLUDE_NEXT +HAVE_ISBLANK +GL_GNULIB_ALPHASORT +GL_GNULIB_SCANDIR +GL_GNULIB_FDOPENDIR +GL_GNULIB_DIRFD +GL_GNULIB_CLOSEDIR +GL_GNULIB_REWINDDIR +GL_GNULIB_READDIR +GL_GNULIB_OPENDIR +GL_COND_OBJ_CLOSEDIR_FALSE +GL_COND_OBJ_CLOSEDIR_TRUE +REPLACE_FDOPENDIR +REPLACE_DIRFD +REPLACE_CLOSEDIR +REPLACE_OPENDIR +HAVE_ALPHASORT +HAVE_SCANDIR +HAVE_FDOPENDIR +HAVE_DECL_FDOPENDIR +HAVE_DECL_DIRFD +HAVE_CLOSEDIR +HAVE_REWINDDIR +HAVE_READDIR +HAVE_OPENDIR +GL_COND_OBJ_CLOSE_FALSE +GL_COND_OBJ_CLOSE_TRUE +HAVE_WINSOCK2_H +REPLACE_IOCTL +SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS +SYS_IOCTL_H_HAVE_WINSOCK2_H +HAVE_MSVC_INVALID_PARAMETER_HANDLER +LIB_CLOCK_GETTIME +GL_COND_OBJ_FCHOWN_STUB_FALSE +GL_COND_OBJ_FCHOWN_STUB_TRUE +GL_COND_OBJ_CHOWN_FALSE +GL_COND_OBJ_CHOWN_TRUE +GL_COND_OBJ_CHDIR_LONG_FALSE +GL_COND_OBJ_CHDIR_LONG_TRUE +UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS +UNISTD_H_HAVE_WINSOCK2_H +UNISTD_H_HAVE_SYS_RANDOM_H +REPLACE_WRITE +REPLACE_USLEEP +REPLACE_UNLINKAT +REPLACE_UNLINK +REPLACE_TTYNAME_R +REPLACE_TRUNCATE +REPLACE_SYMLINKAT +REPLACE_SYMLINK +REPLACE_SLEEP +REPLACE_RMDIR +REPLACE_READLINKAT +REPLACE_READLINK +REPLACE_READ +REPLACE_PWRITE +REPLACE_PREAD +REPLACE_LSEEK +REPLACE_LINKAT +REPLACE_LINK +REPLACE_LCHOWN +REPLACE_ISATTY +REPLACE_GETPASS_FOR_GETPASS_GNU +REPLACE_GETPASS +REPLACE_GETPAGESIZE +REPLACE_GETGROUPS +REPLACE_GETLOGIN_R +REPLACE_GETDTABLESIZE +REPLACE_GETDOMAINNAME +REPLACE_GETCWD +REPLACE_FTRUNCATE +REPLACE_FCHOWNAT +REPLACE_FACCESSAT +REPLACE_EXECVPE +REPLACE_EXECVP +REPLACE_EXECVE +REPLACE_EXECV +REPLACE_EXECLP +REPLACE_EXECLE +REPLACE_EXECL +REPLACE_DUP2 +REPLACE_DUP +REPLACE_COPY_FILE_RANGE +REPLACE_CLOSE +REPLACE_CHOWN +REPLACE_ACCESS +HAVE_SYS_PARAM_H +HAVE_OS_H +HAVE_DECL_TTYNAME_R +HAVE_DECL_TRUNCATE +HAVE_DECL_SETHOSTNAME +HAVE_DECL_GETUSERSHELL +HAVE_DECL_GETPAGESIZE +HAVE_DECL_GETLOGIN_R +HAVE_DECL_GETLOGIN +HAVE_DECL_GETDOMAINNAME +HAVE_DECL_FDATASYNC +HAVE_DECL_FCHDIR +HAVE_DECL_EXECVPE +HAVE_DECL_ENVIRON +HAVE_USLEEP +HAVE_UNLINKAT +HAVE_SYMLINKAT +HAVE_SYMLINK +HAVE_SLEEP +HAVE_SETHOSTNAME +HAVE_READLINKAT +HAVE_READLINK +HAVE_PWRITE +HAVE_PREAD +HAVE_PIPE2 +HAVE_PIPE +HAVE_LINKAT +HAVE_LINK +HAVE_LCHOWN +HAVE_GROUP_MEMBER +HAVE_GETPASS +HAVE_GETPAGESIZE +HAVE_GETLOGIN +HAVE_GETHOSTNAME +HAVE_GETGROUPS +HAVE_GETENTROPY +HAVE_GETDTABLESIZE +HAVE_FTRUNCATE +HAVE_FSYNC +HAVE_FDATASYNC +HAVE_FCHOWNAT +HAVE_FCHDIR +HAVE_FACCESSAT +HAVE_EXECVPE +HAVE_EUIDACCESS +HAVE_DUP3 +HAVE_COPY_FILE_RANGE +HAVE_CHOWN +GL_GNULIB_MDA_WRITE +GL_GNULIB_MDA_UNLINK +GL_GNULIB_MDA_SWAB +GL_GNULIB_MDA_RMDIR +GL_GNULIB_MDA_READ +GL_GNULIB_MDA_LSEEK +GL_GNULIB_MDA_ISATTY +GL_GNULIB_MDA_GETPID +GL_GNULIB_MDA_GETCWD +GL_GNULIB_MDA_EXECVPE +GL_GNULIB_MDA_EXECVP +GL_GNULIB_MDA_EXECVE +GL_GNULIB_MDA_EXECV +GL_GNULIB_MDA_EXECLP +GL_GNULIB_MDA_EXECLE +GL_GNULIB_MDA_EXECL +GL_GNULIB_MDA_DUP2 +GL_GNULIB_MDA_DUP +GL_GNULIB_MDA_CLOSE +GL_GNULIB_MDA_CHDIR +GL_GNULIB_MDA_ACCESS +GL_GNULIB_WRITE +GL_GNULIB_USLEEP +GL_GNULIB_UNLINKAT +GL_GNULIB_UNLINK +GL_GNULIB_UNISTD_H_SIGPIPE +GL_GNULIB_UNISTD_H_NONBLOCKING +GL_GNULIB_UNISTD_H_GETOPT +GL_GNULIB_TTYNAME_R +GL_GNULIB_TRUNCATE +GL_GNULIB_SYMLINKAT +GL_GNULIB_SYMLINK +GL_GNULIB_SLEEP +GL_GNULIB_SETHOSTNAME +GL_GNULIB_RMDIR +GL_GNULIB_READLINKAT +GL_GNULIB_READLINK +GL_GNULIB_READ +GL_GNULIB_PWRITE +GL_GNULIB_PREAD +GL_GNULIB_PIPE2 +GL_GNULIB_PIPE +GL_GNULIB_LSEEK +GL_GNULIB_LINKAT +GL_GNULIB_LINK +GL_GNULIB_LCHOWN +GL_GNULIB_ISATTY +GL_GNULIB_GROUP_MEMBER +GL_GNULIB_GETUSERSHELL +GL_GNULIB_GETPASS_GNU +GL_GNULIB_GETPASS +GL_GNULIB_GETPAGESIZE +GL_GNULIB_GETOPT_POSIX +GL_GNULIB_GETLOGIN_R +GL_GNULIB_GETLOGIN +GL_GNULIB_GETHOSTNAME +GL_GNULIB_GETGROUPS +GL_GNULIB_GETENTROPY +GL_GNULIB_GETDTABLESIZE +GL_GNULIB_GETDOMAINNAME +GL_GNULIB_GETCWD +GL_GNULIB_FTRUNCATE +GL_GNULIB_FSYNC +GL_GNULIB_FDATASYNC +GL_GNULIB_FCHOWNAT +GL_GNULIB_FCHDIR +GL_GNULIB_FACCESSAT +GL_GNULIB_EXECVPE +GL_GNULIB_EXECVP +GL_GNULIB_EXECVE +GL_GNULIB_EXECV +GL_GNULIB_EXECLP +GL_GNULIB_EXECLE +GL_GNULIB_EXECL +GL_GNULIB_EUIDACCESS +GL_GNULIB_ENVIRON +GL_GNULIB_DUP3 +GL_GNULIB_DUP2 +GL_GNULIB_DUP +GL_GNULIB_COPY_FILE_RANGE +GL_GNULIB_CLOSE +GL_GNULIB_CHOWN +GL_GNULIB_CHDIR +GL_GNULIB_ACCESS +GL_COND_OBJ_CANONICALIZE_LGPL_FALSE +GL_COND_OBJ_CANONICALIZE_LGPL_TRUE +REPLACE_WCTOMB +REPLACE_UNSETENV +REPLACE_STRTOULL +REPLACE_STRTOUL +REPLACE_STRTOLL +REPLACE_STRTOLD +REPLACE_STRTOL +REPLACE_STRTOD +REPLACE_SETSTATE +REPLACE_SETENV +REPLACE_REALPATH +REPLACE_REALLOCARRAY +REPLACE_REALLOC_FOR_REALLOC_POSIX +REPLACE_REALLOC_FOR_REALLOC_GNU +REPLACE_RANDOM_R +REPLACE_RANDOM +REPLACE_QSORT_R +REPLACE_PUTENV +REPLACE_PTSNAME_R +REPLACE_PTSNAME +REPLACE_POSIX_MEMALIGN +REPLACE_MKSTEMP +REPLACE_MBTOWC +REPLACE_MALLOC_FOR_MALLOC_POSIX +REPLACE_MALLOC_FOR_MALLOC_GNU +REPLACE_INITSTATE +REPLACE_FREE +REPLACE_CANONICALIZE_FILE_NAME +REPLACE_CALLOC_FOR_CALLOC_POSIX +REPLACE_CALLOC_FOR_CALLOC_GNU +REPLACE_ALIGNED_ALLOC +HAVE_DECL_UNSETENV +HAVE_UNLOCKPT +HAVE_SYS_LOADAVG_H +HAVE_STRUCT_RANDOM_DATA +HAVE_STRTOULL +HAVE_STRTOUL +HAVE_STRTOLL +HAVE_STRTOLD +HAVE_STRTOL +HAVE_STRTOD +HAVE_DECL_SETSTATE +HAVE_SETSTATE +HAVE_DECL_SETENV +HAVE_SETENV +HAVE_SECURE_GETENV +HAVE_RPMATCH +HAVE_REALPATH +HAVE_REALLOCARRAY +HAVE_RANDOM_R +HAVE_RANDOM_H +HAVE_RANDOM +HAVE_QSORT_R +HAVE_PTSNAME_R +HAVE_PTSNAME +HAVE_POSIX_OPENPT +HAVE_POSIX_MEMALIGN +HAVE_MKSTEMPS +HAVE_MKSTEMP +HAVE_MKOSTEMPS +HAVE_MKOSTEMP +HAVE_MKDTEMP +HAVE_MBTOWC +HAVE_DECL_INITSTATE +HAVE_INITSTATE +HAVE_GRANTPT +HAVE_GETSUBOPT +HAVE_DECL_GETLOADAVG +HAVE_DECL_GCVT +HAVE_DECL_FCVT +HAVE_DECL_ECVT +HAVE_CANONICALIZE_FILE_NAME +HAVE_ATOLL +HAVE_ALIGNED_ALLOC +HAVE__EXIT +GL_GNULIB_MDA_PUTENV +GL_GNULIB_MDA_MKTEMP +GL_GNULIB_MDA_GCVT +GL_GNULIB_MDA_FCVT +GL_GNULIB_MDA_ECVT +GL_GNULIB_WCTOMB +GL_GNULIB_UNSETENV +GL_GNULIB_UNLOCKPT +GL_GNULIB_SYSTEM_POSIX +GL_GNULIB_STRTOULL +GL_GNULIB_STRTOUL +GL_GNULIB_STRTOLL +GL_GNULIB_STRTOLD +GL_GNULIB_STRTOL +GL_GNULIB_STRTOD +GL_GNULIB_SETENV +GL_GNULIB_SECURE_GETENV +GL_GNULIB_RPMATCH +GL_GNULIB_REALPATH +GL_GNULIB_REALLOC_POSIX +GL_GNULIB_REALLOC_GNU +GL_GNULIB_REALLOCARRAY +GL_GNULIB_RANDOM_R +GL_GNULIB_RANDOM +GL_GNULIB_QSORT_R +GL_GNULIB_PUTENV +GL_GNULIB_PTSNAME_R +GL_GNULIB_PTSNAME +GL_GNULIB_POSIX_OPENPT +GL_GNULIB_POSIX_MEMALIGN +GL_GNULIB_MKSTEMPS +GL_GNULIB_MKSTEMP +GL_GNULIB_MKOSTEMPS +GL_GNULIB_MKOSTEMP +GL_GNULIB_MKDTEMP +GL_GNULIB_MBTOWC +GL_GNULIB_MALLOC_POSIX +GL_GNULIB_MALLOC_GNU +GL_GNULIB_GRANTPT +GL_GNULIB_GETSUBOPT +GL_GNULIB_GETLOADAVG +GL_GNULIB_FREE_POSIX +GL_GNULIB_CANONICALIZE_FILE_NAME +GL_GNULIB_CALLOC_POSIX +GL_GNULIB_CALLOC_GNU +GL_GNULIB_ATOLL +GL_GNULIB_ALIGNED_ALLOC +GL_GNULIB__EXIT +GL_GNULIB_MDA_WCSDUP +GL_GNULIB_WCSFTIME +GL_GNULIB_WCSWIDTH +GL_GNULIB_WCSTOK +GL_GNULIB_WCSSTR +GL_GNULIB_WCSPBRK +GL_GNULIB_WCSSPN +GL_GNULIB_WCSCSPN +GL_GNULIB_WCSRCHR +GL_GNULIB_WCSCHR +GL_GNULIB_WCSDUP +GL_GNULIB_WCSXFRM +GL_GNULIB_WCSCOLL +GL_GNULIB_WCSNCASECMP +GL_GNULIB_WCSCASECMP +GL_GNULIB_WCSNCMP +GL_GNULIB_WCSCMP +GL_GNULIB_WCSNCAT +GL_GNULIB_WCSCAT +GL_GNULIB_WCPNCPY +GL_GNULIB_WCSNCPY +GL_GNULIB_WCPCPY +GL_GNULIB_WCSCPY +GL_GNULIB_WCSNLEN +GL_GNULIB_WCSLEN +GL_GNULIB_WMEMSET +GL_GNULIB_WMEMPCPY +GL_GNULIB_WMEMMOVE +GL_GNULIB_WMEMCPY +GL_GNULIB_WMEMCMP +GL_GNULIB_WMEMCHR +GL_GNULIB_WCWIDTH +GL_GNULIB_WCSNRTOMBS +GL_GNULIB_WCSRTOMBS +GL_GNULIB_WCRTOMB +GL_GNULIB_MBSNRTOWCS +GL_GNULIB_MBSRTOWCS +GL_GNULIB_MBRLEN +GL_GNULIB_MBRTOWC +GL_GNULIB_MBSINIT +GL_GNULIB_WCTOB +GL_GNULIB_BTOWC +GL_COND_OBJ_BTOWC_FALSE +GL_COND_OBJ_BTOWC_TRUE +LOCALE_FR +REPLACE_WCSTOK +REPLACE_WCSFTIME +REPLACE_WCSWIDTH +REPLACE_WCWIDTH +REPLACE_WCSNRTOMBS +REPLACE_WCSRTOMBS +REPLACE_WCRTOMB +REPLACE_MBSNRTOWCS +REPLACE_MBSRTOWCS +REPLACE_MBRLEN +REPLACE_MBRTOWC +REPLACE_MBSINIT +REPLACE_WCTOB +REPLACE_BTOWC +REPLACE_MBSTATE_T +HAVE_DECL_WCWIDTH +HAVE_DECL_WCSDUP +HAVE_DECL_WCTOB +HAVE_WCSFTIME +HAVE_WCSWIDTH +HAVE_WCSTOK +HAVE_WCSSTR +HAVE_WCSPBRK +HAVE_WCSSPN +HAVE_WCSCSPN +HAVE_WCSRCHR +HAVE_WCSCHR +HAVE_WCSDUP +HAVE_WCSXFRM +HAVE_WCSCOLL +HAVE_WCSNCASECMP +HAVE_WCSCASECMP +HAVE_WCSNCMP +HAVE_WCSCMP +HAVE_WCSNCAT +HAVE_WCSCAT +HAVE_WCPNCPY +HAVE_WCSNCPY +HAVE_WCPCPY +HAVE_WCSCPY +HAVE_WCSNLEN +HAVE_WCSLEN +HAVE_WMEMSET +HAVE_WMEMPCPY +HAVE_WMEMMOVE +HAVE_WMEMCPY +HAVE_WMEMCMP +HAVE_WMEMCHR +HAVE_WCSNRTOMBS +HAVE_WCSRTOMBS +HAVE_WCRTOMB +HAVE_MBSNRTOWCS +HAVE_MBSRTOWCS +HAVE_MBRLEN +HAVE_MBRTOWC +HAVE_MBSINIT +HAVE_BTOWC +GL_GENERATE_ALLOCA_H_FALSE +GL_GENERATE_ALLOCA_H_TRUE +ALLOCA_H +HAVE_ALLOCA_H +ALLOCA +LTALLOCA +GL_COND_LIBTOOL_FALSE +GL_COND_LIBTOOL_TRUE +LEXLIB +LEX_OUTPUT_ROOT +LEX +LIBCOMPRESS +compressor +zstd +lzip +lzma +xz +bzip2 +compress +gzip +pic +grap +refer +vgrind +col +TBL_X_FORMAT +tbl +neqn +eqn +preconv +troff_as_troff_input +TROFF +troff_is_groff +troff +nroff +pager +grep +tr +browser +cat +LIBMAN_EXPORT_LDFLAGS +LT_SYS_LIBRARY_PATH +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +DLLTOOL +OBJDUMP +FILECMD +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +SED +LIBTOOL +LN_S +WARN_CFLAGS +RANLIB +ARFLAGS +ac_ct_AR +AR +EGREP +GREP +CPP +snapdir +BUILD_MANUAL_FALSE +BUILD_MANUAL_TRUE +MANDIR_LAYOUT +INSTALL_SYSTEMD_TIMER_FALSE +INSTALL_SYSTEMD_TIMER_TRUE +systemdsystemunitdir +INSTALL_SYSTEMD_TMPFILES_FALSE +INSTALL_SYSTEMD_TMPFILES_TRUE +systemdtmpfilesdir +override_dir +sections +config_file_dirname +config_file_basename +config_file +man_mode +cache_top_owner +man_owner +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +roff_version +date +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +CSCOPE +ETAGS +CTAGS +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +runstatedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL +am__quote' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_silent_rules +enable_dependency_tracking +enable_cache_owner +enable_setuid +enable_undoc +with_device +with_db +with_config_file +with_sections +enable_automatic_create +enable_automatic_update +enable_cats +with_override_dir +with_systemdtmpfilesdir +with_systemdsystemunitdir +enable_mandirs +enable_manual +with_snapdir +enable_largefile +enable_year2038 +enable_threads +enable_gcc_warnings +enable_static +enable_shared +with_pic +enable_fast_install +with_aix_soname +with_gnu_ld +with_sysroot +enable_libtool_lock +with_browser +with_pager +with_nroff +enable_mb_groff +with_eqn +with_neqn +with_tbl +with_col +with_vgrind +with_refer +with_grap +with_gzip +with_compress +with_bzip2 +with_xz +with_lzma +with_lzip +with_zstd +enable_cross_guesses +with_included_regex +enable_nls +enable_rpath +with_libiconv_prefix +with_libintl_prefix +with_libseccomp +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +CPP +LT_SYS_LIBRARY_PATH +libpipeline_CFLAGS +libpipeline_LIBS +libseccomp_CFLAGS +libseccomp_LIBS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: \`$ac_useropt'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: \`$ac_useropt'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: \`$ac_useropt'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: \`$ac_useropt'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir runstatedir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures man-db 2.11.2 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/man-db] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of man-db 2.11.2:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --enable-cache-owner=ARG + make system-wide cache files be owned by user ARG + [arg=man] + --disable-cache-owner don't constrain ownership of system-wide cache files + --enable-setuid install man setuid + --disable-setuid don't install man setuid + --enable-undoc=COMMAND suggest COMMAND for missing manual pages + --enable-automatic-create + allow man to create user databases on the fly + --disable-automatic-update + don't allow man to update databases on the fly + --disable-cats don't allow man to create/update cat files + --enable-mandirs=OS select manual page hierarchy organization (GNU, + HPUX, IRIX, Solaris, BSD) + --disable-manual don't build or install the man-db manual + --disable-largefile omit support for large files + --disable-year2038 omit support for timestamps past the year 2038 + --enable-threads={isoc|posix|isoc+posix|windows} + specify multithreading API + --disable-threads build without multithread safety + --enable-gcc-warnings=TYPE + control generation of GCC warnings. The TYPE 'no' + disables warnings; 'yes' generates cheap warnings if + available (default); 'expensive' in addition + generates expensive-to-compute warnings if available + --enable-static[=PKGS] build static libraries [default=no] + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --enable-mb-groff expect groff with Debian multibyte patch or real + Unicode support + --enable-cross-guesses={conservative|risky} + specify policy for cross-compilation guesses + --disable-nls do not use Native Language Support + --disable-rpath do not hardcode runtime library paths + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-device=DEVICE use nroff with the output device DEVICE + --with-db=LIBRARY use database library LIBRARY (db5, db4, db3, db2, + db1, db, gdbm, ndbm) + --with-config-file=CF use config file CF [CF=SYSCONFDIR/man_db.conf] + --with-sections=SECTIONS + use manual page sections SECTIONS [1 n l 8 3 0 2 + 3type 5 4 9 6 7] + --with-override-dir=OVERRIDE + use OVERRIDE as relative override dir inside the man + path - the first directory to be searched when + looking for man pages + --with-systemdtmpfilesdir=DIR + Directory for systemd tmpfiles configuration + (disable with "no") + --with-systemdsystemunitdir=DIR + Directory for systemd service files (disable with + "no") + --with-snapdir=DIR use snap system directory DIR [DIR=/snap] + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use + both] + --with-aix-soname=aix|svr4|both + shared library versioning (aka "SONAME") variant to + provide on AIX, [default=aix]. + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot[=DIR] Search for dependent libraries within DIR (or the + compiler's sysroot if not specified). + --with-browser=BROWSER use BROWSER as default web browser + --with-pager=PAGER use PAGER as default pager + --with-nroff=NROFF use NROFF as roff formatter for character devices + --with-eqn=EQN use EQN to preprocess equations + --with-neqn=NEQN use NEQN to preprocess equations for character + devices + --with-tbl=TBL use TBL to preprocess tables + --with-col=COL use COL to filter formatting characters from output + --with-vgrind=VGRIND use VGRIND to preprocess program sources + --with-refer=REFER use REFER to preprocess bibliographic references + --with-grap=GRAP use GRAP to preprocess graphs + --with-pic=PIC use PIC to preprocess pictures + --with-gzip=GZIP use GZIP as GNU compression utility + --with-compress=COMPRESS + use COMPRESS as UNIX compression utility + --with-bzip2=BZIP2 use BZIP2 as block-sorting compression utility + --with-xz=XZ use XZ as Lempel-Ziv-Markov chain-Algorithm + compression utility + --with-lzma=LZMA use LZMA as Lempel-Ziv-Markov chain-Algorithm + compression utility + --with-lzip=LZIP use LZIP as Lempel-Ziv-Markov chain-Algorithm + compression utility + --with-zstd=ZSTD use ZSTD as LZ77/entropy-coding compression utility + --without-included-regex + don't compile regex; this is the default on systems + with recent-enough versions of the GNU C Library + (use with caution on other systems). + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib + --without-libiconv-prefix don't search for libiconv in includedir and libdir + --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib + --without-libintl-prefix don't search for libintl in includedir and libdir + --without-libseccomp do not confine subprocesses using seccomp + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + CPP C preprocessor + LT_SYS_LIBRARY_PATH + User-defined run-time library search path. + libpipeline_CFLAGS + C compiler flags for libpipeline, overriding pkg-config + libpipeline_LIBS + linker flags for libpipeline, overriding pkg-config + libseccomp_CFLAGS + C compiler flags for libseccomp, overriding pkg-config + libseccomp_LIBS + linker flags for libseccomp, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for configure.gnu first; this name is used for a wrapper for + # Metaconfig's "Configure" on case-insensitive file systems. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +man-db configure 2.11.2 +generated by GNU Autoconf 2.71 + +Copyright (C) 2021 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest.beam + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$3=yes" +else $as_nop + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + } +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. */ + +#include +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main (void) +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + eval "$3=yes" +else $as_nop + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + } +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_check_type LINENO TYPE VAR INCLUDES +# ------------------------------------------- +# Tests whether TYPE exists after having included INCLUDES, setting cache +# variable VAR accordingly. +ac_fn_c_check_type () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + eval "$3=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_type + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that +# executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: program exited with status $ac_status" >&5 + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR +# ------------------------------------------------------------------ +# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR. +ac_fn_check_decl () +{ + ac_save_ac_compile="$ac_compile" + if test -n "$ac_compile_for_check_decl"; then + ac_compile="$ac_compile_for_check_decl" + fi + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + as_decl_name=`echo $2|sed 's/ *(.*//'` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +printf %s "checking whether $as_decl_name is declared... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` + eval ac_save_FLAGS=\$$6 + as_fn_append $6 " $5" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +#ifndef $as_decl_name +#ifdef __cplusplus + (void) $as_decl_use; +#else + (void) $as_decl_name; +#endif +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$3=yes" +else $as_nop + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + eval $6=\$ac_save_FLAGS + +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + ac_compile="$ac_save_ac_compile" + +} # ac_fn_check_decl + +# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES +# -------------------------------------------- +# Tries to find the compile-time value of EXPR in a program that includes +# INCLUDES, setting VAR accordingly. Returns whether the value could be +# computed +ac_fn_c_compute_int () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +static int test_array [1 - 2 * !(($2) >= 0)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_lo=0 ac_mid=0 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_hi=$ac_mid; break +else $as_nop + as_fn_arith $ac_mid + 1 && ac_lo=$as_val + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + done +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +static int test_array [1 - 2 * !(($2) < 0)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_hi=-1 ac_mid=-1 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +static int test_array [1 - 2 * !(($2) >= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_lo=$ac_mid; break +else $as_nop + as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + done +else $as_nop + ac_lo= ac_hi= +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_hi=$ac_mid +else $as_nop + as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +done +case $ac_lo in #(( +?*) eval "$3=\$ac_lo"; ac_retval=0 ;; +'') ac_retval=1 ;; +esac + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +static long int longval (void) { return $2; } +static unsigned long int ulongval (void) { return $2; } +#include +#include +int +main (void) +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (($2) < 0) + { + long int i = longval (); + if (i != ($2)) + return 1; + fprintf (f, "%ld", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ($2)) + return 1; + fprintf (f, "%lu", i); + } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + echo >>conftest.val; read $3 &5 +printf %s "checking for $2.$3... " >&6; } +if eval test \${$4+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main (void) +{ +static $2 ac_aggr; +if (ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$4=yes" +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main (void) +{ +static $2 ac_aggr; +if (sizeof ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$4=yes" +else $as_nop + eval "$4=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$4 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_member +ac_configure_args_raw= +for ac_arg +do + case $ac_arg in + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append ac_configure_args_raw " '$ac_arg'" +done + +case $ac_configure_args_raw in + *$as_nl*) + ac_safe_unquote= ;; + *) + ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. + ac_unsafe_a="$ac_unsafe_z#~" + ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" + ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; +esac + +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by man-db $as_me 2.11.2, which was +generated by GNU Autoconf 2.71. Invocation command line was + + $ $0$ac_configure_args_raw + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + printf "%s\n" "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Sanitize IFS. + IFS=" "" $as_nl" + # Save into config.log some information that might help in debugging. + { + echo + + printf "%s\n" "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + printf "%s\n" "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + printf "%s\n" "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + printf "%s\n" "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + printf "%s\n" "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + printf "%s\n" "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + printf "%s\n" "$as_me: caught signal $ac_signal" + printf "%s\n" "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +printf "%s\n" "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +if test -n "$CONFIG_SITE"; then + ac_site_files="$CONFIG_SITE" +elif test "x$prefix" != xNONE; then + ac_site_files="$prefix/share/config.site $prefix/etc/config.site" +else + ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" +fi + +for ac_site_file in $ac_site_files +do + case $ac_site_file in #( + */*) : + ;; #( + *) : + ac_site_file=./$ac_site_file ;; +esac + if test -f "$ac_site_file" && test -r "$ac_site_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +printf "%s\n" "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +printf "%s\n" "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" +# Test code for whether the C compiler supports C89 (global declarations) +ac_c_conftest_c89_globals=' +/* Does the compiler advertise C89 conformance? + Do not test the value of __STDC__, because some compilers set it to 0 + while being otherwise adequately conformant. */ +#if !defined __STDC__ +# error "Compiler does not advertise C89 conformance" +#endif + +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ +struct buf { int x; }; +struct buf * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not \xHH hex character constants. + These do not provoke an error unfortunately, instead are silently treated + as an "x". The following induces an error, until -std is added to get + proper ANSI mode. Curiously \x00 != x always comes out true, for an + array size at least. It is necessary to write \x00 == 0 to get something + that is true only with -std. */ +int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) '\''x'\'' +int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), + int, int);' + +# Test code for whether the C compiler supports C89 (body of main). +ac_c_conftest_c89_main=' +ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); +' + +# Test code for whether the C compiler supports C99 (global declarations) +ac_c_conftest_c99_globals=' +// Does the compiler advertise C99 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L +# error "Compiler does not advertise C99 conformance" +#endif + +#include +extern int puts (const char *); +extern int printf (const char *, ...); +extern int dprintf (int, const char *, ...); +extern void *malloc (size_t); + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +// dprintf is used instead of fprintf to avoid needing to declare +// FILE and stderr. +#define debug(...) dprintf (2, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + #error "your preprocessor is broken" +#endif +#if BIG_OK +#else + #error "your preprocessor is broken" +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static bool +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str = ""; + int number = 0; + float fnumber = 0; + + while (*format) + { + switch (*format++) + { + case '\''s'\'': // string + str = va_arg (args_copy, const char *); + break; + case '\''d'\'': // int + number = va_arg (args_copy, int); + break; + case '\''f'\'': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); + + return *str && number && fnumber; +} +' + +# Test code for whether the C compiler supports C99 (body of main). +ac_c_conftest_c99_main=' + // Check bool. + _Bool success = false; + success |= (argc != 0); + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[0] = argv[0][0]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' + || dynamic_array[ni.number - 1] != 543); +' + +# Test code for whether the C compiler supports C11 (global declarations) +ac_c_conftest_c11_globals=' +// Does the compiler advertise C11 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L +# error "Compiler does not advertise C11 conformance" +#endif + +// Check _Alignas. +char _Alignas (double) aligned_as_double; +char _Alignas (0) no_special_alignment; +extern char aligned_as_int; +char _Alignas (0) _Alignas (int) aligned_as_int; + +// Check _Alignof. +enum +{ + int_alignment = _Alignof (int), + int_array_alignment = _Alignof (int[100]), + char_alignment = _Alignof (char) +}; +_Static_assert (0 < -_Alignof (int), "_Alignof is signed"); + +// Check _Noreturn. +int _Noreturn does_not_return (void) { for (;;) continue; } + +// Check _Static_assert. +struct test_static_assert +{ + int x; + _Static_assert (sizeof (int) <= sizeof (long int), + "_Static_assert does not work in struct"); + long int y; +}; + +// Check UTF-8 literals. +#define u8 syntax error! +char const utf8_literal[] = u8"happens to be ASCII" "another string"; + +// Check duplicate typedefs. +typedef long *long_ptr; +typedef long int *long_ptr; +typedef long_ptr long_ptr; + +// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. +struct anonymous +{ + union { + struct { int i; int j; }; + struct { int k; long int l; } w; + }; + int m; +} v1; +' + +# Test code for whether the C compiler supports C11 (body of main). +ac_c_conftest_c11_main=' + _Static_assert ((offsetof (struct anonymous, i) + == offsetof (struct anonymous, w.k)), + "Anonymous union alignment botch"); + v1.i = 2; + v1.w.k = 5; + ok |= v1.i != 5; +' + +# Test code for whether the C compiler supports C11 (complete). +ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} +${ac_c_conftest_c11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + ${ac_c_conftest_c11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C99 (complete). +ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + return ok; +} +" + +# Test code for whether the C compiler supports C89 (complete). +ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + return ok; +} +" + +as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" +as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" +as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" +as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" +as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" +as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" +as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" +as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" +as_fn_append ac_header_c_list " wchar.h wchar_h HAVE_WCHAR_H" +as_fn_append ac_header_c_list " minix/config.h minix_config_h HAVE_MINIX_CONFIG_H" +as_fn_append ac_func_c_list " getuid HAVE_GETUID" +as_fn_append ac_func_c_list " geteuid HAVE_GETEUID" +as_fn_append ac_func_c_list " getresuid HAVE_GETRESUID" +as_fn_append ac_func_c_list " getgid HAVE_GETGID" +as_fn_append ac_func_c_list " getegid HAVE_GETEGID" +as_fn_append ac_func_c_list " getresgid HAVE_GETRESGID" +as_fn_append ac_func_c_list " setresuid HAVE_SETRESUID" +as_fn_append ac_func_c_list " setreuid HAVE_SETREUID" +as_fn_append ac_func_c_list " seteuid HAVE_SETEUID" +as_fn_append ac_func_c_list " setresgid HAVE_SETRESGID" +as_fn_append ac_func_c_list " setregid HAVE_SETREGID" +as_fn_append ac_func_c_list " setegid HAVE_SETEGID" +as_fn_append ac_func_c_list " flockfile HAVE_FLOCKFILE" +as_fn_append ac_func_c_list " funlockfile HAVE_FUNLOCKFILE" +as_fn_append ac_header_c_list " features.h features_h HAVE_FEATURES_H" +as_fn_append ac_header_c_list " linewrap.h linewrap_h HAVE_LINEWRAP_H" +as_fn_append ac_func_c_list " btowc HAVE_BTOWC" +as_fn_append ac_func_c_list " canonicalize_file_name HAVE_CANONICALIZE_FILE_NAME" +as_fn_append ac_func_c_list " faccessat HAVE_FACCESSAT" +as_fn_append ac_func_c_list " realpath HAVE_REALPATH" +as_fn_append ac_func_c_list " lstat HAVE_LSTAT" +as_fn_append ac_header_c_list " sys/param.h sys_param_h HAVE_SYS_PARAM_H" +as_fn_append ac_func_c_list " chown HAVE_CHOWN" +as_fn_append ac_func_c_list " fchown HAVE_FCHOWN" +as_fn_append ac_func_c_list " _set_invalid_parameter_handler HAVE__SET_INVALID_PARAMETER_HANDLER" +as_fn_append ac_header_c_list " sys/socket.h sys_socket_h HAVE_SYS_SOCKET_H" +as_fn_append ac_func_c_list " fchdir HAVE_FCHDIR" +as_fn_append ac_header_c_list " dirent.h dirent_h HAVE_DIRENT_H" +as_fn_append ac_func_c_list " fcntl HAVE_FCNTL" +as_fn_append ac_func_c_list " symlink HAVE_SYMLINK" +as_fn_append ac_func_c_list " fdopendir HAVE_FDOPENDIR" +as_fn_append ac_func_c_list " mempcpy HAVE_MEMPCPY" +as_fn_append ac_func_c_list " flock HAVE_FLOCK" +as_fn_append ac_header_c_list " fnmatch.h fnmatch_h HAVE_FNMATCH_H" +as_fn_append ac_func_c_list " fnmatch HAVE_FNMATCH" +as_fn_append ac_func_c_list " mbsrtowcs HAVE_MBSRTOWCS" +gl_fnmatch_required=GNU +as_fn_append ac_func_c_list " fstatat HAVE_FSTATAT" +as_fn_append ac_func_c_list " getdelim HAVE_GETDELIM" +as_fn_append ac_func_c_list " getdtablesize HAVE_GETDTABLESIZE" +as_fn_append ac_func_c_list " getlogin_r HAVE_GETLOGIN_R" +gl_getopt_required=GNU +as_fn_append ac_header_c_list " getopt.h getopt_h HAVE_GETOPT_H" +as_fn_append ac_header_c_list " sys/cdefs.h sys_cdefs_h HAVE_SYS_CDEFS_H" +as_fn_append ac_func_c_list " getprogname HAVE_GETPROGNAME" +as_fn_append ac_func_c_list " getexecname HAVE_GETEXECNAME" +as_fn_append ac_func_c_list " getrandom HAVE_GETRANDOM" +as_fn_append ac_func_c_list " timespec_get HAVE_TIMESPEC_GET" +as_fn_append ac_header_c_list " sys/time.h sys_time_h HAVE_SYS_TIME_H" +as_fn_append ac_func_c_list " gettimeofday HAVE_GETTIMEOFDAY" +as_fn_append ac_header_c_list " glob.h glob_h HAVE_GLOB_H" +as_fn_append ac_func_c_list " glob HAVE_GLOB" +as_fn_append ac_func_c_list " glob_pattern_p HAVE_GLOB_PATTERN_P" +as_fn_append ac_func_c_list " getpwnam_r HAVE_GETPWNAM_R" +as_fn_append ac_header_c_list " threads.h threads_h HAVE_THREADS_H" +as_fn_append ac_header_c_list " limits.h limits_h HAVE_LIMITS_H" +as_fn_append ac_func_c_list " isblank HAVE_ISBLANK" +as_fn_append ac_header_c_list " langinfo.h langinfo_h HAVE_LANGINFO_H" +as_fn_append ac_func_c_list " lchmod HAVE_LCHMOD" +as_fn_append ac_header_c_list " xlocale.h xlocale_h HAVE_XLOCALE_H" +as_fn_append ac_func_c_list " mbsinit HAVE_MBSINIT" +as_fn_append ac_func_c_list " mbrtowc HAVE_MBRTOWC" +as_fn_append ac_header_c_list " sys/mman.h sys_mman_h HAVE_SYS_MMAN_H" +as_fn_append ac_func_c_list " mprotect HAVE_MPROTECT" +as_fn_append ac_func_c_list " mkstemp HAVE_MKSTEMP" +as_fn_append ac_func_c_list " nl_langinfo HAVE_NL_LANGINFO" +as_fn_append ac_func_c_list " openat HAVE_OPENAT" +as_fn_append ac_func_c_list " pipe HAVE_PIPE" +as_fn_append ac_header_c_list " sys/select.h sys_select_h HAVE_SYS_SELECT_H" +as_fn_append ac_func_c_list " pselect HAVE_PSELECT" +as_fn_append ac_func_c_list " pthread_sigmask HAVE_PTHREAD_SIGMASK" +as_fn_append ac_func_c_list " readlink HAVE_READLINK" +as_fn_append ac_func_c_list " readlinkat HAVE_READLINKAT" +as_fn_append ac_header_c_list " malloc.h malloc_h HAVE_MALLOC_H" +as_fn_append ac_func_c_list " iswctype HAVE_ISWCTYPE" +as_fn_append ac_func_c_list " link HAVE_LINK" +as_fn_append ac_func_c_list " renameat HAVE_RENAMEAT" +as_fn_append ac_func_c_list " renameat2 HAVE_RENAMEAT2" +as_fn_append ac_func_c_list " setenv HAVE_SETENV" +as_fn_append ac_func_c_list " sigaction HAVE_SIGACTION" +as_fn_append ac_func_c_list " sigaltstack HAVE_SIGALTSTACK" +as_fn_append ac_func_c_list " siginterrupt HAVE_SIGINTERRUPT" +as_fn_append ac_func_c_list " sleep HAVE_SLEEP" +as_fn_append ac_func_c_list " strndup HAVE_STRNDUP" +as_fn_append ac_header_c_list " sys/file.h sys_file_h HAVE_SYS_FILE_H" +as_fn_append ac_header_c_list " sys/ioctl.h sys_ioctl_h HAVE_SYS_IOCTL_H" +as_fn_append ac_header_c_list " sys/random.h sys_random_h HAVE_SYS_RANDOM_H" +as_fn_append ac_header_c_list " sys/uio.h sys_uio_h HAVE_SYS_UIO_H" +as_fn_append ac_header_c_list " sysexits.h sysexits_h HAVE_SYSEXITS_H" +as_fn_append ac_header_c_list " termios.h termios_h HAVE_TERMIOS_H" +as_fn_append ac_func_c_list " unlinkat HAVE_UNLINKAT" +as_fn_append ac_header_c_list " utime.h utime_h HAVE_UTIME_H" +as_fn_append ac_func_c_list " futimes HAVE_FUTIMES" +as_fn_append ac_func_c_list " futimesat HAVE_FUTIMESAT" +as_fn_append ac_func_c_list " futimens HAVE_FUTIMENS" +as_fn_append ac_func_c_list " utimensat HAVE_UTIMENSAT" +as_fn_append ac_func_c_list " lutimes HAVE_LUTIMES" +as_fn_append ac_func_c_list " vasnprintf HAVE_VASNPRINTF" +as_fn_append ac_func_c_list " snprintf HAVE_SNPRINTF" +as_fn_append ac_header_c_list " crtdefs.h crtdefs_h HAVE_CRTDEFS_H" +as_fn_append ac_func_c_list " wcrtomb HAVE_WCRTOMB" +as_fn_append ac_func_c_list " iswcntrl HAVE_ISWCNTRL" +as_fn_append ac_header_c_list " wctype.h wctype_h HAVE_WCTYPE_H" +as_fn_append ac_func_c_list " wmempcpy HAVE_WMEMPCPY" +gt_needs="$gt_needs " + +# Auxiliary files required by this configure script. +ac_aux_files="config.rpath ltmain.sh ar-lib config.guess config.sub compile missing install-sh" + +# Locations in which to look for auxiliary files. +ac_aux_dir_candidates="${srcdir}/build-aux" + +# Search for a directory containing all of the required auxiliary files, +# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates. +# If we don't find one directory that contains all the files we need, +# we report the set of missing files from the *first* directory in +# $ac_aux_dir_candidates and give up. +ac_missing_aux_files="" +ac_first_candidate=: +printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in $ac_aux_dir_candidates +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + as_found=: + + printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 + ac_aux_dir_found=yes + ac_install_sh= + for ac_aux in $ac_aux_files + do + # As a special case, if "install-sh" is required, that requirement + # can be satisfied by any of "install-sh", "install.sh", or "shtool", + # and $ac_install_sh is set appropriately for whichever one is found. + if test x"$ac_aux" = x"install-sh" + then + if test -f "${as_dir}install-sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 + ac_install_sh="${as_dir}install-sh -c" + elif test -f "${as_dir}install.sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 + ac_install_sh="${as_dir}install.sh -c" + elif test -f "${as_dir}shtool"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 + ac_install_sh="${as_dir}shtool install -c" + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} install-sh" + else + break + fi + fi + else + if test -f "${as_dir}${ac_aux}"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}" + else + break + fi + fi + fi + done + if test "$ac_aux_dir_found" = yes; then + ac_aux_dir="$as_dir" + break + fi + ac_first_candidate=false + + as_found=false +done +IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 +fi + + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +if test -f "${ac_aux_dir}config.guess"; then + ac_config_guess="$SHELL ${ac_aux_dir}config.guess" +fi +if test -f "${ac_aux_dir}config.sub"; then + ac_config_sub="$SHELL ${ac_aux_dir}config.sub" +fi +if test -f "$ac_aux_dir/configure"; then + ac_configure="$SHELL ${ac_aux_dir}configure" +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' + and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +am__api_version='1.16' + + + + # Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +printf %s "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if test ${ac_cv_path_install+y} +then : + printf %s "(cached) " >&6 +else $as_nop + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + # Account for fact that we put trailing slashes in our PATH walk. +case $as_dir in #(( + ./ | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test ${ac_cv_path_install+y}; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +printf "%s\n" "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +printf %s "checking whether build environment is sane... " >&6; } +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"` + + +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` + + + if test x"${MISSING+set}" != xset; then + MISSING="\${SHELL} '$am_aux_dir/missing'" +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_STRIP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +printf "%s\n" "$STRIP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_STRIP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +printf "%s\n" "$ac_ct_STRIP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5 +printf %s "checking for a race-free mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if test ${ac_cv_path_mkdir+y} +then : + printf %s "(cached) " >&6 +else $as_nop + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue + case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir ('*'coreutils) '* | \ + 'BusyBox '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test ${ac_cv_path_mkdir+y}; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +printf "%s\n" "$MKDIR_P" >&6; } + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AWK+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +printf "%s\n" "$AWK" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval test \${ac_cv_prog_make_${ac_make}_set+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + SET_MAKE= +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +# Check whether --enable-silent-rules was given. +if test ${enable_silent_rules+y} +then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +printf %s "checking whether $am_make supports nested variables... " >&6; } +if test ${am_cv_make_support_nested_variables+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if printf "%s\n" 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +printf "%s\n" "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='man-db' + VERSION='2.11.2' + + +printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h + + +printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + + + +# Variables for tags utilities; see am/tags.am +if test -z "$CTAGS"; then + CTAGS=ctags +fi + +if test -z "$ETAGS"; then + ETAGS=etags +fi + +if test -z "$CSCOPE"; then + CSCOPE=cscope +fi + + + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + +# Check whether --enable-silent-rules was given. +if test ${enable_silent_rules+y} +then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=0;; +esac +am_make=${MAKE-make} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +printf %s "checking whether $am_make supports nested variables... " >&6; } +if test ${am_cv_make_support_nested_variables+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if printf "%s\n" 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +printf "%s\n" "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + + + + + + + + + + + + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 +printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; } +cat > confinc.mk << 'END' +am__doit: + @echo this is the am__doit target >confinc.out +.PHONY: am__doit +END +am__include="#" +am__quote= +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 + (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + case $?:`cat confinc.out 2>/dev/null` in #( + '0:this is the am__doit target') : + case $s in #( + BSD) : + am__include='.include' am__quote='"' ;; #( + *) : + am__include='include' am__quote='' ;; +esac ;; #( + *) : + ;; +esac + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +printf "%s\n" "${_am_result}" >&6; } + +# Check whether --enable-dependency-tracking was given. +if test ${enable_dependency_tracking+y} +then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +fi + + +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion -version; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +printf %s "checking whether the C compiler works... " >&6; } +ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else $as_nop + ac_file='' +fi +if test -z "$ac_file" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +printf %s "checking for C compiler default output file name... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +printf "%s\n" "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +printf %s "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +printf "%s\n" "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +printf %s "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +printf "%s\n" "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +printf %s "checking for suffix of object files... " >&6; } +if test ${ac_cv_objext+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +printf "%s\n" "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_compiler_gnu=yes +else $as_nop + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+y} +ac_save_CFLAGS=$CFLAGS +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_g=yes +else $as_nop + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +ac_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c11=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c89_program +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 +fi +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +printf %s "checking whether $CC understands -c and -o together... " >&6; } +if test ${am_cv_prog_cc_c_o+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +printf "%s\n" "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler is clang" >&5 +printf %s "checking whether the compiler is clang... " >&6; } +if test ${gl_cv_compiler_clang+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #ifdef __clang__ + barfbarf + #endif + +int +main (void) +{ + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_compiler_clang=no +else $as_nop + gl_cv_compiler_clang=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_compiler_clang" >&5 +printf "%s\n" "$gl_cv_compiler_clang" >&6; } + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compiler option needed when checking for declarations" >&5 +printf %s "checking for compiler option needed when checking for declarations... " >&6; } +if test ${gl_cv_compiler_check_decl_option+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test $gl_cv_compiler_clang = yes; then + save_ac_compile="$ac_compile" + ac_compile="$ac_compile -Werror=implicit-function-declaration" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_compiler_check_decl_option='-Werror=implicit-function-declaration' +else $as_nop + gl_cv_compiler_check_decl_option=none +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_compile="$save_ac_compile" + else + gl_cv_compiler_check_decl_option=none + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_compiler_check_decl_option" >&5 +printf "%s\n" "$gl_cv_compiler_check_decl_option" >&6; } + if test "x$gl_cv_compiler_check_decl_option" != xnone; then + ac_compile_for_check_decl="$ac_compile $gl_cv_compiler_check_decl_option" + else + ac_compile_for_check_decl="$ac_compile" + fi + + +depcc="$CC" am_compiler_list= + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +printf %s "checking dependency style of $depcc... " >&6; } +if test ${am_cv_CC_dependencies_compiler_type+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +ac_header= ac_cache= +for ac_item in $ac_header_c_list +do + if test $ac_cache; then + ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" + if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then + printf "%s\n" "#define $ac_item 1" >> confdefs.h + fi + ac_header= ac_cache= + elif test $ac_header; then + ac_cache=$ac_item + else + ac_header=$ac_item + fi +done + + + + + + + + +if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes +then : + +printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h + +fi + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 +printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; } +if test ${ac_cv_safe_to_define___extensions__+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# define __EXTENSIONS__ 1 + $ac_includes_default +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_safe_to_define___extensions__=yes +else $as_nop + ac_cv_safe_to_define___extensions__=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 +printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5 +printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; } +if test ${ac_cv_should_define__xopen_source+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_should_define__xopen_source=no + if test $ac_cv_header_wchar_h = yes +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + mbstate_t x; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #define _XOPEN_SOURCE 500 + #include + mbstate_t x; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_should_define__xopen_source=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5 +printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; } + + printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h + + printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _OPENBSD_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h + + printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h + + if test $ac_cv_header_minix_config_h = yes +then : + MINIX=yes + printf "%s\n" "#define _MINIX 1" >>confdefs.h + + printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h + +else $as_nop + MINIX= +fi + if test $ac_cv_safe_to_define___extensions__ = yes +then : + printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h + +fi + if test $ac_cv_should_define__xopen_source = yes +then : + printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h + +fi + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if tar --sort=name works" >&5 +printf %s "checking if tar --sort=name works... " >&6; } +rm -rf conftest.dir +mkdir conftest.dir +echo GrepMe > conftest.dir/file +{ echo "$as_me:$LINENO: ${TAR-tar} chof - conftest.dir --sort=name >conftest.tar" >&5 + (${TAR-tar} chof - conftest.dir --sort=name >conftest.tar) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +if test -s conftest.tar; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + am__tar="$am__tar --sort=name" +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi +rm -rf conftest.dir + + +ac_config_headers="$ac_config_headers config.h" + + + + # Make sure we can run config.sub. +$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5 + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +printf %s "checking build system type... " >&6; } +if test ${ac_cv_build+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +printf "%s\n" "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +printf %s "checking host system type... " >&6; } +if test ${ac_cv_host+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` || + as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +printf "%s\n" "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + + +# Define below date and version information to be put into man pages etc. +date=2023-01-08 +roff_version=`echo 2.11.2 | sed 's/-/\\-/g'` + +# Explicitly check for pkg-config early on, since otherwise the conditional +# calls in MAN_ARG_SYSTEMDTMPFILESDIR and MAN_ARG_SYSTEMDSYSTEMUNITDIR are +# problematic. + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_PKG_CONFIG+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +printf "%s\n" "$PKG_CONFIG" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_ac_pt_PKG_CONFIG+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + PKG_CONFIG="" + fi +fi + +# We have to be a bit naughty here and supply options. +# The autoconf literature states that only features that can be separately +# 'built' should use --enable and friends. Oh well... + + + + + case "$host_os" in + openbsd*) + +printf "%s\n" "#define _ISOC11_SOURCE 1" >>confdefs.h + + ;; + esac + +ac_func= +for ac_item in $ac_func_c_list +do + if test $ac_func; then + ac_fn_c_check_func "$LINENO" $ac_func ac_cv_func_$ac_func + if eval test \"x\$ac_cv_func_$ac_func\" = xyes; then + echo "#define $ac_item 1" >> confdefs.h + fi + ac_func= + else + ac_func=$ac_item + fi +done + + + + + + + + + + + + + + + + + + + +# Check whether --enable-cache-owner was given. +if test ${enable_cache_owner+y} +then : + enableval=$enable_cache_owner; if test "$enableval" = "yes" + then + enableval=man + fi + if test "$enableval" = "no" + then + man_owner= + else + man_owner=$enableval + fi +else $as_nop + if test "$ac_cv_func_getuid" = yes + then + man_owner=man + else + man_owner= + fi +fi + +if test "$man_owner" && test "$ac_cv_func_getuid" != yes +then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: --enable-cache-owner is not implemented on this platform" >&5 +printf "%s\n" "$as_me: WARNING: --enable-cache-owner is not implemented on this platform" >&2;} + man_owner= +fi +if test "$man_owner" +then + cache_top_owner="$man_owner" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: System-wide cache files will be owned by $man_owner" >&5 +printf "%s\n" "$as_me: System-wide cache files will be owned by $man_owner" >&6;} + +printf "%s\n" "#define MAN_OWNER \"$man_owner\"" >>confdefs.h + +else + cache_top_owner=root + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: System-wide cache files will have unconstrained ownership" >&5 +printf "%s\n" "$as_me: System-wide cache files will have unconstrained ownership" >&6;} +fi + + + + +# Check whether --enable-setuid was given. +if test ${enable_setuid+y} +then : + enableval=$enable_setuid; if test "$enableval" = "yes" + then + if test -z "$man_owner" + then + as_fn_error $? "--enable-setuid is incompatible with --disable-cache-owner" "$LINENO" 5 + fi + man_mode="6755" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Man will be installed setuid $man_owner" >&5 +printf "%s\n" "$as_me: Man will be installed setuid $man_owner" >&6;} + elif test "$enableval" = "no" + then + man_mode="755" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Man will not be installed setuid" >&5 +printf "%s\n" "$as_me: Man will not be installed setuid" >&6;} + else + as_fn_error $? "--enable-setuid=$enableval is no longer valid; consider --enable-cache-owner=$enableval --enable-setuid instead" "$LINENO" 5 + fi +else $as_nop + if test -z "$man_owner" + then + man_mode="755" + else + man_mode="6755" + fi +fi + + + + +# Check whether --enable-undoc was given. +if test ${enable_undoc+y} +then : + enableval=$enable_undoc; if test "$enableval" = "yes" || test "$enableval" = "no" + then + as_fn_error $? "--enable-undoc requires an argument" "$LINENO" 5 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Suggesting '$enableval' for missing manual pages" >&5 +printf "%s\n" "$as_me: Suggesting '$enableval' for missing manual pages" >&6;} + +printf "%s\n" "#define UNDOC_COMMAND \"$enableval\"" >>confdefs.h + + fi +fi + + + + +# Check whether --with-device was given. +if test ${with_device+y} +then : + withval=$with_device; if test "$withval" = "yes" || test "$withval" = "no" + then + as_fn_error $? "--with-device requires an argument" "$LINENO" 5 + else + nroff_device=" -T$withval" + fi +fi + + + + +# Check whether --with-db was given. +if test ${with_db+y} +then : + withval=$with_db; if test "$withval" = "yes" || test "$withval" = "no" + then + as_fn_error $? "--with-db requires an argument" "$LINENO" 5 + else + db=$withval + fi +else $as_nop + : ${db=no} +fi + + + + +# Check whether --with-config-file was given. +if test ${with_config_file+y} +then : + withval=$with_config_file; if test "$withval" = "yes" || test "$withval" = "no" + then + as_fn_error $? "--with-config-file requires an argument" "$LINENO" 5 + else + config_file=$withval + fi +else $as_nop + : ${config_file=\$\{sysconfdir\}/man_db.conf} +fi + +config_file_basename=${config_file##*/} +config_file_dirname=`$as_dirname -- "$config_file" || +$as_expr X"$config_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$config_file" : 'X\(//\)[^/]' \| \ + X"$config_file" : 'X\(//\)$' \| \ + X"$config_file" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$config_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + + + + + + +# Check whether --with-sections was given. +if test ${with_sections+y} +then : + withval=$with_sections; if test "$withval" = "yes" || test "$withval" = "no" + then + as_fn_error $? "--with-sections requires an argument" "$LINENO" 5 + else + sections="$withval" + fi +else $as_nop + : ${sections=1 n l 8 3 0 2 3type 5 4 9 6 7} +fi + + + +# Check whether --enable-automatic-create was given. +if test ${enable_automatic_create+y} +then : + enableval=$enable_automatic_create; if test "$enableval" = "yes" + then + +printf "%s\n" "#define MAN_DB_CREATES 1" >>confdefs.h + + fi +fi + + + +# Check whether --enable-automatic-update was given. +if test ${enable_automatic_update+y} +then : + enableval=$enable_automatic_update; if test "$enableval" = "yes" + then + +printf "%s\n" "#define MAN_DB_UPDATES 1" >>confdefs.h + + fi +else $as_nop + +printf "%s\n" "#define MAN_DB_UPDATES 1" >>confdefs.h + +fi + + + +# Check whether --enable-cats was given. +if test ${enable_cats+y} +then : + enableval=$enable_cats; if test "$enableval" = "yes" + then + +printf "%s\n" "#define MAN_CATS 1" >>confdefs.h + + fi +else $as_nop + +printf "%s\n" "#define MAN_CATS 1" >>confdefs.h + +fi + + + + +# Check whether --with-override-dir was given. +if test ${with_override_dir+y} +then : + withval=$with_override_dir; if test "$withval" = "yes" || test "$withval" = "no" + then + as_fn_error $? "--with-override-dir requires an argument" "$LINENO" 5 + else + override_dir=$withval + fi +else $as_nop + : ${override_dir=""} +fi + + + +printf "%s\n" "#define OVERRIDE_DIR \"$override_dir\"" >>confdefs.h + + + + + +# Check whether --with-systemdtmpfilesdir was given. +if test ${with_systemdtmpfilesdir+y} +then : + withval=$with_systemdtmpfilesdir; +else $as_nop + # The default is not prefix-sensitive, since systemd's prefix is not + # necessarily the same as man-db's. + case $host_os in + linux*) + +if test -n "$with_systemdtmpfilesdir"; then + pkg_cv_with_systemdtmpfilesdir="$with_systemdtmpfilesdir" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"systemd\""; } >&5 + ($PKG_CONFIG --exists --print-errors "systemd") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_with_systemdtmpfilesdir=`$PKG_CONFIG --variable="tmpfilesdir" "systemd" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +with_systemdtmpfilesdir=$pkg_cv_with_systemdtmpfilesdir + +if test "x$with_systemdtmpfilesdir" = x"" +then : + with_systemdtmpfilesdir=/usr/lib/tmpfiles.d +fi + + ;; + *) with_systemdtmpfilesdir=no ;; + esac +fi + +systemdtmpfilesdir=$with_systemdtmpfilesdir + + if test "$with_systemdtmpfilesdir" != "no"; then + INSTALL_SYSTEMD_TMPFILES_TRUE= + INSTALL_SYSTEMD_TMPFILES_FALSE='#' +else + INSTALL_SYSTEMD_TMPFILES_TRUE='#' + INSTALL_SYSTEMD_TMPFILES_FALSE= +fi + + + + + +# Check whether --with-systemdsystemunitdir was given. +if test ${with_systemdsystemunitdir+y} +then : + withval=$with_systemdsystemunitdir; +else $as_nop + # The default is not prefix-sensitive, since systemd's prefix is not + # necessarily the same as man-db's. + case $host_os in + linux*) + +if test -n "$with_systemdsystemunitdir"; then + pkg_cv_with_systemdsystemunitdir="$with_systemdsystemunitdir" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"systemd\""; } >&5 + ($PKG_CONFIG --exists --print-errors "systemd") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_with_systemdsystemunitdir=`$PKG_CONFIG --variable="systemdsystemunitdir" "systemd" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +with_systemdsystemunitdir=$pkg_cv_with_systemdsystemunitdir + +if test "x$with_systemdsystemunitdir" = x"" +then : + with_systemdsystemunitdir=/lib/systemd/system +fi + + ;; + *) with_systemdsystemunitdir=no ;; + esac +fi + +systemdsystemunitdir=$with_systemdsystemunitdir + + if test "$with_systemdsystemunitdir" != "no"; then + INSTALL_SYSTEMD_TIMER_TRUE= + INSTALL_SYSTEMD_TIMER_FALSE='#' +else + INSTALL_SYSTEMD_TIMER_TRUE='#' + INSTALL_SYSTEMD_TIMER_FALSE= +fi + + + +# Work out which manual page hierarchy scheme might be in use. +# Check whether --enable-mandirs was given. +if test ${enable_mandirs+y} +then : + enableval=$enable_mandirs; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Using $enableval hierarchy organization(s)" >&5 +printf "%s\n" "$as_me: Using $enableval hierarchy organization(s)" >&6;} + +printf "%s\n" "#define MANDIR_LAYOUT \"$enableval\"" >>confdefs.h + + MANDIR_LAYOUT="$enableval" +else $as_nop + case $host in + *-gnu) mandirs=GNU;; + *-hpux*) mandirs=HPUX;; + *-irix*) mandirs=IRIX;; + *-solaris*) mandirs=Solaris;; + *-*bsd*) mandirs=BSD;; + *) mandirs=;; + esac + if test -n "$mandirs"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Using $mandirs hierarchy organization" >&5 +printf "%s\n" "$as_me: Using $mandirs hierarchy organization" >&6;} + printf "%s\n" "#define MANDIR_LAYOUT \"$mandirs\"" >>confdefs.h + + MANDIR_LAYOUT="$mandirs" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Allowing any hierarchy organization" >&5 +printf "%s\n" "$as_me: Allowing any hierarchy organization" >&6;} + printf "%s\n" "#define MANDIR_LAYOUT \"\"" >>confdefs.h + + MANDIR_LAYOUT= + fi +fi + + + + +# Check whether --enable-manual was given. +if test ${enable_manual+y} +then : + enableval=$enable_manual; enable_manual="$enableval" +else $as_nop + enable_manual=yes +fi + + if test "$enable_manual" = yes; then + BUILD_MANUAL_TRUE= + BUILD_MANUAL_FALSE='#' +else + BUILD_MANUAL_TRUE='#' + BUILD_MANUAL_FALSE= +fi + + + + +# Check whether --with-snapdir was given. +if test ${with_snapdir+y} +then : + withval=$with_snapdir; if test "$withval" = "yes" || test "$withval" = "no" + then + as_fn_error $? "--with-snapdir requires an argument" "$LINENO" 5 + else + snapdir="$withval" + fi +else $as_nop + : ${snapdir=/snap} +fi + + + + +# Check $PATH for the following programs and append suitable options. +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +fi + + +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion -version; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_compiler_gnu=yes +else $as_nop + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+y} +ac_save_CFLAGS=$CFLAGS +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_g=yes +else $as_nop + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +ac_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c11=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c89_program +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 +fi +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +printf %s "checking whether $CC understands -c and -o together... " >&6; } +if test ${am_cv_prog_cc_c_o+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +printf "%s\n" "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler is clang" >&5 +printf %s "checking whether the compiler is clang... " >&6; } +if test ${gl_cv_compiler_clang+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #ifdef __clang__ + barfbarf + #endif + +int +main (void) +{ + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_compiler_clang=no +else $as_nop + gl_cv_compiler_clang=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_compiler_clang" >&5 +printf "%s\n" "$gl_cv_compiler_clang" >&6; } + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compiler option needed when checking for declarations" >&5 +printf %s "checking for compiler option needed when checking for declarations... " >&6; } +if test ${gl_cv_compiler_check_decl_option+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test $gl_cv_compiler_clang = yes; then + save_ac_compile="$ac_compile" + ac_compile="$ac_compile -Werror=implicit-function-declaration" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_compiler_check_decl_option='-Werror=implicit-function-declaration' +else $as_nop + gl_cv_compiler_check_decl_option=none +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_compile="$save_ac_compile" + else + gl_cv_compiler_check_decl_option=none + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_compiler_check_decl_option" >&5 +printf "%s\n" "$gl_cv_compiler_check_decl_option" >&6; } + if test "x$gl_cv_compiler_check_decl_option" != xnone; then + ac_compile_for_check_decl="$ac_compile $gl_cv_compiler_check_decl_option" + else + ac_compile_for_check_decl="$ac_compile" + fi + + +depcc="$CC" am_compiler_list= + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +printf %s "checking dependency style of $depcc... " >&6; } +if test ${am_cv_CC_dependencies_compiler_type+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +printf %s "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test ${ac_cv_prog_CPP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # Double quotes because $CC needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + +else $as_nop + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + # Broken: success on invalid input. +continue +else $as_nop + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok +then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +printf "%s\n" "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + +else $as_nop + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + # Broken: success on invalid input. +continue +else $as_nop + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok +then : + +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +printf %s "checking for grep that handles long lines and -e... " >&6; } +if test ${ac_cv_path_GREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in grep ggrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +printf "%s\n" "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +printf %s "checking for egrep... " >&6; } +if test ${ac_cv_path_EGREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in egrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +printf "%s\n" "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Minix Amsterdam compiler" >&5 +printf %s "checking for Minix Amsterdam compiler... " >&6; } +if test ${gl_cv_c_amsterdam_compiler+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __ACK__ +Amsterdam +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Amsterdam" >/dev/null 2>&1 +then : + gl_cv_c_amsterdam_compiler=yes +else $as_nop + gl_cv_c_amsterdam_compiler=no +fi +rm -rf conftest* + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_amsterdam_compiler" >&5 +printf "%s\n" "$gl_cv_c_amsterdam_compiler" >&6; } + + if test $gl_cv_c_amsterdam_compiler = yes; then + if test -z "$AR"; then + AR='cc -c.a' + fi + if test -z "$ARFLAGS"; then + ARFLAGS='-o' + fi + else + + if test -n "$ac_tool_prefix"; then + for ac_prog in ar lib "link -lib" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +printf "%s\n" "$AR" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar lib "link -lib" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +printf "%s\n" "$ac_ct_AR" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 +printf %s "checking the archiver ($AR) interface... " >&6; } +if test ${am_cv_ar_interface+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + am_cv_ar_interface=ar + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int some_variable = 0; +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 + (eval $am_ar_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + am_cv_ar_interface=ar + else + am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 + (eval $am_ar_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + am_cv_ar_interface=lib + else + am_cv_ar_interface=unknown + fi + fi + rm -f conftest.lib libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 +printf "%s\n" "$am_cv_ar_interface" >&6; } + +case $am_cv_ar_interface in +ar) + ;; +lib) + # Microsoft lib, so override with the ar-lib wrapper script. + # FIXME: It is wrong to rewrite AR. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__AR in this case, + # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something + # similar. + AR="$am_aux_dir/ar-lib $AR" + ;; +unknown) + as_fn_error $? "could not determine $AR interface" "$LINENO" 5 + ;; +esac + + fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +printf "%s\n" "$AR" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +printf "%s\n" "$ac_ct_AR" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="ar" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + if test -z "$ARFLAGS"; then + ARFLAGS='cr' + fi + + + + if test -z "$RANLIB"; then + if test $gl_cv_c_amsterdam_compiler = yes; then + RANLIB=':' + else + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +printf "%s\n" "$RANLIB" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +printf "%s\n" "$ac_ct_RANLIB" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + + fi + fi + + +# Check whether --enable-largefile was given. +if test ${enable_largefile+y} +then : + enableval=$enable_largefile; +fi + +if test "$enable_largefile" != no +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 +printf %s "checking for special C compiler options needed for large files... " >&6; } +if test ${ac_cv_sys_largefile_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF + if ac_fn_c_try_compile "$LINENO" +then : + break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + CC="$CC -n32" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_largefile_CC=' -n32'; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 +printf "%s\n" "$ac_cv_sys_largefile_CC" >&6; } + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +printf %s "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } +if test ${ac_cv_sys_file_offset_bits+y} +then : + printf %s "(cached) " >&6 +else $as_nop + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_file_offset_bits=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#undef _FILE_OFFSET_BITS +#define _FILE_OFFSET_BITS 64 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_file_offset_bits=64; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_cv_sys_file_offset_bits=unknown + break +done +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 +printf "%s\n" "$ac_cv_sys_file_offset_bits" >&6; } +case $ac_cv_sys_file_offset_bits in #( + no | unknown) ;; + *) +printf "%s\n" "#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits" >>confdefs.h +;; +esac +rm -rf conftest* + case $ac_cv_sys_file_offset_bits in #( + unknown) : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 +printf %s "checking for _LARGE_FILES value needed for large files... " >&6; } +if test ${ac_cv_sys_large_files+y} +then : + printf %s "(cached) " >&6 +else $as_nop + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_large_files=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#undef _LARGE_FILES +#define _LARGE_FILES 1 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_large_files=1; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_cv_sys_large_files=unknown + break +done +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 +printf "%s\n" "$ac_cv_sys_large_files" >&6; } +case $ac_cv_sys_large_files in #( + no | unknown) ;; + *) +printf "%s\n" "#define _LARGE_FILES $ac_cv_sys_large_files" >>confdefs.h +;; +esac +rm -rf conftest* ;; #( + 64) : + + # Check whether --enable-year2038 was given. +if test ${enable_year2038+y} +then : + enableval=$enable_year2038; +fi + + if test "$enable_year2038" != no +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for time_t past the year 2038" >&5 +printf %s "checking for time_t past the year 2038... " >&6; } +if test ${gl_cv_type_time_t_y2038+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + /* Check that time_t can represent 2**32 - 1 correctly. */ + #define LARGE_TIME_T \\ + ((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30))) + int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535 + && LARGE_TIME_T % 65537 == 0) + ? 1 : -1]; + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_type_time_t_y2038=yes +else $as_nop + gl_cv_type_time_t_y2038=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_time_t_y2038" >&5 +printf "%s\n" "$gl_cv_type_time_t_y2038" >&6; } + if test "$gl_cv_type_time_t_y2038" = no; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit time_t with _TIME_BITS=64" >&5 +printf %s "checking for 64-bit time_t with _TIME_BITS=64... " >&6; } +if test ${gl_cv_type_time_t_bits_macro+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _TIME_BITS 64 + #define _FILE_OFFSET_BITS 64 + + #include + /* Check that time_t can represent 2**32 - 1 correctly. */ + #define LARGE_TIME_T \\ + ((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30))) + int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535 + && LARGE_TIME_T % 65537 == 0) + ? 1 : -1]; + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_type_time_t_bits_macro=yes +else $as_nop + gl_cv_type_time_t_bits_macro=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_time_t_bits_macro" >&5 +printf "%s\n" "$gl_cv_type_time_t_bits_macro" >&6; } + if test "$gl_cv_type_time_t_bits_macro" = yes; then + +printf "%s\n" "#define _TIME_BITS 64" >>confdefs.h + + +printf "%s\n" "#define _FILE_OFFSET_BITS 64" >>confdefs.h + + gl_cv_type_time_t_y2038=yes + fi + fi + if test $gl_cv_type_time_t_y2038 = no; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef _USE_32BIT_TIME_T + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The 'time_t' type stops working after January 2038. + Remove _USE_32BIT_TIME_T from the compiler flags. +See \`config.log' for more details" "$LINENO" 5; } +else $as_nop + # If not cross-compiling and says we should check, + # and 'touch' works with a large timestamp, then evidently wider time_t + # is desired and supported, so fail and ask the builder to fix the + # problem. Otherwise, just warn the builder. + + if test "$gl_warned_about_y2038" != yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: The 'time_t' type stops working after January 2038, + and this package needs a wider 'time_t' type + if there is any way to access timestamps after that. + Configure with 'CC=\"${CC} -m64\"' perhaps?" >&5 +printf "%s\n" "$as_me: WARNING: The 'time_t' type stops working after January 2038, + and this package needs a wider 'time_t' type + if there is any way to access timestamps after that. + Configure with 'CC=\"${CC} -m64\"' perhaps?" >&2;} + gl_warned_about_y2038=yes + fi + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi +fi + ;; #( + *) : + ;; +esac +fi + + + + case "$host_os" in + mingw*) + +printf "%s\n" "#define __MINGW_USE_VC2005_COMPAT 1" >>confdefs.h + + ;; + esac + + + + + + + + # Check whether --enable-threads was given. +if test ${enable_threads+y} +then : + enableval=$enable_threads; gl_use_threads=$enableval +else $as_nop + if test -n "$gl_use_threads_default"; then + gl_use_threads="$gl_use_threads_default" + else + case "$host_os" in + osf*) gl_use_threads=no ;; + cygwin*) + case `uname -r` in + 1.[0-5].*) gl_use_threads=no ;; + *) gl_use_threads=yes ;; + esac + ;; + mingw*) + case "$gl_use_winpthreads_default" in + yes) gl_use_threads=posix ;; + no) gl_use_threads=windows ;; + *) gl_use_threads=yes ;; + esac + ;; + *) gl_use_threads=yes ;; + esac + fi + +fi + + if test "$gl_use_threads" = yes \ + || test "$gl_use_threads" = isoc \ + || test "$gl_use_threads" = posix \ + || test "$gl_use_threads" = isoc+posix; then + # For using or : + + + if test -z "$gl_anythreadlib_early_done"; then + case "$host_os" in + osf*) + # On OSF/1, the compiler needs the flag -D_REENTRANT so that it + # groks . cc also understands the flag -pthread, but + # we don't use it because 1. gcc-2.95 doesn't understand -pthread, + # 2. putting a flag into CPPFLAGS that has an effect on the linker + # causes the AC_LINK_IFELSE test below to succeed unexpectedly, + # leading to wrong values of LIBTHREAD and LTLIBTHREAD. + CPPFLAGS="$CPPFLAGS -D_REENTRANT" + ;; + esac + # Some systems optimize for single-threaded programs by default, and + # need special flags to disable these optimizations. For example, the + # definition of 'errno' in . + case "$host_os" in + aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; + solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; + esac + gl_anythreadlib_early_done=done + fi + + fi + + + + # Pre-early section. + + + + # Code from module absolute-header: + # Code from module alloca: + # Code from module alloca-opt: + # Code from module argp: + # Code from module array-list: + # Code from module assure: + # Code from module at-internal: + # Code from module attribute: + # Code from module basename-lgpl: + # Code from module bitrotate: + # Code from module btowc: + # Code from module builtin-expect: + # Code from module c99: + # Code from module calloc-gnu: + # Code from module calloc-posix: + # Code from module canonicalize: + # Code from module canonicalize-lgpl: + # Code from module chdir: + # Code from module chdir-long: + # Code from module chown: + # Code from module clock-time: + # Code from module cloexec: + # Code from module close: + # Code from module closedir: + # Code from module ctype: + # Code from module d-ino: + # Code from module d-type: + # Code from module dirent: + # Code from module dirfd: + # Code from module dirname: + # Code from module dirname-lgpl: + # Code from module double-slash-root: + # Code from module dup: + # Code from module dup2: + # Code from module dynarray: + # Code from module eloop-threshold: + # Code from module environ: + # Code from module errno: + # Code from module error: + # Code from module exitfail: + # Code from module extensions: + # Code from module extern-inline: + # Code from module fchdir: + # Code from module fcntl: + # Code from module fcntl-h: + # Code from module fd-hook: + # Code from module fd-safer-flag: + # Code from module fdopendir: + # Code from module file-set: + # Code from module filename: + # Code from module filenamecat-lgpl: + # Code from module flexmember: + # Code from module float: + # Code from module flock: + # Code from module fnmatch: + # Code from module fnmatch-gnu: + # Code from module fnmatch-h: + # Code from module free-posix: + # Code from module fstat: + # Code from module fstatat: + # Code from module gen-header: + # Code from module getcwd: + # Code from module getcwd-lgpl: + # Code from module getdelim: + # Code from module getdtablesize: + # Code from module getline: + # Code from module getlogin_r: + # Code from module getopt-gnu: + # Code from module getopt-posix: + # Code from module getprogname: + # Code from module getrandom: + # Code from module gettext-h: + # Code from module gettime: + # Code from module gettimeofday: + # Code from module gitlog-to-changelog: + # Code from module glob: + # Code from module glob-h: + # Code from module gnupload: + # Code from module hard-locale: + # Code from module hash: + # Code from module hash-map: + # Code from module hash-pjw: + # Code from module hash-pjw-bare: + # Code from module hash-set: + # Code from module hash-triple-simple: + # Code from module havelib: + # Code from module ialloc: + # Code from module idpriv-drop: + # Code from module idpriv-droptemp: + # Code from module idx: + # Code from module include_next: + # Code from module intprops: + # Code from module inttypes-incomplete: + # Code from module ioctl: + # Code from module isblank: + # Code from module langinfo: + # Code from module largefile: + + + # Code from module lchown: + # Code from module lib-ignore: + # Code from module libc-config: + # Code from module limits-h: + # Code from module linkedhash-list: + # Code from module list: + # Code from module localcharset: + # Code from module locale: + # Code from module localeconv: + # Code from module lock: + # Code from module lstat: + # Code from module malloc-gnu: + # Code from module malloc-posix: + # Code from module malloca: + # Code from module manywarnings: + # Code from module map: + # Code from module mbrtowc: + # Code from module mbsinit: + # Code from module mbsrtowcs: + # Code from module mbtowc: + # Code from module memchr: + # Code from module memmem: + # Code from module memmem-simple: + # Code from module mempcpy: + # Code from module memrchr: + # Code from module minmax: + # Code from module mkdir: + # Code from module mkdtemp: + # Code from module mkstemp: + # Code from module msvc-inval: + # Code from module msvc-nothrow: + # Code from module multiarch: + # Code from module nanosleep: + # Code from module nl_langinfo: + # Code from module nocrash: + # Code from module nonblocking: + # Code from module open: + # Code from module openat: + # Code from module openat-die: + # Code from module openat-h: + # Code from module opendir: + # Code from module pathmax: + # Code from module pipe-posix: + # Code from module progname: + # Code from module pselect: + # Code from module pthread_sigmask: + # Code from module raise: + # Code from module rawmemchr: + # Code from module rbtree-list: + # Code from module readdir: + # Code from module readlink: + # Code from module readlinkat: + # Code from module realloc-gnu: + # Code from module realloc-posix: + # Code from module reallocarray: + # Code from module regex: + # Code from module rename: + # Code from module renameat: + # Code from module renameatu: + # Code from module rewinddir: + # Code from module rmdir: + # Code from module same-inode: + # Code from module save-cwd: + # Code from module scratch_buffer: + # Code from module select: + # Code from module set: + # Code from module setenv: + # Code from module setlocale-null: + # Code from module sigaction: + # Code from module signal-h: + # Code from module sigpipe: + # Code from module sigprocmask: + # Code from module size_max: + # Code from module sleep: + # Code from module snippet/_Noreturn: + # Code from module snippet/arg-nonnull: + # Code from module snippet/c++defs: + # Code from module snippet/warn-on-use: + # Code from module socketlib: + # Code from module sockets: + # Code from module socklen: + # Code from module ssize_t: + # Code from module stat: + # Code from module stat-time: + # Code from module std-gnu11: + # Code from module stdalign: + # Code from module stdarg: + + + + # Code from module stdbool: + # Code from module stddef: + # Code from module stdint: + # Code from module stdio: + # Code from module stdlib: + # Code from module stdopen: + # Code from module stpcpy: + # Code from module strcase: + # Code from module strcasestr: + # Code from module strcasestr-simple: + # Code from module strchrnul: + # Code from module strdup-posix: + # Code from module streq: + # Code from module strerror: + # Code from module strerror-override: + # Code from module string: + # Code from module strings: + # Code from module strndup: + # Code from module strnlen: + # Code from module strnlen1: + # Code from module strsep: + # Code from module sys_file: + # Code from module sys_ioctl: + # Code from module sys_random: + # Code from module sys_select: + # Code from module sys_socket: + # Code from module sys_stat: + # Code from module sys_time: + # Code from module sys_types: + # Code from module sys_uio: + # Code from module sysexits: + # Code from module tempname: + # Code from module termios: + # Code from module threadlib: + + + + # Code from module time: + # Code from module timespec: + # Code from module unistd: + # Code from module unistd-safer: + # Code from module unlink: + # Code from module unlinkat: + # Code from module utime: + # Code from module utime-h: + # Code from module utimens: + # Code from module vararrays: + # Code from module vasnprintf: + # Code from module vasprintf: + # Code from module verify: + # Code from module verror: + # Code from module vsnprintf: + # Code from module warnings: + # Code from module wchar: + # Code from module wcrtomb: + # Code from module wctype-h: + # Code from module windows-mutex: + # Code from module windows-once: + # Code from module windows-recmutex: + # Code from module windows-rwlock: + # Code from module wmemchr: + # Code from module wmempcpy: + # Code from module xalloc: + # Code from module xalloc-die: + # Code from module xalloc-oversized: + # Code from module xgetcwd: + # Code from module xlist: + # Code from module xmap: + # Code from module xset: + # Code from module xsize: + # Code from module xstdopen: + # Code from module xstrndup: + # Code from module xvasprintf: + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +printf %s "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test ${ac_cv_prog_CPP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # Double quotes because $CC needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + +else $as_nop + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + # Broken: success on invalid input. +continue +else $as_nop + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok +then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +printf "%s\n" "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + +else $as_nop + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + # Broken: success on invalid input. +continue +else $as_nop + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok +then : + +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CFLAGS="$CFLAGS -Wall" +case $host_os in + ultrix4.3*) + CFLAGS="$CFLAGS -YPOSIX" + ;; +esac + +# Check whether --enable-gcc-warnings was given. +if test ${enable_gcc_warnings+y} +then : + enableval=$enable_gcc_warnings; case $enableval in + no|yes|expensive) ;; + *) as_fn_error $? "bad value $enableval for gcc-warnings option" "$LINENO" 5 ;; + esac + man_gcc_warnings=$enableval +else $as_nop + man_gcc_warnings=yes + +fi + +if test "$man_gcc_warnings" != no; then + # Enable all reasonable GCC warnings. + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + if test -n "$GCC"; then + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -Wno-missing-field-initializers is supported" >&5 +printf %s "checking whether -Wno-missing-field-initializers is supported... " >&6; } +if test ${gl_cv_cc_nomfi_supported+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wextra -Werror -Wno-missing-field-initializers" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_cc_nomfi_supported=yes +else $as_nop + gl_cv_cc_nomfi_supported=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_supported" >&5 +printf "%s\n" "$gl_cv_cc_nomfi_supported" >&6; } + + if test "$gl_cv_cc_nomfi_supported" = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -Wno-missing-field-initializers is needed" >&5 +printf %s "checking whether -Wno-missing-field-initializers is needed... " >&6; } +if test ${gl_cv_cc_nomfi_needed+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wextra -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int f (void) + { + typedef struct { int a; int b; } s_t; + s_t s1 = { 0, }; + return s1.b; + } + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_cc_nomfi_needed=no +else $as_nop + gl_cv_cc_nomfi_needed=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_needed" >&5 +printf "%s\n" "$gl_cv_cc_nomfi_needed" >&6; } + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -Wuninitialized is supported" >&5 +printf %s "checking whether -Wuninitialized is supported... " >&6; } +if test ${gl_cv_cc_uninitialized_supported+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror -Wuninitialized" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_cc_uninitialized_supported=yes +else $as_nop + gl_cv_cc_uninitialized_supported=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_uninitialized_supported" >&5 +printf "%s\n" "$gl_cv_cc_uninitialized_supported" >&6; } + + fi + + # List all gcc warning categories. + # To compare this list to your installed GCC's, run this Bash command: + # + # comm -3 \ + # <((sed -n 's/^ *\(-[^ 0-9][^ ]*\).*/\1/p' manywarnings.m4; \ + # awk '/^[^#]/ {print warnings}' ../build-aux/gcc-warning.spec) | sort) \ + # <(LC_ALL=C gcc --help=warnings | sed -n 's/^ \(-[^ ]*\) .*/\1/p' | sort) + + warnings= + for gl_manywarn_item in -fanalyzer -fno-common \ + -Wall \ + -Warith-conversion \ + -Wbad-function-cast \ + -Wcast-align=strict \ + -Wdate-time \ + -Wdisabled-optimization \ + -Wdouble-promotion \ + -Wduplicated-branches \ + -Wduplicated-cond \ + -Wextra \ + -Wformat-signedness \ + -Winit-self \ + -Winline \ + -Winvalid-pch \ + -Wlogical-op \ + -Wmissing-declarations \ + -Wmissing-include-dirs \ + -Wmissing-prototypes \ + -Wnested-externs \ + -Wnull-dereference \ + -Wold-style-definition \ + -Wopenmp-simd \ + -Woverlength-strings \ + -Wpacked \ + -Wpointer-arith \ + -Wshadow \ + -Wstack-protector \ + -Wstrict-overflow \ + -Wstrict-prototypes \ + -Wsuggest-attribute=cold \ + -Wsuggest-attribute=const \ + -Wsuggest-attribute=format \ + -Wsuggest-attribute=malloc \ + -Wsuggest-attribute=noreturn \ + -Wsuggest-attribute=pure \ + -Wsuggest-final-methods \ + -Wsuggest-final-types \ + -Wsync-nand \ + -Wsystem-headers \ + -Wtrampolines \ + -Wuninitialized \ + -Wunknown-pragmas \ + -Wunsafe-loop-optimizations \ + -Wunused-macros \ + -Wvariadic-macros \ + -Wvector-operation-performance \ + -Wvla \ + -Wwrite-strings \ + \ + ; do + as_fn_append warnings " $gl_manywarn_item" + done + + # gcc --help=warnings outputs an unusual form for these options; list + # them here so that the above 'comm' command doesn't report a false match. + as_fn_append warnings ' -Warray-bounds=2' + as_fn_append warnings ' -Wattribute-alias=2' + as_fn_append warnings ' -Wbidi-chars=any,ucn' + as_fn_append warnings ' -Wformat-overflow=2' + as_fn_append warnings ' -Wformat=2' + as_fn_append warnings ' -Wformat-truncation=2' + as_fn_append warnings ' -Wimplicit-fallthrough=5' + as_fn_append warnings ' -Wshift-overflow=2' + as_fn_append warnings ' -Wuse-after-free=3' + as_fn_append warnings ' -Wunused-const-variable=2' + as_fn_append warnings ' -Wvla-larger-than=4031' + + # These are needed for older GCC versions. + if test -n "$GCC"; then + case `($CC --version) 2>/dev/null` in + 'gcc (GCC) '[0-3].* | \ + 'gcc (GCC) '4.[0-7].*) + as_fn_append warnings ' -fdiagnostics-show-option' + as_fn_append warnings ' -funit-at-a-time' + ;; + esac + fi + + # Disable specific options as needed. + if test "$gl_cv_cc_nomfi_needed" = yes; then + as_fn_append warnings ' -Wno-missing-field-initializers' + fi + + if test "$gl_cv_cc_uninitialized_supported" = no; then + as_fn_append warnings ' -Wno-uninitialized' + fi + + # This warning have too many false alarms in GCC 11.2.1. + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101713 + as_fn_append warnings ' -Wno-analyzer-malloc-leak' + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + nw= + nw="$nw -Wsystem-headers" + nw="$nw -Wmissing-field-initializers" + nw="$nw -Winline" + if test "$man_gcc_warnings" != expensive; then + nw="$nw -fanalyzer" + fi + + gl_warn_set= + set x $warnings; shift + for gl_warn_item + do + case " $nw " in + *" $gl_warn_item "*) + ;; + *) + as_fn_append gl_warn_set " $gl_warn_item" + ;; + esac + done + warnings=$gl_warn_set + + for w in $warnings; do + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Werror -Wunknown-warning-option" >&5 +printf %s "checking whether C compiler handles -Werror -Wunknown-warning-option... " >&6; } +if test ${gl_cv_warn_c__Werror__Wunknown_warning_option+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_warn_c__Werror__Wunknown_warning_option=yes +else $as_nop + gl_cv_warn_c__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Werror__Wunknown_warning_option" >&5 +printf "%s\n" "$gl_cv_warn_c__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_c__Werror__Wunknown_warning_option" = xyes +then : + gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else $as_nop + gl_unknown_warnings_are_errors= +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + +as_gl_Warn=`printf "%s\n" "gl_cv_warn_c_$w" | $as_tr_sh` +gl_positive="$w" +case $gl_positive in + -Wno-*) gl_positive=-W`expr "X$gl_positive" : 'X-Wno-\(.*\)'` ;; +esac +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles $w" >&5 +printf %s "checking whether C compiler handles $w... " >&6; } +if eval test \${$as_gl_Warn+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors $gl_positive" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + eval "$as_gl_Warn=yes" +else $as_nop + eval "$as_gl_Warn=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +eval ac_res=\$$as_gl_Warn + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_gl_Warn"\" = x"yes" +then : + as_fn_append WARN_CFLAGS " $w" +fi + + + done + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-missing-field-initializers" >&5 +printf %s "checking whether C compiler handles -Wno-missing-field-initializers... " >&6; } +if test ${gl_cv_warn_c__Wno_missing_field_initializers+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wmissing-field-initializers" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_warn_c__Wno_missing_field_initializers=yes +else $as_nop + gl_cv_warn_c__Wno_missing_field_initializers=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Wno_missing_field_initializers" >&5 +printf "%s\n" "$gl_cv_warn_c__Wno_missing_field_initializers" >&6; } +if test "x$gl_cv_warn_c__Wno_missing_field_initializers" = xyes +then : + as_fn_append WARN_CFLAGS " -Wno-missing-field-initializers" +fi + + + # Disable use of VLAs by Gnulib to avoid tripping over -Wvla. + +printf "%s\n" "#define GNULIB_NO_VLA 1" >>confdefs.h + +fi + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +printf %s "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +printf "%s\n" "no, using $LN_S" >&6; } +fi + + + if test -n "$ac_tool_prefix"; then + for ac_prog in ar lib "link -lib" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +printf "%s\n" "$AR" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar lib "link -lib" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +printf "%s\n" "$ac_ct_AR" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 +printf %s "checking the archiver ($AR) interface... " >&6; } +if test ${am_cv_ar_interface+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + am_cv_ar_interface=ar + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int some_variable = 0; +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 + (eval $am_ar_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + am_cv_ar_interface=ar + else + am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 + (eval $am_ar_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + am_cv_ar_interface=lib + else + am_cv_ar_interface=unknown + fi + fi + rm -f conftest.lib libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 +printf "%s\n" "$am_cv_ar_interface" >&6; } + +case $am_cv_ar_interface in +ar) + ;; +lib) + # Microsoft lib, so override with the ar-lib wrapper script. + # FIXME: It is wrong to rewrite AR. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__AR in this case, + # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something + # similar. + AR="$am_aux_dir/ar-lib $AR" + ;; +unknown) + as_fn_error $? "could not determine $AR interface" "$LINENO" 5 + ;; +esac + +case `pwd` in + *\ * | *\ *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.7' +macro_revision='2.4.7' + + + + + + + + + + + + + + +ltmain=$ac_aux_dir/ltmain.sh + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +printf %s "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case $ECHO in + printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +printf "%s\n" "printf" >&6; } ;; + print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +printf "%s\n" "print -r" >&6; } ;; + *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +printf "%s\n" "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +printf %s "checking for a sed that does not truncate output... " >&6; } +if test ${ac_cv_path_SED+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in sed gsed + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +printf "%s\n" "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +printf %s "checking for fgrep... " >&6; } +if test ${ac_cv_path_FGREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in fgrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_FGREP" || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +printf "%s\n" "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test ${with_gnu_ld+y} +then : + withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes +else $as_nop + with_gnu_ld=no +fi + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +printf %s "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +printf %s "checking for GNU ld... " >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +printf %s "checking for non-GNU ld... " >&6; } +fi +if test ${lt_cv_path_LD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +printf "%s\n" "$LD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +printf %s "checking if the linker ($LD) is GNU ld... " >&6; } +if test ${lt_cv_prog_gnu_ld+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if test ${lt_cv_path_NM+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +printf "%s\n" "$lt_cv_path_NM" >&6; } +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DUMPBIN+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +printf "%s\n" "$DUMPBIN" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DUMPBIN+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +printf "%s\n" "$ac_ct_DUMPBIN" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +printf %s "checking the name lister ($NM) interface... " >&6; } +if test ${lt_cv_nm_interface+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +printf "%s\n" "$lt_cv_nm_interface" >&6; } + +# find the maximum length of command line arguments +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +printf %s "checking the maximum length of command line arguments... " >&6; } +if test ${lt_cv_sys_max_cmd_len+y} +then : + printf %s "(cached) " >&6 +else $as_nop + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n "$lt_cv_sys_max_cmd_len"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 +printf "%s\n" "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +printf %s "checking how to convert $build file names to $host format... " >&6; } +if test ${lt_cv_to_host_file_cmd+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +printf "%s\n" "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +printf %s "checking how to convert $build file names to toolchain format... " >&6; } +if test ${lt_cv_to_tool_file_cmd+y} +then : + printf %s "(cached) " >&6 +else $as_nop + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +printf "%s\n" "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +printf %s "checking for $LD option to reload object files... " >&6; } +if test ${lt_cv_ld_reload_flag+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_ld_reload_flag='-r' +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +printf "%s\n" "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test yes != "$GCC"; then + reload_cmds=false + fi + ;; + darwin*) + if test yes = "$GCC"; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}file", so it can be a program name with args. +set dummy ${ac_tool_prefix}file; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_FILECMD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$FILECMD"; then + ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_FILECMD="${ac_tool_prefix}file" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +FILECMD=$ac_cv_prog_FILECMD +if test -n "$FILECMD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FILECMD" >&5 +printf "%s\n" "$FILECMD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_FILECMD"; then + ac_ct_FILECMD=$FILECMD + # Extract the first word of "file", so it can be a program name with args. +set dummy file; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_FILECMD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_FILECMD"; then + ac_cv_prog_ac_ct_FILECMD="$ac_ct_FILECMD" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_FILECMD="file" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_FILECMD=$ac_cv_prog_ac_ct_FILECMD +if test -n "$ac_ct_FILECMD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FILECMD" >&5 +printf "%s\n" "$ac_ct_FILECMD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_FILECMD" = x; then + FILECMD=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + FILECMD=$ac_ct_FILECMD + fi +else + FILECMD="$ac_cv_prog_FILECMD" +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OBJDUMP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +printf "%s\n" "$OBJDUMP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OBJDUMP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +printf "%s\n" "$ac_ct_OBJDUMP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +printf %s "checking how to recognize dependent libraries... " >&6; } +if test ${lt_cv_deplibs_check_method+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='$FILECMD -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly* | midnightbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=$FILECMD + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=$FILECMD + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=$FILECMD + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +printf "%s\n" "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DLLTOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +printf "%s\n" "$DLLTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DLLTOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +printf "%s\n" "$ac_ct_DLLTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +printf %s "checking how to associate runtime and link libraries... " >&6; } +if test ${lt_cv_sharedlib_from_linklib_cmd+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +printf "%s\n" "$AR" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +printf "%s\n" "$ac_ct_AR" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} + + + + + + +# Use ARFLAGS variable as AR's operation code to sync the variable naming with +# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have +# higher priority because thats what people were doing historically (setting +# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS +# variable obsoleted/removed. + +test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} +lt_ar_flags=$AR_FLAGS + + + + + + +# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override +# by AR_FLAGS because that was never working and AR_FLAGS is about to die. + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +printf %s "checking for archiver @FILE support... " >&6; } +if test ${lt_cv_ar_at_file+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +printf "%s\n" "$lt_cv_ar_at_file" >&6; } + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_STRIP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +printf "%s\n" "$STRIP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_STRIP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +printf "%s\n" "$ac_ct_STRIP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +printf "%s\n" "$RANLIB" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +printf "%s\n" "$ac_ct_RANLIB" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +printf %s "checking command to parse $NM output from $compiler object... " >&6; } +if test ${lt_cv_sys_global_symbol_pipe+y} +then : + printf %s "(cached) " >&6 +else $as_nop + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="$SED -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++ or ICC, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5 + if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +printf "%s\n" "failed" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +printf "%s\n" "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +printf %s "checking for sysroot... " >&6; } + +# Check whether --with-sysroot was given. +if test ${with_sysroot+y} +then : + withval=$with_sysroot; +else $as_nop + with_sysroot=no +fi + + +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 +printf "%s\n" "$with_sysroot" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +printf "%s\n" "${lt_sysroot:-no}" >&6; } + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 +printf %s "checking for a working dd... " >&6; } +if test ${ac_cv_path_lt_DD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +if test -z "$lt_DD"; then + ac_path_lt_DD_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in dd + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_lt_DD="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_lt_DD" || continue +if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi + $ac_path_lt_DD_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_lt_DD"; then + : + fi +else + ac_cv_path_lt_DD=$lt_DD +fi + +rm -f conftest.i conftest2.i conftest.out +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 +printf "%s\n" "$ac_cv_path_lt_DD" >&6; } + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 +printf %s "checking how to truncate binary pipes... " >&6; } +if test ${lt_cv_truncate_bin+y} +then : + printf %s "(cached) " >&6 +else $as_nop + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 +printf "%s\n" "$lt_cv_truncate_bin" >&6; } + + + + + + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + +# Check whether --enable-libtool-lock was given. +if test ${enable_libtool_lock+y} +then : + enableval=$enable_libtool_lock; +fi + +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `$FILECMD conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `$FILECMD conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `$FILECMD conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + emul=elf + case `$FILECMD conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `$FILECMD conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `$FILECMD conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `$FILECMD conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `$FILECMD conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +printf %s "checking whether the C compiler needs -belf... " >&6; } +if test ${lt_cv_cc_needs_belf+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + lt_cv_cc_needs_belf=yes +else $as_nop + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +printf "%s\n" "$lt_cv_cc_needs_belf" >&6; } + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `$FILECMD conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_MANIFEST_TOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +printf "%s\n" "$MANIFEST_TOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if test ${lt_cv_path_mainfest_tool+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; } +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DSYMUTIL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +printf "%s\n" "$DSYMUTIL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DSYMUTIL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +printf "%s\n" "$ac_ct_DSYMUTIL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_NMEDIT+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +printf "%s\n" "$NMEDIT" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_NMEDIT+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +printf "%s\n" "$ac_ct_NMEDIT" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_LIPO+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +printf "%s\n" "$LIPO" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_LIPO+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LIPO="lipo" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +printf "%s\n" "$ac_ct_LIPO" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OTOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +printf "%s\n" "$OTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OTOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL="otool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +printf "%s\n" "$ac_ct_OTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OTOOL64+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +printf "%s\n" "$OTOOL64" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OTOOL64+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +printf "%s\n" "$ac_ct_OTOOL64" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +printf %s "checking for -single_module linker flag... " >&6; } +if test ${lt_cv_apple_cc_single_mod+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +printf %s "checking for -exported_symbols_list linker flag... " >&6; } +if test ${lt_cv_ld_exported_symbols_list+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + lt_cv_ld_exported_symbols_list=yes +else $as_nop + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +printf %s "checking for -force_load linker flag... " >&6; } +if test ${lt_cv_ld_force_load+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5 + $AR $AR_FLAGS libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +printf "%s\n" "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) + case $MACOSX_DEPLOYMENT_TARGET,$host in + 10.[012],*|,*powerpc*-darwin[5-8]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + *) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + +ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes +then : + printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h + +fi + + + + + +# Set options +# Check whether --enable-static was given. +if test ${enable_static+y} +then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else $as_nop + enable_static=no +fi + + + + + + + + + + + enable_dlopen=no + + + enable_win32_dll=no + + + # Check whether --enable-shared was given. +if test ${enable_shared+y} +then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else $as_nop + enable_shared=yes +fi + + + + + + + + + + + +# Check whether --with-pic was given. +if test ${with_pic+y} +then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else $as_nop + pic_mode=default +fi + + + + + + + + + # Check whether --enable-fast-install was given. +if test ${enable_fast_install+y} +then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else $as_nop + enable_fast_install=yes +fi + + + + + + + + + shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[5-9]*,yes) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 +printf %s "checking which variant of shared library versioning to provide... " >&6; } + +# Check whether --with-aix-soname was given. +if test ${with_aix_soname+y} +then : + withval=$with_aix_soname; case $withval in + aix|svr4|both) + ;; + *) + as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname +else $as_nop + if test ${lt_cv_with_aix_soname+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_with_aix_soname=aix +fi + + with_aix_soname=$lt_cv_with_aix_soname +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 +printf "%s\n" "$with_aix_soname" >&6; } + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +printf %s "checking for objdir... " >&6; } +if test ${lt_cv_objdir+y} +then : + printf %s "(cached) " >&6 +else $as_nop + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +printf "%s\n" "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC and +# ICC, which need '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +func_cc_basename $compiler +cc_basename=$func_cc_basename_result + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +printf %s "checking for ${ac_tool_prefix}file... " >&6; } +if test ${lt_cv_path_MAGIC_CMD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/${ac_tool_prefix}file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +printf "%s\n" "$MAGIC_CMD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +printf %s "checking for file... " >&6; } +if test ${lt_cv_path_MAGIC_CMD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +printf "%s\n" "$MAGIC_CMD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC=$CC +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if test ${lt_cv_prog_compiler_rtti_exceptions+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test yes = "$GCC"; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + lt_prog_compiler_pic='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # flang / f18. f95 an alias for gfortran or flang on Debian + flang* | f18* | f95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | $SED 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +printf %s "checking for $compiler option to produce PIC... " >&6; } +if test ${lt_cv_prog_compiler_pic+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if test ${lt_cv_prog_compiler_pic_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_pic_works"; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if test ${lt_cv_prog_compiler_static_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_static_works=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_static_works"; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test ${lt_cv_prog_compiler_c_o+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test ${lt_cv_prog_compiler_c_o+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links=nottested +if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +printf %s "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +printf "%s\n" "$hard_links" >&6; } + if test no = "$hard_links"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + export_dynamic_flag_spec='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='$wl--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + file_list_spec='@' + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | $SED 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + export_dynamic_flag_spec='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test no = "$ld_shlibs"; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + hardcode_direct=no + hardcode_direct_absolute=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + export_dynamic_flag_spec='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if test ${lt_cv_aix_libpath_+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if test ${lt_cv_aix_libpath_+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' $wl-bernotok' + allow_undefined_flag=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl* | icl*) + # Native MSVC or ICC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC and ICC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test yes = "$lt_cv_ld_force_load"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + archive_expsym_cmds="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly* | midnightbsd*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test yes = "$GCC"; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +printf %s "checking if $CC understands -b... " >&6; } +if test ${lt_cv_prog_compiler__b+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler__b=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +printf "%s\n" "$lt_cv_prog_compiler__b" >&6; } + +if test yes = "$lt_cv_prog_compiler__b"; then + archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if test ${lt_cv_irix_exported_symbol+y} +then : + printf %s "(cached) " >&6 +else $as_nop + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + lt_cv_irix_exported_symbol=yes +else $as_nop + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } + if test yes = "$lt_cv_irix_exported_symbol"; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + link_all_deplibs=no + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + ld_shlibs=yes + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + ;; + esac + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + else + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + file_list_spec='@' + ;; + + osf3*) + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='$wl-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='$wl-z,text' + allow_undefined_flag='$wl-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='$wl-Blargedynsym' + ;; + esac + fi + fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +printf "%s\n" "$ld_shlibs" >&6; } +test no = "$ld_shlibs" && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +printf %s "checking whether -lc should be explicitly linked in... " >&6; } +if test ${lt_cv_archive_cmds_need_lc+y} +then : + printf %s "(cached) " >&6 +else $as_nop + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +printf %s "checking dynamic linker characteristics... " >&6; } + +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([A-Za-z]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + + + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a(lib.so.V)' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl* | *,icl*) + # Native MSVC or ICC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC and ICC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly* | midnightbsd*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + hardcode_libdir_flag_spec='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if test ${lt_cv_shlibpath_overrides_runpath+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null +then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +printf "%s\n" "$dynamic_linker" >&6; } +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +printf %s "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test yes = "$hardcode_automatic"; then + + # We can hardcode non-existent directories. + if test no != "$hardcode_direct" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && + test no != "$hardcode_minus_L"; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +printf "%s\n" "$hardcode_action" >&6; } + +if test relink = "$hardcode_action" || + test yes = "$inherit_rpath"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +printf %s "checking for dlopen in -ldl... " >&6; } +if test ${ac_cv_lib_dl_dlopen+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char dlopen (); +int +main (void) +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_dl_dlopen=yes +else $as_nop + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes +then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else $as_nop + + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes +then : + lt_cv_dlopen=shl_load +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +printf %s "checking for shl_load in -ldld... " >&6; } +if test ${ac_cv_lib_dld_shl_load+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char shl_load (); +int +main (void) +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_dld_shl_load=yes +else $as_nop + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes +then : + lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld +else $as_nop + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes +then : + lt_cv_dlopen=dlopen +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +printf %s "checking for dlopen in -ldl... " >&6; } +if test ${ac_cv_lib_dl_dlopen+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char dlopen (); +int +main (void) +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_dl_dlopen=yes +else $as_nop + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes +then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +printf %s "checking for dlopen in -lsvld... " >&6; } +if test ${ac_cv_lib_svld_dlopen+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char dlopen (); +int +main (void) +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_svld_dlopen=yes +else $as_nop + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes +then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +printf %s "checking for dld_link in -ldld... " >&6; } +if test ${ac_cv_lib_dld_dld_link+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char dld_link (); +int +main (void) +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_dld_dld_link=yes +else $as_nop + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes +then : + lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +printf %s "checking whether a program can dlopen itself... " >&6; } +if test ${lt_cv_dlopen_self+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +printf "%s\n" "$lt_cv_dlopen_self" >&6; } + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +printf %s "checking whether a statically linked program can dlopen itself... " >&6; } +if test ${lt_cv_dlopen_self_static+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +printf "%s\n" "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +printf %s "checking whether stripping libraries is possible... " >&6; } +if test -z "$STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +else + if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + case $host_os in + darwin*) + # FIXME - insert some real tests, host_os isn't really good enough + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + ;; + freebsd*) + if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ;; + esac + fi +fi + + + + + + + + + + + + + # Report what library types will actually be built + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +printf %s "checking if libtool supports shared libraries... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +printf "%s\n" "$can_build_shared" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +printf %s "checking whether to build shared libraries... " >&6; } + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +printf "%s\n" "$enable_shared" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +printf %s "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +printf "%s\n" "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC=$lt_save_CC + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + +libman_export_ldflags= +if test "$with_gnu_ld" = yes; then + case $host_os in + cygwin*|mingw*|pw32*|cegcc*) + libman_export_ldflags='-Wl,--export-all-symbols' + ;; + esac +fi +LIBMAN_EXPORT_LDFLAGS=$libman_export_ldflags + + +for ac_prog in cat +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_cat+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$cat"; then + ac_cv_prog_cat="$cat" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_cat="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +cat=$ac_cv_prog_cat +if test -n "$cat"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cat" >&5 +printf "%s\n" "$cat" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$cat" && break +done + + +printf "%s\n" "#define PROG_CAT \"$cat\"" >>confdefs.h + + +# Check whether --with-browser was given. +if test ${with_browser+y} +then : + withval=$with_browser; if test "$withval" = yes || test "$withval" = no +then : + as_fn_error $? "--with-browser requires an argument" "$LINENO" 5 +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for browser" >&5 +printf %s "checking for browser... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } + browser="$withval" +fi +else $as_nop + for ac_prog in www-browser lynx elinks w3m +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_browser+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$browser"; then + ac_cv_prog_browser="$browser" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_browser="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +browser=$ac_cv_prog_browser +if test -n "$browser"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $browser" >&5 +printf "%s\n" "$browser" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$browser" && break +done + +fi + +if test -n "$browser"; then + +printf "%s\n" "#define HAVE_BROWSER 1" >>confdefs.h + +fi +test -n "$browser" && browser="exec $browser" + +printf "%s\n" "#define PROG_BROWSER \"$browser\"" >>confdefs.h + +for ac_prog in tr +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_tr+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$tr"; then + ac_cv_prog_tr="$tr" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_tr="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +tr=$ac_cv_prog_tr +if test -n "$tr"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tr" >&5 +printf "%s\n" "$tr" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$tr" && break +done + + +printf "%s\n" "#define PROG_TR \"$tr\"" >>confdefs.h + +for ac_prog in grep +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_grep+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$grep"; then + ac_cv_prog_grep="$grep" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_grep="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +grep=$ac_cv_prog_grep +if test -n "$grep"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $grep" >&5 +printf "%s\n" "$grep" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$grep" && break +done + + +printf "%s\n" "#define PROG_GREP \"$grep\"" >>confdefs.h + + +# Check whether --with-pager was given. +if test ${with_pager+y} +then : + withval=$with_pager; if test "$withval" = yes || test "$withval" = no +then : + as_fn_error $? "--with-pager requires an argument" "$LINENO" 5 +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pager" >&5 +printf %s "checking for pager... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } + pager="$withval" +fi +else $as_nop + for ac_prog in pager less more +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_pager+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$pager"; then + ac_cv_prog_pager="$pager" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_pager="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +pager=$ac_cv_prog_pager +if test -n "$pager"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $pager" >&5 +printf "%s\n" "$pager" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$pager" && break +done + +fi + +if test -n "$pager"; then + +printf "%s\n" "#define HAVE_PAGER 1" >>confdefs.h + +fi + +printf "%s\n" "#define PROG_PAGER \"$pager\"" >>confdefs.h + + +# Define below (in list of preference) *roff macros to check for. +macros="andoc an doc" + +# We have problems here, as different systems have different *roff +# formatters and they accept different options and do different things :( + +# Check whether --with-nroff was given. +if test ${with_nroff+y} +then : + withval=$with_nroff; if test "$withval" = yes || test "$withval" = no +then : + as_fn_error $? "--with-nroff requires an argument" "$LINENO" 5 +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for nroff" >&5 +printf %s "checking for nroff... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } + nroff="$withval" +fi +else $as_nop + for ac_prog in nroff gnroff groff +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_nroff+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$nroff"; then + ac_cv_prog_nroff="$nroff" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_nroff="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +nroff=$ac_cv_prog_nroff +if test -n "$nroff"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $nroff" >&5 +printf "%s\n" "$nroff" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$nroff" && break +done + +fi + +if test -n "$nroff"; then + +printf "%s\n" "#define HAVE_NROFF 1" >>confdefs.h + +fi +if test -n "$nroff" +then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether nroff is GNU nroff" >&5 +printf %s "checking whether nroff is GNU nroff... " >&6; } + +if test ${man_cv_prog_gnu_nroff+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test `$nroff <>confdefs.h + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_prog_gnu_nroff" >&5 +printf "%s\n" "$man_cv_prog_gnu_nroff" >&6; } + + if test "$man_cv_prog_gnu_nroff" != "yes" + then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether nroff is Heirloom nroff" >&5 +printf %s "checking whether nroff is Heirloom nroff... " >&6; } + +if test ${man_cv_prog_heirloom_nroff+y} +then : + printf %s "(cached) " >&6 +else $as_nop + man_heirloom_ext_plain=`$nroff 2>/dev/null </dev/null <>confdefs.h + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_prog_heirloom_nroff" >&5 +printf "%s\n" "$man_cv_prog_heirloom_nroff" >&6; } + + fi + if test -n "$nroff_device" + then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that nroff works with argument$nroff_device" >&5 +printf %s "checking that nroff works with argument$nroff_device... " >&6; } + # We cannot cache this result as it can change between runs + # of configure. + if $nroff $nroff_device /dev/null 2>&1 3>&1 + then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + as_fn_error $? "nroff does not work with argument$nroff_device" "$LINENO" 5 + fi + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for appropriate nroff macro" >&5 +printf %s "checking for appropriate nroff macro... " >&6; } + if test ${man_cv_prog_nroff_macro+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + + for macro in $macros + do + if $nroff -m$macro $nroff_device /dev/null 2>&1 3>&1 + then + man_cv_prog_nroff_macro=-m$macro + break + fi + done +fi + + + if test -n "$man_cv_prog_nroff_macro" + then + if test "$man_cv_prog_heirloom_nroff" = "yes" + then + # Heirloom works best with some extra options: + # -mg: groff compatibility + # -msafe: disable privileged operations + # -mpadj: clean up line breaking + man_cv_prog_nroff_macro="-mg -msafe -mpadj ${man_cv_prog_nroff_macro}" + fi + nroff="$nroff ${man_cv_prog_nroff_macro}" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_prog_nroff_macro" >&5 +printf "%s\n" "$man_cv_prog_nroff_macro" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ambiguous" >&5 +printf "%s\n" "ambiguous" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: please edit config.h and add nroff definition" >&5 +printf "%s\n" "$as_me: WARNING: please edit config.h and add nroff definition" >&2;} + fi +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find an nroff-like program, formatting of manual page source will not be supported." >&5 +printf "%s\n" "$as_me: WARNING: Cannot find an nroff-like program, formatting of manual page source will not be supported." >&2;} + nroff="(nroff not installed)" + +printf "%s\n" "#define NROFF_MISSING 1" >>confdefs.h + +fi + +printf "%s\n" "#define PROG_NROFF \"$nroff\"" >>confdefs.h + + +for ac_prog in groff +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_troff+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$troff"; then + ac_cv_prog_troff="$troff" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_troff="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +troff=$ac_cv_prog_troff +if test -n "$troff"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $troff" >&5 +printf "%s\n" "$troff" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$troff" && break +done + +if test -n "$troff" +then + troff_is_groff=yes + +printf "%s\n" "#define TROFF_IS_GROFF 1" >>confdefs.h + + TROFF=groff +else + troff_is_groff=no + for ac_prog in troff gtroff +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_troff+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$troff"; then + ac_cv_prog_troff="$troff" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_troff="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +troff=$ac_cv_prog_troff +if test -n "$troff"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $troff" >&5 +printf "%s\n" "$troff" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$troff" && break +done + + TROFF=troff +fi + + +if test -n "$troff" +then + +printf "%s\n" "#define HAS_TROFF 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for appropriate $TROFF options" >&5 +printf %s "checking for appropriate $TROFF options... " >&6; } + if test ${man_cv_prog_troff_options+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + # Do a quick test to see if -t works [AIX needs this], groff doesn't + # as it indicates pre-process with tbl. + test "$TROFF" = "troff" && $troff -t /dev/null 2>&1 3>&1 \ + && troff_filter="-t " + for macro in $macros + do + if $troff $troff_filter -m$macro /dev/null 2>&1 3>&1 + then + man_cv_prog_troff_options="${troff_filter}-m${macro}" + break + fi + done +fi + + if test -n "$man_cv_prog_troff_options" + then + if test "$man_cv_prog_heirloom_nroff" = "yes" + then + # Heirloom works best with some extra options: + # -mg: groff compatibility + # -msafe: disable privileged operations + # -mpadj: clean up line breaking + man_cv_prog_troff_options="-mg -msafe -mpadj ${man_cv_prog_troff_options}" + fi + troff="$troff $man_cv_prog_troff_options" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_prog_troff_options" >&5 +printf "%s\n" "$man_cv_prog_troff_options" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ambiguous" >&5 +printf "%s\n" "ambiguous" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: please edit config.h and add troff definition" >&5 +printf "%s\n" "$as_me: WARNING: please edit config.h and add troff definition" >&2;} + fi +else + troff="(troff not installed)" +fi + +printf "%s\n" "#define PROG_TROFF \"$troff\"" >>confdefs.h + +troff_as_troff_input=`echo "$troff" | sed 's/-/\\\\\\\\-/g'` + + +if test -n "$nroff" +then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether nroff supports warning control" >&5 +printf %s "checking whether nroff supports warning control... " >&6; } +if test ${man_cv_prog_nroff_warnings+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test "x$troff_is_groff" = xyes && \ + nroff -wmac /dev/null 2>&1 + then + man_cv_prog_nroff_warnings=yes + else + man_cv_prog_nroff_warnings=no + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_prog_nroff_warnings" >&5 +printf "%s\n" "$man_cv_prog_nroff_warnings" >&6; } + if test "x$man_cv_prog_nroff_warnings" = xyes; then + +printf "%s\n" "#define NROFF_WARNINGS 1" >>confdefs.h + + fi +fi + +for ac_prog in gpreconv preconv +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_preconv+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$preconv"; then + ac_cv_prog_preconv="$preconv" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_preconv="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +preconv=$ac_cv_prog_preconv +if test -n "$preconv"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $preconv" >&5 +printf "%s\n" "$preconv" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$preconv" && break +done + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for groff with Debian multibyte patch or real Unicode support" >&5 +printf %s "checking for groff with Debian multibyte patch or real Unicode support... " >&6; } +man_mb_groff=no +# Check whether --enable-mb-groff was given. +if test ${enable_mb_groff+y} +then : + enableval=$enable_mb_groff; if test "$enableval" = "yes" + then + man_mb_groff=yes + fi +else $as_nop + if test -n "$preconv" + then + man_mb_groff=yes + elif test -n "$troff" && test "$troff_is_groff" = "yes" + then + if $troff -Tnippon /dev/null 2>&1 + then + man_mb_groff=yes + fi + fi +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_mb_groff" >&5 +printf "%s\n" "$man_mb_groff" >&6; } +if test "$man_mb_groff" = "yes" +then + +printf "%s\n" "#define MULTIBYTE_GROFF 1" >>confdefs.h + +fi + + +# Check whether --with-eqn was given. +if test ${with_eqn+y} +then : + withval=$with_eqn; if test "$withval" = yes || test "$withval" = no +then : + as_fn_error $? "--with-eqn requires an argument" "$LINENO" 5 +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for eqn" >&5 +printf %s "checking for eqn... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } + eqn="$withval" +fi +else $as_nop + for ac_prog in eqn geqn +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_eqn+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$eqn"; then + ac_cv_prog_eqn="$eqn" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_eqn="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +eqn=$ac_cv_prog_eqn +if test -n "$eqn"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $eqn" >&5 +printf "%s\n" "$eqn" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$eqn" && break +done + +fi + +if test -n "$eqn"; then + +printf "%s\n" "#define HAVE_EQN 1" >>confdefs.h + +fi + +printf "%s\n" "#define PROG_EQN \"$eqn\"" >>confdefs.h + + +# Check whether --with-neqn was given. +if test ${with_neqn+y} +then : + withval=$with_neqn; if test "$withval" = yes || test "$withval" = no +then : + as_fn_error $? "--with-neqn requires an argument" "$LINENO" 5 +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for neqn" >&5 +printf %s "checking for neqn... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } + neqn="$withval" +fi +else $as_nop + for ac_prog in neqn gneqn +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_neqn+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$neqn"; then + ac_cv_prog_neqn="$neqn" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_neqn="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +neqn=$ac_cv_prog_neqn +if test -n "$neqn"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $neqn" >&5 +printf "%s\n" "$neqn" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$neqn" && break +done + +fi + +if test -n "$neqn"; then + +printf "%s\n" "#define HAVE_NEQN 1" >>confdefs.h + +fi +# If we fail to find an neqn, use eqn and try to force it to output for an +# ascii device. As this is only relevant for equations (?), not using latin1 +# should be acceptable. -Tlatin1 is ignored by some eqn implementations. +if test -z "$neqn" +then + test -n "$eqn" && + (test -n "$nroff_device" && neqn="$eqn -T$nroff_device" || neqn="$eqn -Tascii") +fi + +printf "%s\n" "#define PROG_NEQN \"$neqn\"" >>confdefs.h + + +# Check whether --with-tbl was given. +if test ${with_tbl+y} +then : + withval=$with_tbl; if test "$withval" = yes || test "$withval" = no +then : + as_fn_error $? "--with-tbl requires an argument" "$LINENO" 5 +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tbl" >&5 +printf %s "checking for tbl... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } + tbl="$withval" +fi +else $as_nop + for ac_prog in tbl gtbl +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_tbl+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$tbl"; then + ac_cv_prog_tbl="$tbl" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_tbl="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +tbl=$ac_cv_prog_tbl +if test -n "$tbl"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tbl" >&5 +printf "%s\n" "$tbl" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$tbl" && break +done + +fi + +if test -n "$tbl"; then + +printf "%s\n" "#define HAVE_TBL 1" >>confdefs.h + +fi + +printf "%s\n" "#define PROG_TBL \"$tbl\"" >>confdefs.h + +TBL_X_FORMAT= +if test -n "$tbl" +then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether tbl supports the 'x' format character" >&5 +printf %s "checking whether tbl supports the 'x' format character... " >&6; } +if test ${man_cv_tbl_x_format+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if (echo .TS; echo ';'; echo lx.; echo SENTINEL; echo .TE) | \ + $tbl 2>/dev/null | grep SENTINEL >/dev/null 2>&1 + then + man_cv_tbl_x_format=yes + else + man_cv_tbl_x_format=no + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_tbl_x_format" >&5 +printf "%s\n" "$man_cv_tbl_x_format" >&6; } + if test "x$man_cv_tbl_x_format" = xyes + then + TBL_X_FORMAT=x + fi +fi + + +# Check whether --with-col was given. +if test ${with_col+y} +then : + withval=$with_col; if test "$withval" = yes || test "$withval" = no +then : + as_fn_error $? "--with-col requires an argument" "$LINENO" 5 +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for col" >&5 +printf %s "checking for col... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } + col="$withval" +fi +else $as_nop + for ac_prog in col gcol +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_col+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$col"; then + ac_cv_prog_col="$col" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_col="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +col=$ac_cv_prog_col +if test -n "$col"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $col" >&5 +printf "%s\n" "$col" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$col" && break +done + +fi + +if test -n "$col"; then + +printf "%s\n" "#define HAVE_COL 1" >>confdefs.h + +fi + +printf "%s\n" "#define PROG_COL \"$col\"" >>confdefs.h + + +# Check whether --with-vgrind was given. +if test ${with_vgrind+y} +then : + withval=$with_vgrind; if test "$withval" = yes || test "$withval" = no +then : + as_fn_error $? "--with-vgrind requires an argument" "$LINENO" 5 +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for vgrind" >&5 +printf %s "checking for vgrind... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } + vgrind="$withval" +fi +else $as_nop + for ac_prog in vgrind gvgrind +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_vgrind+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$vgrind"; then + ac_cv_prog_vgrind="$vgrind" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_vgrind="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +vgrind=$ac_cv_prog_vgrind +if test -n "$vgrind"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $vgrind" >&5 +printf "%s\n" "$vgrind" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$vgrind" && break +done + +fi + +if test -n "$vgrind"; then + +printf "%s\n" "#define HAVE_VGRIND 1" >>confdefs.h + +fi + +printf "%s\n" "#define PROG_VGRIND \"$vgrind\"" >>confdefs.h + + +# Check whether --with-refer was given. +if test ${with_refer+y} +then : + withval=$with_refer; if test "$withval" = yes || test "$withval" = no +then : + as_fn_error $? "--with-refer requires an argument" "$LINENO" 5 +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for refer" >&5 +printf %s "checking for refer... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } + refer="$withval" +fi +else $as_nop + for ac_prog in refer grefer +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_refer+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$refer"; then + ac_cv_prog_refer="$refer" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_refer="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +refer=$ac_cv_prog_refer +if test -n "$refer"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $refer" >&5 +printf "%s\n" "$refer" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$refer" && break +done + +fi + +if test -n "$refer"; then + +printf "%s\n" "#define HAVE_REFER 1" >>confdefs.h + +fi + +printf "%s\n" "#define PROG_REFER \"$refer\"" >>confdefs.h + + +# Check whether --with-grap was given. +if test ${with_grap+y} +then : + withval=$with_grap; if test "$withval" = yes || test "$withval" = no +then : + as_fn_error $? "--with-grap requires an argument" "$LINENO" 5 +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grap" >&5 +printf %s "checking for grap... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } + grap="$withval" +fi +else $as_nop + for ac_prog in grap +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_grap+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$grap"; then + ac_cv_prog_grap="$grap" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_grap="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +grap=$ac_cv_prog_grap +if test -n "$grap"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $grap" >&5 +printf "%s\n" "$grap" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$grap" && break +done + +fi + +if test -n "$grap"; then + +printf "%s\n" "#define HAVE_GRAP 1" >>confdefs.h + +fi + +printf "%s\n" "#define PROG_GRAP \"$grap\"" >>confdefs.h + + +# Check whether --with-pic was given. +if test ${with_pic+y} +then : + withval=$with_pic; if test "$withval" = yes || test "$withval" = no +then : + as_fn_error $? "--with-pic requires an argument" "$LINENO" 5 +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pic" >&5 +printf %s "checking for pic... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } + pic="$withval" +fi +else $as_nop + for ac_prog in pic gpic +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_pic+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$pic"; then + ac_cv_prog_pic="$pic" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_pic="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +pic=$ac_cv_prog_pic +if test -n "$pic"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $pic" >&5 +printf "%s\n" "$pic" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$pic" && break +done + +fi + +if test -n "$pic"; then + +printf "%s\n" "#define HAVE_PIC 1" >>confdefs.h + +fi +test -n "$pic" && pic="$pic -S" + +printf "%s\n" "#define PROG_PIC \"$pic\"" >>confdefs.h + + + +# Check whether --with-gzip was given. +if test ${with_gzip+y} +then : + withval=$with_gzip; if test "$withval" = yes || test "$withval" = no +then : + as_fn_error $? "--with-gzip requires an argument" "$LINENO" 5 +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gzip" >&5 +printf %s "checking for gzip... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } + gzip="$withval" +fi +else $as_nop + for ac_prog in gzip +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_gzip+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$gzip"; then + ac_cv_prog_gzip="$gzip" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_gzip="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +gzip=$ac_cv_prog_gzip +if test -n "$gzip"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gzip" >&5 +printf "%s\n" "$gzip" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$gzip" && break +done + +fi + +if test -n "$gzip"; then + +printf "%s\n" "#define HAVE_GZIP 1" >>confdefs.h + +fi +if test -n "$gzip" +then + gunzip="$gzip -dc" + compressor="$gzip -c7" + compress_ext="gz" +fi + +# Check whether --with-compress was given. +if test ${with_compress+y} +then : + withval=$with_compress; if test "$withval" = yes || test "$withval" = no +then : + as_fn_error $? "--with-compress requires an argument" "$LINENO" 5 +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compress" >&5 +printf %s "checking for compress... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } + compress="$withval" +fi +else $as_nop + for ac_prog in compress +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_compress+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$compress"; then + ac_cv_prog_compress="$compress" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_compress="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +compress=$ac_cv_prog_compress +if test -n "$compress"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $compress" >&5 +printf "%s\n" "$compress" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$compress" && break +done + +fi + +if test -n "$compress"; then + +printf "%s\n" "#define HAVE_COMPRESS 1" >>confdefs.h + +fi +if test -n "$compress" +then + uncompress="$compress -dc" + if test -z "$gzip" + then + compressor="$compress -c" + compress_ext="Z" + fi +fi + +# Check whether --with-bzip2 was given. +if test ${with_bzip2+y} +then : + withval=$with_bzip2; if test "$withval" = yes || test "$withval" = no +then : + as_fn_error $? "--with-bzip2 requires an argument" "$LINENO" 5 +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bzip2" >&5 +printf %s "checking for bzip2... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } + bzip2="$withval" +fi +else $as_nop + for ac_prog in bzip2 +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_bzip2+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$bzip2"; then + ac_cv_prog_bzip2="$bzip2" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_bzip2="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +bzip2=$ac_cv_prog_bzip2 +if test -n "$bzip2"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $bzip2" >&5 +printf "%s\n" "$bzip2" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$bzip2" && break +done + +fi + +if test -n "$bzip2"; then + +printf "%s\n" "#define HAVE_BZIP2 1" >>confdefs.h + +fi +if test -n "$bzip2" +then + bunzip2="$bzip2 -dc" +fi + +# Check whether --with-xz was given. +if test ${with_xz+y} +then : + withval=$with_xz; if test "$withval" = yes || test "$withval" = no +then : + as_fn_error $? "--with-xz requires an argument" "$LINENO" 5 +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for xz" >&5 +printf %s "checking for xz... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } + xz="$withval" +fi +else $as_nop + for ac_prog in xz +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_xz+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$xz"; then + ac_cv_prog_xz="$xz" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_xz="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +xz=$ac_cv_prog_xz +if test -n "$xz"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $xz" >&5 +printf "%s\n" "$xz" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$xz" && break +done + +fi + +if test -n "$xz"; then + +printf "%s\n" "#define HAVE_XZ 1" >>confdefs.h + +fi +if test -n "$xz" +then + unxz="$xz -dc" + unlzma= +else + +# Check whether --with-lzma was given. +if test ${with_lzma+y} +then : + withval=$with_lzma; if test "$withval" = yes || test "$withval" = no +then : + as_fn_error $? "--with-lzma requires an argument" "$LINENO" 5 +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lzma" >&5 +printf %s "checking for lzma... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } + lzma="$withval" +fi +else $as_nop + for ac_prog in lzma +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_lzma+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$lzma"; then + ac_cv_prog_lzma="$lzma" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_lzma="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +lzma=$ac_cv_prog_lzma +if test -n "$lzma"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lzma" >&5 +printf "%s\n" "$lzma" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$lzma" && break +done + +fi + +if test -n "$lzma"; then + +printf "%s\n" "#define HAVE_LZMA 1" >>confdefs.h + +fi + if test -n "$lzma" + then + unlzma="$lzma -dc" + fi +fi + +# Check whether --with-lzip was given. +if test ${with_lzip+y} +then : + withval=$with_lzip; if test "$withval" = yes || test "$withval" = no +then : + as_fn_error $? "--with-lzip requires an argument" "$LINENO" 5 +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lzip" >&5 +printf %s "checking for lzip... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } + lzip="$withval" +fi +else $as_nop + for ac_prog in lzip +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_lzip+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$lzip"; then + ac_cv_prog_lzip="$lzip" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_lzip="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +lzip=$ac_cv_prog_lzip +if test -n "$lzip"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lzip" >&5 +printf "%s\n" "$lzip" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$lzip" && break +done + +fi + +if test -n "$lzip"; then + +printf "%s\n" "#define HAVE_LZIP 1" >>confdefs.h + +fi +if test -n "$lzip" +then + unlzip="$lzip -dc" +fi + +# Check whether --with-zstd was given. +if test ${with_zstd+y} +then : + withval=$with_zstd; if test "$withval" = yes || test "$withval" = no +then : + as_fn_error $? "--with-zstd requires an argument" "$LINENO" 5 +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for zstd" >&5 +printf %s "checking for zstd... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } + zstd="$withval" +fi +else $as_nop + for ac_prog in zstd +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_zstd+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$zstd"; then + ac_cv_prog_zstd="$zstd" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_zstd="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +zstd=$ac_cv_prog_zstd +if test -n "$zstd"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $zstd" >&5 +printf "%s\n" "$zstd" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$zstd" && break +done + +fi + +if test -n "$zstd"; then + +printf "%s\n" "#define HAVE_ZSTD 1" >>confdefs.h + +fi +if test -n "$zstd" +then + unzstd="$zstd -dc" +fi +if test -n "$compressor" +then + +printf "%s\n" "#define COMP_CAT 1" >>confdefs.h + +fi + + +printf "%s\n" "#define PROG_COMPRESSOR \"$compressor\"" >>confdefs.h + + +printf "%s\n" "#define COMPRESS_EXT \"$compress_ext\"" >>confdefs.h + + +printf "%s\n" "#define PROG_GUNZIP \"$gunzip\"" >>confdefs.h + + +printf "%s\n" "#define PROG_UNCOMPRESS \"$uncompress\"" >>confdefs.h + + +printf "%s\n" "#define PROG_BUNZIP2 \"$bunzip2\"" >>confdefs.h + + +printf "%s\n" "#define PROG_UNLZMA \"$unlzma\"" >>confdefs.h + + +printf "%s\n" "#define PROG_UNXZ \"$unxz\"" >>confdefs.h + + +printf "%s\n" "#define PROG_UNLZIP \"$unlzip\"" >>confdefs.h + + +printf "%s\n" "#define PROG_UNZSTD \"$unzstd\"" >>confdefs.h + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gzopen in -lz" >&5 +printf %s "checking for gzopen in -lz... " >&6; } +if test ${ac_cv_lib_z_gzopen+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char gzopen (); +int +main (void) +{ +return gzopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_z_gzopen=yes +else $as_nop + ac_cv_lib_z_gzopen=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzopen" >&5 +printf "%s\n" "$ac_cv_lib_z_gzopen" >&6; } +if test "x$ac_cv_lib_z_gzopen" = xyes +then : + +printf "%s\n" "#define HAVE_LIBZ 1" >>confdefs.h + + LIBCOMPRESS="-lz $LIBCOMPRESS" +fi + + + + +# Check for various header files and associated libraries. +for ac_prog in flex lex +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_LEX+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$LEX"; then + ac_cv_prog_LEX="$LEX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_LEX="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LEX=$ac_cv_prog_LEX +if test -n "$LEX"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5 +printf "%s\n" "$LEX" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$LEX" && break +done +test -n "$LEX" || LEX=":" + + if test "x$LEX" != "x:"; then + cat >conftest.l <<_ACEOF +%{ +#ifdef __cplusplus +extern "C" +#endif +int yywrap(void); +%} +%% +a { ECHO; } +b { REJECT; } +c { yymore (); } +d { yyless (1); } +e { /* IRIX 6.5 flex 2.5.4 underquotes its yyless argument. */ +#ifdef __cplusplus + yyless ((yyinput () != 0)); +#else + yyless ((input () != 0)); +#endif + } +f { unput (yytext[0]); } +. { BEGIN INITIAL; } +%% +#ifdef YYTEXT_POINTER +extern char *yytext; +#endif +int +yywrap (void) +{ + return 1; +} +int +main (void) +{ + return ! yylex (); +} +_ACEOF +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lex output file root" >&5 +printf %s "checking for lex output file root... " >&6; } +if test ${ac_cv_prog_lex_root+y} +then : + printf %s "(cached) " >&6 +else $as_nop + +ac_cv_prog_lex_root=unknown +{ { ac_try="$LEX conftest.l" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$LEX conftest.l") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && +if test -f lex.yy.c; then + ac_cv_prog_lex_root=lex.yy +elif test -f lexyy.c; then + ac_cv_prog_lex_root=lexyy +fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5 +printf "%s\n" "$ac_cv_prog_lex_root" >&6; } +if test "$ac_cv_prog_lex_root" = unknown +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot find output from $LEX; giving up on $LEX" >&5 +printf "%s\n" "$as_me: WARNING: cannot find output from $LEX; giving up on $LEX" >&2;} + LEX=: LEXLIB= +fi +LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root + +if test ${LEXLIB+y} +then : + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lex library" >&5 +printf %s "checking for lex library... " >&6; } +if test ${ac_cv_lib_lex+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + ac_save_LIBS="$LIBS" + ac_found=false + for ac_cv_lib_lex in 'none needed' -lfl -ll 'not found'; do + case $ac_cv_lib_lex in #( + 'none needed') : + ;; #( + 'not found') : + break ;; #( + *) : + LIBS="$ac_cv_lib_lex $ac_save_LIBS" ;; #( + *) : + ;; +esac + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +`cat $LEX_OUTPUT_ROOT.c` +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_found=: +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if $ac_found; then + break + fi + done + LIBS="$ac_save_LIBS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5 +printf "%s\n" "$ac_cv_lib_lex" >&6; } + if test "$ac_cv_lib_lex" = 'not found' +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: required lex library not found; giving up on $LEX" >&5 +printf "%s\n" "$as_me: WARNING: required lex library not found; giving up on $LEX" >&2;} + LEX=: LEXLIB= +elif test "$ac_cv_lib_lex" = 'none needed' +then : + LEXLIB='' +else $as_nop + LEXLIB=$ac_cv_lib_lex +fi + +fi + + +if test "$LEX" != : +then : + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5 +printf %s "checking whether yytext is a pointer... " >&6; } +if test ${ac_cv_prog_lex_yytext_pointer+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # POSIX says lex can declare yytext either as a pointer or an array; the +# default is implementation-dependent. Figure out which it is, since +# not all implementations provide the %pointer and %array declarations. +ac_cv_prog_lex_yytext_pointer=no +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #define YYTEXT_POINTER 1 +`cat $LEX_OUTPUT_ROOT.c` +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_lex_yytext_pointer=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5 +printf "%s\n" "$ac_cv_prog_lex_yytext_pointer" >&6; } +if test $ac_cv_prog_lex_yytext_pointer = yes; then + +printf "%s\n" "#define YYTEXT_POINTER 1" >>confdefs.h + +fi + +fi +rm -f conftest.l $LEX_OUTPUT_ROOT.c + +fi +if test "$LEX" = ":" && (test ! -e src/lexgrog.c || test ! -e src/zsoelim.c) +then + as_fn_error $? "flex is required when building from revision control" "$LINENO" 5 +fi + + + + + + + + + + # Check whether --enable-cross-guesses was given. +if test ${enable_cross_guesses+y} +then : + enableval=$enable_cross_guesses; if test "x$enableval" != xconservative && test "x$enableval" != xrisky; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: invalid argument supplied to --enable-cross-guesses" >&5 +printf "%s\n" "$as_me: WARNING: invalid argument supplied to --enable-cross-guesses" >&2;} + enableval=conservative + fi + gl_cross_guesses="$enableval" +else $as_nop + gl_cross_guesses=conservative +fi + + if test $gl_cross_guesses = risky; then + gl_cross_guess_normal="guessing yes" + gl_cross_guess_inverted="guessing no" + else + gl_cross_guess_normal="guessing no" + gl_cross_guess_inverted="guessing yes" + fi + LIBC_FATAL_STDERR_=1 + export LIBC_FATAL_STDERR_ + + +ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" +if test "x$ac_cv_type_size_t" = xyes +then : + +else $as_nop + +printf "%s\n" "#define size_t unsigned int" >>confdefs.h + +fi + +# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works +# for constant arguments. Useless! +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 +printf %s "checking for working alloca.h... " >&6; } +if test ${ac_cv_working_alloca_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +char *p = (char *) alloca (2 * sizeof (int)); + if (p) return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_working_alloca_h=yes +else $as_nop + ac_cv_working_alloca_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 +printf "%s\n" "$ac_cv_working_alloca_h" >&6; } +if test $ac_cv_working_alloca_h = yes; then + +printf "%s\n" "#define HAVE_ALLOCA_H 1" >>confdefs.h + +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 +printf %s "checking for alloca... " >&6; } +if test ${ac_cv_func_alloca_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test $ac_cv_working_alloca_h = yes; then + ac_cv_func_alloca_works=yes +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#ifndef alloca +# ifdef __GNUC__ +# define alloca __builtin_alloca +# elif defined _MSC_VER +# include +# define alloca _alloca +# else +# ifdef __cplusplus +extern "C" +# endif +void *alloca (size_t); +# endif +#endif + +int +main (void) +{ +char *p = (char *) alloca (1); + if (p) return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_func_alloca_works=yes +else $as_nop + ac_cv_func_alloca_works=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 +printf "%s\n" "$ac_cv_func_alloca_works" >&6; } +fi + +if test $ac_cv_func_alloca_works = yes; then + +printf "%s\n" "#define HAVE_ALLOCA 1" >>confdefs.h + +else + # The SVR3 libPW and SVR4 libucb both contain incompatible functions +# that cause trouble. Some versions do not even contain alloca or +# contain a buggy version. If you still want to use their alloca, +# use ar to extract alloca.o from them instead of compiling alloca.c. + + + + + +ALLOCA=\${LIBOBJDIR}alloca.$ac_objext + +printf "%s\n" "#define C_ALLOCA 1" >>confdefs.h + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 +printf %s "checking stack direction for C alloca... " >&6; } +if test ${ac_cv_c_stack_direction+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + ac_cv_c_stack_direction=0 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +find_stack_direction (int *addr, int depth) +{ + int dir, dummy = 0; + if (! addr) + addr = &dummy; + *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; + dir = depth ? find_stack_direction (addr, depth - 1) : 0; + return dir + dummy; +} + +int +main (int argc, char **argv) +{ + return find_stack_direction (0, argc + !argv + 20) < 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + ac_cv_c_stack_direction=1 +else $as_nop + ac_cv_c_stack_direction=-1 +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 +printf "%s\n" "$ac_cv_c_stack_direction" >&6; } +printf "%s\n" "#define STACK_DIRECTION $ac_cv_c_stack_direction" >>confdefs.h + + +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +printf %s "checking for inline... " >&6; } +if test ${ac_cv_c_inline+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo (void) {return 0; } +$ac_kw foo_t foo (void) {return 0; } +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_inline=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +printf "%s\n" "$ac_cv_c_inline" >&6; } + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5 +printf %s "checking for C/C++ restrict keyword... " >&6; } +if test ${ac_cv_c_restrict+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_c_restrict=no + # Put '__restrict__' first, to avoid problems with glibc and non-GCC; see: + # https://lists.gnu.org/archive/html/bug-autoconf/2016-02/msg00006.html + # Put 'restrict' last, because C++ lacks it. + for ac_kw in __restrict__ __restrict _Restrict restrict; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +typedef int *int_ptr; + int foo (int_ptr $ac_kw ip) { return ip[0]; } + int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ + int bar (int ip[$ac_kw]) { return ip[0]; } + +int +main (void) +{ +int s[1]; + int *$ac_kw t = s; + t[0] = 0; + return foo (t) + bar (t); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_restrict=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + test "$ac_cv_c_restrict" != no && break + done + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5 +printf "%s\n" "$ac_cv_c_restrict" >&6; } + + case $ac_cv_c_restrict in + restrict) ;; + no) printf "%s\n" "#define restrict /**/" >>confdefs.h + ;; + *) printf "%s\n" "#define restrict $ac_cv_c_restrict" >>confdefs.h + ;; + esac + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } +if test ${ac_cv_c_undeclared_builtin_options+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_save_CFLAGS=$CFLAGS + ac_cv_c_undeclared_builtin_options='cannot detect' + for ac_arg in '' -fno-builtin; do + CFLAGS="$ac_save_CFLAGS $ac_arg" + # This test program should *not* compile successfully. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +(void) strchr; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + # This test program should compile successfully. + # No library function is consistently available on + # freestanding implementations, so test against a dummy + # declaration. Include always-available headers on the + # off chance that they somehow elicit warnings. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +extern void ac_decl (int, char *); + +int +main (void) +{ +(void) ac_decl (0, (char *) 0); + (void) ac_decl; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + if test x"$ac_arg" = x +then : + ac_cv_c_undeclared_builtin_options='none needed' +else $as_nop + ac_cv_c_undeclared_builtin_options=$ac_arg +fi + break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + done + CFLAGS=$ac_save_CFLAGS + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5 +printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; } + case $ac_cv_c_undeclared_builtin_options in #( + 'cannot detect') : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot make $CC report undeclared builtins +See \`config.log' for more details" "$LINENO" 5; } ;; #( + 'none needed') : + ac_c_undeclared_builtin_options='' ;; #( + *) : + ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;; +esac + +ac_fn_check_decl "$LINENO" "clearerr_unlocked" "ac_cv_have_decl_clearerr_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_clearerr_unlocked" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_CLEARERR_UNLOCKED $ac_have_decl" >>confdefs.h + +ac_fn_check_decl "$LINENO" "feof_unlocked" "ac_cv_have_decl_feof_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_feof_unlocked" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_FEOF_UNLOCKED $ac_have_decl" >>confdefs.h + +ac_fn_check_decl "$LINENO" "ferror_unlocked" "ac_cv_have_decl_ferror_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_ferror_unlocked" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_FERROR_UNLOCKED $ac_have_decl" >>confdefs.h + +ac_fn_check_decl "$LINENO" "fflush_unlocked" "ac_cv_have_decl_fflush_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_fflush_unlocked" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_FFLUSH_UNLOCKED $ac_have_decl" >>confdefs.h + +ac_fn_check_decl "$LINENO" "fgets_unlocked" "ac_cv_have_decl_fgets_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_fgets_unlocked" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_FGETS_UNLOCKED $ac_have_decl" >>confdefs.h + +ac_fn_check_decl "$LINENO" "fputc_unlocked" "ac_cv_have_decl_fputc_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_fputc_unlocked" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_FPUTC_UNLOCKED $ac_have_decl" >>confdefs.h + +ac_fn_check_decl "$LINENO" "fputs_unlocked" "ac_cv_have_decl_fputs_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_fputs_unlocked" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_FPUTS_UNLOCKED $ac_have_decl" >>confdefs.h + +ac_fn_check_decl "$LINENO" "fread_unlocked" "ac_cv_have_decl_fread_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_fread_unlocked" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_FREAD_UNLOCKED $ac_have_decl" >>confdefs.h + +ac_fn_check_decl "$LINENO" "fwrite_unlocked" "ac_cv_have_decl_fwrite_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_fwrite_unlocked" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_FWRITE_UNLOCKED $ac_have_decl" >>confdefs.h + +ac_fn_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_getc_unlocked" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl" >>confdefs.h + +ac_fn_check_decl "$LINENO" "getchar_unlocked" "ac_cv_have_decl_getchar_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_getchar_unlocked" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_GETCHAR_UNLOCKED $ac_have_decl" >>confdefs.h + +ac_fn_check_decl "$LINENO" "putc_unlocked" "ac_cv_have_decl_putc_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_putc_unlocked" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_PUTC_UNLOCKED $ac_have_decl" >>confdefs.h + +ac_fn_check_decl "$LINENO" "putchar_unlocked" "ac_cv_have_decl_putchar_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_putchar_unlocked" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_PUTCHAR_UNLOCKED $ac_have_decl" >>confdefs.h + + + + + +ac_fn_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_strerror_r" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_STRERROR_R $ac_have_decl" >>confdefs.h + + +if test $ac_cv_have_decl_strerror_r = yes; then + # For backward compatibility's sake, define HAVE_STRERROR_R. + # (We used to run AC_CHECK_FUNCS_ONCE for strerror_r, as well + # as AC_CHECK_DECLS_ONCE.) + +printf "%s\n" "#define HAVE_STRERROR_R 1" >>confdefs.h + +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5 +printf %s "checking whether strerror_r returns char *... " >&6; } +if test ${ac_cv_func_strerror_r_char_p+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + ac_cv_func_strerror_r_char_p=no + if test $ac_cv_have_decl_strerror_r = yes; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ + + char buf[100]; + char x = *strerror_r (0, buf, sizeof buf); + char *p = strerror_r (0, buf, sizeof buf); + return !p || x; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_func_strerror_r_char_p=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5 +printf "%s\n" "$ac_cv_func_strerror_r_char_p" >&6; } +if test $ac_cv_func_strerror_r_char_p = yes; then + +printf "%s\n" "#define STRERROR_R_CHAR_P 1" >>confdefs.h + +fi + + + XGETTEXT_EXTRA_OPTIONS= + + + HAVE_BTOWC=1; + HAVE_MBSINIT=1; + HAVE_MBRTOWC=1; + HAVE_MBRLEN=1; + HAVE_MBSRTOWCS=1; + HAVE_MBSNRTOWCS=1; + HAVE_WCRTOMB=1; + HAVE_WCSRTOMBS=1; + HAVE_WCSNRTOMBS=1; + HAVE_WMEMCHR=1; + HAVE_WMEMCMP=1; + HAVE_WMEMCPY=1; + HAVE_WMEMMOVE=1; + HAVE_WMEMPCPY=1; + HAVE_WMEMSET=1; + HAVE_WCSLEN=1; + HAVE_WCSNLEN=1; + HAVE_WCSCPY=1; + HAVE_WCPCPY=1; + HAVE_WCSNCPY=1; + HAVE_WCPNCPY=1; + HAVE_WCSCAT=1; + HAVE_WCSNCAT=1; + HAVE_WCSCMP=1; + HAVE_WCSNCMP=1; + HAVE_WCSCASECMP=1; + HAVE_WCSNCASECMP=1; + HAVE_WCSCOLL=1; + HAVE_WCSXFRM=1; + HAVE_WCSDUP=1; + HAVE_WCSCHR=1; + HAVE_WCSRCHR=1; + HAVE_WCSCSPN=1; + HAVE_WCSSPN=1; + HAVE_WCSPBRK=1; + HAVE_WCSSTR=1; + HAVE_WCSTOK=1; + HAVE_WCSWIDTH=1; + HAVE_WCSFTIME=1; + HAVE_DECL_WCTOB=1; + HAVE_DECL_WCSDUP=1; + HAVE_DECL_WCWIDTH=1; + REPLACE_MBSTATE_T=0; + REPLACE_BTOWC=0; + REPLACE_WCTOB=0; + REPLACE_MBSINIT=0; + REPLACE_MBRTOWC=0; + REPLACE_MBRLEN=0; + REPLACE_MBSRTOWCS=0; + REPLACE_MBSNRTOWCS=0; + REPLACE_WCRTOMB=0; + REPLACE_WCSRTOMBS=0; + REPLACE_WCSNRTOMBS=0; + REPLACE_WCWIDTH=0; + REPLACE_WCSWIDTH=0; + REPLACE_WCSFTIME=0; + REPLACE_WCSTOK=0; + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether uses 'inline' correctly" >&5 +printf %s "checking whether uses 'inline' correctly... " >&6; } +if test ${gl_cv_header_wchar_h_correct_inline+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gl_cv_header_wchar_h_correct_inline=yes + case "$host_os" in + *-gnu* | gnu*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + #define wcstod renamed_wcstod + #include + extern int zero (void); + int main () { return zero(); } + +_ACEOF + save_ac_compile="$ac_compile" + ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest1/` + if echo '#include "conftest.c"' >conftest1.c \ + && { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + #define wcstod renamed_wcstod + #include + int zero (void) { return 0; } + +_ACEOF + ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest2/` + if echo '#include "conftest.c"' >conftest2.c \ + && { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&5 2>&1; then + : + else + gl_cv_header_wchar_h_correct_inline=no + fi + fi + fi + ac_compile="$save_ac_compile" + rm -f conftest12.c conftest12.$ac_objext conftest$ac_exeext + ;; + esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_wchar_h_correct_inline" >&5 +printf "%s\n" "$gl_cv_header_wchar_h_correct_inline" >&6; } + if test $gl_cv_header_wchar_h_correct_inline = no; then + as_fn_error $? " cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS). +This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in +C99 mode. You have four options: + - Add the flag -fgnu89-inline to CC and reconfigure, or + - Fix your include files, using parts of + , or + - Use a gcc version older than 4.3, or + - Don't use the flags -std=c99 or -std=gnu99. +Configuration aborted." "$LINENO" 5 + fi + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 +printf %s "checking for nl_langinfo and CODESET... " >&6; } +if test ${am_cv_langinfo_codeset+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +char* cs = nl_langinfo(CODESET); return !cs; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + am_cv_langinfo_codeset=yes +else $as_nop + am_cv_langinfo_codeset=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5 +printf "%s\n" "$am_cv_langinfo_codeset" >&6; } + if test $am_cv_langinfo_codeset = yes; then + +printf "%s\n" "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h + + fi + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5 +printf %s "checking for a traditional french locale... " >&6; } +if test ${gt_cv_locale_fr+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if HAVE_LANGINFO_CODESET +# include +#endif +#include +#include +struct tm t; +char buf[16]; +int main () { + /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl + imitates locale dependent behaviour by looking at the environment + variables, and all locales use the UTF-8 encoding. */ +#if defined __BEOS__ || defined __HAIKU__ + return 1; +#else + /* Check whether the given locale name is recognized by the system. */ +# if defined _WIN32 && !defined __CYGWIN__ + /* On native Windows, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; +# else + if (setlocale (LC_ALL, "") == NULL) return 1; +# endif + /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". + On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) + is empty, and the behaviour of Tcl 8.4 in this locale is not useful. + On OpenBSD 4.0, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "646". In this situation, + some unit tests fail. + On MirBSD 10, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "UTF-8". */ +# if HAVE_LANGINFO_CODESET + { + const char *cs = nl_langinfo (CODESET); + if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 + || strcmp (cs, "UTF-8") == 0) + return 1; + } +# endif +# ifdef __CYGWIN__ + /* On Cygwin, avoid locale names without encoding suffix, because the + locale_charset() function relies on the encoding suffix. Note that + LC_ALL is set on the command line. */ + if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; +# endif + /* Check whether in the abbreviation of the second month, the second + character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only + one byte long. This excludes the UTF-8 encoding. */ + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; +# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ + /* Check whether the decimal separator is a comma. + On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point + are nl_langinfo(RADIXCHAR) are both ".". */ + if (localeconv () ->decimal_point[0] != ',') return 1; +# endif + return 0; +#endif +} + +_ACEOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + case "$host_os" in + # Handle native Windows specially, because there setlocale() interprets + # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", + # "fr" or "fra" as "French" or "French_France.1252", + # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", + # "ja" as "Japanese" or "Japanese_Japan.932", + # and similar. + mingw*) + # Test for the native Windows locale name. + if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=French_France.1252 + else + # None found. + gt_cv_locale_fr=none + fi + ;; + *) + # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because + # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the + # configure script would override the LC_ALL setting. Likewise for + # LC_CTYPE, which is also set at the beginning of the configure script. + # Test for the usual locale name. + if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=fr_FR + else + # Test for the locale name with explicit encoding suffix. + if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=fr_FR.ISO-8859-1 + else + # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. + if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=fr_FR.ISO8859-1 + else + # Test for the HP-UX locale name. + if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=fr_FR.iso88591 + else + # Test for the Solaris 7 locale name. + if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=fr + else + # None found. + gt_cv_locale_fr=none + fi + fi + fi + fi + fi + ;; + esac + fi + rm -fr conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5 +printf "%s\n" "$gt_cv_locale_fr" >&6; } + LOCALE_FR=$gt_cv_locale_fr + + + + + GL_GNULIB_BTOWC=0 + + + + GL_GNULIB_WCTOB=0 + + + + GL_GNULIB_MBSINIT=0 + + + + GL_GNULIB_MBRTOWC=0 + + + + GL_GNULIB_MBRLEN=0 + + + + GL_GNULIB_MBSRTOWCS=0 + + + + GL_GNULIB_MBSNRTOWCS=0 + + + + GL_GNULIB_WCRTOMB=0 + + + + GL_GNULIB_WCSRTOMBS=0 + + + + GL_GNULIB_WCSNRTOMBS=0 + + + + GL_GNULIB_WCWIDTH=0 + + + + GL_GNULIB_WMEMCHR=0 + + + + GL_GNULIB_WMEMCMP=0 + + + + GL_GNULIB_WMEMCPY=0 + + + + GL_GNULIB_WMEMMOVE=0 + + + + GL_GNULIB_WMEMPCPY=0 + + + + GL_GNULIB_WMEMSET=0 + + + + GL_GNULIB_WCSLEN=0 + + + + GL_GNULIB_WCSNLEN=0 + + + + GL_GNULIB_WCSCPY=0 + + + + GL_GNULIB_WCPCPY=0 + + + + GL_GNULIB_WCSNCPY=0 + + + + GL_GNULIB_WCPNCPY=0 + + + + GL_GNULIB_WCSCAT=0 + + + + GL_GNULIB_WCSNCAT=0 + + + + GL_GNULIB_WCSCMP=0 + + + + GL_GNULIB_WCSNCMP=0 + + + + GL_GNULIB_WCSCASECMP=0 + + + + GL_GNULIB_WCSNCASECMP=0 + + + + GL_GNULIB_WCSCOLL=0 + + + + GL_GNULIB_WCSXFRM=0 + + + + GL_GNULIB_WCSDUP=0 + + + + GL_GNULIB_WCSCHR=0 + + + + GL_GNULIB_WCSRCHR=0 + + + + GL_GNULIB_WCSCSPN=0 + + + + GL_GNULIB_WCSSPN=0 + + + + GL_GNULIB_WCSPBRK=0 + + + + GL_GNULIB_WCSSTR=0 + + + + GL_GNULIB_WCSTOK=0 + + + + GL_GNULIB_WCSWIDTH=0 + + + + GL_GNULIB_WCSFTIME=0 + + + + GL_GNULIB_MDA_WCSDUP=1 + + + + + + GL_GNULIB__EXIT=0 + + + + GL_GNULIB_ALIGNED_ALLOC=0 + + + + GL_GNULIB_ATOLL=0 + + + + GL_GNULIB_CALLOC_GNU=0 + + + + GL_GNULIB_CALLOC_POSIX=0 + + + + GL_GNULIB_CANONICALIZE_FILE_NAME=0 + + + + GL_GNULIB_FREE_POSIX=0 + + + + GL_GNULIB_GETLOADAVG=0 + + + + GL_GNULIB_GETSUBOPT=0 + + + + GL_GNULIB_GRANTPT=0 + + + + GL_GNULIB_MALLOC_GNU=0 + + + + GL_GNULIB_MALLOC_POSIX=0 + + + + GL_GNULIB_MBTOWC=0 + + + + GL_GNULIB_MKDTEMP=0 + + + + GL_GNULIB_MKOSTEMP=0 + + + + GL_GNULIB_MKOSTEMPS=0 + + + + GL_GNULIB_MKSTEMP=0 + + + + GL_GNULIB_MKSTEMPS=0 + + + + GL_GNULIB_POSIX_MEMALIGN=0 + + + + GL_GNULIB_POSIX_OPENPT=0 + + + + GL_GNULIB_PTSNAME=0 + + + + GL_GNULIB_PTSNAME_R=0 + + + + GL_GNULIB_PUTENV=0 + + + + GL_GNULIB_QSORT_R=0 + + + + GL_GNULIB_RANDOM=0 + + + + GL_GNULIB_RANDOM_R=0 + + + + GL_GNULIB_REALLOCARRAY=0 + + + + GL_GNULIB_REALLOC_GNU=0 + + + + GL_GNULIB_REALLOC_POSIX=0 + + + + GL_GNULIB_REALPATH=0 + + + + GL_GNULIB_RPMATCH=0 + + + + GL_GNULIB_SECURE_GETENV=0 + + + + GL_GNULIB_SETENV=0 + + + + GL_GNULIB_STRTOD=0 + + + + GL_GNULIB_STRTOL=0 + + + + GL_GNULIB_STRTOLD=0 + + + + GL_GNULIB_STRTOLL=0 + + + + GL_GNULIB_STRTOUL=0 + + + + GL_GNULIB_STRTOULL=0 + + + + GL_GNULIB_SYSTEM_POSIX=0 + + + + GL_GNULIB_UNLOCKPT=0 + + + + GL_GNULIB_UNSETENV=0 + + + + GL_GNULIB_WCTOMB=0 + + + + GL_GNULIB_MDA_ECVT=1 + + + + GL_GNULIB_MDA_FCVT=1 + + + + GL_GNULIB_MDA_GCVT=1 + + + + GL_GNULIB_MDA_MKTEMP=1 + + + + GL_GNULIB_MDA_PUTENV=1 + + + + + HAVE__EXIT=1; + HAVE_ALIGNED_ALLOC=1; + HAVE_ATOLL=1; + HAVE_CANONICALIZE_FILE_NAME=1; + HAVE_DECL_ECVT=1; + HAVE_DECL_FCVT=1; + HAVE_DECL_GCVT=1; + HAVE_DECL_GETLOADAVG=1; + HAVE_GETSUBOPT=1; + HAVE_GRANTPT=1; + HAVE_INITSTATE=1; + HAVE_DECL_INITSTATE=1; + HAVE_MBTOWC=1; + HAVE_MKDTEMP=1; + HAVE_MKOSTEMP=1; + HAVE_MKOSTEMPS=1; + HAVE_MKSTEMP=1; + HAVE_MKSTEMPS=1; + HAVE_POSIX_MEMALIGN=1; + HAVE_POSIX_OPENPT=1; + HAVE_PTSNAME=1; + HAVE_PTSNAME_R=1; + HAVE_QSORT_R=1; + HAVE_RANDOM=1; + HAVE_RANDOM_H=1; + HAVE_RANDOM_R=1; + HAVE_REALLOCARRAY=1; + HAVE_REALPATH=1; + HAVE_RPMATCH=1; + HAVE_SECURE_GETENV=1; + HAVE_SETENV=1; + HAVE_DECL_SETENV=1; + HAVE_SETSTATE=1; + HAVE_DECL_SETSTATE=1; + HAVE_STRTOD=1; + HAVE_STRTOL=1; + HAVE_STRTOLD=1; + HAVE_STRTOLL=1; + HAVE_STRTOUL=1; + HAVE_STRTOULL=1; + HAVE_STRUCT_RANDOM_DATA=1; + HAVE_SYS_LOADAVG_H=0; + HAVE_UNLOCKPT=1; + HAVE_DECL_UNSETENV=1; + REPLACE_ALIGNED_ALLOC=0; + REPLACE_CALLOC_FOR_CALLOC_GNU=0; + REPLACE_CALLOC_FOR_CALLOC_POSIX=0; + REPLACE_CANONICALIZE_FILE_NAME=0; + REPLACE_FREE=0; + REPLACE_INITSTATE=0; + REPLACE_MALLOC_FOR_MALLOC_GNU=0; + REPLACE_MALLOC_FOR_MALLOC_POSIX=0; + REPLACE_MBTOWC=0; + REPLACE_MKSTEMP=0; + REPLACE_POSIX_MEMALIGN=0; + REPLACE_PTSNAME=0; + REPLACE_PTSNAME_R=0; + REPLACE_PUTENV=0; + REPLACE_QSORT_R=0; + REPLACE_RANDOM=0; + REPLACE_RANDOM_R=0; + REPLACE_REALLOC_FOR_REALLOC_GNU=0; + REPLACE_REALLOC_FOR_REALLOC_POSIX=0; + REPLACE_REALLOCARRAY=0; + REPLACE_REALPATH=0; + REPLACE_SETENV=0; + REPLACE_SETSTATE=0; + REPLACE_STRTOD=0; + REPLACE_STRTOL=0; + REPLACE_STRTOLD=0; + REPLACE_STRTOLL=0; + REPLACE_STRTOUL=0; + REPLACE_STRTOULL=0; + REPLACE_UNSETENV=0; + REPLACE_WCTOMB=0; + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether malloc is ptrdiff_t safe" >&5 +printf %s "checking whether malloc is ptrdiff_t safe... " >&6; } +if test ${gl_cv_malloc_ptrdiff+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +/* 64-bit ptrdiff_t is so wide that no practical platform + can exceed it. */ + #define WIDE_PTRDIFF (PTRDIFF_MAX >> 31 >> 31 != 0) + + /* On rare machines where size_t fits in ptrdiff_t there + is no problem. */ + #define NARROW_SIZE (SIZE_MAX <= PTRDIFF_MAX) + + /* glibc 2.30 and later malloc refuses to exceed ptrdiff_t + bounds even on 32-bit platforms. We don't know which + non-glibc systems are safe. */ + #define KNOWN_SAFE (2 < __GLIBC__ + (30 <= __GLIBC_MINOR__)) + + #if WIDE_PTRDIFF || NARROW_SIZE || KNOWN_SAFE + return 0; + #else + #error "malloc might not be ptrdiff_t safe" + syntax error + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_malloc_ptrdiff=yes +else $as_nop + gl_cv_malloc_ptrdiff=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_malloc_ptrdiff" >&5 +printf "%s\n" "$gl_cv_malloc_ptrdiff" >&6; } + + + + + test "$gl_cv_malloc_ptrdiff" = yes || REPLACE_MALLOC_FOR_MALLOC_POSIX=1 + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc set errno on failure" >&5 +printf %s "checking whether malloc, realloc, calloc set errno on failure... " >&6; } +if test ${gl_cv_func_malloc_posix+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + case "$host_os" in + mingw*) + gl_cv_func_malloc_posix=no ;; + irix* | solaris*) + + gl_cv_func_malloc_posix=no ;; + *) + gl_cv_func_malloc_posix=yes ;; + esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_malloc_posix" >&5 +printf "%s\n" "$gl_cv_func_malloc_posix" >&6; } + + + + + + if test "$gl_cv_func_malloc_posix" = yes; then + +printf "%s\n" "#define HAVE_MALLOC_POSIX 1" >>confdefs.h + + else + REPLACE_MALLOC_FOR_MALLOC_POSIX=1 + fi + + + + + if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then + REPLACE_CALLOC_FOR_CALLOC_POSIX=1 + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 +printf %s "checking whether lstat correctly handles trailing slash... " >&6; } +if test ${gl_cv_func_lstat_dereferences_slashed_symlink+y} +then : + printf %s "(cached) " >&6 +else $as_nop + rm -f conftest.sym conftest.file + echo >conftest.file + if test "$cross_compiling" = yes +then : + case "$host_os" in + linux-* | linux) + # Guess yes on Linux systems. + gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; + *-gnu* | gnu*) + # Guess yes on glibc systems. + gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; + mingw*) + # Guess no on native Windows. + gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;; + *) + # If we don't know, obey --enable-cross-guesses. + gl_cv_func_lstat_dereferences_slashed_symlink="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main (void) +{ +struct stat sbuf; + if (symlink ("conftest.file", "conftest.sym") != 0) + return 1; + /* Linux will dereference the symlink and fail, as required by + POSIX. That is better in the sense that it means we will not + have to compile and use the lstat wrapper. */ + return lstat ("conftest.sym/", &sbuf) == 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_lstat_dereferences_slashed_symlink=yes +else $as_nop + gl_cv_func_lstat_dereferences_slashed_symlink=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.sym conftest.file + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lstat_dereferences_slashed_symlink" >&5 +printf "%s\n" "$gl_cv_func_lstat_dereferences_slashed_symlink" >&6; } + case "$gl_cv_func_lstat_dereferences_slashed_symlink" in + *yes) + +printf "%s\n" "#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1" >>confdefs.h + + ;; + esac + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5 +printf %s "checking whether // is distinct from /... " >&6; } +if test ${gl_cv_double_slash_root+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test x"$cross_compiling" = xyes ; then + # When cross-compiling, there is no way to tell whether // is special + # short of a list of hosts. However, the only known hosts to date + # that have a distinct // are Apollo DomainOS (too old to port to), + # Cygwin, and z/OS. If anyone knows of another system for which // has + # special semantics and is distinct from /, please report it to + # . + case $host in + *-cygwin | i370-ibm-openedition) + gl_cv_double_slash_root=yes ;; + *) + # Be optimistic and assume that / and // are the same when we + # don't know. + gl_cv_double_slash_root='unknown, assuming no' ;; + esac + else + set x `ls -di / // 2>/dev/null` + if test "$2" = "$4" && wc //dev/null >/dev/null 2>&1; then + gl_cv_double_slash_root=no + else + gl_cv_double_slash_root=yes + fi + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_double_slash_root" >&5 +printf "%s\n" "$gl_cv_double_slash_root" >&6; } + if test "$gl_cv_double_slash_root" = yes; then + +printf "%s\n" "#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h + + fi + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether realpath works" >&5 +printf %s "checking whether realpath works... " >&6; } +if test ${gl_cv_func_realpath_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + rm -rf conftest.a conftest.d + touch conftest.a + # Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + ln -s conftest.a conftest.l + fi + mkdir conftest.d + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_realpath_works="guessing yes" ;; + # Guess 'nearly' on musl systems. + *-musl*) gl_cv_func_realpath_works="guessing nearly" ;; + # Guess no on Cygwin. + cygwin*) gl_cv_func_realpath_works="guessing no" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_realpath_works="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_realpath_works="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + +#include +#if defined __MACH__ && defined __APPLE__ +/* Avoid a crash on Mac OS X. */ +#include +#include +#include +#include +#include +#include +/* The exception port on which our thread listens. */ +static mach_port_t our_exception_port; +/* The main function of the thread listening for exceptions of type + EXC_BAD_ACCESS. */ +static void * +mach_exception_thread (void *arg) +{ + /* Buffer for a message to be received. */ + struct { + mach_msg_header_t head; + mach_msg_body_t msgh_body; + char data[1024]; + } msg; + mach_msg_return_t retval; + /* Wait for a message on the exception port. */ + retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg), + our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); + if (retval != MACH_MSG_SUCCESS) + abort (); + exit (1); +} +static void +nocrash_init (void) +{ + mach_port_t self = mach_task_self (); + /* Allocate a port on which the thread shall listen for exceptions. */ + if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) + == KERN_SUCCESS) { + /* See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ + if (mach_port_insert_right (self, our_exception_port, our_exception_port, + MACH_MSG_TYPE_MAKE_SEND) + == KERN_SUCCESS) { + /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting + for us. */ + exception_mask_t mask = EXC_MASK_BAD_ACCESS; + /* Create the thread listening on the exception port. */ + pthread_attr_t attr; + pthread_t thread; + if (pthread_attr_init (&attr) == 0 + && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0 + && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) { + pthread_attr_destroy (&attr); + /* Replace the exception port info for these exceptions with our own. + Note that we replace the exception port for the entire task, not only + for a particular thread. This has the effect that when our exception + port gets the message, the thread specific exception port has already + been asked, and we don't need to bother about it. + See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ + task_set_exception_ports (self, mask, our_exception_port, + EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); + } + } + } +} +#elif defined _WIN32 && ! defined __CYGWIN__ +/* Avoid a crash on native Windows. */ +#define WIN32_LEAN_AND_MEAN +#include +#include +static LONG WINAPI +exception_filter (EXCEPTION_POINTERS *ExceptionInfo) +{ + switch (ExceptionInfo->ExceptionRecord->ExceptionCode) + { + case EXCEPTION_ACCESS_VIOLATION: + case EXCEPTION_IN_PAGE_ERROR: + case EXCEPTION_STACK_OVERFLOW: + case EXCEPTION_GUARD_PAGE: + case EXCEPTION_PRIV_INSTRUCTION: + case EXCEPTION_ILLEGAL_INSTRUCTION: + case EXCEPTION_DATATYPE_MISALIGNMENT: + case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: + case EXCEPTION_NONCONTINUABLE_EXCEPTION: + exit (1); + } + return EXCEPTION_CONTINUE_SEARCH; +} +static void +nocrash_init (void) +{ + SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter); +} +#else +/* Avoid a crash on POSIX systems. */ +#include +#include +/* A POSIX signal handler. */ +static void +exception_handler (int sig) +{ + _exit (1); +} +static void +nocrash_init (void) +{ +#ifdef SIGSEGV + signal (SIGSEGV, exception_handler); +#endif +#ifdef SIGBUS + signal (SIGBUS, exception_handler); +#endif +} +#endif + + #include + #include + #include + +int +main (void) +{ + + int result = 0; + /* This test fails on Solaris 10. */ + { + char *name = realpath ("conftest.a", NULL); + if (!(name && *name == '/')) + result |= 1; + free (name); + } + /* This test fails on older versions of Cygwin. */ + { + char *name = realpath ("conftest.b/../conftest.a", NULL); + if (name != NULL) + result |= 2; + free (name); + } + /* This test fails on Cygwin 2.9. */ + #if HAVE_LSTAT + { + char *name = realpath ("conftest.l/../conftest.a", NULL); + if (name != NULL || errno != ENOTDIR) + result |= 4; + free (name); + } + #endif + /* This test fails on Mac OS X 10.13, OpenBSD 6.0. */ + { + char *name = realpath ("conftest.a/", NULL); + if (name != NULL) + result |= 8; + free (name); + } + /* This test fails on AIX 7, Solaris 10. */ + { + char *name1 = realpath (".", NULL); + char *name2 = realpath ("conftest.d//./..", NULL); + if (! name1 || ! name2 || strcmp (name1, name2)) + result |= 16; + free (name1); + free (name2); + } + #ifdef __linux__ + /* On Linux, // is the same as /. See also double-slash-root.m4. + realpath() should respect this. + This test fails on musl libc 1.2.2. */ + { + char *name = realpath ("//", NULL); + if (! name || strcmp (name, "/")) + result |= 32; + free (name); + } + #endif + return result; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_realpath_works=yes +else $as_nop + case $? in + 32) gl_cv_func_realpath_works=nearly ;; + *) gl_cv_func_realpath_works=no ;; + esac + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -rf conftest.a conftest.l conftest.d + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_realpath_works" >&5 +printf "%s\n" "$gl_cv_func_realpath_works" >&6; } + case "$gl_cv_func_realpath_works" in + *yes) + +printf "%s\n" "#define FUNC_REALPATH_WORKS 1" >>confdefs.h + + ;; + *nearly) + +printf "%s\n" "#define FUNC_REALPATH_NEARLY_WORKS 1" >>confdefs.h + + ;; + esac + + + + + + + + + case "$host_os" in + mingw*) ;; + *) ac_fn_c_check_func "$LINENO" "getcwd" "ac_cv_func_getcwd" +if test "x$ac_cv_func_getcwd" = xyes +then : + printf "%s\n" "#define HAVE_GETCWD 1" >>confdefs.h + +fi + ;; + esac + + + + + + + + GL_GNULIB_ACCESS=0 + + + + GL_GNULIB_CHDIR=0 + + + + GL_GNULIB_CHOWN=0 + + + + GL_GNULIB_CLOSE=0 + + + + GL_GNULIB_COPY_FILE_RANGE=0 + + + + GL_GNULIB_DUP=0 + + + + GL_GNULIB_DUP2=0 + + + + GL_GNULIB_DUP3=0 + + + + GL_GNULIB_ENVIRON=0 + + + + GL_GNULIB_EUIDACCESS=0 + + + + GL_GNULIB_EXECL=0 + + + + GL_GNULIB_EXECLE=0 + + + + GL_GNULIB_EXECLP=0 + + + + GL_GNULIB_EXECV=0 + + + + GL_GNULIB_EXECVE=0 + + + + GL_GNULIB_EXECVP=0 + + + + GL_GNULIB_EXECVPE=0 + + + + GL_GNULIB_FACCESSAT=0 + + + + GL_GNULIB_FCHDIR=0 + + + + GL_GNULIB_FCHOWNAT=0 + + + + GL_GNULIB_FDATASYNC=0 + + + + GL_GNULIB_FSYNC=0 + + + + GL_GNULIB_FTRUNCATE=0 + + + + GL_GNULIB_GETCWD=0 + + + + GL_GNULIB_GETDOMAINNAME=0 + + + + GL_GNULIB_GETDTABLESIZE=0 + + + + GL_GNULIB_GETENTROPY=0 + + + + GL_GNULIB_GETGROUPS=0 + + + + GL_GNULIB_GETHOSTNAME=0 + + + + GL_GNULIB_GETLOGIN=0 + + + + GL_GNULIB_GETLOGIN_R=0 + + + + GL_GNULIB_GETOPT_POSIX=0 + + + + GL_GNULIB_GETPAGESIZE=0 + + + + GL_GNULIB_GETPASS=0 + + + + GL_GNULIB_GETPASS_GNU=0 + + + + GL_GNULIB_GETUSERSHELL=0 + + + + GL_GNULIB_GROUP_MEMBER=0 + + + + GL_GNULIB_ISATTY=0 + + + + GL_GNULIB_LCHOWN=0 + + + + GL_GNULIB_LINK=0 + + + + GL_GNULIB_LINKAT=0 + + + + GL_GNULIB_LSEEK=0 + + + + GL_GNULIB_PIPE=0 + + + + GL_GNULIB_PIPE2=0 + + + + GL_GNULIB_PREAD=0 + + + + GL_GNULIB_PWRITE=0 + + + + GL_GNULIB_READ=0 + + + + GL_GNULIB_READLINK=0 + + + + GL_GNULIB_READLINKAT=0 + + + + GL_GNULIB_RMDIR=0 + + + + GL_GNULIB_SETHOSTNAME=0 + + + + GL_GNULIB_SLEEP=0 + + + + GL_GNULIB_SYMLINK=0 + + + + GL_GNULIB_SYMLINKAT=0 + + + + GL_GNULIB_TRUNCATE=0 + + + + GL_GNULIB_TTYNAME_R=0 + + + + GL_GNULIB_UNISTD_H_GETOPT=0 + + + + GL_GNULIB_UNISTD_H_NONBLOCKING=0 + + + + GL_GNULIB_UNISTD_H_SIGPIPE=0 + + + + GL_GNULIB_UNLINK=0 + + + + GL_GNULIB_UNLINKAT=0 + + + + GL_GNULIB_USLEEP=0 + + + + GL_GNULIB_WRITE=0 + + + + GL_GNULIB_MDA_ACCESS=1 + + + + GL_GNULIB_MDA_CHDIR=1 + + + + GL_GNULIB_MDA_CLOSE=1 + + + + GL_GNULIB_MDA_DUP=1 + + + + GL_GNULIB_MDA_DUP2=1 + + + + GL_GNULIB_MDA_EXECL=1 + + + + GL_GNULIB_MDA_EXECLE=1 + + + + GL_GNULIB_MDA_EXECLP=1 + + + + GL_GNULIB_MDA_EXECV=1 + + + + GL_GNULIB_MDA_EXECVE=1 + + + + GL_GNULIB_MDA_EXECVP=1 + + + + GL_GNULIB_MDA_EXECVPE=1 + + + + GL_GNULIB_MDA_GETCWD=1 + + + + GL_GNULIB_MDA_GETPID=1 + + + + GL_GNULIB_MDA_ISATTY=1 + + + + GL_GNULIB_MDA_LSEEK=1 + + + + GL_GNULIB_MDA_READ=1 + + + + GL_GNULIB_MDA_RMDIR=1 + + + + GL_GNULIB_MDA_SWAB=1 + + + + GL_GNULIB_MDA_UNLINK=1 + + + + GL_GNULIB_MDA_WRITE=1 + + + + + HAVE_CHOWN=1; + HAVE_COPY_FILE_RANGE=1; + HAVE_DUP3=1; + HAVE_EUIDACCESS=1; + HAVE_EXECVPE=1; + HAVE_FACCESSAT=1; + HAVE_FCHDIR=1; + HAVE_FCHOWNAT=1; + HAVE_FDATASYNC=1; + HAVE_FSYNC=1; + HAVE_FTRUNCATE=1; + HAVE_GETDTABLESIZE=1; + HAVE_GETENTROPY=1; + HAVE_GETGROUPS=1; + HAVE_GETHOSTNAME=1; + HAVE_GETLOGIN=1; + HAVE_GETPAGESIZE=1; + HAVE_GETPASS=1; + HAVE_GROUP_MEMBER=1; + HAVE_LCHOWN=1; + HAVE_LINK=1; + HAVE_LINKAT=1; + HAVE_PIPE=1; + HAVE_PIPE2=1; + HAVE_PREAD=1; + HAVE_PWRITE=1; + HAVE_READLINK=1; + HAVE_READLINKAT=1; + HAVE_SETHOSTNAME=1; + HAVE_SLEEP=1; + HAVE_SYMLINK=1; + HAVE_SYMLINKAT=1; + HAVE_UNLINKAT=1; + HAVE_USLEEP=1; + HAVE_DECL_ENVIRON=1; + HAVE_DECL_EXECVPE=1; + HAVE_DECL_FCHDIR=1; + HAVE_DECL_FDATASYNC=1; + HAVE_DECL_GETDOMAINNAME=1; + HAVE_DECL_GETLOGIN=1; + HAVE_DECL_GETLOGIN_R=1; + HAVE_DECL_GETPAGESIZE=1; + HAVE_DECL_GETUSERSHELL=1; + HAVE_DECL_SETHOSTNAME=1; + HAVE_DECL_TRUNCATE=1; + HAVE_DECL_TTYNAME_R=1; + HAVE_OS_H=0; + HAVE_SYS_PARAM_H=0; + REPLACE_ACCESS=0; + REPLACE_CHOWN=0; + REPLACE_CLOSE=0; + REPLACE_COPY_FILE_RANGE=0; + REPLACE_DUP=0; + REPLACE_DUP2=0; + REPLACE_EXECL=0; + REPLACE_EXECLE=0; + REPLACE_EXECLP=0; + REPLACE_EXECV=0; + REPLACE_EXECVE=0; + REPLACE_EXECVP=0; + REPLACE_EXECVPE=0; + REPLACE_FACCESSAT=0; + REPLACE_FCHOWNAT=0; + REPLACE_FTRUNCATE=0; + REPLACE_GETCWD=0; + REPLACE_GETDOMAINNAME=0; + REPLACE_GETDTABLESIZE=0; + REPLACE_GETLOGIN_R=0; + REPLACE_GETGROUPS=0; + REPLACE_GETPAGESIZE=0; + REPLACE_GETPASS=0; + REPLACE_GETPASS_FOR_GETPASS_GNU=0; + REPLACE_ISATTY=0; + REPLACE_LCHOWN=0; + REPLACE_LINK=0; + REPLACE_LINKAT=0; + REPLACE_LSEEK=0; + REPLACE_PREAD=0; + REPLACE_PWRITE=0; + REPLACE_READ=0; + REPLACE_READLINK=0; + REPLACE_READLINKAT=0; + REPLACE_RMDIR=0; + REPLACE_SLEEP=0; + REPLACE_SYMLINK=0; + REPLACE_SYMLINKAT=0; + REPLACE_TRUNCATE=0; + REPLACE_TTYNAME_R=0; + REPLACE_UNLINK=0; + REPLACE_UNLINKAT=0; + REPLACE_USLEEP=0; + REPLACE_WRITE=0; + UNISTD_H_HAVE_SYS_RANDOM_H=0; + UNISTD_H_HAVE_WINSOCK2_H=0; + UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 +printf %s "checking for uid_t in sys/types.h... " >&6; } +if test ${ac_cv_type_uid_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "uid_t" >/dev/null 2>&1 +then : + ac_cv_type_uid_t=yes +else $as_nop + ac_cv_type_uid_t=no +fi +rm -rf conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 +printf "%s\n" "$ac_cv_type_uid_t" >&6; } +if test $ac_cv_type_uid_t = no; then + +printf "%s\n" "#define uid_t int" >>confdefs.h + + +printf "%s\n" "#define gid_t int" >>confdefs.h + +fi + +gl_mda_defines=' +#if defined _WIN32 && !defined __CYGWIN__ +#define access _access +#define chdir _chdir +#define chmod _chmod +#define close _close +#define creat _creat +#define dup _dup +#define dup2 _dup2 +#define ecvt _ecvt +#define execl _execl +#define execle _execle +#define execlp _execlp +#define execv _execv +#define execve _execve +#define execvp _execvp +#define execvpe _execvpe +#define fcloseall _fcloseall +#define fcvt _fcvt +#define fdopen _fdopen +#define fileno _fileno +#define gcvt _gcvt +#define getcwd _getcwd +#define getpid _getpid +#define getw _getw +#define isatty _isatty +#define j0 _j0 +#define j1 _j1 +#define jn _jn +#define lfind _lfind +#define lsearch _lsearch +#define lseek _lseek +#define memccpy _memccpy +#define mkdir _mkdir +#define mktemp _mktemp +#define open _open +#define putenv _putenv +#define putw _putw +#define read _read +#define rmdir _rmdir +#define strdup _strdup +#define swab _swab +#define tempnam _tempnam +#define tzset _tzset +#define umask _umask +#define unlink _unlink +#define utime _utime +#define wcsdup _wcsdup +#define write _write +#define y0 _y0 +#define y1 _y1 +#define yn _yn +#endif +' + + + ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" +if test "x$ac_cv_header_unistd_h" = xyes +then : + printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h + +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working chown" >&5 +printf %s "checking for working chown... " >&6; } +if test ${ac_cv_func_chown_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in # (( + # Guess yes on Linux systems. + linux-* | linux) ac_cv_func_chown_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) ac_cv_func_chown_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) ac_cv_func_chown_works="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) ac_cv_func_chown_works="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default + #include + + +$gl_mda_defines + +int +main (void) +{ + + char *f = "conftest.chown"; + struct stat before, after; + + if (creat (f, 0600) < 0) + return 1; + if (stat (f, &before) < 0) + return 1; + if (chown (f, (uid_t) -1, (gid_t) -1) == -1) + return 1; + if (stat (f, &after) < 0) + return 1; + return ! (before.st_uid == after.st_uid && before.st_gid == after.st_gid); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + ac_cv_func_chown_works=yes +else $as_nop + ac_cv_func_chown_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.chown + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_chown_works" >&5 +printf "%s\n" "$ac_cv_func_chown_works" >&6; } + case "$ac_cv_func_chown_works" in + *yes) + +printf "%s\n" "#define HAVE_CHOWN 1" >>confdefs.h + + ;; + esac + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether chown dereferences symlinks" >&5 +printf %s "checking whether chown dereferences symlinks... " >&6; } +if test ${gl_cv_func_chown_follows_symlink+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test "$cross_compiling" = yes +then : + gl_cv_func_chown_follows_symlink="guessing yes" + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include + + +$gl_mda_defines + + int + main () + { + int result = 0; + char const *dangling_symlink = "conftest.dangle"; + + unlink (dangling_symlink); + if (symlink ("conftest.no-such", dangling_symlink)) + abort (); + + /* Exit successfully on a conforming system, + i.e., where chown must fail with ENOENT. */ + if (chown (dangling_symlink, getuid (), getgid ()) == 0) + result |= 1; + if (errno != ENOENT) + result |= 2; + return result; + } + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_chown_follows_symlink=yes +else $as_nop + gl_cv_func_chown_follows_symlink=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_chown_follows_symlink" >&5 +printf "%s\n" "$gl_cv_func_chown_follows_symlink" >&6; } + + case "$gl_cv_func_chown_follows_symlink" in + *yes) ;; + *) + +printf "%s\n" "#define CHOWN_MODIFIES_SYMLINK 1" >>confdefs.h + + ;; + esac + + + + + + + + + + + if test $ac_cv_func_chown = no; then + HAVE_CHOWN=0 + else + case "$gl_cv_func_chown_follows_symlink" in + *yes) ;; + *) REPLACE_CHOWN=1 ;; + esac + + case "$ac_cv_func_chown_works" in + *no) + +printf "%s\n" "#define CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE 1" >>confdefs.h + + REPLACE_CHOWN=1 + ;; + esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether chown honors trailing slash" >&5 +printf %s "checking whether chown honors trailing slash... " >&6; } +if test ${gl_cv_func_chown_slash_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + touch conftest.file && rm -f conftest.link + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_chown_slash_works="guessing yes" ;; + # Guess yes on musl systems. + *-musl*) gl_cv_func_chown_slash_works="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_chown_slash_works="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include + + +$gl_mda_defines + +int +main (void) +{ +if (symlink ("conftest.file", "conftest.link")) return 1; + if (chown ("conftest.link/", getuid (), getgid ()) == 0) return 2; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_chown_slash_works=yes +else $as_nop + gl_cv_func_chown_slash_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.link conftest.file +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_chown_slash_works" >&5 +printf "%s\n" "$gl_cv_func_chown_slash_works" >&6; } + case "$gl_cv_func_chown_slash_works" in + *yes) ;; + *) + +printf "%s\n" "#define CHOWN_TRAILING_SLASH_BUG 1" >>confdefs.h + + REPLACE_CHOWN=1 + ;; + esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether chown always updates ctime" >&5 +printf %s "checking whether chown always updates ctime... " >&6; } +if test ${gl_cv_func_chown_ctime_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_chown_ctime_works="guessing yes" ;; + # Guess yes on musl systems. + *-musl*) gl_cv_func_chown_ctime_works="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_chown_ctime_works="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +#include + + +$gl_mda_defines + +int +main (void) +{ +struct stat st1, st2; + if (close (creat ("conftest.file", 0600))) return 1; + if (stat ("conftest.file", &st1)) return 2; + sleep (1); + if (chown ("conftest.file", st1.st_uid, st1.st_gid)) return 3; + if (stat ("conftest.file", &st2)) return 4; + if (st2.st_ctime <= st1.st_ctime) return 5; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_chown_ctime_works=yes +else $as_nop + gl_cv_func_chown_ctime_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.file +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_chown_ctime_works" >&5 +printf "%s\n" "$gl_cv_func_chown_ctime_works" >&6; } + case "$gl_cv_func_chown_ctime_works" in + *yes) ;; + *) + +printf "%s\n" "#define CHOWN_CHANGE_TIME_BUG 1" >>confdefs.h + + REPLACE_CHOWN=1 + ;; + esac + fi + + + + + if test $ac_cv_func__set_invalid_parameter_handler = yes; then + HAVE_MSVC_INVALID_PARAMETER_HANDLER=1 + +printf "%s\n" "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h + + else + HAVE_MSVC_INVALID_PARAMETER_HANDLER=0 + fi + + + + SYS_IOCTL_H_HAVE_WINSOCK2_H=0; + SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; + + REPLACE_IOCTL=0; + + + + + HAVE_OPENDIR=1; + HAVE_READDIR=1; + HAVE_REWINDDIR=1; + HAVE_CLOSEDIR=1; + HAVE_DECL_DIRFD=1; + HAVE_DECL_FDOPENDIR=1; + HAVE_FDOPENDIR=1; + HAVE_SCANDIR=1; + HAVE_ALPHASORT=1; + REPLACE_OPENDIR=0; + REPLACE_CLOSEDIR=0; + REPLACE_DIRFD=0; + REPLACE_FDOPENDIR=0; + + + + + + + + GL_GNULIB_OPENDIR=0 + + + + GL_GNULIB_READDIR=0 + + + + GL_GNULIB_REWINDDIR=0 + + + + GL_GNULIB_CLOSEDIR=0 + + + + GL_GNULIB_DIRFD=0 + + + + GL_GNULIB_FDOPENDIR=0 + + + + GL_GNULIB_SCANDIR=0 + + + + GL_GNULIB_ALPHASORT=0 + + + + + HAVE_ISBLANK=1; + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the preprocessor supports include_next" >&5 +printf %s "checking whether the preprocessor supports include_next... " >&6; } +if test ${gl_cv_have_include_next+y} +then : + printf %s "(cached) " >&6 +else $as_nop + rm -rf conftestd1a conftestd1b conftestd2 + mkdir conftestd1a conftestd1b conftestd2 + cat < conftestd1a/conftest.h +#define DEFINED_IN_CONFTESTD1 +#include_next +#ifdef DEFINED_IN_CONFTESTD2 +int foo; +#else +#error "include_next doesn't work" +#endif +EOF + cat < conftestd1b/conftest.h +#define DEFINED_IN_CONFTESTD1 +#include +#include_next +#ifdef DEFINED_IN_CONFTESTD2 +int foo; +#else +#error "include_next doesn't work" +#endif +EOF + cat < conftestd2/conftest.h +#ifndef DEFINED_IN_CONFTESTD1 +#error "include_next test doesn't work" +#endif +#define DEFINED_IN_CONFTESTD2 +EOF + gl_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_have_include_next=yes +else $as_nop + CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_have_include_next=buggy +else $as_nop + gl_cv_have_include_next=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CPPFLAGS="$gl_save_CPPFLAGS" + rm -rf conftestd1a conftestd1b conftestd2 + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_include_next" >&5 +printf "%s\n" "$gl_cv_have_include_next" >&6; } + PRAGMA_SYSTEM_HEADER= + if test $gl_cv_have_include_next = yes; then + INCLUDE_NEXT=include_next + INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next + if test -n "$GCC"; then + PRAGMA_SYSTEM_HEADER='#pragma GCC system_header' + fi + else + if test $gl_cv_have_include_next = buggy; then + INCLUDE_NEXT=include + INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next + else + INCLUDE_NEXT=include + INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include + fi + fi + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether source code line length is unlimited" >&5 +printf %s "checking whether source code line length is unlimited... " >&6; } +if test ${gl_cv_source_line_length_unlimited+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __TANDEM +choke me +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "choke me" >/dev/null 2>&1 +then : + gl_cv_source_line_length_unlimited=no +else $as_nop + gl_cv_source_line_length_unlimited=yes +fi +rm -rf conftest* + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_source_line_length_unlimited" >&5 +printf "%s\n" "$gl_cv_source_line_length_unlimited" >&6; } + if test $gl_cv_source_line_length_unlimited = no; then + PRAGMA_COLUMNS="#pragma COLUMNS 10000" + else + PRAGMA_COLUMNS= + fi + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_ctype_h='<'ctype.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_ctype_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'ctype.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_ctype_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_ctype_h + gl_cv_next_ctype_h='"'$gl_header'"' + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_ctype_h" >&5 +printf "%s\n" "$gl_cv_next_ctype_h" >&6; } + fi + NEXT_CTYPE_H=$gl_cv_next_ctype_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'ctype.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_ctype_h + fi + NEXT_AS_FIRST_DIRECTIVE_CTYPE_H=$gl_next_as_first_directive + + + + + + + + + + + + GL_GNULIB_ISBLANK=0 + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_dirent_h='<'dirent.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_dirent_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_dirent_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'dirent.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_dirent_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_dirent_h + gl_cv_next_dirent_h='"'$gl_header'"' + else + gl_cv_next_dirent_h='<'dirent.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_dirent_h" >&5 +printf "%s\n" "$gl_cv_next_dirent_h" >&6; } + fi + NEXT_DIRENT_H=$gl_cv_next_dirent_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'dirent.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_dirent_h + fi + NEXT_AS_FIRST_DIRECTIVE_DIRENT_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_dirent_h = yes; then + HAVE_DIRENT_H=1 + else + HAVE_DIRENT_H=0 + fi + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if environ is properly declared" >&5 +printf %s "checking if environ is properly declared... " >&6; } +if test ${gt_cv_var_environ_declaration+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if HAVE_UNISTD_H + #include + #endif + /* mingw, BeOS, Haiku declare environ in , not in . */ + #include + + typedef struct { int foo; } foo_t; + extern foo_t environ; +int +main (void) +{ +environ.foo = 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gt_cv_var_environ_declaration=no +else $as_nop + gt_cv_var_environ_declaration=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_var_environ_declaration" >&5 +printf "%s\n" "$gt_cv_var_environ_declaration" >&6; } + if test $gt_cv_var_environ_declaration = yes; then + +printf "%s\n" "#define HAVE_ENVIRON_DECL 1" >>confdefs.h + + fi + + + if test $gt_cv_var_environ_declaration != yes; then + HAVE_DECL_ENVIRON=0 + fi + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for complete errno.h" >&5 +printf %s "checking for complete errno.h... " >&6; } +if test ${gl_cv_header_errno_h_complete+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#if !defined ETXTBSY +booboo +#endif +#if !defined ENOMSG +booboo +#endif +#if !defined EIDRM +booboo +#endif +#if !defined ENOLINK +booboo +#endif +#if !defined EPROTO +booboo +#endif +#if !defined EMULTIHOP +booboo +#endif +#if !defined EBADMSG +booboo +#endif +#if !defined EOVERFLOW +booboo +#endif +#if !defined ENOTSUP +booboo +#endif +#if !defined ENETRESET +booboo +#endif +#if !defined ECONNABORTED +booboo +#endif +#if !defined ESTALE +booboo +#endif +#if !defined EDQUOT +booboo +#endif +#if !defined ECANCELED +booboo +#endif +#if !defined EOWNERDEAD +booboo +#endif +#if !defined ENOTRECOVERABLE +booboo +#endif +#if !defined EILSEQ +booboo +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "booboo" >/dev/null 2>&1 +then : + gl_cv_header_errno_h_complete=no +else $as_nop + gl_cv_header_errno_h_complete=yes +fi +rm -rf conftest* + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_complete" >&5 +printf "%s\n" "$gl_cv_header_errno_h_complete" >&6; } + if test $gl_cv_header_errno_h_complete = yes; then + GL_GENERATE_ERRNO_H=false + else + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_errno_h='<'errno.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_errno_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'errno.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_errno_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_errno_h + gl_cv_next_errno_h='"'$gl_header'"' + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_errno_h" >&5 +printf "%s\n" "$gl_cv_next_errno_h" >&6; } + fi + NEXT_ERRNO_H=$gl_cv_next_errno_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'errno.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_errno_h + fi + NEXT_AS_FIRST_DIRECTIVE_ERRNO_H=$gl_next_as_first_directive + + + + + GL_GENERATE_ERRNO_H=true + fi + + if $GL_GENERATE_ERRNO_H; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EMULTIHOP value" >&5 +printf %s "checking for EMULTIHOP value... " >&6; } +if test ${gl_cv_header_errno_h_EMULTIHOP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef EMULTIHOP +yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1 +then : + gl_cv_header_errno_h_EMULTIHOP=yes +else $as_nop + gl_cv_header_errno_h_EMULTIHOP=no +fi +rm -rf conftest* + + if test $gl_cv_header_errno_h_EMULTIHOP = no; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define _XOPEN_SOURCE_EXTENDED 1 +#include +#ifdef EMULTIHOP +yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1 +then : + gl_cv_header_errno_h_EMULTIHOP=hidden +fi +rm -rf conftest* + + if test $gl_cv_header_errno_h_EMULTIHOP = hidden; then + if ac_fn_c_compute_int "$LINENO" "EMULTIHOP" "gl_cv_header_errno_h_EMULTIHOP" " +#define _XOPEN_SOURCE_EXTENDED 1 +#include +/* The following two lines are a workaround against an autoconf-2.52 bug. */ +#include +#include +" +then : + +fi + + fi + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EMULTIHOP" >&5 +printf "%s\n" "$gl_cv_header_errno_h_EMULTIHOP" >&6; } + case $gl_cv_header_errno_h_EMULTIHOP in + yes | no) + EMULTIHOP_HIDDEN=0; EMULTIHOP_VALUE= + ;; + *) + EMULTIHOP_HIDDEN=1; EMULTIHOP_VALUE="$gl_cv_header_errno_h_EMULTIHOP" + ;; + esac + + + fi + + + if $GL_GENERATE_ERRNO_H; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ENOLINK value" >&5 +printf %s "checking for ENOLINK value... " >&6; } +if test ${gl_cv_header_errno_h_ENOLINK+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef ENOLINK +yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1 +then : + gl_cv_header_errno_h_ENOLINK=yes +else $as_nop + gl_cv_header_errno_h_ENOLINK=no +fi +rm -rf conftest* + + if test $gl_cv_header_errno_h_ENOLINK = no; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define _XOPEN_SOURCE_EXTENDED 1 +#include +#ifdef ENOLINK +yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1 +then : + gl_cv_header_errno_h_ENOLINK=hidden +fi +rm -rf conftest* + + if test $gl_cv_header_errno_h_ENOLINK = hidden; then + if ac_fn_c_compute_int "$LINENO" "ENOLINK" "gl_cv_header_errno_h_ENOLINK" " +#define _XOPEN_SOURCE_EXTENDED 1 +#include +/* The following two lines are a workaround against an autoconf-2.52 bug. */ +#include +#include +" +then : + +fi + + fi + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_ENOLINK" >&5 +printf "%s\n" "$gl_cv_header_errno_h_ENOLINK" >&6; } + case $gl_cv_header_errno_h_ENOLINK in + yes | no) + ENOLINK_HIDDEN=0; ENOLINK_VALUE= + ;; + *) + ENOLINK_HIDDEN=1; ENOLINK_VALUE="$gl_cv_header_errno_h_ENOLINK" + ;; + esac + + + fi + + + if $GL_GENERATE_ERRNO_H; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW value" >&5 +printf %s "checking for EOVERFLOW value... " >&6; } +if test ${gl_cv_header_errno_h_EOVERFLOW+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef EOVERFLOW +yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1 +then : + gl_cv_header_errno_h_EOVERFLOW=yes +else $as_nop + gl_cv_header_errno_h_EOVERFLOW=no +fi +rm -rf conftest* + + if test $gl_cv_header_errno_h_EOVERFLOW = no; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define _XOPEN_SOURCE_EXTENDED 1 +#include +#ifdef EOVERFLOW +yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1 +then : + gl_cv_header_errno_h_EOVERFLOW=hidden +fi +rm -rf conftest* + + if test $gl_cv_header_errno_h_EOVERFLOW = hidden; then + if ac_fn_c_compute_int "$LINENO" "EOVERFLOW" "gl_cv_header_errno_h_EOVERFLOW" " +#define _XOPEN_SOURCE_EXTENDED 1 +#include +/* The following two lines are a workaround against an autoconf-2.52 bug. */ +#include +#include +" +then : + +fi + + fi + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EOVERFLOW" >&5 +printf "%s\n" "$gl_cv_header_errno_h_EOVERFLOW" >&6; } + case $gl_cv_header_errno_h_EOVERFLOW in + yes | no) + EOVERFLOW_HIDDEN=0; EOVERFLOW_VALUE= + ;; + *) + EOVERFLOW_HIDDEN=1; EOVERFLOW_VALUE="$gl_cv_header_errno_h_EOVERFLOW" + ;; + esac + + + fi + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ctype.h defines __header_inline" >&5 +printf %s "checking whether ctype.h defines __header_inline... " >&6; } +if test ${gl_cv_have___header_inline+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #ifndef __header_inline + #error " does not define __header_inline" + #endif + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + gl_cv_have___header_inline=yes +else $as_nop + gl_cv_have___header_inline=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have___header_inline" >&5 +printf "%s\n" "$gl_cv_have___header_inline" >&6; } + if test "$gl_cv_have___header_inline" = yes; then + +printf "%s\n" "#define HAVE___HEADER_INLINE 1" >>confdefs.h + + fi + + + +ac_fn_check_decl "$LINENO" "fchdir" "ac_cv_have_decl_fchdir" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_fchdir" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_FCHDIR $ac_have_decl" >>confdefs.h + + + HAVE_FCNTL=1; + HAVE_OPENAT=1; + REPLACE_CREAT=0; + REPLACE_FCNTL=0; + REPLACE_OPEN=0; + REPLACE_OPENAT=0; + + + + + GL_GNULIB_CREAT=0 + + + + GL_GNULIB_FCNTL=0 + + + + GL_GNULIB_NONBLOCKING=0 + + + + GL_GNULIB_OPEN=0 + + + + GL_GNULIB_OPENAT=0 + + + + GL_GNULIB_MDA_CREAT=1 + + + + GL_GNULIB_MDA_OPEN=1 + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5 +printf %s "checking for working fcntl.h... " >&6; } +if test ${gl_cv_header_working_fcntl_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess 'no' on native Windows. + mingw*) gl_cv_header_working_fcntl_h='no' ;; + *) gl_cv_header_working_fcntl_h=cross-compiling ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + #if HAVE_UNISTD_H + # include + #else /* on Windows with MSVC */ + # include + # include + # defined sleep(n) _sleep ((n) * 1000) + #endif + #include + + +$gl_mda_defines + + #ifndef O_NOATIME + #define O_NOATIME 0 + #endif + #ifndef O_NOFOLLOW + #define O_NOFOLLOW 0 + #endif + static int const constants[] = + { + O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, + O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY + }; + +int +main (void) +{ + + int result = !constants; + #if HAVE_SYMLINK + { + static char const sym[] = "conftest.sym"; + if (symlink ("/dev/null", sym) != 0) + result |= 2; + else + { + int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); + if (fd >= 0) + { + close (fd); + result |= 4; + } + } + if (unlink (sym) != 0 || symlink (".", sym) != 0) + result |= 2; + else + { + int fd = open (sym, O_RDONLY | O_NOFOLLOW); + if (fd >= 0) + { + close (fd); + result |= 4; + } + } + unlink (sym); + } + #endif + { + static char const file[] = "confdefs.h"; + int fd = open (file, O_RDONLY | O_NOATIME); + if (fd < 0) + result |= 8; + else + { + struct stat st0; + if (fstat (fd, &st0) != 0) + result |= 16; + else + { + char c; + sleep (1); + if (read (fd, &c, 1) != 1) + result |= 24; + else + { + if (close (fd) != 0) + result |= 32; + else + { + struct stat st1; + if (stat (file, &st1) != 0) + result |= 40; + else + if (st0.st_atime != st1.st_atime) + result |= 64; + } + } + } + } + } + return result; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_header_working_fcntl_h=yes +else $as_nop + case $? in #( + 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( + 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( + 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( + *) gl_cv_header_working_fcntl_h='no';; + esac +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5 +printf "%s\n" "$gl_cv_header_working_fcntl_h" >&6; } + + case $gl_cv_header_working_fcntl_h in #( + *O_NOATIME* | no | cross-compiling) ac_val=0;; #( + *) ac_val=1;; + esac + +printf "%s\n" "#define HAVE_WORKING_O_NOATIME $ac_val" >>confdefs.h + + + case $gl_cv_header_working_fcntl_h in #( + *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( + *) ac_val=1;; + esac + +printf "%s\n" "#define HAVE_WORKING_O_NOFOLLOW $ac_val" >>confdefs.h + + + + ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default +" +if test "x$ac_cv_type_pid_t" = xyes +then : + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #if defined _WIN64 && !defined __CYGWIN__ + LLP64 + #endif + +int +main (void) +{ + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_pid_type='int' +else $as_nop + ac_pid_type='__int64' +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +printf "%s\n" "#define pid_t $ac_pid_type" >>confdefs.h + + +fi + + +ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" +if test "x$ac_cv_type_mode_t" = xyes +then : + +else $as_nop + +printf "%s\n" "#define mode_t int" >>confdefs.h + +fi + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_fcntl_h='<'fcntl.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_fcntl_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'fcntl.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_fcntl_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_fcntl_h + gl_cv_next_fcntl_h='"'$gl_header'"' + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_fcntl_h" >&5 +printf "%s\n" "$gl_cv_next_fcntl_h" >&6; } + fi + NEXT_FCNTL_H=$gl_cv_next_fcntl_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'fcntl.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_fcntl_h + fi + NEXT_AS_FIRST_DIRECTIVE_FCNTL_H=$gl_next_as_first_directive + + + + + + + + + + + + + + + + + HAVE_FLOCK=1; + + + + + GL_GNULIB_FLOCK=0 + + + + + HAVE_FNMATCH=1; + REPLACE_FNMATCH=0; + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_fnmatch_h='<'fnmatch.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_fnmatch_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_fnmatch_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'fnmatch.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_fnmatch_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_fnmatch_h + gl_cv_next_fnmatch_h='"'$gl_header'"' + else + gl_cv_next_fnmatch_h='<'fnmatch.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_fnmatch_h" >&5 +printf "%s\n" "$gl_cv_next_fnmatch_h" >&6; } + fi + NEXT_FNMATCH_H=$gl_cv_next_fnmatch_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'fnmatch.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_fnmatch_h + fi + NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H=$gl_next_as_first_directive + + + + + + + + if test $ac_cv_header_fnmatch_h = yes; then + HAVE_FNMATCH_H=1 + else + HAVE_FNMATCH_H=0 + fi + + + GL_GENERATE_FNMATCH_H=false + if false; then + GL_GENERATE_FNMATCH_H=true + else + if test $ac_cv_header_fnmatch_h != yes; then + GL_GENERATE_FNMATCH_H=true + fi + fi + + + + + + + + + + GL_GNULIB_FNMATCH=0 + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5 +printf %s "checking for mbstate_t... " >&6; } +if test ${ac_cv_type_mbstate_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default + #include +int +main (void) +{ +mbstate_t x; return sizeof x; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_type_mbstate_t=yes +else $as_nop + ac_cv_type_mbstate_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_mbstate_t" >&5 +printf "%s\n" "$ac_cv_type_mbstate_t" >&6; } + if test $ac_cv_type_mbstate_t = yes; then + +printf "%s\n" "#define HAVE_MBSTATE_T 1" >>confdefs.h + + else + +printf "%s\n" "#define mbstate_t int" >>confdefs.h + + fi + + + + HAVE_FCHMODAT=1; + HAVE_FSTATAT=1; + HAVE_FUTIMENS=1; + HAVE_GETUMASK=1; + HAVE_LCHMOD=1; + HAVE_LSTAT=1; + HAVE_MKDIRAT=1; + HAVE_MKFIFO=1; + HAVE_MKFIFOAT=1; + HAVE_MKNOD=1; + HAVE_MKNODAT=1; + HAVE_UTIMENSAT=1; + REPLACE_CHMOD=0; + REPLACE_FCHMODAT=0; + REPLACE_FSTAT=0; + REPLACE_FSTATAT=0; + REPLACE_FUTIMENS=0; + REPLACE_LSTAT=0; + REPLACE_MKDIR=0; + REPLACE_MKFIFO=0; + REPLACE_MKFIFOAT=0; + REPLACE_MKNOD=0; + REPLACE_MKNODAT=0; + REPLACE_STAT=0; + REPLACE_UTIMENSAT=0; + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5 +printf %s "checking whether stat file-mode macros are broken... " >&6; } +if test ${ac_cv_header_stat_broken+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include + +#if defined S_ISBLK && defined S_IFDIR +extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1]; +#endif + +#if defined S_ISBLK && defined S_IFCHR +extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1]; +#endif + +#if defined S_ISLNK && defined S_IFREG +extern char c3[S_ISLNK (S_IFREG) ? -1 : 1]; +#endif + +#if defined S_ISSOCK && defined S_IFREG +extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1]; +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_header_stat_broken=no +else $as_nop + ac_cv_header_stat_broken=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5 +printf "%s\n" "$ac_cv_header_stat_broken" >&6; } +if test $ac_cv_header_stat_broken = yes; then + +printf "%s\n" "#define STAT_MACROS_BROKEN 1" >>confdefs.h + +fi + + + + case "$host_os" in + mingw*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit off_t" >&5 +printf %s "checking for 64-bit off_t... " >&6; } +if test ${gl_cv_type_off_t_64+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1]; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_type_off_t_64=yes +else $as_nop + gl_cv_type_off_t_64=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_off_t_64" >&5 +printf "%s\n" "$gl_cv_type_off_t_64" >&6; } + if test $gl_cv_type_off_t_64 = no; then + WINDOWS_64_BIT_OFF_T=1 + else + WINDOWS_64_BIT_OFF_T=0 + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit st_size" >&5 +printf %s "checking for 64-bit st_size... " >&6; } +if test ${gl_cv_member_st_size_64+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + struct stat buf; + int verify_st_size_size[sizeof (buf.st_size) >= 8 ? 1 : -1]; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_member_st_size_64=yes +else $as_nop + gl_cv_member_st_size_64=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_member_st_size_64" >&5 +printf "%s\n" "$gl_cv_member_st_size_64" >&6; } + if test $gl_cv_member_st_size_64 = no; then + WINDOWS_64_BIT_ST_SIZE=1 + else + WINDOWS_64_BIT_ST_SIZE=0 + fi + ;; + *) + WINDOWS_64_BIT_OFF_T=0 + WINDOWS_64_BIT_ST_SIZE=0 + ;; + esac + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_sys_stat_h='<'sys/stat.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_sys_stat_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_sys_stat_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'sys/stat.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_sys_stat_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_sys_stat_h + gl_cv_next_sys_stat_h='"'$gl_header'"' + else + gl_cv_next_sys_stat_h='<'sys/stat.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_stat_h" >&5 +printf "%s\n" "$gl_cv_next_sys_stat_h" >&6; } + fi + NEXT_SYS_STAT_H=$gl_cv_next_sys_stat_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sys/stat.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sys_stat_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H=$gl_next_as_first_directive + + + + + + + + + WINDOWS_STAT_TIMESPEC=0 + + + + + + + + + ac_fn_c_check_type "$LINENO" "nlink_t" "ac_cv_type_nlink_t" "#include + #include +" +if test "x$ac_cv_type_nlink_t" = xyes +then : + +else $as_nop + +printf "%s\n" "#define nlink_t int" >>confdefs.h + +fi + + + + + + + + + + + case "$host_os" in + mingw*) + ac_fn_c_check_header_compile "$LINENO" "sdkddkver.h" "ac_cv_header_sdkddkver_h" "$ac_includes_default" +if test "x$ac_cv_header_sdkddkver_h" = xyes +then : + printf "%s\n" "#define HAVE_SDKDDKVER_H 1" >>confdefs.h + +fi + + ;; + esac + + + + + + + + GL_GNULIB_CHMOD=0 + + + + GL_GNULIB_FCHMODAT=0 + + + + GL_GNULIB_FSTAT=0 + + + + GL_GNULIB_FSTATAT=0 + + + + GL_GNULIB_FUTIMENS=0 + + + + GL_GNULIB_GETUMASK=0 + + + + GL_GNULIB_LCHMOD=0 + + + + GL_GNULIB_LSTAT=0 + + + + GL_GNULIB_MKDIR=0 + + + + GL_GNULIB_MKDIRAT=0 + + + + GL_GNULIB_MKFIFO=0 + + + + GL_GNULIB_MKFIFOAT=0 + + + + GL_GNULIB_MKNOD=0 + + + + GL_GNULIB_MKNODAT=0 + + + + GL_GNULIB_STAT=0 + + + + GL_GNULIB_UTIMENSAT=0 + + + + GL_GNULIB_OVERRIDES_STRUCT_STAT=0 + + + + GL_GNULIB_MDA_CHMOD=1 + + + + GL_GNULIB_MDA_MKDIR=1 + + + + GL_GNULIB_MDA_UMASK=1 + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether getcwd (NULL, 0) allocates memory for result" >&5 +printf %s "checking whether getcwd (NULL, 0) allocates memory for result... " >&6; } +if test ${gl_cv_func_getcwd_null+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_getcwd_null="guessing yes";; + # Guess yes on musl systems. + *-musl*) gl_cv_func_getcwd_null="guessing yes";; + # Guess yes on Cygwin. + cygwin*) gl_cv_func_getcwd_null="guessing yes";; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_getcwd_null="$gl_cross_guess_normal";; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# include +# if HAVE_UNISTD_H +# include +# else /* on Windows with MSVC */ +# include +# endif + + +$gl_mda_defines + +# ifndef getcwd + char *getcwd (); +# endif + +int +main (void) +{ + +#if defined _WIN32 && ! defined __CYGWIN__ +/* mingw cwd does not start with '/', but _getcwd does allocate. + However, mingw fails to honor non-zero size. */ +#else + if (chdir ("/") != 0) + return 1; + else + { + char *f = getcwd (NULL, 0); + if (! f) + return 2; + if (f[0] != '/') + { free (f); return 3; } + if (f[1] != '\0') + { free (f); return 4; } + free (f); + return 0; + } +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_getcwd_null=yes +else $as_nop + gl_cv_func_getcwd_null=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_null" >&5 +printf "%s\n" "$gl_cv_func_getcwd_null" >&6; } + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getcwd with POSIX signature" >&5 +printf %s "checking for getcwd with POSIX signature... " >&6; } +if test ${gl_cv_func_getcwd_posix_signature+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + + +$gl_mda_defines + +int +main (void) +{ +extern + #ifdef __cplusplus + "C" + #endif + char *getcwd (char *, size_t); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_func_getcwd_posix_signature=yes +else $as_nop + gl_cv_func_getcwd_posix_signature=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_posix_signature" >&5 +printf "%s\n" "$gl_cv_func_getcwd_posix_signature" >&6; } + +ac_fn_check_decl "$LINENO" "getcwd" "ac_cv_have_decl_getcwd" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_getcwd" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_GETCWD $ac_have_decl" >>confdefs.h + + + HAVE_DECL_FCLOSEALL=1; + HAVE_DECL_FPURGE=1; + HAVE_DECL_FSEEKO=1; + HAVE_DECL_FTELLO=1; + HAVE_DECL_GETDELIM=1; + HAVE_DECL_GETLINE=1; + HAVE_DECL_OBSTACK_PRINTF=1; + HAVE_DECL_SNPRINTF=1; + HAVE_DECL_VSNPRINTF=1; + HAVE_DPRINTF=1; + HAVE_FSEEKO=1; + HAVE_FTELLO=1; + HAVE_PCLOSE=1; + HAVE_POPEN=1; + HAVE_RENAMEAT=1; + HAVE_VASPRINTF=1; + HAVE_VDPRINTF=1; + REPLACE_DPRINTF=0; + REPLACE_FCLOSE=0; + REPLACE_FDOPEN=0; + REPLACE_FFLUSH=0; + REPLACE_FOPEN=0; + REPLACE_FOPEN_FOR_FOPEN_GNU=0; + REPLACE_FPRINTF=0; + REPLACE_FPURGE=0; + REPLACE_FREOPEN=0; + REPLACE_FSEEK=0; + REPLACE_FSEEKO=0; + REPLACE_FTELL=0; + REPLACE_FTELLO=0; + REPLACE_GETDELIM=0; + REPLACE_GETLINE=0; + REPLACE_OBSTACK_PRINTF=0; + REPLACE_PERROR=0; + REPLACE_POPEN=0; + REPLACE_PRINTF=0; + REPLACE_REMOVE=0; + REPLACE_RENAME=0; + REPLACE_RENAMEAT=0; + REPLACE_SNPRINTF=0; + REPLACE_SPRINTF=0; + REPLACE_STDIO_READ_FUNCS=0; + REPLACE_STDIO_WRITE_FUNCS=0; + REPLACE_TMPFILE=0; + REPLACE_VASPRINTF=0; + REPLACE_VDPRINTF=0; + REPLACE_VFPRINTF=0; + REPLACE_VPRINTF=0; + REPLACE_VSNPRINTF=0; + REPLACE_VSPRINTF=0; + +ac_fn_check_decl "$LINENO" "getdelim" "ac_cv_have_decl_getdelim" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_getdelim" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_GETDELIM $ac_have_decl" >>confdefs.h + + + + + GL_GNULIB_DPRINTF=0 + + + + GL_GNULIB_FCLOSE=0 + + + + GL_GNULIB_FDOPEN=0 + + + + GL_GNULIB_FFLUSH=0 + + + + GL_GNULIB_FGETC=0 + + + + GL_GNULIB_FGETS=0 + + + + GL_GNULIB_FOPEN=0 + + + + GL_GNULIB_FOPEN_GNU=0 + + + + GL_GNULIB_FPRINTF=0 + + + + GL_GNULIB_FPRINTF_POSIX=0 + + + + GL_GNULIB_FPURGE=0 + + + + GL_GNULIB_FPUTC=0 + + + + GL_GNULIB_FPUTS=0 + + + + GL_GNULIB_FREAD=0 + + + + GL_GNULIB_FREOPEN=0 + + + + GL_GNULIB_FSCANF=0 + + + + GL_GNULIB_FSEEK=0 + + + + GL_GNULIB_FSEEKO=0 + + + + GL_GNULIB_FTELL=0 + + + + GL_GNULIB_FTELLO=0 + + + + GL_GNULIB_FWRITE=0 + + + + GL_GNULIB_GETC=0 + + + + GL_GNULIB_GETCHAR=0 + + + + GL_GNULIB_GETDELIM=0 + + + + GL_GNULIB_GETLINE=0 + + + + GL_GNULIB_OBSTACK_PRINTF=0 + + + + GL_GNULIB_OBSTACK_PRINTF_POSIX=0 + + + + GL_GNULIB_PCLOSE=0 + + + + GL_GNULIB_PERROR=0 + + + + GL_GNULIB_POPEN=0 + + + + GL_GNULIB_PRINTF=0 + + + + GL_GNULIB_PRINTF_POSIX=0 + + + + GL_GNULIB_PUTC=0 + + + + GL_GNULIB_PUTCHAR=0 + + + + GL_GNULIB_PUTS=0 + + + + GL_GNULIB_REMOVE=0 + + + + GL_GNULIB_RENAME=0 + + + + GL_GNULIB_RENAMEAT=0 + + + + GL_GNULIB_SCANF=0 + + + + GL_GNULIB_SNPRINTF=0 + + + + GL_GNULIB_SPRINTF_POSIX=0 + + + + GL_GNULIB_STDIO_H_NONBLOCKING=0 + + + + GL_GNULIB_STDIO_H_SIGPIPE=0 + + + + GL_GNULIB_TMPFILE=0 + + + + GL_GNULIB_VASPRINTF=0 + + + + GL_GNULIB_VFSCANF=0 + + + + GL_GNULIB_VSCANF=0 + + + + GL_GNULIB_VDPRINTF=0 + + + + GL_GNULIB_VFPRINTF=0 + + + + GL_GNULIB_VFPRINTF_POSIX=0 + + + + GL_GNULIB_VPRINTF=0 + + + + GL_GNULIB_VPRINTF_POSIX=0 + + + + GL_GNULIB_VSNPRINTF=0 + + + + GL_GNULIB_VSPRINTF_POSIX=0 + + + + GL_GNULIB_MDA_FCLOSEALL=1 + + + + GL_GNULIB_MDA_FDOPEN=1 + + + + GL_GNULIB_MDA_FILENO=1 + + + + GL_GNULIB_MDA_GETW=1 + + + + GL_GNULIB_MDA_PUTW=1 + + + + GL_GNULIB_MDA_TEMPNAM=1 + + + + +ac_fn_check_decl "$LINENO" "getdtablesize" "ac_cv_have_decl_getdtablesize" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_getdtablesize" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_GETDTABLESIZE $ac_have_decl" >>confdefs.h + +ac_fn_check_decl "$LINENO" "getline" "ac_cv_have_decl_getline" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_getline" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_GETLINE $ac_have_decl" >>confdefs.h + +ac_fn_check_decl "$LINENO" "getlogin_r" "ac_cv_have_decl_getlogin_r" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_getlogin_r" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_GETLOGIN_R $ac_have_decl" >>confdefs.h + + +ac_fn_check_decl "$LINENO" "getlogin" "ac_cv_have_decl_getlogin" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_getlogin" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_GETLOGIN $ac_have_decl" >>confdefs.h + + + + case $host_os in + mingw*) + LIB_GETLOGIN='-ladvapi32' ;; + *) + LIB_GETLOGIN= ;; + esac + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_getopt_h='<'getopt.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_getopt_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_getopt_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'getopt.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_getopt_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_getopt_h + gl_cv_next_getopt_h='"'$gl_header'"' + else + gl_cv_next_getopt_h='<'getopt.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_getopt_h" >&5 +printf "%s\n" "$gl_cv_next_getopt_h" >&6; } + fi + NEXT_GETOPT_H=$gl_cv_next_getopt_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'getopt.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_getopt_h + fi + NEXT_AS_FIRST_DIRECTIVE_GETOPT_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_getopt_h = yes; then + HAVE_GETOPT_H=1 + else + HAVE_GETOPT_H=0 + fi + + + gl_replace_getopt= + + if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then + for ac_header in getopt.h +do : + ac_fn_c_check_header_compile "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default" +if test "x$ac_cv_header_getopt_h" = xyes +then : + printf "%s\n" "#define HAVE_GETOPT_H 1" >>confdefs.h + +else $as_nop + gl_replace_getopt=yes +fi + +done + fi + + if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then + + for ac_func in getopt_long_only +do : + ac_fn_c_check_func "$LINENO" "getopt_long_only" "ac_cv_func_getopt_long_only" +if test "x$ac_cv_func_getopt_long_only" = xyes +then : + printf "%s\n" "#define HAVE_GETOPT_LONG_ONLY 1" >>confdefs.h + +else $as_nop + gl_replace_getopt=yes +fi + +done + fi + + if test -z "$gl_replace_getopt"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether getopt is POSIX compatible" >&5 +printf %s "checking whether getopt is POSIX compatible... " >&6; } +if test ${gl_cv_func_getopt_posix+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $cross_compiling = no; then + if test "$cross_compiling" = yes +then : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include + +int +main () +{ + static char program[] = "program"; + static char a[] = "-a"; + static char foo[] = "foo"; + static char bar[] = "bar"; + char *argv[] = { program, a, foo, bar, NULL }; + int c; + + c = getopt (4, argv, "ab"); + if (!(c == 'a')) + return 1; + c = getopt (4, argv, "ab"); + if (!(c == -1)) + return 2; + if (!(optind == 2)) + return 3; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_getopt_posix=maybe +else $as_nop + gl_cv_func_getopt_posix=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + if test $gl_cv_func_getopt_posix = maybe; then + if test "$cross_compiling" = yes +then : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include + +int +main () +{ + static char program[] = "program"; + static char donald[] = "donald"; + static char p[] = "-p"; + static char billy[] = "billy"; + static char duck[] = "duck"; + static char a[] = "-a"; + static char bar[] = "bar"; + char *argv[] = { program, donald, p, billy, duck, a, bar, NULL }; + int c; + + c = getopt (7, argv, "+abp:q:"); + if (!(c == -1)) + return 4; + if (!(strcmp (argv[0], "program") == 0)) + return 5; + if (!(strcmp (argv[1], "donald") == 0)) + return 6; + if (!(strcmp (argv[2], "-p") == 0)) + return 7; + if (!(strcmp (argv[3], "billy") == 0)) + return 8; + if (!(strcmp (argv[4], "duck") == 0)) + return 9; + if (!(strcmp (argv[5], "-a") == 0)) + return 10; + if (!(strcmp (argv[6], "bar") == 0)) + return 11; + if (!(optind == 1)) + return 12; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_getopt_posix=maybe +else $as_nop + gl_cv_func_getopt_posix=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + if test $gl_cv_func_getopt_posix = maybe; then + if test "$cross_compiling" = yes +then : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include + +int +main () +{ + static char program[] = "program"; + static char ab[] = "-ab"; + char *argv[3] = { program, ab, NULL }; + if (getopt (2, argv, "ab:") != 'a') + return 13; + if (getopt (2, argv, "ab:") != '?') + return 14; + if (optopt != 'b') + return 15; + if (optind != 2) + return 16; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_getopt_posix=yes +else $as_nop + gl_cv_func_getopt_posix=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + else + case "$host_os" in + darwin* | aix* | mingw*) gl_cv_func_getopt_posix="guessing no";; + *) gl_cv_func_getopt_posix="guessing yes";; + esac + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_posix" >&5 +printf "%s\n" "$gl_cv_func_getopt_posix" >&6; } + case "$gl_cv_func_getopt_posix" in + *no) gl_replace_getopt=yes ;; + esac + fi + + if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working GNU getopt function" >&5 +printf %s "checking for working GNU getopt function... " >&6; } +if test ${gl_cv_func_getopt_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # Even with POSIXLY_CORRECT, the GNU extension of leading '-' in the + # optstring is necessary for programs like m4 that have POSIX-mandated + # semantics for supporting options interspersed with files. + # Also, since getopt_long is a GNU extension, we require optind=0. + # Bash ties 'set -o posix' to a non-exported POSIXLY_CORRECT; + # so take care to revert to the correct (non-)export state. + gl_awk_probe='BEGIN { if ("POSIXLY_CORRECT" in ENVIRON) print "x" }' + case ${POSIXLY_CORRECT+x}`$AWK "$gl_awk_probe" conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + #include + +#include +#if defined __MACH__ && defined __APPLE__ +/* Avoid a crash on Mac OS X. */ +#include +#include +#include +#include +#include +#include +/* The exception port on which our thread listens. */ +static mach_port_t our_exception_port; +/* The main function of the thread listening for exceptions of type + EXC_BAD_ACCESS. */ +static void * +mach_exception_thread (void *arg) +{ + /* Buffer for a message to be received. */ + struct { + mach_msg_header_t head; + mach_msg_body_t msgh_body; + char data[1024]; + } msg; + mach_msg_return_t retval; + /* Wait for a message on the exception port. */ + retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg), + our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); + if (retval != MACH_MSG_SUCCESS) + abort (); + exit (1); +} +static void +nocrash_init (void) +{ + mach_port_t self = mach_task_self (); + /* Allocate a port on which the thread shall listen for exceptions. */ + if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) + == KERN_SUCCESS) { + /* See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ + if (mach_port_insert_right (self, our_exception_port, our_exception_port, + MACH_MSG_TYPE_MAKE_SEND) + == KERN_SUCCESS) { + /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting + for us. */ + exception_mask_t mask = EXC_MASK_BAD_ACCESS; + /* Create the thread listening on the exception port. */ + pthread_attr_t attr; + pthread_t thread; + if (pthread_attr_init (&attr) == 0 + && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0 + && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) { + pthread_attr_destroy (&attr); + /* Replace the exception port info for these exceptions with our own. + Note that we replace the exception port for the entire task, not only + for a particular thread. This has the effect that when our exception + port gets the message, the thread specific exception port has already + been asked, and we don't need to bother about it. + See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ + task_set_exception_ports (self, mask, our_exception_port, + EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); + } + } + } +} +#elif defined _WIN32 && ! defined __CYGWIN__ +/* Avoid a crash on native Windows. */ +#define WIN32_LEAN_AND_MEAN +#include +#include +static LONG WINAPI +exception_filter (EXCEPTION_POINTERS *ExceptionInfo) +{ + switch (ExceptionInfo->ExceptionRecord->ExceptionCode) + { + case EXCEPTION_ACCESS_VIOLATION: + case EXCEPTION_IN_PAGE_ERROR: + case EXCEPTION_STACK_OVERFLOW: + case EXCEPTION_GUARD_PAGE: + case EXCEPTION_PRIV_INSTRUCTION: + case EXCEPTION_ILLEGAL_INSTRUCTION: + case EXCEPTION_DATATYPE_MISALIGNMENT: + case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: + case EXCEPTION_NONCONTINUABLE_EXCEPTION: + exit (1); + } + return EXCEPTION_CONTINUE_SEARCH; +} +static void +nocrash_init (void) +{ + SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter); +} +#else +/* Avoid a crash on POSIX systems. */ +#include +#include +/* A POSIX signal handler. */ +static void +exception_handler (int sig) +{ + _exit (1); +} +static void +nocrash_init (void) +{ +#ifdef SIGSEGV + signal (SIGSEGV, exception_handler); +#endif +#ifdef SIGBUS + signal (SIGBUS, exception_handler); +#endif +} +#endif + + +int +main (void) +{ + + int result = 0; + + nocrash_init(); + + /* This code succeeds on glibc 2.8, OpenBSD 4.0, Cygwin, mingw, + and fails on Mac OS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5, + OSF/1 5.1, Solaris 10. */ + { + static char conftest[] = "conftest"; + static char plus[] = "-+"; + char *argv[3] = { conftest, plus, NULL }; + opterr = 0; + if (getopt (2, argv, "+a") != '?') + result |= 1; + } + /* This code succeeds on glibc 2.8, mingw, + and fails on Mac OS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11, + IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x. */ + { + static char program[] = "program"; + static char p[] = "-p"; + static char foo[] = "foo"; + static char bar[] = "bar"; + char *argv[] = { program, p, foo, bar, NULL }; + + optind = 1; + if (getopt (4, argv, "p::") != 'p') + result |= 2; + else if (optarg != NULL) + result |= 4; + else if (getopt (4, argv, "p::") != -1) + result |= 6; + else if (optind != 2) + result |= 8; + } + /* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0. */ + { + static char program[] = "program"; + static char foo[] = "foo"; + static char p[] = "-p"; + char *argv[] = { program, foo, p, NULL }; + optind = 0; + if (getopt (3, argv, "-p") != 1) + result |= 16; + else if (getopt (3, argv, "-p") != 'p') + result |= 16; + } + /* This code fails on glibc 2.11. */ + { + static char program[] = "program"; + static char b[] = "-b"; + static char a[] = "-a"; + char *argv[] = { program, b, a, NULL }; + optind = opterr = 0; + if (getopt (3, argv, "+:a:b") != 'b') + result |= 32; + else if (getopt (3, argv, "+:a:b") != ':') + result |= 32; + } + /* This code dumps core on glibc 2.14. */ + { + static char program[] = "program"; + static char w[] = "-W"; + static char dummy[] = "dummy"; + char *argv[] = { program, w, dummy, NULL }; + optind = opterr = 1; + if (getopt (3, argv, "W;") != 'W') + result |= 64; + } + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_getopt_gnu=yes +else $as_nop + gl_cv_func_getopt_gnu=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + case $gl_had_POSIXLY_CORRECT in + exported) ;; + yes) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;}; POSIXLY_CORRECT=1 ;; + *) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;} ;; + esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_gnu" >&5 +printf "%s\n" "$gl_cv_func_getopt_gnu" >&6; } + if test "$gl_cv_func_getopt_gnu" != yes; then + gl_replace_getopt=yes + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working GNU getopt_long function" >&5 +printf %s "checking for working GNU getopt_long function... " >&6; } +if test ${gl_cv_func_getopt_long_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + openbsd*) gl_cv_func_getopt_long_gnu="guessing no";; + *) gl_cv_func_getopt_long_gnu="guessing yes";; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + #include + +int +main (void) +{ +static const struct option long_options[] = + { + { "xtremely-",no_argument, NULL, 1003 }, + { "xtra", no_argument, NULL, 1001 }, + { "xtreme", no_argument, NULL, 1002 }, + { "xtremely", no_argument, NULL, 1003 }, + { NULL, 0, NULL, 0 } + }; + /* This code fails on OpenBSD 5.0. */ + { + static char program[] = "program"; + static char xtremel[] = "--xtremel"; + char *argv[] = { program, xtremel, NULL }; + int option_index; + optind = 1; opterr = 0; + if (getopt_long (2, argv, "", long_options, &option_index) != 1003) + return 1; + } + return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_getopt_long_gnu=yes +else $as_nop + gl_cv_func_getopt_long_gnu=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_long_gnu" >&5 +printf "%s\n" "$gl_cv_func_getopt_long_gnu" >&6; } + case "$gl_cv_func_getopt_long_gnu" in + *yes) ;; + *) gl_replace_getopt=yes ;; + esac + fi + fi + + + + + + HAVE_GETRANDOM=1; + REPLACE_GETRANDOM=0; + + + + + GL_GNULIB_GETRANDOM=0 + + + +: + + + HAVE_GETTIMEOFDAY=1; + HAVE_STRUCT_TIMEVAL=1; + HAVE_SYS_TIME_H=1; + REPLACE_GETTIMEOFDAY=0; + REPLACE_STRUCT_TIMEVAL=0; + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_sys_time_h='<'sys/time.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_sys_time_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_sys_time_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'sys/time.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_sys_time_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_sys_time_h + gl_cv_next_sys_time_h='"'$gl_header'"' + else + gl_cv_next_sys_time_h='<'sys/time.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_time_h" >&5 +printf "%s\n" "$gl_cv_next_sys_time_h" >&6; } + fi + NEXT_SYS_TIME_H=$gl_cv_next_sys_time_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sys/time.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sys_time_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H=$gl_next_as_first_directive + + + + + + if test $ac_cv_header_sys_time_h != yes; then + HAVE_SYS_TIME_H=0 + fi + + + + + + if test $ac_cv_header_sys_socket_h != yes; then + ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" +if test "x$ac_cv_header_winsock2_h" = xyes +then : + printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h + +fi + + fi + if test "$ac_cv_header_winsock2_h" = yes; then + HAVE_WINSOCK2_H=1 + UNISTD_H_HAVE_WINSOCK2_H=1 + SYS_IOCTL_H_HAVE_WINSOCK2_H=1 + else + HAVE_WINSOCK2_H=0 + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct timeval" >&5 +printf %s "checking for struct timeval... " >&6; } +if test ${gl_cv_sys_struct_timeval+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if HAVE_SYS_TIME_H + #include + #endif + #include + #if HAVE_WINSOCK2_H + # include + #endif + +int +main (void) +{ +static struct timeval x; x.tv_sec = x.tv_usec; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_sys_struct_timeval=yes +else $as_nop + gl_cv_sys_struct_timeval=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timeval" >&5 +printf "%s\n" "$gl_cv_sys_struct_timeval" >&6; } + if test $gl_cv_sys_struct_timeval != yes; then + HAVE_STRUCT_TIMEVAL=0 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wide-enough struct timeval.tv_sec member" >&5 +printf %s "checking for wide-enough struct timeval.tv_sec member... " >&6; } +if test ${gl_cv_sys_struct_timeval_tv_sec+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if HAVE_SYS_TIME_H + #include + #endif + #include + #if HAVE_WINSOCK2_H + # include + #endif + +int +main (void) +{ +static struct timeval x; + typedef int verify_tv_sec_type[ + sizeof (time_t) <= sizeof x.tv_sec ? 1 : -1 + ]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_sys_struct_timeval_tv_sec=yes +else $as_nop + gl_cv_sys_struct_timeval_tv_sec=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timeval_tv_sec" >&5 +printf "%s\n" "$gl_cv_sys_struct_timeval_tv_sec" >&6; } + if test $gl_cv_sys_struct_timeval_tv_sec != yes; then + REPLACE_STRUCT_TIMEVAL=1 + fi + fi + + + + + + + + + GL_GNULIB_GETTIMEOFDAY=0 + + + + + HAVE_GLOB=1; + HAVE_GLOB_PATTERN_P=1; + REPLACE_GLOB=0; + REPLACE_GLOB_PATTERN_P=0; + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_glob_h='<'glob.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_glob_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_glob_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'glob.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_glob_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_glob_h + gl_cv_next_glob_h='"'$gl_header'"' + else + gl_cv_next_glob_h='<'glob.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_glob_h" >&5 +printf "%s\n" "$gl_cv_next_glob_h" >&6; } + fi + NEXT_GLOB_H=$gl_cv_next_glob_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'glob.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_glob_h + fi + NEXT_AS_FIRST_DIRECTIVE_GLOB_H=$gl_next_as_first_directive + + + + + + if test $ac_cv_header_glob_h = yes; then + HAVE_GLOB_H=1 + else + HAVE_GLOB_H=0 + fi + + + GL_GENERATE_GLOB_H=false + if false; then + GL_GENERATE_GLOB_H=true + else + if test $ac_cv_header_glob_h != yes; then + GL_GENERATE_GLOB_H=true + fi + fi + + + + + + + + + + + GL_GNULIB_GLOB=0 + + + + + + + + + if test -z "$gl_pthreadlib_body_done"; then + gl_pthread_api=no + LIBPTHREAD= + LIBPMULTITHREAD= + # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that + # it groks . It's added above, in gl_ANYTHREADLIB_EARLY. + ac_fn_c_check_header_compile "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" +if test "x$ac_cv_header_pthread_h" = xyes +then : + gl_have_pthread_h=yes +else $as_nop + gl_have_pthread_h=no +fi + + if test "$gl_have_pthread_h" = yes; then + # Other possible tests: + # -lpthreads (FSU threads, PCthreads) + # -lgthreads + # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist + # in libc. IRIX 6.5 has the first one in both libc and libpthread, but + # the second one only in libpthread, and lock.c needs it. + # + # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04 + # needs -pthread for some reason. See: + # https://lists.gnu.org/r/bug-gnulib/2014-09/msg00023.html + save_LIBS=$LIBS + for gl_pthread in '' '-pthread'; do + LIBS="$LIBS $gl_pthread" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + pthread_mutex_t m; + pthread_mutexattr_t ma; + +int +main (void) +{ +pthread_mutex_lock (&m); + pthread_mutexattr_init (&ma); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_pthread_api=yes + LIBPTHREAD=$gl_pthread + LIBPMULTITHREAD=$gl_pthread +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$save_LIBS + test $gl_pthread_api = yes && break + done + echo "$as_me:26587: gl_pthread_api=$gl_pthread_api" >&5 + echo "$as_me:26588: LIBPTHREAD=$LIBPTHREAD" >&5 + + gl_pthread_in_glibc=no + # On Linux with glibc >= 2.34, libc contains the fully functional + # pthread functions. + case "$host_os" in + linux*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #ifdef __GNU_LIBRARY__ + #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 34) || (__GLIBC__ > 2) + Lucky user + #endif + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky user" >/dev/null 2>&1 +then : + gl_pthread_in_glibc=yes +fi +rm -rf conftest* + + ;; + esac + echo "$as_me:26614: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5 + + # Test for libpthread by looking for pthread_kill. (Not pthread_self, + # since it is defined as a macro on OSF/1.) + if test $gl_pthread_api = yes && test -z "$LIBPTHREAD"; then + # The program links fine without libpthread. But it may actually + # need to link with libpthread in order to create multiple threads. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 +printf %s "checking for pthread_kill in -lpthread... " >&6; } +if test ${ac_cv_lib_pthread_pthread_kill+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char pthread_kill (); +int +main (void) +{ +return pthread_kill (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_pthread_pthread_kill=yes +else $as_nop + ac_cv_lib_pthread_pthread_kill=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 +printf "%s\n" "$ac_cv_lib_pthread_pthread_kill" >&6; } +if test "x$ac_cv_lib_pthread_pthread_kill" = xyes +then : + if test $gl_pthread_in_glibc = yes; then + LIBPMULTITHREAD= + else + LIBPMULTITHREAD=-lpthread + # On Solaris and HP-UX, most pthread functions exist also in libc. + # Therefore pthread_in_use() needs to actually try to create a + # thread: pthread_create from libc will fail, whereas + # pthread_create will actually create a thread. + # On Solaris 10 or newer, this test is no longer needed, because + # libc contains the fully functional pthread functions. + case "$host_os" in + solaris | solaris2.1-9 | solaris2.1-9.* | hpux*) + +printf "%s\n" "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h + + esac + fi + +fi + + elif test $gl_pthread_api != yes; then + # Some library is needed. Try libpthread and libc_r. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 +printf %s "checking for pthread_kill in -lpthread... " >&6; } +if test ${ac_cv_lib_pthread_pthread_kill+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char pthread_kill (); +int +main (void) +{ +return pthread_kill (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_pthread_pthread_kill=yes +else $as_nop + ac_cv_lib_pthread_pthread_kill=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 +printf "%s\n" "$ac_cv_lib_pthread_pthread_kill" >&6; } +if test "x$ac_cv_lib_pthread_pthread_kill" = xyes +then : + gl_pthread_api=yes + LIBPTHREAD=-lpthread + LIBPMULTITHREAD=-lpthread +fi + + if test $gl_pthread_api != yes; then + # For FreeBSD 4. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lc_r" >&5 +printf %s "checking for pthread_kill in -lc_r... " >&6; } +if test ${ac_cv_lib_c_r_pthread_kill+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lc_r $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char pthread_kill (); +int +main (void) +{ +return pthread_kill (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_c_r_pthread_kill=yes +else $as_nop + ac_cv_lib_c_r_pthread_kill=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5 +printf "%s\n" "$ac_cv_lib_c_r_pthread_kill" >&6; } +if test "x$ac_cv_lib_c_r_pthread_kill" = xyes +then : + gl_pthread_api=yes + LIBPTHREAD=-lc_r + LIBPMULTITHREAD=-lc_r +fi + + fi + fi + echo "$as_me:26768: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5 + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5 +printf %s "checking whether POSIX threads API is available... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_pthread_api" >&5 +printf "%s\n" "$gl_pthread_api" >&6; } + + + if test $gl_pthread_api = yes; then + +printf "%s\n" "#define HAVE_PTHREAD_API 1" >>confdefs.h + + fi + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +sched_yield (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + LIB_SCHED_YIELD= + +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5 +printf %s "checking for sched_yield in -lrt... " >&6; } +if test ${ac_cv_lib_rt_sched_yield+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char sched_yield (); +int +main (void) +{ +return sched_yield (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_rt_sched_yield=yes +else $as_nop + ac_cv_lib_rt_sched_yield=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5 +printf "%s\n" "$ac_cv_lib_rt_sched_yield" >&6; } +if test "x$ac_cv_lib_rt_sched_yield" = xyes +then : + LIB_SCHED_YIELD=-lrt +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lposix4" >&5 +printf %s "checking for sched_yield in -lposix4... " >&6; } +if test ${ac_cv_lib_posix4_sched_yield+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lposix4 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char sched_yield (); +int +main (void) +{ +return sched_yield (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_posix4_sched_yield=yes +else $as_nop + ac_cv_lib_posix4_sched_yield=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix4_sched_yield" >&5 +printf "%s\n" "$ac_cv_lib_posix4_sched_yield" >&6; } +if test "x$ac_cv_lib_posix4_sched_yield" = xyes +then : + LIB_SCHED_YIELD=-lposix4 +fi + +fi + + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + + gl_pthreadlib_body_done=done + fi + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether setlocale (LC_ALL, NULL) is multithread-safe" >&5 +printf %s "checking whether setlocale (LC_ALL, NULL) is multithread-safe... " >&6; } +if test ${gl_cv_func_setlocale_null_all_mtsafe+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case "$host_os" in + # Guess no on musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin. + *-musl* | darwin* | freebsd* | midnightbsd* | netbsd* | openbsd* | aix* | haiku* | cygwin*) + gl_cv_func_setlocale_null_all_mtsafe=no ;; + # Guess yes on glibc, HP-UX, IRIX, Solaris, native Windows. + *-gnu* | gnu* | hpux* | irix* | solaris* | mingw*) + gl_cv_func_setlocale_null_all_mtsafe=yes ;; + # If we don't know, obey --enable-cross-guesses. + *) + gl_cv_func_setlocale_null_all_mtsafe="$gl_cross_guess_normal" ;; + esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setlocale_null_all_mtsafe" >&5 +printf "%s\n" "$gl_cv_func_setlocale_null_all_mtsafe" >&6; } + case "$host_os" in + mingw*) ;; + *) + if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then + gl_cv_func_setlocale_null_all_mtsafe="trivially yes" + fi + ;; + esac + case "$gl_cv_func_setlocale_null_all_mtsafe" in + *yes) SETLOCALE_NULL_ALL_MTSAFE=1 ;; + *) SETLOCALE_NULL_ALL_MTSAFE=0 ;; + esac + +printf "%s\n" "#define SETLOCALE_NULL_ALL_MTSAFE $SETLOCALE_NULL_ALL_MTSAFE" >>confdefs.h + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether setlocale (category, NULL) is multithread-safe" >&5 +printf %s "checking whether setlocale (category, NULL) is multithread-safe... " >&6; } +if test ${gl_cv_func_setlocale_null_one_mtsafe+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case "$host_os" in + # Guess no on OpenBSD, AIX. + openbsd* | aix*) + gl_cv_func_setlocale_null_one_mtsafe=no ;; + # Guess yes on glibc, musl libc, macOS, FreeBSD, NetBSD, HP-UX, IRIX, Solaris, Haiku, Cygwin, native Windows. + *-gnu* | gnu* | *-musl* | darwin* | freebsd* | midnightbsd* | netbsd* | hpux* | irix* | solaris* | haiku* | cygwin* | mingw*) + gl_cv_func_setlocale_null_one_mtsafe=yes ;; + # If we don't know, obey --enable-cross-guesses. + *) + gl_cv_func_setlocale_null_one_mtsafe="$gl_cross_guess_normal" ;; + esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setlocale_null_one_mtsafe" >&5 +printf "%s\n" "$gl_cv_func_setlocale_null_one_mtsafe" >&6; } + case "$host_os" in + mingw*) ;; + *) + if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then + gl_cv_func_setlocale_null_one_mtsafe="trivially yes" + fi + ;; + esac + case "$gl_cv_func_setlocale_null_one_mtsafe" in + *yes) SETLOCALE_NULL_ONE_MTSAFE=1 ;; + *) SETLOCALE_NULL_ONE_MTSAFE=0 ;; + esac + +printf "%s\n" "#define SETLOCALE_NULL_ONE_MTSAFE $SETLOCALE_NULL_ONE_MTSAFE" >>confdefs.h + + + if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0; then + case "$host_os" in + mingw*) LIB_SETLOCALE_NULL= ;; + *) + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 +printf %s "checking whether imported symbols can be declared weak... " >&6; } +if test ${gl_cv_have_weak+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case "$host_os" in + cygwin*) + gl_cv_have_weak="guessing no" + ;; + *) + gl_cv_have_weak=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern void xyzzy (); +#pragma weak xyzzy +int +main (void) +{ +xyzzy(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_have_weak=maybe +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test $gl_cv_have_weak = maybe; then + if test "$cross_compiling" = yes +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __ELF__ + Extensible Linking Format + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Extensible Linking Format" >/dev/null 2>&1 +then : + gl_cv_have_weak="guessing yes" +else $as_nop + gl_cv_have_weak="guessing no" +fi +rm -rf conftest* + + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#pragma weak fputs +int main () +{ + return (fputs == NULL); +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_have_weak=yes +else $as_nop + gl_cv_have_weak=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + ;; + esac + case " $LDFLAGS " in + *" -static "*) gl_cv_have_weak=no ;; + esac + case "$gl_cv_have_weak" in + *yes) + case "$host_os" in + freebsd* | dragonfly* | midnightbsd*) + : > conftest1.c + $CC $CPPFLAGS $CFLAGS $LDFLAGS -fPIC -shared -o libempty.so conftest1.c -lpthread >&5 2>&1 + cat < conftest2.c +#include +#pragma weak pthread_mutexattr_gettype +int main () +{ + return (pthread_mutexattr_gettype != NULL); +} +EOF + $CC $CPPFLAGS $CFLAGS $LDFLAGS -o conftest conftest2.c libempty.so >&5 2>&1 \ + || gl_cv_have_weak=no + rm -f conftest1.c libempty.so conftest2.c conftest + ;; + esac + ;; + esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 +printf "%s\n" "$gl_cv_have_weak" >&6; } + case "$gl_cv_have_weak" in + *yes) + +printf "%s\n" "#define HAVE_WEAK_SYMBOLS 1" >>confdefs.h + + ;; + esac + + case "$gl_cv_have_weak" in + *yes) LIB_SETLOCALE_NULL= ;; + *) LIB_SETLOCALE_NULL="$LIBPTHREAD" ;; + esac + ;; + esac + else + LIB_SETLOCALE_NULL= + fi + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_limits_h='<'limits.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_limits_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_limits_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'limits.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_limits_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_limits_h + gl_cv_next_limits_h='"'$gl_header'"' + else + gl_cv_next_limits_h='<'limits.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_limits_h" >&5 +printf "%s\n" "$gl_cv_next_limits_h" >&6; } + fi + NEXT_LIMITS_H=$gl_cv_next_limits_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'limits.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_limits_h + fi + NEXT_AS_FIRST_DIRECTIVE_LIMITS_H=$gl_next_as_first_directive + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether limits.h has WORD_BIT, BOOL_WIDTH etc." >&5 +printf %s "checking whether limits.h has WORD_BIT, BOOL_WIDTH etc.... " >&6; } +if test ${gl_cv_header_limits_width+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ + #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 + #endif + #include + long long llm = LLONG_MAX; + int wb = WORD_BIT; + int ullw = ULLONG_WIDTH; + int bw = BOOL_WIDTH; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_limits_width=yes +else $as_nop + gl_cv_header_limits_width=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_limits_width" >&5 +printf "%s\n" "$gl_cv_header_limits_width" >&6; } + if test "$gl_cv_header_limits_width" = yes; then + GL_GENERATE_LIMITS_H=false + else + GL_GENERATE_LIMITS_H=true + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5 +printf %s "checking for wint_t... " >&6; } +if test ${gt_cv_c_wint_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + wint_t foo = (wchar_t)'\0'; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gt_cv_c_wint_t=yes +else $as_nop + gt_cv_c_wint_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5 +printf "%s\n" "$gt_cv_c_wint_t" >&6; } + if test $gt_cv_c_wint_t = yes; then + +printf "%s\n" "#define HAVE_WINT_T 1" >>confdefs.h + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether wint_t is large enough" >&5 +printf %s "checking whether wint_t is large enough... " >&6; } +if test ${gl_cv_type_wint_t_large_enough+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + int verify[sizeof (wint_t) < sizeof (int) ? -1 : 1]; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_type_wint_t_large_enough=yes +else $as_nop + gl_cv_type_wint_t_large_enough=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wint_t_large_enough" >&5 +printf "%s\n" "$gl_cv_type_wint_t_large_enough" >&6; } + if test $gl_cv_type_wint_t_large_enough = no; then + GNULIBHEADERS_OVERRIDE_WINT_T=1 + else + GNULIBHEADERS_OVERRIDE_WINT_T=0 + fi + else + GNULIBHEADERS_OVERRIDE_WINT_T=0 + fi + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler produces multi-arch binaries" >&5 +printf %s "checking whether the compiler produces multi-arch binaries... " >&6; } +if test ${gl_cv_c_multiarch+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gl_cv_c_multiarch=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + arch= + prev= + for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do + if test -n "$prev"; then + case $word in + i?86 | x86_64 | ppc | ppc64 | arm | arm64) + if test -z "$arch" || test "$arch" = "$word"; then + arch="$word" + else + gl_cv_c_multiarch=yes + fi + ;; + esac + prev= + else + if test "x$word" = "x-arch"; then + prev=arch + fi + fi + done + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_multiarch" >&5 +printf "%s\n" "$gl_cv_c_multiarch" >&6; } + if test $gl_cv_c_multiarch = yes; then + APPLE_UNIVERSAL_BUILD=1 + else + APPLE_UNIVERSAL_BUILD=0 + fi + + + + + + + + +printf "%s\n" "#define HAVE_LONG_LONG_INT 1" >>confdefs.h + + +printf "%s\n" "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h + + + + if test $ac_cv_header_wchar_h = yes; then + HAVE_WCHAR_H=1 + else + HAVE_WCHAR_H=0 + fi + + + + if test $ac_cv_header_inttypes_h = yes; then + HAVE_INTTYPES_H=1 + else + HAVE_INTTYPES_H=0 + fi + + + + if test $ac_cv_header_sys_types_h = yes; then + HAVE_SYS_TYPES_H=1 + else + HAVE_SYS_TYPES_H=0 + fi + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_stdint_h='<'stdint.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_stdint_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_stdint_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'stdint.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_stdint_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_stdint_h + gl_cv_next_stdint_h='"'$gl_header'"' + else + gl_cv_next_stdint_h='<'stdint.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdint_h" >&5 +printf "%s\n" "$gl_cv_next_stdint_h" >&6; } + fi + NEXT_STDINT_H=$gl_cv_next_stdint_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'stdint.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_stdint_h + fi + NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_stdint_h = yes; then + HAVE_STDINT_H=1 + else + HAVE_STDINT_H=0 + fi + + + if test $ac_cv_header_stdint_h = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5 +printf %s "checking whether stdint.h conforms to C99... " >&6; } +if test ${gl_cv_header_working_stdint_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gl_cv_header_working_stdint_h=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ +#define __STDC_CONSTANT_MACROS 1 +#define __STDC_LIMIT_MACROS 1 +#include +/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in . */ +#if !(defined WCHAR_MIN && defined WCHAR_MAX) +#error "WCHAR_MIN, WCHAR_MAX not defined in " +#endif + + + #include + #include + #if HAVE_WCHAR_H + # include + #endif + + +#ifdef INT8_MAX +int8_t a1 = INT8_MAX; +int8_t a1min = INT8_MIN; +#endif +#ifdef INT16_MAX +int16_t a2 = INT16_MAX; +int16_t a2min = INT16_MIN; +#endif +#ifdef INT32_MAX +int32_t a3 = INT32_MAX; +int32_t a3min = INT32_MIN; +#endif +#ifdef INT64_MAX +int64_t a4 = INT64_MAX; +int64_t a4min = INT64_MIN; +#endif +#ifdef UINT8_MAX +uint8_t b1 = UINT8_MAX; +#else +typedef int b1[(unsigned char) -1 != 255 ? 1 : -1]; +#endif +#ifdef UINT16_MAX +uint16_t b2 = UINT16_MAX; +#endif +#ifdef UINT32_MAX +uint32_t b3 = UINT32_MAX; +#endif +#ifdef UINT64_MAX +uint64_t b4 = UINT64_MAX; +#endif +int_least8_t c1 = INT8_C (0x7f); +int_least8_t c1max = INT_LEAST8_MAX; +int_least8_t c1min = INT_LEAST8_MIN; +int_least16_t c2 = INT16_C (0x7fff); +int_least16_t c2max = INT_LEAST16_MAX; +int_least16_t c2min = INT_LEAST16_MIN; +int_least32_t c3 = INT32_C (0x7fffffff); +int_least32_t c3max = INT_LEAST32_MAX; +int_least32_t c3min = INT_LEAST32_MIN; +int_least64_t c4 = INT64_C (0x7fffffffffffffff); +int_least64_t c4max = INT_LEAST64_MAX; +int_least64_t c4min = INT_LEAST64_MIN; +uint_least8_t d1 = UINT8_C (0xff); +uint_least8_t d1max = UINT_LEAST8_MAX; +uint_least16_t d2 = UINT16_C (0xffff); +uint_least16_t d2max = UINT_LEAST16_MAX; +uint_least32_t d3 = UINT32_C (0xffffffff); +uint_least32_t d3max = UINT_LEAST32_MAX; +uint_least64_t d4 = UINT64_C (0xffffffffffffffff); +uint_least64_t d4max = UINT_LEAST64_MAX; +int_fast8_t e1 = INT_FAST8_MAX; +int_fast8_t e1min = INT_FAST8_MIN; +int_fast16_t e2 = INT_FAST16_MAX; +int_fast16_t e2min = INT_FAST16_MIN; +int_fast32_t e3 = INT_FAST32_MAX; +int_fast32_t e3min = INT_FAST32_MIN; +int_fast64_t e4 = INT_FAST64_MAX; +int_fast64_t e4min = INT_FAST64_MIN; +uint_fast8_t f1 = UINT_FAST8_MAX; +uint_fast16_t f2 = UINT_FAST16_MAX; +uint_fast32_t f3 = UINT_FAST32_MAX; +uint_fast64_t f4 = UINT_FAST64_MAX; +#ifdef INTPTR_MAX +intptr_t g = INTPTR_MAX; +intptr_t gmin = INTPTR_MIN; +#endif +#ifdef UINTPTR_MAX +uintptr_t h = UINTPTR_MAX; +#endif +intmax_t i = INTMAX_MAX; +uintmax_t j = UINTMAX_MAX; + +/* Check that SIZE_MAX has the correct type, if possible. */ +#if 201112 <= __STDC_VERSION__ +int k = _Generic (SIZE_MAX, size_t: 0); +#elif (2 <= __GNUC__ || 4 <= __clang_major__ || defined __IBM__TYPEOF__ \ + || (0x5110 <= __SUNPRO_C && !__STDC__)) +extern size_t k; +extern __typeof__ (SIZE_MAX) k; +#endif + +#include /* for CHAR_BIT */ +#define TYPE_MINIMUM(t) \ + ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t))) +#define TYPE_MAXIMUM(t) \ + ((t) ((t) 0 < (t) -1 \ + ? (t) -1 \ + : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) +struct s { + int check_PTRDIFF: + PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) + && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) + ? 1 : -1; + /* Detect bug in FreeBSD 6.0/ia64 and FreeBSD 13.0/arm64. */ + int check_SIG_ATOMIC: + SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) + && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) + ? 1 : -1; + int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; + int check_WCHAR: + WCHAR_MIN == TYPE_MINIMUM (wchar_t) + && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) + ? 1 : -1; + /* Detect bug in mingw. */ + int check_WINT: + WINT_MIN == TYPE_MINIMUM (wint_t) + && WINT_MAX == TYPE_MAXIMUM (wint_t) + ? 1 : -1; + + /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ + int check_UINT8_C: + (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1; + int check_UINT16_C: + (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1; + + /* Detect bugs in OpenBSD 3.9 stdint.h. */ +#ifdef UINT8_MAX + int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1; +#endif +#ifdef UINT16_MAX + int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1; +#endif +#ifdef UINT32_MAX + int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1; +#endif +#ifdef UINT64_MAX + int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1; +#endif + int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1; + int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1; + int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1; + int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1; + int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1; + int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1; + int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1; + int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1; + int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1; + int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1; + int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; +}; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on native Windows. + mingw*) gl_cv_header_working_stdint_h="guessing yes" ;; + # In general, assume it works. + *) gl_cv_header_working_stdint_h="guessing yes" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ +#define __STDC_CONSTANT_MACROS 1 +#define __STDC_LIMIT_MACROS 1 +#include + + + #include + #include + #if HAVE_WCHAR_H + # include + #endif + + +#include +#include +#define MVAL(macro) MVAL1(macro) +#define MVAL1(expression) #expression +static const char *macro_values[] = + { +#ifdef INT8_MAX + MVAL (INT8_MAX), +#endif +#ifdef INT16_MAX + MVAL (INT16_MAX), +#endif +#ifdef INT32_MAX + MVAL (INT32_MAX), +#endif +#ifdef INT64_MAX + MVAL (INT64_MAX), +#endif +#ifdef UINT8_MAX + MVAL (UINT8_MAX), +#endif +#ifdef UINT16_MAX + MVAL (UINT16_MAX), +#endif +#ifdef UINT32_MAX + MVAL (UINT32_MAX), +#endif +#ifdef UINT64_MAX + MVAL (UINT64_MAX), +#endif + NULL + }; + +int +main (void) +{ + + const char **mv; + for (mv = macro_values; *mv != NULL; mv++) + { + const char *value = *mv; + /* Test whether it looks like a cast expression. */ + if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 + || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 + || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 + || strncmp (value, "((int)"/*)*/, 6) == 0 + || strncmp (value, "((signed short)"/*)*/, 15) == 0 + || strncmp (value, "((signed char)"/*)*/, 14) == 0) + return mv - macro_values + 1; + } + return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_header_working_stdint_h=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdint_h" >&5 +printf "%s\n" "$gl_cv_header_working_stdint_h" >&6; } + fi + + HAVE_C99_STDINT_H=0 + HAVE_SYS_BITYPES_H=0 + HAVE_SYS_INTTYPES_H=0 + GL_GENERATE_STDINT_H=true + case "$gl_cv_header_working_stdint_h" in + *yes) + HAVE_C99_STDINT_H=1 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stdint.h works without ISO C predefines" >&5 +printf %s "checking whether stdint.h works without ISO C predefines... " >&6; } +if test ${gl_cv_header_stdint_without_STDC_macros+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gl_cv_header_stdint_without_STDC_macros=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ +#include + + + #include + #include + #if HAVE_WCHAR_H + # include + #endif + + +intmax_t im = INTMAX_MAX; +int32_t i32 = INT32_C (0x7fffffff); + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_stdint_without_STDC_macros=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_without_STDC_macros" >&5 +printf "%s\n" "$gl_cv_header_stdint_without_STDC_macros" >&6; } + + if test $gl_cv_header_stdint_without_STDC_macros = no; then + +printf "%s\n" "#define __STDC_CONSTANT_MACROS 1" >>confdefs.h + + +printf "%s\n" "#define __STDC_LIMIT_MACROS 1" >>confdefs.h + + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stdint.h has UINTMAX_WIDTH etc." >&5 +printf %s "checking whether stdint.h has UINTMAX_WIDTH etc.... " >&6; } +if test ${gl_cv_header_stdint_width+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gl_cv_header_stdint_width=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Work if build is not clean. */ + #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 + #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ + #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 + #endif + #include + + #include + #include + #if HAVE_WCHAR_H + # include + #endif + + int iw = UINTMAX_WIDTH; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_stdint_width=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_width" >&5 +printf "%s\n" "$gl_cv_header_stdint_width" >&6; } + if test "$gl_cv_header_stdint_width" = yes; then + GL_GENERATE_STDINT_H=false + fi + ;; + *) + ac_fn_c_check_header_compile "$LINENO" "sys/inttypes.h" "ac_cv_header_sys_inttypes_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_inttypes_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_INTTYPES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/bitypes.h" "ac_cv_header_sys_bitypes_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_bitypes_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_BITYPES_H 1" >>confdefs.h + +fi + + if test $ac_cv_header_sys_inttypes_h = yes; then + HAVE_SYS_INTTYPES_H=1 + fi + if test $ac_cv_header_sys_bitypes_h = yes; then + HAVE_SYS_BITYPES_H=1 + fi + + + if test $APPLE_UNIVERSAL_BUILD = 0; then + + + for gltype in ptrdiff_t size_t ; do + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 +printf %s "checking for bit size of $gltype... " >&6; } +if eval test \${gl_cv_bitsizeof_${gltype}+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " + #include + #include + #if HAVE_WCHAR_H + # include + #endif + +#include " +then : + +else $as_nop + result=unknown +fi + + eval gl_cv_bitsizeof_${gltype}=\$result + +fi +eval ac_res=\$gl_cv_bitsizeof_${gltype} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval result=\$gl_cv_bitsizeof_${gltype} + if test $result = unknown; then + result=0 + fi + GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` + printf "%s\n" "#define BITSIZEOF_${GLTYPE} $result" >>confdefs.h + + eval BITSIZEOF_${GLTYPE}=\$result + done + + + fi + + + for gltype in sig_atomic_t wchar_t wint_t ; do + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 +printf %s "checking for bit size of $gltype... " >&6; } +if eval test \${gl_cv_bitsizeof_${gltype}+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " + #include + #include + #if HAVE_WCHAR_H + # include + #endif + +#include " +then : + +else $as_nop + result=unknown +fi + + eval gl_cv_bitsizeof_${gltype}=\$result + +fi +eval ac_res=\$gl_cv_bitsizeof_${gltype} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval result=\$gl_cv_bitsizeof_${gltype} + if test $result = unknown; then + result=0 + fi + GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` + printf "%s\n" "#define BITSIZEOF_${GLTYPE} $result" >>confdefs.h + + eval BITSIZEOF_${GLTYPE}=\$result + done + + + + + for gltype in sig_atomic_t wchar_t wint_t ; do + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5 +printf %s "checking whether $gltype is signed... " >&6; } +if eval test \${gl_cv_type_${gltype}_signed+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + #if HAVE_WCHAR_H + # include + #endif + + int verify[2 * (($gltype) -1 < ($gltype) 0) - 1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + result=yes +else $as_nop + result=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + eval gl_cv_type_${gltype}_signed=\$result + +fi +eval ac_res=\$gl_cv_type_${gltype}_signed + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval result=\$gl_cv_type_${gltype}_signed + GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` + if test "$result" = yes; then + printf "%s\n" "#define HAVE_SIGNED_${GLTYPE} 1" >>confdefs.h + + eval HAVE_SIGNED_${GLTYPE}=1 + else + eval HAVE_SIGNED_${GLTYPE}=0 + fi + done + + + gl_cv_type_ptrdiff_t_signed=yes + gl_cv_type_size_t_signed=no + if test $APPLE_UNIVERSAL_BUILD = 0; then + + + for gltype in ptrdiff_t size_t ; do + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 +printf %s "checking for $gltype integer literal suffix... " >&6; } +if eval test \${gl_cv_type_${gltype}_suffix+y} +then : + printf %s "(cached) " >&6 +else $as_nop + eval gl_cv_type_${gltype}_suffix=no + eval result=\$gl_cv_type_${gltype}_signed + if test "$result" = yes; then + glsufu= + else + glsufu=u + fi + for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do + case $glsuf in + '') gltype1='int';; + l) gltype1='long int';; + ll) gltype1='long long int';; + i64) gltype1='__int64';; + u) gltype1='unsigned int';; + ul) gltype1='unsigned long int';; + ull) gltype1='unsigned long long int';; + ui64)gltype1='unsigned __int64';; + esac + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + #if HAVE_WCHAR_H + # include + #endif + + extern $gltype foo; + extern $gltype1 foo; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval gl_cv_type_${gltype}_suffix=\$glsuf +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + eval result=\$gl_cv_type_${gltype}_suffix + test "$result" != no && break + done +fi +eval ac_res=\$gl_cv_type_${gltype}_suffix + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` + eval result=\$gl_cv_type_${gltype}_suffix + test "$result" = no && result= + eval ${GLTYPE}_SUFFIX=\$result + printf "%s\n" "#define ${GLTYPE}_SUFFIX $result" >>confdefs.h + + done + + + fi + + + for gltype in sig_atomic_t wchar_t wint_t ; do + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 +printf %s "checking for $gltype integer literal suffix... " >&6; } +if eval test \${gl_cv_type_${gltype}_suffix+y} +then : + printf %s "(cached) " >&6 +else $as_nop + eval gl_cv_type_${gltype}_suffix=no + eval result=\$gl_cv_type_${gltype}_signed + if test "$result" = yes; then + glsufu= + else + glsufu=u + fi + for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do + case $glsuf in + '') gltype1='int';; + l) gltype1='long int';; + ll) gltype1='long long int';; + i64) gltype1='__int64';; + u) gltype1='unsigned int';; + ul) gltype1='unsigned long int';; + ull) gltype1='unsigned long long int';; + ui64)gltype1='unsigned __int64';; + esac + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + #if HAVE_WCHAR_H + # include + #endif + + extern $gltype foo; + extern $gltype1 foo; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval gl_cv_type_${gltype}_suffix=\$glsuf +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + eval result=\$gl_cv_type_${gltype}_suffix + test "$result" != no && break + done +fi +eval ac_res=\$gl_cv_type_${gltype}_suffix + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` + eval result=\$gl_cv_type_${gltype}_suffix + test "$result" = no && result= + eval ${GLTYPE}_SUFFIX=\$result + printf "%s\n" "#define ${GLTYPE}_SUFFIX $result" >>confdefs.h + + done + + + + if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then + BITSIZEOF_WINT_T=32 + fi + + ;; + esac + + + + GL_GENERATE_LIMITS_H=true + + + + + + + + HAVE_DECL_IMAXABS=1; + HAVE_DECL_IMAXDIV=1; + HAVE_DECL_STRTOIMAX=1; + HAVE_DECL_STRTOUMAX=1; + HAVE_IMAXDIV_T=1; + REPLACE_STRTOIMAX=0; + REPLACE_STRTOUMAX=0; + INT32_MAX_LT_INTMAX_MAX=1; + INT64_MAX_EQ_LONG_MAX='defined _LP64'; + PRIPTR_PREFIX=__PRIPTR_PREFIX; + UINT32_MAX_LT_UINTMAX_MAX=1; + UINT64_MAX_EQ_ULONG_MAX='defined _LP64'; + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_inttypes_h='<'inttypes.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_inttypes_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_inttypes_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'inttypes.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_inttypes_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_inttypes_h + gl_cv_next_inttypes_h='"'$gl_header'"' + else + gl_cv_next_inttypes_h='<'inttypes.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_inttypes_h" >&5 +printf "%s\n" "$gl_cv_next_inttypes_h" >&6; } + fi + NEXT_INTTYPES_H=$gl_cv_next_inttypes_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'inttypes.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_inttypes_h + fi + NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H=$gl_next_as_first_directive + + + + + + + + + + + + + + + + GL_GNULIB_IMAXABS=0 + + + + GL_GNULIB_IMAXDIV=0 + + + + GL_GNULIB_STRTOIMAX=0 + + + + GL_GNULIB_STRTOUMAX=0 + + + + + HAVE_STRUCT_SOCKADDR_STORAGE=1; + HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1; + + HAVE_SA_FAMILY_T=1; + HAVE_ACCEPT4=1; + + + if test $ac_cv_header_sys_socket_h = no; then + ac_fn_c_check_header_compile "$LINENO" "ws2tcpip.h" "ac_cv_header_ws2tcpip_h" "$ac_includes_default" +if test "x$ac_cv_header_ws2tcpip_h" = xyes +then : + printf "%s\n" "#define HAVE_WS2TCPIP_H 1" >>confdefs.h + +fi + + fi + + + + + + case "$host_os" in + osf*) + +printf "%s\n" "#define _POSIX_PII_SOCKET 1" >>confdefs.h + + ;; + esac + + GL_GENERATE_SYS_SOCKET_H=false + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether is self-contained" >&5 +printf %s "checking whether is self-contained... " >&6; } +if test ${gl_cv_header_sys_socket_h_selfcontained+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_sys_socket_h_selfcontained=yes +else $as_nop + gl_cv_header_sys_socket_h_selfcontained=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_socket_h_selfcontained" >&5 +printf "%s\n" "$gl_cv_header_sys_socket_h_selfcontained" >&6; } + if test $gl_cv_header_sys_socket_h_selfcontained = yes; then + ac_fn_c_check_func "$LINENO" "shutdown" "ac_cv_func_shutdown" +if test "x$ac_cv_func_shutdown" = xyes +then : + printf "%s\n" "#define HAVE_SHUTDOWN 1" >>confdefs.h + +fi + + if test $ac_cv_func_shutdown = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether defines the SHUT_* macros" >&5 +printf %s "checking whether defines the SHUT_* macros... " >&6; } +if test ${gl_cv_header_sys_socket_h_shut+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR }; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_sys_socket_h_shut=yes +else $as_nop + gl_cv_header_sys_socket_h_shut=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_socket_h_shut" >&5 +printf "%s\n" "$gl_cv_header_sys_socket_h_shut" >&6; } + if test $gl_cv_header_sys_socket_h_shut = no; then + GL_GENERATE_SYS_SOCKET_H=true + fi + fi + fi + # We need to check for ws2tcpip.h now. + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_sys_socket_h='<'sys/socket.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_sys_socket_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_sys_socket_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'sys/socket.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_sys_socket_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_sys_socket_h + gl_cv_next_sys_socket_h='"'$gl_header'"' + else + gl_cv_next_sys_socket_h='<'sys/socket.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_socket_h" >&5 +printf "%s\n" "$gl_cv_next_sys_socket_h" >&6; } + fi + NEXT_SYS_SOCKET_H=$gl_cv_next_sys_socket_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sys/socket.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sys_socket_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_sys_socket_h = yes; then + HAVE_SYS_SOCKET_H=1 + else + HAVE_SYS_SOCKET_H=0 + fi + + + + if test $ac_cv_header_sys_socket_h = yes; then + HAVE_WS2TCPIP_H=0 + else + if test $ac_cv_header_ws2tcpip_h = yes; then + HAVE_WS2TCPIP_H=1 + else + HAVE_WS2TCPIP_H=0 + fi + fi + + + + ac_fn_c_check_type "$LINENO" "struct sockaddr_storage" "ac_cv_type_struct_sockaddr_storage" " + /* sys/types.h is not needed according to POSIX, but the + sys/socket.h in i386-unknown-freebsd4.10 and + powerpc-apple-darwin5.5 required it. */ +#include +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_WS2TCPIP_H +#include +#endif + +" +if test "x$ac_cv_type_struct_sockaddr_storage" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_STORAGE 1" >>confdefs.h + + +fi +ac_fn_c_check_type "$LINENO" "sa_family_t" "ac_cv_type_sa_family_t" " + /* sys/types.h is not needed according to POSIX, but the + sys/socket.h in i386-unknown-freebsd4.10 and + powerpc-apple-darwin5.5 required it. */ +#include +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_WS2TCPIP_H +#include +#endif + +" +if test "x$ac_cv_type_sa_family_t" = xyes +then : + +printf "%s\n" "#define HAVE_SA_FAMILY_T 1" >>confdefs.h + + +fi + + if test $ac_cv_type_struct_sockaddr_storage = no; then + HAVE_STRUCT_SOCKADDR_STORAGE=0 + fi + if test $ac_cv_type_sa_family_t = no; then + HAVE_SA_FAMILY_T=0 + fi + if test $ac_cv_type_struct_sockaddr_storage != no; then + ac_fn_c_check_member "$LINENO" "struct sockaddr_storage" "ss_family" "ac_cv_member_struct_sockaddr_storage_ss_family" "#include + #ifdef HAVE_SYS_SOCKET_H + #include + #endif + #ifdef HAVE_WS2TCPIP_H + #include + #endif + +" +if test "x$ac_cv_member_struct_sockaddr_storage_ss_family" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1" >>confdefs.h + + +else $as_nop + HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0 +fi + + fi + if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \ + || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then + GL_GENERATE_SYS_SOCKET_H=true + fi + + + + + if test $ac_cv_header_sys_socket_h != yes; then + ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" +if test "x$ac_cv_header_winsock2_h" = xyes +then : + printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h + +fi + + fi + if test "$ac_cv_header_winsock2_h" = yes; then + HAVE_WINSOCK2_H=1 + UNISTD_H_HAVE_WINSOCK2_H=1 + SYS_IOCTL_H_HAVE_WINSOCK2_H=1 + else + HAVE_WINSOCK2_H=0 + fi + + + + + + + + + + + + GL_GNULIB_IOCTL=0 + + + + + + HAVE_NL_LANGINFO=1; + REPLACE_NL_LANGINFO=0; + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_langinfo_h='<'langinfo.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_langinfo_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_langinfo_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'langinfo.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_langinfo_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_langinfo_h + gl_cv_next_langinfo_h='"'$gl_header'"' + else + gl_cv_next_langinfo_h='<'langinfo.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_langinfo_h" >&5 +printf "%s\n" "$gl_cv_next_langinfo_h" >&6; } + fi + NEXT_LANGINFO_H=$gl_cv_next_langinfo_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'langinfo.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_langinfo_h + fi + NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H=$gl_next_as_first_directive + + + + + + HAVE_LANGINFO_CODESET=0 + HAVE_LANGINFO_T_FMT_AMPM=0 + HAVE_LANGINFO_ALTMON=0 + HAVE_LANGINFO_ERA=0 + HAVE_LANGINFO_YESEXPR=0 + + if test $ac_cv_header_langinfo_h = yes; then + HAVE_LANGINFO_H=1 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines CODESET" >&5 +printf %s "checking whether langinfo.h defines CODESET... " >&6; } +if test ${gl_cv_header_langinfo_codeset+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int a = CODESET; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_langinfo_codeset=yes +else $as_nop + gl_cv_header_langinfo_codeset=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_codeset" >&5 +printf "%s\n" "$gl_cv_header_langinfo_codeset" >&6; } + if test $gl_cv_header_langinfo_codeset = yes; then + HAVE_LANGINFO_CODESET=1 + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines T_FMT_AMPM" >&5 +printf %s "checking whether langinfo.h defines T_FMT_AMPM... " >&6; } +if test ${gl_cv_header_langinfo_t_fmt_ampm+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int a = T_FMT_AMPM; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_langinfo_t_fmt_ampm=yes +else $as_nop + gl_cv_header_langinfo_t_fmt_ampm=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_t_fmt_ampm" >&5 +printf "%s\n" "$gl_cv_header_langinfo_t_fmt_ampm" >&6; } + if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then + HAVE_LANGINFO_T_FMT_AMPM=1 + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ALTMON_1" >&5 +printf %s "checking whether langinfo.h defines ALTMON_1... " >&6; } +if test ${gl_cv_header_langinfo_altmon+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int a = ALTMON_1; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_langinfo_altmon=yes +else $as_nop + gl_cv_header_langinfo_altmon=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_altmon" >&5 +printf "%s\n" "$gl_cv_header_langinfo_altmon" >&6; } + if test $gl_cv_header_langinfo_altmon = yes; then + HAVE_LANGINFO_ALTMON=1 + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ERA" >&5 +printf %s "checking whether langinfo.h defines ERA... " >&6; } +if test ${gl_cv_header_langinfo_era+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int a = ERA; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_langinfo_era=yes +else $as_nop + gl_cv_header_langinfo_era=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_era" >&5 +printf "%s\n" "$gl_cv_header_langinfo_era" >&6; } + if test $gl_cv_header_langinfo_era = yes; then + HAVE_LANGINFO_ERA=1 + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines YESEXPR" >&5 +printf %s "checking whether langinfo.h defines YESEXPR... " >&6; } +if test ${gl_cv_header_langinfo_yesexpr+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int a = YESEXPR; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_langinfo_yesexpr=yes +else $as_nop + gl_cv_header_langinfo_yesexpr=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_yesexpr" >&5 +printf "%s\n" "$gl_cv_header_langinfo_yesexpr" >&6; } + if test $gl_cv_header_langinfo_yesexpr = yes; then + HAVE_LANGINFO_YESEXPR=1 + fi + else + HAVE_LANGINFO_H=0 + fi + + + + + + + + + + + + + + GL_GNULIB_NL_LANGINFO=0 + + + + + + HAVE_NEWLOCALE=1; + HAVE_DUPLOCALE=1; + HAVE_FREELOCALE=1; + REPLACE_LOCALECONV=0; + REPLACE_SETLOCALE=0; + REPLACE_NEWLOCALE=0; + REPLACE_DUPLOCALE=0; + REPLACE_FREELOCALE=0; + REPLACE_STRUCT_LCONV=0; + LOCALENAME_ENHANCE_LOCALE_FUNCS=0; + + + REPLACE_NULL=0; + HAVE_MAX_ALIGN_T=1; + HAVE_WCHAR_T=1; + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5 +printf %s "checking for wchar_t... " >&6; } +if test ${gt_cv_c_wchar_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + wchar_t foo = (wchar_t)'\0'; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gt_cv_c_wchar_t=yes +else $as_nop + gt_cv_c_wchar_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wchar_t" >&5 +printf "%s\n" "$gt_cv_c_wchar_t" >&6; } + if test $gt_cv_c_wchar_t = yes; then + +printf "%s\n" "#define HAVE_WCHAR_T 1" >>confdefs.h + + fi + + + + + + + + GL_GENERATE_STDDEF_H=false + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for good max_align_t" >&5 +printf %s "checking for good max_align_t... " >&6; } +if test ${gl_cv_type_max_align_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + unsigned int s = sizeof (max_align_t); + #if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__ + int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1]; + int check2[2 * (__alignof__ (long double) <= __alignof__ (max_align_t)) - 1]; + #endif + typedef struct { char a; max_align_t b; } max_helper; + typedef struct { char a; long b; } long_helper; + typedef struct { char a; double b; } double_helper; + typedef struct { char a; long double b; } long_double_helper; + int check3[2 * (offsetof (long_helper, b) <= offsetof (max_helper, b)) - 1]; + int check4[2 * (offsetof (double_helper, b) <= offsetof (max_helper, b)) - 1]; + int check5[2 * (offsetof (long_double_helper, b) <= offsetof (max_helper, b)) - 1]; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_type_max_align_t=yes +else $as_nop + gl_cv_type_max_align_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_max_align_t" >&5 +printf "%s\n" "$gl_cv_type_max_align_t" >&6; } + if test $gl_cv_type_max_align_t = no; then + HAVE_MAX_ALIGN_T=0 + GL_GENERATE_STDDEF_H=true + fi + + if test $gt_cv_c_wchar_t = no; then + HAVE_WCHAR_T=0 + GL_GENERATE_STDDEF_H=true + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5 +printf %s "checking whether NULL can be used in arbitrary expressions... " >&6; } +if test ${gl_cv_decl_null_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + int test[2 * (sizeof NULL == sizeof (void *)) -1]; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_decl_null_works=yes +else $as_nop + gl_cv_decl_null_works=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_null_works" >&5 +printf "%s\n" "$gl_cv_decl_null_works" >&6; } + if test $gl_cv_decl_null_works = no; then + REPLACE_NULL=1 + GL_GENERATE_STDDEF_H=true + fi + + if $GL_GENERATE_STDDEF_H; then + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_stddef_h='<'stddef.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_stddef_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'stddef.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_stddef_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_stddef_h + gl_cv_next_stddef_h='"'$gl_header'"' + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5 +printf "%s\n" "$gl_cv_next_stddef_h" >&6; } + fi + NEXT_STDDEF_H=$gl_cv_next_stddef_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'stddef.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_stddef_h + fi + NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive + + + + + fi + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether locale.h defines locale_t" >&5 +printf %s "checking whether locale.h defines locale_t... " >&6; } +if test ${gl_cv_header_locale_has_locale_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + locale_t x; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_locale_has_locale_t=yes +else $as_nop + gl_cv_header_locale_has_locale_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_has_locale_t" >&5 +printf "%s\n" "$gl_cv_header_locale_has_locale_t" >&6; } + + + if test $ac_cv_header_xlocale_h = yes; then + HAVE_XLOCALE_H=1 + if test $gl_cv_header_locale_has_locale_t = yes; then + gl_cv_header_locale_h_needs_xlocale_h=no + else + gl_cv_header_locale_h_needs_xlocale_h=yes + fi + HAVE_LOCALE_T=1 + else + HAVE_XLOCALE_H=0 + gl_cv_header_locale_h_needs_xlocale_h=no + if test $gl_cv_header_locale_has_locale_t = yes; then + HAVE_LOCALE_T=1 + else + HAVE_LOCALE_T=0 + fi + fi + + + + + + + + + + + + + case "$host_os" in + solaris*) + +printf "%s\n" "#define _LCONV_C99 1" >>confdefs.h + + ;; + esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether locale.h conforms to POSIX:2001" >&5 +printf %s "checking whether locale.h conforms to POSIX:2001... " >&6; } +if test ${gl_cv_header_locale_h_posix2001+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + int x = LC_MESSAGES; + int y = sizeof (((struct lconv *) 0)->decimal_point); +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_locale_h_posix2001=yes +else $as_nop + gl_cv_header_locale_h_posix2001=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_h_posix2001" >&5 +printf "%s\n" "$gl_cv_header_locale_h_posix2001" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct lconv is properly defined" >&5 +printf %s "checking whether struct lconv is properly defined... " >&6; } +if test ${gl_cv_sys_struct_lconv_ok+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + struct lconv l; + int x = sizeof (l.decimal_point); + int y = sizeof (l.int_p_cs_precedes); +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_sys_struct_lconv_ok=yes +else $as_nop + gl_cv_sys_struct_lconv_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_lconv_ok" >&5 +printf "%s\n" "$gl_cv_sys_struct_lconv_ok" >&6; } + if test $gl_cv_sys_struct_lconv_ok = no; then + case "$host_os" in + mingw*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _MSC_VER + Special +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Special" >/dev/null 2>&1 +then : + +else $as_nop + REPLACE_STRUCT_LCONV=1 +fi +rm -rf conftest* + + ;; + *) REPLACE_STRUCT_LCONV=1 ;; + esac + fi + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_locale_h='<'locale.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_locale_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'locale.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_locale_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_locale_h + gl_cv_next_locale_h='"'$gl_header'"' + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_locale_h" >&5 +printf "%s\n" "$gl_cv_next_locale_h" >&6; } + fi + NEXT_LOCALE_H=$gl_cv_next_locale_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'locale.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_locale_h + fi + NEXT_AS_FIRST_DIRECTIVE_LOCALE_H=$gl_next_as_first_directive + + + + + + + + + + + + GL_GNULIB_LOCALECONV=0 + + + + GL_GNULIB_SETLOCALE=0 + + + + GL_GNULIB_SETLOCALE_NULL=0 + + + + GL_GNULIB_DUPLOCALE=0 + + + + GL_GNULIB_LOCALENAME=0 + + + + + + gl_threads_api=none + LIBTHREAD= + LTLIBTHREAD= + LIBMULTITHREAD= + LTLIBMULTITHREAD= + if test "$gl_use_threads" != no; then + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 +printf %s "checking whether imported symbols can be declared weak... " >&6; } +if test ${gl_cv_have_weak+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case "$host_os" in + cygwin*) + gl_cv_have_weak="guessing no" + ;; + *) + gl_cv_have_weak=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern void xyzzy (); +#pragma weak xyzzy +int +main (void) +{ +xyzzy(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_have_weak=maybe +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test $gl_cv_have_weak = maybe; then + if test "$cross_compiling" = yes +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __ELF__ + Extensible Linking Format + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Extensible Linking Format" >/dev/null 2>&1 +then : + gl_cv_have_weak="guessing yes" +else $as_nop + gl_cv_have_weak="guessing no" +fi +rm -rf conftest* + + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#pragma weak fputs +int main () +{ + return (fputs == NULL); +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_have_weak=yes +else $as_nop + gl_cv_have_weak=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + ;; + esac + case " $LDFLAGS " in + *" -static "*) gl_cv_have_weak=no ;; + esac + case "$gl_cv_have_weak" in + *yes) + case "$host_os" in + freebsd* | dragonfly* | midnightbsd*) + : > conftest1.c + $CC $CPPFLAGS $CFLAGS $LDFLAGS -fPIC -shared -o libempty.so conftest1.c -lpthread >&5 2>&1 + cat < conftest2.c +#include +#pragma weak pthread_mutexattr_gettype +int main () +{ + return (pthread_mutexattr_gettype != NULL); +} +EOF + $CC $CPPFLAGS $CFLAGS $LDFLAGS -o conftest conftest2.c libempty.so >&5 2>&1 \ + || gl_cv_have_weak=no + rm -f conftest1.c libempty.so conftest2.c conftest + ;; + esac + ;; + esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 +printf "%s\n" "$gl_cv_have_weak" >&6; } + case "$gl_cv_have_weak" in + *yes) + +printf "%s\n" "#define HAVE_WEAK_SYMBOLS 1" >>confdefs.h + + ;; + esac + + if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then + + : + fi + if test "$gl_use_threads" = isoc || test "$gl_use_threads" = isoc+posix; then + + gl_have_isoc_threads="$ac_cv_header_threads_h" + fi + if test "$gl_use_threads" = yes \ + || test "$gl_use_threads" = posix \ + || test "$gl_use_threads" = isoc+posix; then + + + if test -z "$gl_pthreadlib_body_done"; then + gl_pthread_api=no + LIBPTHREAD= + LIBPMULTITHREAD= + # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that + # it groks . It's added above, in gl_ANYTHREADLIB_EARLY. + ac_fn_c_check_header_compile "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" +if test "x$ac_cv_header_pthread_h" = xyes +then : + gl_have_pthread_h=yes +else $as_nop + gl_have_pthread_h=no +fi + + if test "$gl_have_pthread_h" = yes; then + # Other possible tests: + # -lpthreads (FSU threads, PCthreads) + # -lgthreads + # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist + # in libc. IRIX 6.5 has the first one in both libc and libpthread, but + # the second one only in libpthread, and lock.c needs it. + # + # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04 + # needs -pthread for some reason. See: + # https://lists.gnu.org/r/bug-gnulib/2014-09/msg00023.html + save_LIBS=$LIBS + for gl_pthread in '' '-pthread'; do + LIBS="$LIBS $gl_pthread" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + pthread_mutex_t m; + pthread_mutexattr_t ma; + +int +main (void) +{ +pthread_mutex_lock (&m); + pthread_mutexattr_init (&ma); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_pthread_api=yes + LIBPTHREAD=$gl_pthread + LIBPMULTITHREAD=$gl_pthread +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$save_LIBS + test $gl_pthread_api = yes && break + done + echo "$as_me:29547: gl_pthread_api=$gl_pthread_api" >&5 + echo "$as_me:29548: LIBPTHREAD=$LIBPTHREAD" >&5 + + gl_pthread_in_glibc=no + # On Linux with glibc >= 2.34, libc contains the fully functional + # pthread functions. + case "$host_os" in + linux*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #ifdef __GNU_LIBRARY__ + #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 34) || (__GLIBC__ > 2) + Lucky user + #endif + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky user" >/dev/null 2>&1 +then : + gl_pthread_in_glibc=yes +fi +rm -rf conftest* + + ;; + esac + echo "$as_me:29574: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5 + + # Test for libpthread by looking for pthread_kill. (Not pthread_self, + # since it is defined as a macro on OSF/1.) + if test $gl_pthread_api = yes && test -z "$LIBPTHREAD"; then + # The program links fine without libpthread. But it may actually + # need to link with libpthread in order to create multiple threads. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 +printf %s "checking for pthread_kill in -lpthread... " >&6; } +if test ${ac_cv_lib_pthread_pthread_kill+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char pthread_kill (); +int +main (void) +{ +return pthread_kill (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_pthread_pthread_kill=yes +else $as_nop + ac_cv_lib_pthread_pthread_kill=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 +printf "%s\n" "$ac_cv_lib_pthread_pthread_kill" >&6; } +if test "x$ac_cv_lib_pthread_pthread_kill" = xyes +then : + if test $gl_pthread_in_glibc = yes; then + LIBPMULTITHREAD= + else + LIBPMULTITHREAD=-lpthread + # On Solaris and HP-UX, most pthread functions exist also in libc. + # Therefore pthread_in_use() needs to actually try to create a + # thread: pthread_create from libc will fail, whereas + # pthread_create will actually create a thread. + # On Solaris 10 or newer, this test is no longer needed, because + # libc contains the fully functional pthread functions. + case "$host_os" in + solaris | solaris2.1-9 | solaris2.1-9.* | hpux*) + +printf "%s\n" "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h + + esac + fi + +fi + + elif test $gl_pthread_api != yes; then + # Some library is needed. Try libpthread and libc_r. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 +printf %s "checking for pthread_kill in -lpthread... " >&6; } +if test ${ac_cv_lib_pthread_pthread_kill+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char pthread_kill (); +int +main (void) +{ +return pthread_kill (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_pthread_pthread_kill=yes +else $as_nop + ac_cv_lib_pthread_pthread_kill=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 +printf "%s\n" "$ac_cv_lib_pthread_pthread_kill" >&6; } +if test "x$ac_cv_lib_pthread_pthread_kill" = xyes +then : + gl_pthread_api=yes + LIBPTHREAD=-lpthread + LIBPMULTITHREAD=-lpthread +fi + + if test $gl_pthread_api != yes; then + # For FreeBSD 4. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lc_r" >&5 +printf %s "checking for pthread_kill in -lc_r... " >&6; } +if test ${ac_cv_lib_c_r_pthread_kill+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lc_r $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char pthread_kill (); +int +main (void) +{ +return pthread_kill (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_c_r_pthread_kill=yes +else $as_nop + ac_cv_lib_c_r_pthread_kill=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5 +printf "%s\n" "$ac_cv_lib_c_r_pthread_kill" >&6; } +if test "x$ac_cv_lib_c_r_pthread_kill" = xyes +then : + gl_pthread_api=yes + LIBPTHREAD=-lc_r + LIBPMULTITHREAD=-lc_r +fi + + fi + fi + echo "$as_me:29728: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5 + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5 +printf %s "checking whether POSIX threads API is available... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_pthread_api" >&5 +printf "%s\n" "$gl_pthread_api" >&6; } + + + if test $gl_pthread_api = yes; then + +printf "%s\n" "#define HAVE_PTHREAD_API 1" >>confdefs.h + + fi + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +sched_yield (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + LIB_SCHED_YIELD= + +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5 +printf %s "checking for sched_yield in -lrt... " >&6; } +if test ${ac_cv_lib_rt_sched_yield+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char sched_yield (); +int +main (void) +{ +return sched_yield (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_rt_sched_yield=yes +else $as_nop + ac_cv_lib_rt_sched_yield=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5 +printf "%s\n" "$ac_cv_lib_rt_sched_yield" >&6; } +if test "x$ac_cv_lib_rt_sched_yield" = xyes +then : + LIB_SCHED_YIELD=-lrt +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lposix4" >&5 +printf %s "checking for sched_yield in -lposix4... " >&6; } +if test ${ac_cv_lib_posix4_sched_yield+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lposix4 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char sched_yield (); +int +main (void) +{ +return sched_yield (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_posix4_sched_yield=yes +else $as_nop + ac_cv_lib_posix4_sched_yield=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix4_sched_yield" >&5 +printf "%s\n" "$ac_cv_lib_posix4_sched_yield" >&6; } +if test "x$ac_cv_lib_posix4_sched_yield" = xyes +then : + LIB_SCHED_YIELD=-lposix4 +fi + +fi + + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + + gl_pthreadlib_body_done=done + fi + + LIBTHREAD=$LIBPTHREAD LTLIBTHREAD=$LIBPTHREAD + LIBMULTITHREAD=$LIBPMULTITHREAD LTLIBMULTITHREAD=$LIBPMULTITHREAD + if test $gl_pthread_api = yes; then + if test "$gl_use_threads" = isoc+posix && test "$gl_have_isoc_threads" = yes; then + gl_threads_api='isoc+posix' + +printf "%s\n" "#define USE_ISOC_AND_POSIX_THREADS 1" >>confdefs.h + + LIBTHREAD= LTLIBTHREAD= + else + gl_threads_api=posix + +printf "%s\n" "#define USE_POSIX_THREADS 1" >>confdefs.h + + if test -z "$LIBMULTITHREAD" && test -z "$LTLIBMULTITHREAD"; then + +printf "%s\n" "#define USE_POSIX_THREADS_FROM_LIBC 1" >>confdefs.h + + else + if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then + +printf "%s\n" "#define USE_POSIX_THREADS_WEAK 1" >>confdefs.h + + LIBTHREAD= LTLIBTHREAD= + else + case "$host_os" in + freebsd* | dragonfly* | midnightbsd*) + if test "x$LIBTHREAD" != "x$LIBMULTITHREAD"; then + +printf "%s\n" "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h + + fi + ;; + esac + fi + fi + fi + fi + fi + if test $gl_threads_api = none; then + if test "$gl_use_threads" = isoc && test "$gl_have_isoc_threads" = yes; then + + + + if test -z "$gl_stdthreadlib_body_done"; then + + + case "$host_os" in + mingw*) + LIBSTDTHREAD= + ;; + *) + + + if test -z "$gl_pthreadlib_body_done"; then + gl_pthread_api=no + LIBPTHREAD= + LIBPMULTITHREAD= + # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that + # it groks . It's added above, in gl_ANYTHREADLIB_EARLY. + ac_fn_c_check_header_compile "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" +if test "x$ac_cv_header_pthread_h" = xyes +then : + gl_have_pthread_h=yes +else $as_nop + gl_have_pthread_h=no +fi + + if test "$gl_have_pthread_h" = yes; then + # Other possible tests: + # -lpthreads (FSU threads, PCthreads) + # -lgthreads + # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist + # in libc. IRIX 6.5 has the first one in both libc and libpthread, but + # the second one only in libpthread, and lock.c needs it. + # + # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04 + # needs -pthread for some reason. See: + # https://lists.gnu.org/r/bug-gnulib/2014-09/msg00023.html + save_LIBS=$LIBS + for gl_pthread in '' '-pthread'; do + LIBS="$LIBS $gl_pthread" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + pthread_mutex_t m; + pthread_mutexattr_t ma; + +int +main (void) +{ +pthread_mutex_lock (&m); + pthread_mutexattr_init (&ma); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_pthread_api=yes + LIBPTHREAD=$gl_pthread + LIBPMULTITHREAD=$gl_pthread +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$save_LIBS + test $gl_pthread_api = yes && break + done + echo "$as_me:29956: gl_pthread_api=$gl_pthread_api" >&5 + echo "$as_me:29957: LIBPTHREAD=$LIBPTHREAD" >&5 + + gl_pthread_in_glibc=no + # On Linux with glibc >= 2.34, libc contains the fully functional + # pthread functions. + case "$host_os" in + linux*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #ifdef __GNU_LIBRARY__ + #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 34) || (__GLIBC__ > 2) + Lucky user + #endif + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky user" >/dev/null 2>&1 +then : + gl_pthread_in_glibc=yes +fi +rm -rf conftest* + + ;; + esac + echo "$as_me:29983: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5 + + # Test for libpthread by looking for pthread_kill. (Not pthread_self, + # since it is defined as a macro on OSF/1.) + if test $gl_pthread_api = yes && test -z "$LIBPTHREAD"; then + # The program links fine without libpthread. But it may actually + # need to link with libpthread in order to create multiple threads. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 +printf %s "checking for pthread_kill in -lpthread... " >&6; } +if test ${ac_cv_lib_pthread_pthread_kill+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char pthread_kill (); +int +main (void) +{ +return pthread_kill (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_pthread_pthread_kill=yes +else $as_nop + ac_cv_lib_pthread_pthread_kill=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 +printf "%s\n" "$ac_cv_lib_pthread_pthread_kill" >&6; } +if test "x$ac_cv_lib_pthread_pthread_kill" = xyes +then : + if test $gl_pthread_in_glibc = yes; then + LIBPMULTITHREAD= + else + LIBPMULTITHREAD=-lpthread + # On Solaris and HP-UX, most pthread functions exist also in libc. + # Therefore pthread_in_use() needs to actually try to create a + # thread: pthread_create from libc will fail, whereas + # pthread_create will actually create a thread. + # On Solaris 10 or newer, this test is no longer needed, because + # libc contains the fully functional pthread functions. + case "$host_os" in + solaris | solaris2.1-9 | solaris2.1-9.* | hpux*) + +printf "%s\n" "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h + + esac + fi + +fi + + elif test $gl_pthread_api != yes; then + # Some library is needed. Try libpthread and libc_r. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 +printf %s "checking for pthread_kill in -lpthread... " >&6; } +if test ${ac_cv_lib_pthread_pthread_kill+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char pthread_kill (); +int +main (void) +{ +return pthread_kill (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_pthread_pthread_kill=yes +else $as_nop + ac_cv_lib_pthread_pthread_kill=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 +printf "%s\n" "$ac_cv_lib_pthread_pthread_kill" >&6; } +if test "x$ac_cv_lib_pthread_pthread_kill" = xyes +then : + gl_pthread_api=yes + LIBPTHREAD=-lpthread + LIBPMULTITHREAD=-lpthread +fi + + if test $gl_pthread_api != yes; then + # For FreeBSD 4. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lc_r" >&5 +printf %s "checking for pthread_kill in -lc_r... " >&6; } +if test ${ac_cv_lib_c_r_pthread_kill+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lc_r $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char pthread_kill (); +int +main (void) +{ +return pthread_kill (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_c_r_pthread_kill=yes +else $as_nop + ac_cv_lib_c_r_pthread_kill=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5 +printf "%s\n" "$ac_cv_lib_c_r_pthread_kill" >&6; } +if test "x$ac_cv_lib_c_r_pthread_kill" = xyes +then : + gl_pthread_api=yes + LIBPTHREAD=-lc_r + LIBPMULTITHREAD=-lc_r +fi + + fi + fi + echo "$as_me:30137: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5 + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5 +printf %s "checking whether POSIX threads API is available... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_pthread_api" >&5 +printf "%s\n" "$gl_pthread_api" >&6; } + + + if test $gl_pthread_api = yes; then + +printf "%s\n" "#define HAVE_PTHREAD_API 1" >>confdefs.h + + fi + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +sched_yield (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + LIB_SCHED_YIELD= + +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5 +printf %s "checking for sched_yield in -lrt... " >&6; } +if test ${ac_cv_lib_rt_sched_yield+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char sched_yield (); +int +main (void) +{ +return sched_yield (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_rt_sched_yield=yes +else $as_nop + ac_cv_lib_rt_sched_yield=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5 +printf "%s\n" "$ac_cv_lib_rt_sched_yield" >&6; } +if test "x$ac_cv_lib_rt_sched_yield" = xyes +then : + LIB_SCHED_YIELD=-lrt +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lposix4" >&5 +printf %s "checking for sched_yield in -lposix4... " >&6; } +if test ${ac_cv_lib_posix4_sched_yield+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lposix4 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char sched_yield (); +int +main (void) +{ +return sched_yield (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_posix4_sched_yield=yes +else $as_nop + ac_cv_lib_posix4_sched_yield=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix4_sched_yield" >&5 +printf "%s\n" "$ac_cv_lib_posix4_sched_yield" >&6; } +if test "x$ac_cv_lib_posix4_sched_yield" = xyes +then : + LIB_SCHED_YIELD=-lposix4 +fi + +fi + + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + + gl_pthreadlib_body_done=done + fi + + if test $ac_cv_header_threads_h = yes; then + ac_fn_c_check_func "$LINENO" "thrd_create" "ac_cv_func_thrd_create" +if test "x$ac_cv_func_thrd_create" = xyes +then : + printf "%s\n" "#define HAVE_THRD_CREATE 1" >>confdefs.h + +fi + + if test $ac_cv_func_thrd_create = yes; then + LIBSTDTHREAD= + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for thrd_create in -lstdthreads" >&5 +printf %s "checking for thrd_create in -lstdthreads... " >&6; } +if test ${ac_cv_lib_stdthreads_thrd_create+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lstdthreads $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char thrd_create (); +int +main (void) +{ +return thrd_create (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_stdthreads_thrd_create=yes +else $as_nop + ac_cv_lib_stdthreads_thrd_create=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_stdthreads_thrd_create" >&5 +printf "%s\n" "$ac_cv_lib_stdthreads_thrd_create" >&6; } +if test "x$ac_cv_lib_stdthreads_thrd_create" = xyes +then : + + LIBSTDTHREAD='-lstdthreads -lpthread' + +else $as_nop + + LIBSTDTHREAD="$LIBPMULTITHREAD" + +fi + + fi + else + LIBSTDTHREAD="$LIBPMULTITHREAD $LIB_SCHED_YIELD" + fi + ;; + esac + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ISO C threads API is available" >&5 +printf %s "checking whether ISO C threads API is available... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_threads_h" >&5 +printf "%s\n" "$ac_cv_header_threads_h" >&6; } + gl_stdthreadlib_body_done=done + fi + + LIBTHREAD=$LIBSTDTHREAD LTLIBTHREAD=$LIBSTDTHREAD + LIBMULTITHREAD=$LIBSTDTHREAD LTLIBMULTITHREAD=$LIBSTDTHREAD + gl_threads_api=isoc + +printf "%s\n" "#define USE_ISOC_THREADS 1" >>confdefs.h + + fi + fi + if test $gl_threads_api = none; then + case "$gl_use_threads" in + yes | windows | win32) # The 'win32' is for backward compatibility. + if { case "$host_os" in + mingw*) true;; + *) false;; + esac + }; then + gl_threads_api=windows + +printf "%s\n" "#define USE_WINDOWS_THREADS 1" >>confdefs.h + + fi + ;; + esac + fi + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for multithread API to use" >&5 +printf %s "checking for multithread API to use... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_threads_api" >&5 +printf "%s\n" "$gl_threads_api" >&6; } + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether malloc (0) returns nonnull" >&5 +printf %s "checking whether malloc (0) returns nonnull... " >&6; } +if test ${ac_cv_func_malloc_0_nonnull+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on platforms where we know the result. + *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ + | gnu* | *-musl* | midnightbsd* \ + | hpux* | solaris* | cygwin* | mingw* | msys* ) + ac_cv_func_malloc_0_nonnull="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) ac_cv_func_malloc_0_nonnull="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +void *p = malloc (0); + int result = !p; + free (p); + return result; + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + ac_cv_func_malloc_0_nonnull=yes +else $as_nop + ac_cv_func_malloc_0_nonnull=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 +printf "%s\n" "$ac_cv_func_malloc_0_nonnull" >&6; } + case $ac_cv_func_malloc_0_nonnull in #( + *yes) : + gl_cv_func_malloc_0_nonnull=1 ;; #( + *) : + gl_cv_func_malloc_0_nonnull=0 ;; +esac + + +printf "%s\n" "#define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull" >>confdefs.h + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5 +printf %s "checking for a traditional japanese locale... " >&6; } +if test ${gt_cv_locale_ja+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if HAVE_LANGINFO_CODESET +# include +#endif +#include +#include +struct tm t; +char buf[16]; +int main () +{ + /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl + imitates locale dependent behaviour by looking at the environment + variables, and all locales use the UTF-8 encoding. */ +#if defined __BEOS__ || defined __HAIKU__ + return 1; +#else + /* Check whether the given locale name is recognized by the system. */ +# if defined _WIN32 && !defined __CYGWIN__ + /* On native Windows, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; +# else + if (setlocale (LC_ALL, "") == NULL) return 1; +# endif + /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". + On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) + is empty, and the behaviour of Tcl 8.4 in this locale is not useful. + On OpenBSD 4.0, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "646". In this situation, + some unit tests fail. + On MirBSD 10, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "UTF-8". */ +# if HAVE_LANGINFO_CODESET + { + const char *cs = nl_langinfo (CODESET); + if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 + || strcmp (cs, "UTF-8") == 0) + return 1; + } +# endif +# ifdef __CYGWIN__ + /* On Cygwin, avoid locale names without encoding suffix, because the + locale_charset() function relies on the encoding suffix. Note that + LC_ALL is set on the command line. */ + if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; +# endif + /* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales + on Cygwin 1.5.x. */ + if (MB_CUR_MAX == 1) + return 1; + /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. + This excludes the UTF-8 encoding (except on MirBSD). */ + { + const char *p; + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; + for (p = buf; *p != '\0'; p++) + if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) + return 1; + } + return 0; +#endif +} + +_ACEOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + case "$host_os" in + # Handle native Windows specially, because there setlocale() interprets + # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", + # "fr" or "fra" as "French" or "French_France.1252", + # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", + # "ja" as "Japanese" or "Japanese_Japan.932", + # and similar. + mingw*) + # Note that on native Windows, the Japanese locale is + # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we + # cannot use it here. + gt_cv_locale_ja=none + ;; + *) + # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because + # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the + # configure script would override the LC_ALL setting. Likewise for + # LC_CTYPE, which is also set at the beginning of the configure script. + # Test for the AIX locale name. + if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_ja=ja_JP + else + # Test for the locale name with explicit encoding suffix. + if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_ja=ja_JP.EUC-JP + else + # Test for the HP-UX, OSF/1, NetBSD locale name. + if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_ja=ja_JP.eucJP + else + # Test for the IRIX, FreeBSD locale name. + if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_ja=ja_JP.EUC + else + # Test for the Solaris 7 locale name. + if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_ja=ja + else + # Special test for NetBSD 1.6. + if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then + gt_cv_locale_ja=ja_JP.eucJP + else + # None found. + gt_cv_locale_ja=none + fi + fi + fi + fi + fi + fi + ;; + esac + fi + rm -fr conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5 +printf "%s\n" "$gt_cv_locale_ja" >&6; } + LOCALE_JA=$gt_cv_locale_ja + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5 +printf %s "checking for a french Unicode locale... " >&6; } +if test ${gt_cv_locale_fr_utf8+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if HAVE_LANGINFO_CODESET +# include +#endif +#include +#include +struct tm t; +char buf[16]; +int main () { + /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl + imitates locale dependent behaviour by looking at the environment + variables, and all locales use the UTF-8 encoding. */ +#if !(defined __BEOS__ || defined __HAIKU__) + /* Check whether the given locale name is recognized by the system. */ +# if defined _WIN32 && !defined __CYGWIN__ + /* On native Windows, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; +# else + if (setlocale (LC_ALL, "") == NULL) return 1; +# endif + /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". + On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) + is empty, and the behaviour of Tcl 8.4 in this locale is not useful. + On OpenBSD 4.0, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "646". In this situation, + some unit tests fail. */ +# if HAVE_LANGINFO_CODESET + { + const char *cs = nl_langinfo (CODESET); + if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) + return 1; + } +# endif +# ifdef __CYGWIN__ + /* On Cygwin, avoid locale names without encoding suffix, because the + locale_charset() function relies on the encoding suffix. Note that + LC_ALL is set on the command line. */ + if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; +# endif + /* Check whether in the abbreviation of the second month, the second + character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is + two bytes long, with UTF-8 encoding. */ + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%b", &t) < 4 + || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v') + return 1; +#endif +#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ + /* Check whether the decimal separator is a comma. + On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point + are nl_langinfo(RADIXCHAR) are both ".". */ + if (localeconv () ->decimal_point[0] != ',') return 1; +#endif + return 0; +} + +_ACEOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + case "$host_os" in + # Handle native Windows specially, because there setlocale() interprets + # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", + # "fr" or "fra" as "French" or "French_France.1252", + # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", + # "ja" as "Japanese" or "Japanese_Japan.932", + # and similar. + mingw*) + # Test for the hypothetical native Windows locale name. + if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr_utf8=French_France.65001 + else + # None found. + gt_cv_locale_fr_utf8=none + fi + ;; + *) + # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because + # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the + # configure script would override the LC_ALL setting. Likewise for + # LC_CTYPE, which is also set at the beginning of the configure script. + # Test for the usual locale name. + if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr_utf8=fr_FR + else + # Test for the locale name with explicit encoding suffix. + if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr_utf8=fr_FR.UTF-8 + else + # Test for the Solaris 7 locale name. + if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr_utf8=fr.UTF-8 + else + # None found. + gt_cv_locale_fr_utf8=none + fi + fi + fi + ;; + esac + fi + rm -fr conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5 +printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; } + LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5 +printf %s "checking for a transitional chinese locale... " >&6; } +if test ${gt_cv_locale_zh_CN+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#if HAVE_LANGINFO_CODESET +# include +#endif +#include +#include +struct tm t; +char buf[16]; +int main () +{ + /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl + imitates locale dependent behaviour by looking at the environment + variables, and all locales use the UTF-8 encoding. */ +#if defined __BEOS__ || defined __HAIKU__ + return 1; +#else + /* Check whether the given locale name is recognized by the system. */ +# if defined _WIN32 && !defined __CYGWIN__ + /* On native Windows, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; +# else + if (setlocale (LC_ALL, "") == NULL) return 1; +# endif + /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". + On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) + is empty, and the behaviour of Tcl 8.4 in this locale is not useful. + On OpenBSD 4.0, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "646". In this situation, + some unit tests fail. + On MirBSD 10, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "UTF-8". */ +# if HAVE_LANGINFO_CODESET + { + const char *cs = nl_langinfo (CODESET); + if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 + || strcmp (cs, "UTF-8") == 0) + return 1; + } +# endif +# ifdef __CYGWIN__ + /* On Cygwin, avoid locale names without encoding suffix, because the + locale_charset() function relies on the encoding suffix. Note that + LC_ALL is set on the command line. */ + if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; +# endif + /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. + This excludes the UTF-8 encoding (except on MirBSD). */ + { + const char *p; + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; + for (p = buf; *p != '\0'; p++) + if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) + return 1; + } + /* Check whether a typical GB18030 multibyte sequence is recognized as a + single wide character. This excludes the GB2312 and GBK encodings. */ + if (mblen ("\203\062\332\066", 5) != 4) + return 1; + return 0; +#endif +} + +_ACEOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + case "$host_os" in + # Handle native Windows specially, because there setlocale() interprets + # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", + # "fr" or "fra" as "French" or "French_France.1252", + # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", + # "ja" as "Japanese" or "Japanese_Japan.932", + # and similar. + mingw*) + # Test for the hypothetical native Windows locale name. + if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_zh_CN=Chinese_China.54936 + else + # None found. + gt_cv_locale_zh_CN=none + fi + ;; + solaris2.8) + # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are + # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK. + # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core. + gt_cv_locale_zh_CN=none + ;; + *) + # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because + # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the + # configure script would override the LC_ALL setting. Likewise for + # LC_CTYPE, which is also set at the beginning of the configure script. + # Test for the locale name without encoding suffix. + if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_zh_CN=zh_CN + else + # Test for the locale name with explicit encoding suffix. + if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_zh_CN=zh_CN.GB18030 + else + # None found. + gt_cv_locale_zh_CN=none + fi + fi + ;; + esac + else + # If there was a link error, due to mblen(), the system is so old that + # it certainly doesn't have a chinese locale. + gt_cv_locale_zh_CN=none + fi + rm -fr conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5 +printf "%s\n" "$gt_cv_locale_zh_CN" >&6; } + LOCALE_ZH_CN=$gt_cv_locale_zh_CN + + + + + + # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it + # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is + # irrelevant for anonymous mappings. + ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap" +if test "x$ac_cv_func_mmap" = xyes +then : + gl_have_mmap=yes +else $as_nop + gl_have_mmap=no +fi + + + # Try to allow MAP_ANONYMOUS. + gl_have_mmap_anonymous=no + if test $gl_have_mmap = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5 +printf %s "checking for MAP_ANONYMOUS... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef MAP_ANONYMOUS + I cannot identify this map +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "I cannot identify this map" >/dev/null 2>&1 +then : + gl_have_mmap_anonymous=yes +fi +rm -rf conftest* + + if test $gl_have_mmap_anonymous != yes; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef MAP_ANON + I cannot identify this map +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "I cannot identify this map" >/dev/null 2>&1 +then : + +printf "%s\n" "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h + + gl_have_mmap_anonymous=yes +fi +rm -rf conftest* + + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5 +printf "%s\n" "$gl_have_mmap_anonymous" >&6; } + if test $gl_have_mmap_anonymous = yes; then + +printf "%s\n" "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h + + fi + fi + + + + + HAVE_MBSLEN=0; + HAVE_EXPLICIT_BZERO=1; + HAVE_FFSL=1; + HAVE_FFSLL=1; + HAVE_DECL_MEMMEM=1; + HAVE_MEMPCPY=1; + HAVE_DECL_MEMRCHR=1; + HAVE_RAWMEMCHR=1; + HAVE_STPCPY=1; + HAVE_STPNCPY=1; + HAVE_STRCHRNUL=1; + HAVE_DECL_STRDUP=1; + HAVE_DECL_STRNDUP=1; + HAVE_DECL_STRNLEN=1; + HAVE_STRPBRK=1; + HAVE_STRSEP=1; + HAVE_STRCASESTR=1; + HAVE_DECL_STRTOK_R=1; + HAVE_DECL_STRERROR_R=1; + HAVE_STRERRORNAME_NP=1; + HAVE_SIGABBREV_NP=1; + HAVE_SIGDESCR_NP=1; + HAVE_DECL_STRSIGNAL=1; + HAVE_STRVERSCMP=1; + REPLACE_FFSLL=0; + REPLACE_MEMCHR=0; + REPLACE_MEMMEM=0; + REPLACE_STPNCPY=0; + REPLACE_STRCHRNUL=0; + REPLACE_STRDUP=0; + REPLACE_STRNCAT=0; + REPLACE_STRNDUP=0; + REPLACE_STRNLEN=0; + REPLACE_STRSTR=0; + REPLACE_STRCASESTR=0; + REPLACE_STRTOK_R=0; + REPLACE_STRERROR=0; + REPLACE_STRERROR_R=0; + REPLACE_STRERRORNAME_NP=0; + REPLACE_STRSIGNAL=0; + UNDEFINE_STRTOK_R=0; + + + + + + + + + # Detect platform-specific bugs in some versions of glibc: + # memchr should not dereference anything with length 0 + # https://bugzilla.redhat.com/show_bug.cgi?id=499689 + # memchr should not dereference overestimated length after a match + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 + # https://sourceware.org/bugzilla/show_bug.cgi?id=10162 + # memchr should cast the second argument to 'unsigned char'. + # This bug exists in Android 4.3. + # Assume that memchr works on platforms that lack mprotect. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5 +printf %s "checking whether memchr works... " >&6; } +if test ${gl_cv_func_memchr_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess no on Android. + linux*-android*) gl_cv_func_memchr_works="guessing no" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_memchr_works="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_memchr_works="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#if HAVE_SYS_MMAN_H +# include +# include +# include +# include +# ifndef MAP_FILE +# define MAP_FILE 0 +# endif +#endif + +int +main (void) +{ + + int result = 0; + char *fence = NULL; +#if HAVE_SYS_MMAN_H && HAVE_MPROTECT +# if HAVE_MAP_ANONYMOUS + const int flags = MAP_ANONYMOUS | MAP_PRIVATE; + const int fd = -1; +# else /* !HAVE_MAP_ANONYMOUS */ + const int flags = MAP_FILE | MAP_PRIVATE; + int fd = open ("/dev/zero", O_RDONLY, 0666); + if (fd >= 0) +# endif + { + int pagesize = getpagesize (); + char *two_pages = + (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE, + flags, fd, 0); + if (two_pages != (char *)(-1) + && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0) + fence = two_pages + pagesize; + } +#endif + if (fence) + { + /* Test against bugs on glibc systems. */ + if (memchr (fence, 0, 0)) + result |= 1; + strcpy (fence - 9, "12345678"); + if (memchr (fence - 9, 0, 79) != fence - 1) + result |= 2; + if (memchr (fence - 1, 0, 3) != fence - 1) + result |= 4; + /* Test against bug on AIX 7.2. */ + if (memchr (fence - 4, '6', 16) != fence - 4) + result |= 8; + } + /* Test against bug on Android 4.3. */ + { + char input[3]; + input[0] = 'a'; + input[1] = 'b'; + input[2] = 'c'; + if (memchr (input, 0x789abc00 | 'b', 3) != input + 1) + result |= 16; + } + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_memchr_works=yes +else $as_nop + gl_cv_func_memchr_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memchr_works" >&5 +printf "%s\n" "$gl_cv_func_memchr_works" >&6; } + case "$gl_cv_func_memchr_works" in + *yes) ;; + *) REPLACE_MEMCHR=1 ;; + esac + + + + GL_GNULIB_EXPLICIT_BZERO=0 + + + + GL_GNULIB_FFSL=0 + + + + GL_GNULIB_FFSLL=0 + + + + GL_GNULIB_MEMCHR=0 + + + + GL_GNULIB_MEMMEM=0 + + + + GL_GNULIB_MEMPCPY=0 + + + + GL_GNULIB_MEMRCHR=0 + + + + GL_GNULIB_RAWMEMCHR=0 + + + + GL_GNULIB_STPCPY=0 + + + + GL_GNULIB_STPNCPY=0 + + + + GL_GNULIB_STRCHRNUL=0 + + + + GL_GNULIB_STRDUP=0 + + + + GL_GNULIB_STRNCAT=0 + + + + GL_GNULIB_STRNDUP=0 + + + + GL_GNULIB_STRNLEN=0 + + + + GL_GNULIB_STRPBRK=0 + + + + GL_GNULIB_STRSEP=0 + + + + GL_GNULIB_STRSTR=0 + + + + GL_GNULIB_STRCASESTR=0 + + + + GL_GNULIB_STRTOK_R=0 + + + + GL_GNULIB_MBSLEN=0 + + + + GL_GNULIB_MBSNLEN=0 + + + + GL_GNULIB_MBSCHR=0 + + + + GL_GNULIB_MBSRCHR=0 + + + + GL_GNULIB_MBSSTR=0 + + + + GL_GNULIB_MBSCASECMP=0 + + + + GL_GNULIB_MBSNCASECMP=0 + + + + GL_GNULIB_MBSPCASECMP=0 + + + + GL_GNULIB_MBSCASESTR=0 + + + + GL_GNULIB_MBSCSPN=0 + + + + GL_GNULIB_MBSPBRK=0 + + + + GL_GNULIB_MBSSPN=0 + + + + GL_GNULIB_MBSSEP=0 + + + + GL_GNULIB_MBSTOK_R=0 + + + + GL_GNULIB_STRERROR=0 + + + + GL_GNULIB_STRERROR_R=0 + + + + GL_GNULIB_STRERRORNAME_NP=0 + + + + GL_GNULIB_SIGABBREV_NP=0 + + + + GL_GNULIB_SIGDESCR_NP=0 + + + + GL_GNULIB_STRSIGNAL=0 + + + + GL_GNULIB_STRVERSCMP=0 + + + + GL_GNULIB_MDA_MEMCCPY=1 + + + + GL_GNULIB_MDA_STRDUP=1 + + + +ac_fn_check_decl "$LINENO" "memmem" "ac_cv_have_decl_memmem" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_memmem" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_MEMMEM $ac_have_decl" >>confdefs.h + + + + + + ac_fn_c_check_func "$LINENO" "memmem" "ac_cv_func_memmem" +if test "x$ac_cv_func_memmem" = xyes +then : + printf "%s\n" "#define HAVE_MEMMEM 1" >>confdefs.h + +fi + + if test $ac_cv_func_memmem = yes; then + HAVE_MEMMEM=1 + else + HAVE_MEMMEM=0 + fi + + if test $ac_cv_have_decl_memmem = no; then + HAVE_DECL_MEMMEM=0 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether memmem works" >&5 +printf %s "checking whether memmem works... " >&6; } +if test ${gl_cv_func_memmem_works_always+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include /* for __GNU_LIBRARY__ */ +#ifdef __GNU_LIBRARY__ + #include + #if ((__GLIBC__ == 2 && ((__GLIBC_MINOR > 0 && __GLIBC_MINOR__ < 9) \ + || __GLIBC_MINOR__ > 12)) \ + || (__GLIBC__ > 2)) \ + || defined __UCLIBC__ + Lucky user + #endif +#elif defined __CYGWIN__ + #include + #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) + Lucky user + #endif +#else + Lucky user +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky user" >/dev/null 2>&1 +then : + gl_cv_func_memmem_works_always="guessing yes" +else $as_nop + gl_cv_func_memmem_works_always="$gl_cross_guess_normal" +fi +rm -rf conftest* + + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include /* for memmem */ +#define P "_EF_BF_BD" +#define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P +#define NEEDLE P P P P P + +int +main (void) +{ + + int result = 0; + if (memmem (HAYSTACK, strlen (HAYSTACK), NEEDLE, strlen (NEEDLE))) + result |= 1; + /* Check for empty needle behavior. */ + { + const char *haystack = "AAA"; + if (memmem (haystack, 3, (const char *) 1, 0) != haystack) + result |= 2; + } + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_memmem_works_always=yes +else $as_nop + gl_cv_func_memmem_works_always=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memmem_works_always" >&5 +printf "%s\n" "$gl_cv_func_memmem_works_always" >&6; } + case "$gl_cv_func_memmem_works_always" in + *yes) ;; + *) + REPLACE_MEMMEM=1 + ;; + esac + fi + : + +ac_fn_check_decl "$LINENO" "memrchr" "ac_cv_have_decl_memrchr" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_memrchr" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_MEMRCHR $ac_have_decl" >>confdefs.h + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether defines MIN and MAX" >&5 +printf %s "checking whether defines MIN and MAX... " >&6; } +if test ${gl_cv_minmax_in_limits_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + int x = MIN (42, 17); +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_minmax_in_limits_h=yes +else $as_nop + gl_cv_minmax_in_limits_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_minmax_in_limits_h" >&5 +printf "%s\n" "$gl_cv_minmax_in_limits_h" >&6; } + if test $gl_cv_minmax_in_limits_h = yes; then + +printf "%s\n" "#define HAVE_MINMAX_IN_LIMITS_H 1" >>confdefs.h + + fi + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether defines MIN and MAX" >&5 +printf %s "checking whether defines MIN and MAX... " >&6; } +if test ${gl_cv_minmax_in_sys_param_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + int x = MIN (42, 17); +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_minmax_in_sys_param_h=yes +else $as_nop + gl_cv_minmax_in_sys_param_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_minmax_in_sys_param_h" >&5 +printf "%s\n" "$gl_cv_minmax_in_sys_param_h" >&6; } + if test $gl_cv_minmax_in_sys_param_h = yes; then + +printf "%s\n" "#define HAVE_MINMAX_IN_SYS_PARAM_H 1" >>confdefs.h + + fi + + + + + + + + + + HAVE_DECL_LOCALTIME_R=1; + HAVE_NANOSLEEP=1; + HAVE_STRPTIME=1; + HAVE_TIMEGM=1; + HAVE_TIMESPEC_GET=1; + HAVE_TIMESPEC_GETRES=1; + HAVE_TIMEZONE_T=0; + REPLACE_CTIME=GNULIB_PORTCHECK; + REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; + REPLACE_MKTIME=GNULIB_PORTCHECK; + REPLACE_NANOSLEEP=GNULIB_PORTCHECK; + REPLACE_STRFTIME=GNULIB_PORTCHECK; + REPLACE_TIMEGM=GNULIB_PORTCHECK; + REPLACE_TZSET=GNULIB_PORTCHECK; + + : ${GNULIB_GETTIMEOFDAY=0}; + REPLACE_GMTIME=0; + REPLACE_LOCALTIME=0; + +ac_fn_check_decl "$LINENO" "alarm" "ac_cv_have_decl_alarm" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_alarm" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_ALARM $ac_have_decl" >>confdefs.h + + + + GL_GNULIB_CTIME=0 + + + + GL_GNULIB_MKTIME=0 + + + + GL_GNULIB_LOCALTIME=0 + + + + GL_GNULIB_NANOSLEEP=0 + + + + GL_GNULIB_STRFTIME=0 + + + + GL_GNULIB_STRPTIME=0 + + + + GL_GNULIB_TIMEGM=0 + + + + GL_GNULIB_TIMESPEC_GET=0 + + + + GL_GNULIB_TIMESPEC_GETRES=0 + + + + GL_GNULIB_TIME_R=0 + + + + GL_GNULIB_TIME_RZ=0 + + + + GL_GNULIB_TZSET=0 + + + + GL_GNULIB_MDA_TZSET=1 + + + + + + + case "$host_os" in + mingw*) gl_cv_have_nonblocking=no ;; + *) gl_cv_have_nonblocking=yes ;; + esac + case "$host_os" in + mingw*) gl_cv_have_open_O_NONBLOCK=no ;; + *) gl_cv_have_open_O_NONBLOCK=yes ;; + esac + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _MSC_VER +MicrosoftCompiler +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "MicrosoftCompiler" >/dev/null 2>&1 +then : + rm -f conftest* + echo 'int dummy;' > conftest.c + { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null 2>&1 + if test -f conftest.o; then + gl_asmext='s' + gl_c_asm_opt='-S' + else + gl_asmext='asm' + gl_c_asm_opt='-c -Fa' + fi + rm -f conftest* + +else $as_nop + gl_asmext='s' + gl_c_asm_opt='-S' + +fi +rm -rf conftest* + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C symbols are prefixed with underscore at the linker level" >&5 +printf %s "checking whether C symbols are prefixed with underscore at the linker level... " >&6; } +if test ${gl_cv_prog_as_underscore+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat > conftest.c <&5 + (eval $ac_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null 2>&1 + if LC_ALL=C $EGREP '(^|[^a-zA-Z0-9_])_foo([^a-zA-Z0-9_]|$)' conftest.$gl_asmext >/dev/null; then + gl_cv_prog_as_underscore=yes + else + gl_cv_prog_as_underscore=no + fi + rm -f conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_prog_as_underscore" >&5 +printf "%s\n" "$gl_cv_prog_as_underscore" >&6; } + if test $gl_cv_prog_as_underscore = yes; then + USER_LABEL_PREFIX=_ + else + USER_LABEL_PREFIX= + fi + +printf "%s\n" "#define USER_LABEL_PREFIX $USER_LABEL_PREFIX" >>confdefs.h + + ASM_SYMBOL_PREFIX='"'${USER_LABEL_PREFIX}'"' + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for O_CLOEXEC" >&5 +printf %s "checking for O_CLOEXEC... " >&6; } +if test ${gl_cv_macro_O_CLOEXEC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #ifndef O_CLOEXEC + choke me; + #endif + +int +main (void) +{ +return O_CLOEXEC; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_macro_O_CLOEXEC=yes +else $as_nop + gl_cv_macro_O_CLOEXEC=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_macro_O_CLOEXEC" >&5 +printf "%s\n" "$gl_cv_macro_O_CLOEXEC" >&6; } + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for promoted mode_t type" >&5 +printf %s "checking for promoted mode_t type... " >&6; } +if test ${gl_cv_promoted_mode_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1]; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_promoted_mode_t='int' +else $as_nop + gl_cv_promoted_mode_t='mode_t' +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_promoted_mode_t" >&5 +printf "%s\n" "$gl_cv_promoted_mode_t" >&6; } + +printf "%s\n" "#define PROMOTED_MODE_T $gl_cv_promoted_mode_t" >>confdefs.h + + + + + + HAVE_PSELECT=1; + REPLACE_PSELECT=0; + REPLACE_SELECT=0; + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether is self-contained" >&5 +printf %s "checking whether is self-contained... " >&6; } +if test ${gl_cv_header_sys_select_h_selfcontained+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +struct timeval b; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_sys_select_h_selfcontained=yes +else $as_nop + gl_cv_header_sys_select_h_selfcontained=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if test $gl_cv_header_sys_select_h_selfcontained = yes; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +int memset; int bzero; + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ + + #undef memset + #define memset nonexistent_memset + extern + #ifdef __cplusplus + "C" + #endif + void *memset (void *, int, unsigned long); + #undef bzero + #define bzero nonexistent_bzero + extern + #ifdef __cplusplus + "C" + #endif + void bzero (void *, unsigned long); + fd_set fds; + FD_ZERO (&fds); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + +else $as_nop + gl_cv_header_sys_select_h_selfcontained=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_select_h_selfcontained" >&5 +printf "%s\n" "$gl_cv_header_sys_select_h_selfcontained" >&6; } + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_sys_select_h='<'sys/select.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_sys_select_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_sys_select_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'sys/select.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_sys_select_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_sys_select_h + gl_cv_next_sys_select_h='"'$gl_header'"' + else + gl_cv_next_sys_select_h='<'sys/select.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_select_h" >&5 +printf "%s\n" "$gl_cv_next_sys_select_h" >&6; } + fi + NEXT_SYS_SELECT_H=$gl_cv_next_sys_select_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sys/select.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sys_select_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_sys_select_h = yes; then + HAVE_SYS_SELECT_H=1 + else + HAVE_SYS_SELECT_H=0 + fi + + + + + + if test $ac_cv_header_sys_socket_h != yes; then + ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" +if test "x$ac_cv_header_winsock2_h" = xyes +then : + printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h + +fi + + fi + if test "$ac_cv_header_winsock2_h" = yes; then + HAVE_WINSOCK2_H=1 + UNISTD_H_HAVE_WINSOCK2_H=1 + SYS_IOCTL_H_HAVE_WINSOCK2_H=1 + else + HAVE_WINSOCK2_H=0 + fi + + + + + + + + + + + GL_GNULIB_PSELECT=0 + + + + GL_GNULIB_SELECT=0 + + + + + HAVE_POSIX_SIGNALBLOCKING=1; + HAVE_PTHREAD_SIGMASK=1; + HAVE_RAISE=1; + HAVE_SIGSET_T=1; + HAVE_SIGINFO_T=1; + HAVE_SIGACTION=1; + HAVE_STRUCT_SIGACTION_SA_SIGACTION=1; + + HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=1; + + HAVE_SIGHANDLER_T=1; + REPLACE_PTHREAD_SIGMASK=0; + REPLACE_RAISE=0; + + + + + GL_GNULIB_PTHREAD_SIGMASK=0 + + + + GL_GNULIB_RAISE=0 + + + + GL_GNULIB_SIGNAL_H_SIGPIPE=0 + + + + GL_GNULIB_SIGPROCMASK=0 + + + + GL_GNULIB_SIGACTION=0 + + + + + ac_fn_c_check_type "$LINENO" "sigset_t" "ac_cv_type_sigset_t" " + #include + /* Mingw defines sigset_t not in , but in . */ + #include + +" +if test "x$ac_cv_type_sigset_t" = xyes +then : + +printf "%s\n" "#define HAVE_SIGSET_T 1" >>confdefs.h + +gl_cv_type_sigset_t=yes +else $as_nop + gl_cv_type_sigset_t=no +fi + + if test $gl_cv_type_sigset_t != yes; then + HAVE_SIGSET_T=0 + fi + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SIGPIPE" >&5 +printf %s "checking for SIGPIPE... " >&6; } +if test ${gl_cv_header_signal_h_SIGPIPE+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#if !defined SIGPIPE +booboo +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "booboo" >/dev/null 2>&1 +then : + gl_cv_header_signal_h_SIGPIPE=no +else $as_nop + gl_cv_header_signal_h_SIGPIPE=yes +fi +rm -rf conftest* + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_signal_h_SIGPIPE" >&5 +printf "%s\n" "$gl_cv_header_signal_h_SIGPIPE" >&6; } + + + + + + + if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then + REPLACE_REALLOC_FOR_REALLOC_POSIX=1 + fi + + + + + + + + + + + + if test $ac_cv_header_sys_socket_h != yes; then + ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" +if test "x$ac_cv_header_winsock2_h" = xyes +then : + printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h + +fi + + fi + if test "$ac_cv_header_winsock2_h" = yes; then + HAVE_WINSOCK2_H=1 + UNISTD_H_HAVE_WINSOCK2_H=1 + SYS_IOCTL_H_HAVE_WINSOCK2_H=1 + else + HAVE_WINSOCK2_H=0 + fi + + LIBSOCKET= + if test $HAVE_WINSOCK2_H = 1; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for WSAStartup" >&5 +printf %s "checking for WSAStartup... " >&6; } +if test ${gl_cv_func_wsastartup+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + gl_save_LIBS="$LIBS" + LIBS="$LIBS -lws2_32" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef HAVE_WINSOCK2_H +# include +#endif +int +main (void) +{ + + WORD wVersionRequested = MAKEWORD(1, 1); + WSADATA wsaData; + int err = WSAStartup(wVersionRequested, &wsaData); + WSACleanup (); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_func_wsastartup=yes +else $as_nop + gl_cv_func_wsastartup=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gl_save_LIBS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wsastartup" >&5 +printf "%s\n" "$gl_cv_func_wsastartup" >&6; } + if test "$gl_cv_func_wsastartup" = "yes"; then + +printf "%s\n" "#define WINDOWS_SOCKETS 1" >>confdefs.h + + LIBSOCKET='-lws2_32' + fi + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5 +printf %s "checking for library containing setsockopt... " >&6; } +if test ${gl_cv_lib_socket+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + gl_cv_lib_socket= + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern +#ifdef __cplusplus +"C" +#endif +char setsockopt(); +int +main (void) +{ +setsockopt(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + +else $as_nop + gl_save_LIBS="$LIBS" + LIBS="$gl_save_LIBS -lsocket" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern +#ifdef __cplusplus +"C" +#endif +char setsockopt(); +int +main (void) +{ +setsockopt(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_lib_socket="-lsocket" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$gl_cv_lib_socket"; then + LIBS="$gl_save_LIBS -lnetwork" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern +#ifdef __cplusplus +"C" +#endif +char setsockopt(); +int +main (void) +{ +setsockopt(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_lib_socket="-lnetwork" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$gl_cv_lib_socket"; then + LIBS="$gl_save_LIBS -lnet" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern +#ifdef __cplusplus +"C" +#endif +char setsockopt(); +int +main (void) +{ +setsockopt(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_lib_socket="-lnet" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + fi + fi + LIBS="$gl_save_LIBS" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$gl_cv_lib_socket"; then + gl_cv_lib_socket="none needed" + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_lib_socket" >&5 +printf "%s\n" "$gl_cv_lib_socket" >&6; } + if test "$gl_cv_lib_socket" != "none needed"; then + LIBSOCKET="$gl_cv_lib_socket" + fi + fi + + + + + + + : + + +ac_fn_check_decl "$LINENO" "setenv" "ac_cv_have_decl_setenv" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_setenv" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_SETENV $ac_have_decl" >>confdefs.h + + + + + + if test $ac_cv_have_decl_setenv = no; then + HAVE_DECL_SETENV=0 + fi + + + + + + ac_fn_c_check_header_compile "$LINENO" "search.h" "ac_cv_header_search_h" "$ac_includes_default" +if test "x$ac_cv_header_search_h" = xyes +then : + printf "%s\n" "#define HAVE_SEARCH_H 1" >>confdefs.h + +fi + + ac_fn_c_check_func "$LINENO" "tsearch" "ac_cv_func_tsearch" +if test "x$ac_cv_func_tsearch" = xyes +then : + printf "%s\n" "#define HAVE_TSEARCH 1" >>confdefs.h + +fi + + + + +: + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_signal_h='<'signal.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_signal_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'signal.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_signal_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_signal_h + gl_cv_next_signal_h='"'$gl_header'"' + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_signal_h" >&5 +printf "%s\n" "$gl_cv_next_signal_h" >&6; } + fi + NEXT_SIGNAL_H=$gl_cv_next_signal_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'signal.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_signal_h + fi + NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H=$gl_next_as_first_directive + + + + + +# AIX declares sig_atomic_t to already include volatile, and C89 compilers +# then choke on 'volatile sig_atomic_t'. C99 requires that it compile. + ac_fn_c_check_type "$LINENO" "volatile sig_atomic_t" "ac_cv_type_volatile_sig_atomic_t" " +#include + +" +if test "x$ac_cv_type_volatile_sig_atomic_t" = xyes +then : + +else $as_nop + HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0 +fi + + + + + + + + ac_fn_c_check_type "$LINENO" "sighandler_t" "ac_cv_type_sighandler_t" " +#include + +" +if test "x$ac_cv_type_sighandler_t" = xyes +then : + +else $as_nop + HAVE_SIGHANDLER_T=0 +fi + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 +printf %s "checking for stdbool.h that conforms to C99... " >&6; } +if test ${ac_cv_header_stdbool_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + + #ifdef __cplusplus + typedef bool Bool; + #else + typedef _Bool Bool; + #ifndef bool + "error: bool is not defined" + #endif + #ifndef false + "error: false is not defined" + #endif + #if false + "error: false is not 0" + #endif + #ifndef true + "error: true is not defined" + #endif + #if true != 1 + "error: true is not 1" + #endif + #endif + + #ifndef __bool_true_false_are_defined + "error: __bool_true_false_are_defined is not defined" + #endif + + struct s { Bool s: 1; Bool t; bool u: 1; bool v; } s; + + char a[true == 1 ? 1 : -1]; + char b[false == 0 ? 1 : -1]; + char c[__bool_true_false_are_defined == 1 ? 1 : -1]; + char d[(bool) 0.5 == true ? 1 : -1]; + /* See body of main program for 'e'. */ + char f[(Bool) 0.0 == false ? 1 : -1]; + char g[true]; + char h[sizeof (Bool)]; + char i[sizeof s.t]; + enum { j = false, k = true, l = false * true, m = true * 256 }; + /* The following fails for + HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ + Bool n[m]; + char o[sizeof n == m * sizeof n[0] ? 1 : -1]; + char p[-1 - (Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; + /* Catch a bug in an HP-UX C compiler. See + https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html + https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html + */ + Bool q = true; + Bool *pq = &q; + bool *qq = &q; + +int +main (void) +{ + + bool e = &s; + *pq |= q; *pq |= ! q; + *qq |= q; *qq |= ! q; + /* Refer to every declared value, to avoid compiler optimizations. */ + return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + + !m + !n + !o + !p + !q + !pq + !qq); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_header_stdbool_h=yes +else $as_nop + ac_cv_header_stdbool_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 +printf "%s\n" "$ac_cv_header_stdbool_h" >&6; } + ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" +if test "x$ac_cv_type__Bool" = xyes +then : + +printf "%s\n" "#define HAVE__BOOL 1" >>confdefs.h + + +fi + + + + +ac_fn_check_decl "$LINENO" "fcloseall" "ac_cv_have_decl_fcloseall" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_fcloseall" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_FCLOSEALL $ac_have_decl" >>confdefs.h + + + + + printf "%s\n" "#define __USE_MINGW_ANSI_STDIO 1" >>confdefs.h + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_stdio_h='<'stdio.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_stdio_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'stdio.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_stdio_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_stdio_h + gl_cv_next_stdio_h='"'$gl_header'"' + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdio_h" >&5 +printf "%s\n" "$gl_cv_next_stdio_h" >&6; } + fi + NEXT_STDIO_H=$gl_cv_next_stdio_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'stdio.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_stdio_h + fi + NEXT_AS_FIRST_DIRECTIVE_STDIO_H=$gl_next_as_first_directive + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which flavor of printf attribute matches inttypes macros" >&5 +printf %s "checking which flavor of printf attribute matches inttypes macros... " >&6; } +if test ${gl_cv_func_printf_attribute_flavor+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #define __STDC_FORMAT_MACROS 1 + #include + #include + /* For non-mingw systems, compilation will trivially succeed. + For mingw, compilation will succeed for older mingw (system + printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */ + #if (defined _WIN32 && ! defined __CYGWIN__) && \ + (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) + extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1]; + #endif + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_func_printf_attribute_flavor=system +else $as_nop + gl_cv_func_printf_attribute_flavor=gnu +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_attribute_flavor" >&5 +printf "%s\n" "$gl_cv_func_printf_attribute_flavor" >&6; } + if test "$gl_cv_func_printf_attribute_flavor" = gnu; then + +printf "%s\n" "#define GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU 1" >>confdefs.h + + fi + + + + + + if test $gl_cv_have_nonblocking != yes; then + REPLACE_STDIO_READ_FUNCS=1 + fi + + + + + + + if test $gl_cv_header_signal_h_SIGPIPE != yes; then + REPLACE_STDIO_WRITE_FUNCS=1 + fi + + + + + + if test $gl_cv_have_nonblocking != yes; then + REPLACE_STDIO_WRITE_FUNCS=1 + fi + + + + + + + + + + if test $ac_cv_have_decl_fcloseall = no; then + HAVE_DECL_FCLOSEALL=0 + fi + +ac_fn_check_decl "$LINENO" "ecvt" "ac_cv_have_decl_ecvt" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_ecvt" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_ECVT $ac_have_decl" >>confdefs.h + +ac_fn_check_decl "$LINENO" "fcvt" "ac_cv_have_decl_fcvt" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_fcvt" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_FCVT $ac_have_decl" >>confdefs.h + +ac_fn_check_decl "$LINENO" "gcvt" "ac_cv_have_decl_gcvt" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_gcvt" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_GCVT $ac_have_decl" >>confdefs.h + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_stdlib_h='<'stdlib.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_stdlib_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'stdlib.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_stdlib_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_stdlib_h + gl_cv_next_stdlib_h='"'$gl_header'"' + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdlib_h" >&5 +printf "%s\n" "$gl_cv_next_stdlib_h" >&6; } + fi + NEXT_STDLIB_H=$gl_cv_next_stdlib_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'stdlib.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_stdlib_h + fi + NEXT_AS_FIRST_DIRECTIVE_STDLIB_H=$gl_next_as_first_directive + + + + + + + + + + + + + if test $ac_cv_have_decl_ecvt = no; then + HAVE_DECL_ECVT=0 + fi + + if test $ac_cv_have_decl_fcvt = no; then + HAVE_DECL_FCVT=0 + fi + + if test $ac_cv_have_decl_gcvt = no; then + HAVE_DECL_GCVT=0 + fi + + + HAVE_FFS=1; + HAVE_STRCASECMP=1; + HAVE_DECL_STRNCASECMP=1; + + + + + + + + ac_fn_c_check_func "$LINENO" "strcasestr" "ac_cv_func_strcasestr" +if test "x$ac_cv_func_strcasestr" = xyes +then : + printf "%s\n" "#define HAVE_STRCASESTR 1" >>confdefs.h + +fi + + if test $ac_cv_func_strcasestr = no; then + HAVE_STRCASESTR=0 + else + if test $REPLACE_MEMCHR = 1; then + REPLACE_STRCASESTR=1 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strcasestr works" >&5 +printf %s "checking whether strcasestr works... " >&6; } +if test ${gl_cv_func_strcasestr_works_always+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include /* for __GNU_LIBRARY__ */ +#ifdef __GNU_LIBRARY__ + #include + #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ + || defined __UCLIBC__ + Lucky user + #endif +#elif defined __CYGWIN__ + #include + #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) + Lucky user + #endif +#else + Lucky user +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky user" >/dev/null 2>&1 +then : + gl_cv_func_strcasestr_works_always="guessing yes" +else $as_nop + gl_cv_func_strcasestr_works_always="$gl_cross_guess_normal" +fi +rm -rf conftest* + + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include /* for __GNU_LIBRARY__, strcasestr */ +#ifdef __GNU_LIBRARY__ + #include + #if __GLIBC__ == 2 && __GLIBC_MINOR__ == 28 + Unlucky user + #endif +#endif +#define P "_EF_BF_BD" +#define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P +#define NEEDLE P P P P P + +int +main (void) +{ +return !!strcasestr (HAYSTACK, NEEDLE); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_strcasestr_works_always=yes +else $as_nop + gl_cv_func_strcasestr_works_always=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strcasestr_works_always" >&5 +printf "%s\n" "$gl_cv_func_strcasestr_works_always" >&6; } + case "$gl_cv_func_strcasestr_works_always" in + *yes) ;; + *) + REPLACE_STRCASESTR=1 + ;; + esac + fi + fi + +ac_fn_check_decl "$LINENO" "strdup" "ac_cv_have_decl_strdup" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_strdup" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_STRDUP $ac_have_decl" >>confdefs.h + + + REPLACE_STRERROR_0=0 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strerror(0) succeeds" >&5 +printf %s "checking whether strerror(0) succeeds... " >&6; } +if test ${gl_cv_func_strerror_0_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; + # Guess yes on musl systems. + *-musl*) gl_cv_func_strerror_0_works="guessing yes" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_strerror_0_works="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_strerror_0_works="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main (void) +{ +int result = 0; + char *str; + errno = 0; + str = strerror (0); + if (!*str) result |= 1; + if (errno) result |= 2; + if (strstr (str, "nknown") || strstr (str, "ndefined")) + result |= 4; + return result; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_strerror_0_works=yes +else $as_nop + gl_cv_func_strerror_0_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_0_works" >&5 +printf "%s\n" "$gl_cv_func_strerror_0_works" >&6; } + case "$gl_cv_func_strerror_0_works" in + *yes) ;; + *) + REPLACE_STRERROR_0=1 + +printf "%s\n" "#define REPLACE_STRERROR_0 1" >>confdefs.h + + ;; + esac + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_string_h='<'string.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_string_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'string.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_string_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_string_h + gl_cv_next_string_h='"'$gl_header'"' + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_string_h" >&5 +printf "%s\n" "$gl_cv_next_string_h" >&6; } + fi + NEXT_STRING_H=$gl_cv_next_string_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'string.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_string_h + fi + NEXT_AS_FIRST_DIRECTIVE_STRING_H=$gl_next_as_first_directive + + + + + + + + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_strings_h='<'strings.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_strings_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_strings_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'strings.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_strings_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_strings_h + gl_cv_next_strings_h='"'$gl_header'"' + else + gl_cv_next_strings_h='<'strings.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_strings_h" >&5 +printf "%s\n" "$gl_cv_next_strings_h" >&6; } + fi + NEXT_STRINGS_H=$gl_cv_next_strings_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'strings.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_strings_h + fi + NEXT_AS_FIRST_DIRECTIVE_STRINGS_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_strings_h = yes; then + HAVE_STRINGS_H=1 + else + HAVE_STRINGS_H=0 + fi + + + + + + + + + GL_GNULIB_FFS=0 + + + +ac_fn_check_decl "$LINENO" "strndup" "ac_cv_have_decl_strndup" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_strndup" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_STRNDUP $ac_have_decl" >>confdefs.h + + +ac_fn_check_decl "$LINENO" "strnlen" "ac_cv_have_decl_strnlen" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_strnlen" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_STRNLEN $ac_have_decl" >>confdefs.h + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_sys_file_h='<'sys/file.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_sys_file_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_sys_file_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'sys/file.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_sys_file_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_sys_file_h + gl_cv_next_sys_file_h='"'$gl_header'"' + else + gl_cv_next_sys_file_h='<'sys/file.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_file_h" >&5 +printf "%s\n" "$gl_cv_next_sys_file_h" >&6; } + fi + NEXT_SYS_FILE_H=$gl_cv_next_sys_file_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sys/file.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sys_file_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYS_FILE_H=$gl_next_as_first_directive + + + + + + if test $ac_cv_header_sys_file_h = yes; then + HAVE_SYS_FILE_H=1 + else + HAVE_SYS_FILE_H=0 + fi + + + + + + + + + + + + if test $ac_cv_header_sys_ioctl_h = yes; then + HAVE_SYS_IOCTL_H=1 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether declares ioctl" >&5 +printf %s "checking whether declares ioctl... " >&6; } +if test ${gl_cv_decl_ioctl_in_sys_ioctl_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +(void) ioctl; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_decl_ioctl_in_sys_ioctl_h=yes +else $as_nop + gl_cv_decl_ioctl_in_sys_ioctl_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_ioctl_in_sys_ioctl_h" >&5 +printf "%s\n" "$gl_cv_decl_ioctl_in_sys_ioctl_h" >&6; } + else + HAVE_SYS_IOCTL_H=0 + fi + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_sys_ioctl_h='<'sys/ioctl.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_sys_ioctl_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_sys_ioctl_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'sys/ioctl.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_sys_ioctl_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_sys_ioctl_h + gl_cv_next_sys_ioctl_h='"'$gl_header'"' + else + gl_cv_next_sys_ioctl_h='<'sys/ioctl.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_ioctl_h" >&5 +printf "%s\n" "$gl_cv_next_sys_ioctl_h" >&6; } + fi + NEXT_SYS_IOCTL_H=$gl_cv_next_sys_ioctl_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sys/ioctl.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sys_ioctl_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H=$gl_next_as_first_directive + + + + + + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_sys_random_h='<'sys/random.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_sys_random_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_sys_random_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'sys/random.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_sys_random_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_sys_random_h + gl_cv_next_sys_random_h='"'$gl_header'"' + else + gl_cv_next_sys_random_h='<'sys/random.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_random_h" >&5 +printf "%s\n" "$gl_cv_next_sys_random_h" >&6; } + fi + NEXT_SYS_RANDOM_H=$gl_cv_next_sys_random_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sys/random.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sys_random_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_sys_random_h = yes; then + HAVE_SYS_RANDOM_H=1 + else + HAVE_SYS_RANDOM_H=0 + fi + + + + if test $ac_cv_header_sys_random_h = yes; then + UNISTD_H_HAVE_SYS_RANDOM_H=1 + fi + + + + + + + + GL_GNULIB_SOCKET=0 + + + + GL_GNULIB_CONNECT=0 + + + + GL_GNULIB_ACCEPT=0 + + + + GL_GNULIB_BIND=0 + + + + GL_GNULIB_GETPEERNAME=0 + + + + GL_GNULIB_GETSOCKNAME=0 + + + + GL_GNULIB_GETSOCKOPT=0 + + + + GL_GNULIB_LISTEN=0 + + + + GL_GNULIB_RECV=0 + + + + GL_GNULIB_SEND=0 + + + + GL_GNULIB_RECVFROM=0 + + + + GL_GNULIB_SENDTO=0 + + + + GL_GNULIB_SETSOCKOPT=0 + + + + GL_GNULIB_SHUTDOWN=0 + + + + GL_GNULIB_ACCEPT4=0 + + + + + + + + + + + + + + + +printf "%s\n" "#define _USE_STD_STAT 1" >>confdefs.h + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_sys_types_h='<'sys/types.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_sys_types_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'sys/types.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_sys_types_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_sys_types_h + gl_cv_next_sys_types_h='"'$gl_header'"' + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_types_h" >&5 +printf "%s\n" "$gl_cv_next_sys_types_h" >&6; } + fi + NEXT_SYS_TYPES_H=$gl_cv_next_sys_types_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sys/types.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sys_types_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H=$gl_next_as_first_directive + + + + + + + + + + + + + WINDOWS_STAT_INODES=0 + + + + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_sys_uio_h='<'sys/uio.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_sys_uio_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_sys_uio_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'sys/uio.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_sys_uio_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_sys_uio_h + gl_cv_next_sys_uio_h='"'$gl_header'"' + else + gl_cv_next_sys_uio_h='<'sys/uio.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_uio_h" >&5 +printf "%s\n" "$gl_cv_next_sys_uio_h" >&6; } + fi + NEXT_SYS_UIO_H=$gl_cv_next_sys_uio_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sys/uio.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sys_uio_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_sys_uio_h = yes; then + HAVE_SYS_UIO_H=1 + else + HAVE_SYS_UIO_H=0 + fi + + + + + + + HAVE_DECL_TCGETSID=1; + HAVE_TERMIOS_H=1; + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_termios_h='<'termios.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_termios_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_termios_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'termios.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_termios_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_termios_h + gl_cv_next_termios_h='"'$gl_header'"' + else + gl_cv_next_termios_h='<'termios.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_termios_h" >&5 +printf "%s\n" "$gl_cv_next_termios_h" >&6; } + fi + NEXT_TERMIOS_H=$gl_cv_next_termios_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'termios.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_termios_h + fi + NEXT_AS_FIRST_DIRECTIVE_TERMIOS_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_termios_h != yes; then + HAVE_TERMIOS_H=0 + fi + + + + + + + + + + GL_GNULIB_TCGETSID=0 + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 +printf %s "checking for struct timespec in ... " >&6; } +if test ${gl_cv_sys_struct_timespec_in_time_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +static struct timespec x; x.tv_sec = x.tv_nsec; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_sys_struct_timespec_in_time_h=yes +else $as_nop + gl_cv_sys_struct_timespec_in_time_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_time_h" >&5 +printf "%s\n" "$gl_cv_sys_struct_timespec_in_time_h" >&6; } + + TIME_H_DEFINES_STRUCT_TIMESPEC=0 + SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 + PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0 + UNISTD_H_DEFINES_STRUCT_TIMESPEC=0 + if test $gl_cv_sys_struct_timespec_in_time_h = yes; then + TIME_H_DEFINES_STRUCT_TIMESPEC=1 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 +printf %s "checking for struct timespec in ... " >&6; } +if test ${gl_cv_sys_struct_timespec_in_sys_time_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +static struct timespec x; x.tv_sec = x.tv_nsec; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_sys_struct_timespec_in_sys_time_h=yes +else $as_nop + gl_cv_sys_struct_timespec_in_sys_time_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_sys_time_h" >&5 +printf "%s\n" "$gl_cv_sys_struct_timespec_in_sys_time_h" >&6; } + if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then + SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 +printf %s "checking for struct timespec in ... " >&6; } +if test ${gl_cv_sys_struct_timespec_in_pthread_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +static struct timespec x; x.tv_sec = x.tv_nsec; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_sys_struct_timespec_in_pthread_h=yes +else $as_nop + gl_cv_sys_struct_timespec_in_pthread_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_pthread_h" >&5 +printf "%s\n" "$gl_cv_sys_struct_timespec_in_pthread_h" >&6; } + if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then + PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 +printf %s "checking for struct timespec in ... " >&6; } +if test ${gl_cv_sys_struct_timespec_in_unistd_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +static struct timespec x; x.tv_sec = x.tv_nsec; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_sys_struct_timespec_in_unistd_h=yes +else $as_nop + gl_cv_sys_struct_timespec_in_unistd_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_unistd_h" >&5 +printf "%s\n" "$gl_cv_sys_struct_timespec_in_unistd_h" >&6; } + if test $gl_cv_sys_struct_timespec_in_unistd_h = yes; then + UNISTD_H_DEFINES_STRUCT_TIMESPEC=1 + fi + fi + fi + fi + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_time_h='<'time.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_time_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'time.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_time_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_time_h + gl_cv_next_time_h='"'$gl_header'"' + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_time_h" >&5 +printf "%s\n" "$gl_cv_next_time_h" >&6; } + fi + NEXT_TIME_H=$gl_cv_next_time_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'time.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_time_h + fi + NEXT_AS_FIRST_DIRECTIVE_TIME_H=$gl_next_as_first_directive + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for TIME_UTC in " >&5 +printf %s "checking for TIME_UTC in ... " >&6; } +if test ${gl_cv_time_h_has_TIME_UTC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +static int x = TIME_UTC; x++; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_time_h_has_TIME_UTC=yes +else $as_nop + gl_cv_time_h_has_TIME_UTC=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_time_h_has_TIME_UTC" >&5 +printf "%s\n" "$gl_cv_time_h_has_TIME_UTC" >&6; } + if test $gl_cv_time_h_has_TIME_UTC = yes; then + TIME_H_DEFINES_TIME_UTC=1 + else + TIME_H_DEFINES_TIME_UTC=0 + fi + + +ac_fn_check_decl "$LINENO" "execvpe" "ac_cv_have_decl_execvpe" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_execvpe" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_EXECVPE $ac_have_decl" >>confdefs.h + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_unistd_h='<'unistd.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_unistd_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_unistd_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'unistd.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_unistd_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_unistd_h + gl_cv_next_unistd_h='"'$gl_header'"' + else + gl_cv_next_unistd_h='<'unistd.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_unistd_h" >&5 +printf "%s\n" "$gl_cv_next_unistd_h" >&6; } + fi + NEXT_UNISTD_H=$gl_cv_next_unistd_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'unistd.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_unistd_h + fi + NEXT_AS_FIRST_DIRECTIVE_UNISTD_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_unistd_h = yes; then + HAVE_UNISTD_H=1 + else + HAVE_UNISTD_H=0 + fi + + + + + + + + + + + + + + if test $ac_cv_have_decl_execvpe = no; then + HAVE_DECL_EXECVPE=0 + fi + + + + HAVE_UTIME=1; + REPLACE_UTIME=0; + + + + GL_GNULIB_UTIME=0 + + + + GL_GNULIB_MDA_UTIME=1 + + + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_utime_h='<'utime.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_utime_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_utime_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'utime.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_utime_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_utime_h + gl_cv_next_utime_h='"'$gl_header'"' + else + gl_cv_next_utime_h='<'utime.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_utime_h" >&5 +printf "%s\n" "$gl_cv_next_utime_h" >&6; } + fi + NEXT_UTIME_H=$gl_cv_next_utime_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'utime.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_utime_h + fi + NEXT_AS_FIRST_DIRECTIVE_UTIME_H=$gl_next_as_first_directive + + + + + + if test $ac_cv_header_utime_h = yes; then + HAVE_UTIME_H=1 + else + HAVE_UTIME_H=0 + fi + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the utimes function works" >&5 +printf %s "checking whether the utimes function works... " >&6; } +if test ${gl_cv_func_working_utimes+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on musl systems. + *-musl*) gl_cv_func_working_utimes="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_working_utimes="guessing no" ;; + *) gl_cv_func_working_utimes="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +$gl_mda_defines + + +static int +inorder (time_t a, time_t b, time_t c) +{ + return a <= b && b <= c; +} + +int +main () +{ + int result = 0; + char const *file = "conftest.utimes"; + /* On OS/2, file timestamps must be on or after 1980 in local time, + with an even number of seconds. */ + static struct timeval timeval[2] = {{315620000 + 10, 10}, + {315620000 + 1000000, 999998}}; + + /* Test whether utimes() essentially works. */ + { + struct stat sbuf; + FILE *f = fopen (file, "w"); + if (f == NULL) + result |= 1; + else if (fclose (f) != 0) + result |= 1; + else if (utimes (file, timeval) != 0) + result |= 2; + else if (lstat (file, &sbuf) != 0) + result |= 1; + else if (!(sbuf.st_atime == timeval[0].tv_sec + && sbuf.st_mtime == timeval[1].tv_sec)) + result |= 4; + if (unlink (file) != 0) + result |= 1; + } + + /* Test whether utimes() with a NULL argument sets the file's timestamp + to the current time. Use 'fstat' as well as 'time' to + determine the "current" time, to accommodate NFS file systems + if there is a time skew between the host and the NFS server. */ + { + int fd = open (file, O_WRONLY|O_CREAT, 0644); + if (fd < 0) + result |= 1; + else + { + time_t t0, t2; + struct stat st0, st1, st2; + if (time (&t0) == (time_t) -1) + result |= 1; + else if (fstat (fd, &st0) != 0) + result |= 1; + else if (utimes (file, timeval) != 0 + && (errno != EACCES + /* OS/2 kLIBC utimes fails on opened files. */ + || close (fd) != 0 + || utimes (file, timeval) != 0 + || (fd = open (file, O_WRONLY)) < 0)) + result |= 2; + else if (utimes (file, NULL) != 0 + && (errno != EACCES + /* OS/2 kLIBC utimes fails on opened files. */ + || close (fd) != 0 + || utimes (file, NULL) != 0 + || (fd = open (file, O_WRONLY)) < 0)) + result |= 8; + else if (fstat (fd, &st1) != 0) + result |= 1; + else if (write (fd, "\n", 1) != 1) + result |= 1; + else if (fstat (fd, &st2) != 0) + result |= 1; + else if (time (&t2) == (time_t) -1) + result |= 1; + else + { + int m_ok_POSIX = inorder (t0, st1.st_mtime, t2); + int m_ok_NFS = inorder (st0.st_mtime, st1.st_mtime, st2.st_mtime); + if (! (st1.st_atime == st1.st_mtime)) + result |= 16; + if (! (m_ok_POSIX || m_ok_NFS)) + result |= 32; + } + if (close (fd) != 0) + result |= 1; + } + if (unlink (file) != 0) + result |= 1; + } + + /* Test whether utimes() with a NULL argument works on read-only files. */ + { + int fd = open (file, O_WRONLY|O_CREAT, 0444); + if (fd < 0) + result |= 1; + else if (close (fd) != 0) + result |= 1; + else if (utimes (file, NULL) != 0) + result |= 64; + if (unlink (file) != 0) + result |= 1; + } + + return result; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_working_utimes=yes +else $as_nop + gl_cv_func_working_utimes=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_utimes" >&5 +printf "%s\n" "$gl_cv_func_working_utimes" >&6; } + + case "$gl_cv_func_working_utimes" in + *yes) + +printf "%s\n" "#define HAVE_WORKING_UTIMES 1" >>confdefs.h + + ;; + esac + + + + + + + + + + if test $ac_cv_header_features_h = yes; then + HAVE_FEATURES_H=1 + else + HAVE_FEATURES_H=0 + fi + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5 +printf %s "checking for inttypes.h... " >&6; } +if test ${gl_cv_header_inttypes_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main (void) +{ +uintmax_t i = (uintmax_t) -1; return !i; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_inttypes_h=yes +else $as_nop + gl_cv_header_inttypes_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_inttypes_h" >&5 +printf "%s\n" "$gl_cv_header_inttypes_h" >&6; } + if test $gl_cv_header_inttypes_h = yes; then + +printf "%s\n" "#define HAVE_INTTYPES_H_WITH_UINTMAX 1" >>confdefs.h + + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5 +printf %s "checking for stdint.h... " >&6; } +if test ${gl_cv_header_stdint_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include +int +main (void) +{ +uintmax_t i = (uintmax_t) -1; return !i; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_stdint_h=yes +else $as_nop + gl_cv_header_stdint_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_h" >&5 +printf "%s\n" "$gl_cv_header_stdint_h" >&6; } + if test $gl_cv_header_stdint_h = yes; then + +printf "%s\n" "#define HAVE_STDINT_H_WITH_UINTMAX 1" >>confdefs.h + + fi + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5 +printf %s "checking for intmax_t... " >&6; } +if test ${gt_cv_c_intmax_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if HAVE_STDINT_H_WITH_UINTMAX +#include +#endif +#if HAVE_INTTYPES_H_WITH_UINTMAX +#include +#endif + +int +main (void) +{ +intmax_t x = -1; return !x; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gt_cv_c_intmax_t=yes +else $as_nop + gt_cv_c_intmax_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_intmax_t" >&5 +printf "%s\n" "$gt_cv_c_intmax_t" >&6; } + if test $gt_cv_c_intmax_t = yes; then + +printf "%s\n" "#define HAVE_INTMAX_T 1" >>confdefs.h + + else + +printf "%s\n" "#define intmax_t long long" >>confdefs.h + + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'double'" >&5 +printf %s "checking where to find the exponent in a 'double'... " >&6; } +if test ${gl_cv_cc_double_expbit0+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test "$cross_compiling" = yes +then : + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#if defined arm || defined __arm || defined __arm__ + mixed_endianness +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "mixed_endianness" >/dev/null 2>&1 +then : + gl_cv_cc_double_expbit0="unknown" +else $as_nop + + : +if test ${ac_cv_c_bigendian+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main (void) +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main (void) +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_bigendian=yes +else $as_nop + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_bigendian=yes +else $as_nop + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes +then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +unsigned short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + unsigned short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + unsigned short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + unsigned short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main (void) +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main (void) +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + ac_cv_c_bigendian=no +else $as_nop + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +: + case $ac_cv_c_bigendian in #( + yes) + gl_cv_cc_double_expbit0="word 0 bit 20";; #( + no) + gl_cv_cc_double_expbit0="word 1 bit 20" ;; #( + universal) + +printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + gl_cv_cc_double_expbit0="unknown" ;; + esac + + +fi +rm -rf conftest* + + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +#define NWORDS \ + ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) +typedef union { double value; unsigned int word[NWORDS]; } memory_double; +static unsigned int ored_words[NWORDS]; +static unsigned int anded_words[NWORDS]; +static void add_to_ored_words (double x) +{ + memory_double m; + size_t i; + /* Clear it first, in case sizeof (double) < sizeof (memory_double). */ + memset (&m, 0, sizeof (memory_double)); + m.value = x; + for (i = 0; i < NWORDS; i++) + { + ored_words[i] |= m.word[i]; + anded_words[i] &= m.word[i]; + } +} +int main () +{ + size_t j; + FILE *fp = fopen ("conftest.out", "w"); + if (fp == NULL) + return 1; + for (j = 0; j < NWORDS; j++) + anded_words[j] = ~ (unsigned int) 0; + add_to_ored_words (0.25); + add_to_ored_words (0.5); + add_to_ored_words (1.0); + add_to_ored_words (2.0); + add_to_ored_words (4.0); + /* Remove bits that are common (e.g. if representation of the first mantissa + bit is explicit). */ + for (j = 0; j < NWORDS; j++) + ored_words[j] &= ~anded_words[j]; + /* Now find the nonzero word. */ + for (j = 0; j < NWORDS; j++) + if (ored_words[j] != 0) + break; + if (j < NWORDS) + { + size_t i; + for (i = j + 1; i < NWORDS; i++) + if (ored_words[i] != 0) + { + fprintf (fp, "unknown"); + return (fclose (fp) != 0); + } + for (i = 0; ; i++) + if ((ored_words[j] >> i) & 1) + { + fprintf (fp, "word %d bit %d", (int) j, (int) i); + return (fclose (fp) != 0); + } + } + fprintf (fp, "unknown"); + return (fclose (fp) != 0); +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_cc_double_expbit0=`cat conftest.out` +else $as_nop + gl_cv_cc_double_expbit0="unknown" +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.out + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_expbit0" >&5 +printf "%s\n" "$gl_cv_cc_double_expbit0" >&6; } + case "$gl_cv_cc_double_expbit0" in + word*bit*) + word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'` + bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'` + +printf "%s\n" "#define DBL_EXPBIT0_WORD $word" >>confdefs.h + + +printf "%s\n" "#define DBL_EXPBIT0_BIT $bit" >>confdefs.h + + ;; + esac + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether snprintf returns a byte count as in C99" >&5 +printf %s "checking whether snprintf returns a byte count as in C99... " >&6; } +if test ${gl_cv_func_snprintf_retval_c99+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";; + # Guess yes on musl systems. + *-musl*) gl_cv_func_snprintf_retval_c99="guessing yes";; + # Guess yes on FreeBSD >= 5. + freebsd[1-4].*) gl_cv_func_snprintf_retval_c99="guessing no";; + freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; + midnightbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; + # Guess yes on Mac OS X >= 10.3. + darwin[1-6].*) gl_cv_func_snprintf_retval_c99="guessing no";; + darwin*) gl_cv_func_snprintf_retval_c99="guessing yes";; + # Guess yes on OpenBSD >= 3.9. + openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) + gl_cv_func_snprintf_retval_c99="guessing no";; + openbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; + # Guess yes on Solaris >= 2.10. + solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";; + solaris*) gl_cv_func_printf_sizes_c99="guessing no";; + # Guess yes on AIX >= 4. + aix[1-3]*) gl_cv_func_snprintf_retval_c99="guessing no";; + aix*) gl_cv_func_snprintf_retval_c99="guessing yes";; + # Guess yes on NetBSD >= 3. + netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) + gl_cv_func_snprintf_retval_c99="guessing no";; + netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; + # Guess yes on BeOS. + beos*) gl_cv_func_snprintf_retval_c99="guessing yes";; + # Guess yes on Android. + linux*-android*) gl_cv_func_snprintf_retval_c99="guessing yes";; + # Guess yes on MSVC, no on mingw. + mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _MSC_VER + Known +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Known" >/dev/null 2>&1 +then : + gl_cv_func_snprintf_retval_c99="guessing yes" +else $as_nop + gl_cv_func_snprintf_retval_c99="guessing no" +fi +rm -rf conftest* + + ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_snprintf_retval_c99="$gl_cross_guess_normal";; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if HAVE_SNPRINTF +# define my_snprintf snprintf +#else +# include +static int my_snprintf (char *buf, int size, const char *format, ...) +{ + va_list args; + int ret; + va_start (args, format); + ret = vsnprintf (buf, size, format, args); + va_end (args); + return ret; +} +#endif +static char buf[100]; +int main () +{ + strcpy (buf, "ABCDEF"); + if (my_snprintf (buf, 3, "%d %d", 4567, 89) != 7) + return 1; + if (my_snprintf (buf, 0, "%d %d", 4567, 89) != 7) + return 2; + if (my_snprintf (NULL, 0, "%d %d", 4567, 89) != 7) + return 3; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_snprintf_retval_c99=yes +else $as_nop + gl_cv_func_snprintf_retval_c99=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_retval_c99" >&5 +printf "%s\n" "$gl_cv_func_snprintf_retval_c99" >&6; } + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether snprintf truncates the result as in C99" >&5 +printf %s "checking whether snprintf truncates the result as in C99... " >&6; } +if test ${gl_cv_func_snprintf_truncation_c99+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test "$cross_compiling" = yes +then : + + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on musl systems. + *-musl*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on FreeBSD >= 5. + freebsd[1-4].*) gl_cv_func_snprintf_truncation_c99="guessing no";; + freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + midnightbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on Mac OS X >= 10.3. + darwin[1-6].*) gl_cv_func_snprintf_truncation_c99="guessing no";; + darwin*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on OpenBSD >= 3.9. + openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) + gl_cv_func_snprintf_truncation_c99="guessing no";; + openbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on Solaris >= 2.6. + solaris2.[0-5] | solaris2.[0-5].*) + gl_cv_func_snprintf_truncation_c99="guessing no";; + solaris*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on AIX >= 4. + aix[1-3]*) gl_cv_func_snprintf_truncation_c99="guessing no";; + aix*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on HP-UX >= 11. + hpux[7-9]* | hpux10*) gl_cv_func_snprintf_truncation_c99="guessing no";; + hpux*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on IRIX >= 6.5. + irix6.5) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on OSF/1 >= 5. + osf[3-4]*) gl_cv_func_snprintf_truncation_c99="guessing no";; + osf*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on NetBSD >= 3. + netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) + gl_cv_func_snprintf_truncation_c99="guessing no";; + netbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on BeOS. + beos*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on Android. + linux*-android*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess no on native Windows. + mingw*) gl_cv_func_snprintf_truncation_c99="guessing no";; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_snprintf_truncation_c99="$gl_cross_guess_normal";; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if HAVE_SNPRINTF +# define my_snprintf snprintf +#else +# include +static int my_snprintf (char *buf, int size, const char *format, ...) +{ + va_list args; + int ret; + va_start (args, format); + ret = vsnprintf (buf, size, format, args); + va_end (args); + return ret; +} +#endif +static char buf[100]; +int main () +{ + strcpy (buf, "ABCDEF"); + my_snprintf (buf, 3, "%d %d", 4567, 89); + if (memcmp (buf, "45\0DEF", 6) != 0) + return 1; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_snprintf_truncation_c99=yes +else $as_nop + gl_cv_func_snprintf_truncation_c99=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_truncation_c99" >&5 +printf "%s\n" "$gl_cv_func_snprintf_truncation_c99" >&6; } + + + + + + ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf" +if test "x$ac_cv_func_snprintf" = xyes +then : + printf "%s\n" "#define HAVE_SNPRINTF 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "strnlen" "ac_cv_func_strnlen" +if test "x$ac_cv_func_strnlen" = xyes +then : + printf "%s\n" "#define HAVE_STRNLEN 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "wcslen" "ac_cv_func_wcslen" +if test "x$ac_cv_func_wcslen" = xyes +then : + printf "%s\n" "#define HAVE_WCSLEN 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "wcsnlen" "ac_cv_func_wcsnlen" +if test "x$ac_cv_func_wcsnlen" = xyes +then : + printf "%s\n" "#define HAVE_WCSNLEN 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "mbrtowc" "ac_cv_func_mbrtowc" +if test "x$ac_cv_func_mbrtowc" = xyes +then : + printf "%s\n" "#define HAVE_MBRTOWC 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "wcrtomb" "ac_cv_func_wcrtomb" +if test "x$ac_cv_func_wcrtomb" = xyes +then : + printf "%s\n" "#define HAVE_WCRTOMB 1" >>confdefs.h + +fi + + ac_fn_check_decl "$LINENO" "_snprintf" "ac_cv_have_decl__snprintf" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl__snprintf" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL__SNPRINTF $ac_have_decl" >>confdefs.h + + + + case "$gl_cv_func_snprintf_retval_c99" in + *yes) + +printf "%s\n" "#define HAVE_SNPRINTF_RETVAL_C99 1" >>confdefs.h + + ;; + esac + + case "$gl_cv_func_snprintf_truncation_c99" in + *yes) + +printf "%s\n" "#define HAVE_SNPRINTF_TRUNCATION_C99 1" >>confdefs.h + + ;; + esac + +ac_fn_check_decl "$LINENO" "vsnprintf" "ac_cv_have_decl_vsnprintf" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_vsnprintf" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_VSNPRINTF $ac_have_decl" >>confdefs.h + + + + + if test $ac_cv_header_crtdefs_h = yes; then + HAVE_CRTDEFS_H=1 + else + HAVE_CRTDEFS_H=0 + fi + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_wchar_h='<'wchar.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_wchar_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_wchar_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'wchar.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_wchar_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_wchar_h + gl_cv_next_wchar_h='"'$gl_header'"' + else + gl_cv_next_wchar_h='<'wchar.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wchar_h" >&5 +printf "%s\n" "$gl_cv_next_wchar_h" >&6; } + fi + NEXT_WCHAR_H=$gl_cv_next_wchar_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'wchar.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_wchar_h + fi + NEXT_AS_FIRST_DIRECTIVE_WCHAR_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_wchar_h = yes; then + HAVE_WCHAR_H=1 + else + HAVE_WCHAR_H=0 + fi + + + + + + if test $gt_cv_c_wint_t = yes; then + HAVE_WINT_T=1 + else + HAVE_WINT_T=0 + fi + + + + + + + + + + + ac_fn_check_decl "$LINENO" "wcsdup" "ac_cv_have_decl_wcsdup" " + #include + +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_wcsdup" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_WCSDUP $ac_have_decl" >>confdefs.h + + if test $ac_cv_have_decl_wcsdup = no; then + HAVE_DECL_WCSDUP=0 + fi + + + + HAVE_ISWBLANK=1; + HAVE_WCTYPE_T=1; + HAVE_WCTRANS_T=1; + REPLACE_ISWBLANK=0; + REPLACE_ISWDIGIT=0; + REPLACE_ISWXDIGIT=0; + + + + + + + + + if test $ac_cv_func_iswcntrl = yes; then + HAVE_ISWCNTRL=1 + else + HAVE_ISWCNTRL=0 + fi + + + + if test $gt_cv_c_wint_t = yes; then + HAVE_WINT_T=1 + else + HAVE_WINT_T=0 + fi + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_wctype_h='<'wctype.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_wctype_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_wctype_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'wctype.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_wctype_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_wctype_h + gl_cv_next_wctype_h='"'$gl_header'"' + else + gl_cv_next_wctype_h='<'wctype.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wctype_h" >&5 +printf "%s\n" "$gl_cv_next_wctype_h" >&6; } + fi + NEXT_WCTYPE_H=$gl_cv_next_wctype_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'wctype.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_wctype_h + fi + NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_wctype_h = yes; then + if test $ac_cv_func_iswcntrl = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5 +printf %s "checking whether iswcntrl works... " >&6; } +if test ${gl_cv_func_iswcntrl_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test "$cross_compiling" = yes +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #if __GNU_LIBRARY__ == 1 + Linux libc5 i18n is broken. + #endif +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_func_iswcntrl_works="guessing yes" +else $as_nop + gl_cv_func_iswcntrl_works="guessing no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + int main () { return iswprint ('x') == 0; } + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_iswcntrl_works=yes +else $as_nop + gl_cv_func_iswcntrl_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5 +printf "%s\n" "$gl_cv_func_iswcntrl_works" >&6; } + fi + HAVE_WCTYPE_H=1 + else + HAVE_WCTYPE_H=0 + fi + + + if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then + REPLACE_ISWCNTRL=1 + else + case "$gl_cv_func_iswcntrl_works" in + *yes) REPLACE_ISWCNTRL=0 ;; + *) REPLACE_ISWCNTRL=1 ;; + esac + fi + + + if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then + : + fi + + if test $REPLACE_ISWCNTRL = 1; then + REPLACE_TOWLOWER=1 + else + ac_fn_c_check_func "$LINENO" "towlower" "ac_cv_func_towlower" +if test "x$ac_cv_func_towlower" = xyes +then : + printf "%s\n" "#define HAVE_TOWLOWER 1" >>confdefs.h + +fi + + if test $ac_cv_func_towlower = yes; then + REPLACE_TOWLOWER=0 + else + ac_fn_check_decl "$LINENO" "towlower" "ac_cv_have_decl_towlower" "#include + #if HAVE_WCTYPE_H + # include + #endif + +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_towlower" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_TOWLOWER $ac_have_decl" >>confdefs.h + + if test $ac_cv_have_decl_towlower = yes; then + REPLACE_TOWLOWER=1 + else + REPLACE_TOWLOWER=0 + fi + fi + fi + + + if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then + : + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5 +printf %s "checking for wctype_t... " >&6; } +if test ${gl_cv_type_wctype_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #if HAVE_WCTYPE_H + # include + #endif + wctype_t a; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_type_wctype_t=yes +else $as_nop + gl_cv_type_wctype_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5 +printf "%s\n" "$gl_cv_type_wctype_t" >&6; } + if test $gl_cv_type_wctype_t = no; then + HAVE_WCTYPE_T=0 + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5 +printf %s "checking for wctrans_t... " >&6; } +if test ${gl_cv_type_wctrans_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + wctrans_t a; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_type_wctrans_t=yes +else $as_nop + gl_cv_type_wctrans_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5 +printf "%s\n" "$gl_cv_type_wctrans_t" >&6; } + if test $gl_cv_type_wctrans_t = no; then + HAVE_WCTRANS_T=0 + fi + + + + + + + + GL_GNULIB_ISWBLANK=0 + + + + GL_GNULIB_ISWDIGIT=0 + + + + GL_GNULIB_ISWXDIGIT=0 + + + + GL_GNULIB_WCTYPE=0 + + + + GL_GNULIB_ISWCTYPE=0 + + + + GL_GNULIB_WCTRANS=0 + + + + GL_GNULIB_TOWCTRANS=0 + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler option to allow warnings" >&5 +printf %s "checking for C compiler option to allow warnings... " >&6; } +if test ${gl_cv_cc_wallow+y} +then : + printf %s "(cached) " >&6 +else $as_nop + rm -f conftest* + echo 'int dummy;' > conftest.c + { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c 2>conftest1.err' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null + { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -Wno-error -c conftest.c 2>conftest2.err' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null + if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then + gl_cv_cc_wallow='-Wno-error' + else + gl_cv_cc_wallow=none + fi + rm -f conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_wallow" >&5 +printf "%s\n" "$gl_cv_cc_wallow" >&6; } + case "$gl_cv_cc_wallow" in + none) GL_CFLAG_ALLOW_WARNINGS='' ;; + *) GL_CFLAG_ALLOW_WARNINGS="$gl_cv_cc_wallow" ;; + esac + + + + + GL_CFLAG_GNULIB_WARNINGS='' + if test -n "$GL_CFLAG_ALLOW_WARNINGS"; then + cat > conftest.c <<\EOF + #if __GNUC__ >= 3 || (__clang_major__ + (__clang_minor__ >= 9) > 3) + -Wno-cast-qual + -Wno-conversion + -Wno-float-equal + -Wno-sign-compare + -Wno-undef + -Wno-unused-function + -Wno-unused-parameter + #endif + #if __GNUC__ + (__GNUC_MINOR__ >= 9) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) + -Wno-float-conversion + #endif + #if __GNUC__ >= 7 || (__clang_major__ + (__clang_minor__ >= 9) > 3) + -Wimplicit-fallthrough + #endif + #if __GNUC__ + (__GNUC_MINOR__ >= 8) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) + -Wno-pedantic + #endif + #if __GNUC__ + (__GNUC_MINOR__ >= 3) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) + -Wno-sign-conversion + -Wno-type-limits + #endif + #if __GNUC__ + (__GNUC_MINOR__ >= 5) > 4 + -Wno-unsuffixed-float-constants + #endif +EOF + gl_command="$CC $CFLAGS $CPPFLAGS -E conftest.c > conftest.out" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gl_command\""; } >&5 + (eval $gl_command) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + gl_options=`grep -v '#' conftest.out` + for word in $gl_options; do + GL_CFLAG_GNULIB_WARNINGS="$GL_CFLAG_GNULIB_WARNINGS $word" + done + fi + rm -f conftest.c conftest.out + fi + + + + + if true; then + GL_COND_LIBTOOL_TRUE= + GL_COND_LIBTOOL_FALSE='#' +else + GL_COND_LIBTOOL_TRUE='#' + GL_COND_LIBTOOL_FALSE= +fi + + gl_cond_libtool=true + gl_m4_base='gl/m4' + + + + + + + + + + + + + gl_source_base='gl/lib' + gl_source_base_prefix= +LTALLOCA=`echo "$ALLOCA" | sed -e 's/\.[^.]* /.lo /g;s/\.[^.]*$/.lo/'` + + + + if test $ac_cv_func_alloca_works = no; then + : + fi + + # Define an additional variable used in the Makefile substitution. + if test $ac_cv_working_alloca_h = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5 +printf %s "checking for alloca as a compiler built-in... " >&6; } +if test ${gl_cv_rpl_alloca+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#if defined __GNUC__ || defined _AIX || defined _MSC_VER + Need own alloca +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Need own alloca" >/dev/null 2>&1 +then : + gl_cv_rpl_alloca=yes +else $as_nop + gl_cv_rpl_alloca=no +fi +rm -rf conftest* + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_rpl_alloca" >&5 +printf "%s\n" "$gl_cv_rpl_alloca" >&6; } + if test $gl_cv_rpl_alloca = yes; then + +printf "%s\n" "#define HAVE_ALLOCA 1" >>confdefs.h + + GL_GENERATE_ALLOCA_H=true + else + GL_GENERATE_ALLOCA_H=false + fi + else + GL_GENERATE_ALLOCA_H=true + fi + + if test $ac_cv_working_alloca_h = yes; then + HAVE_ALLOCA_H=1 + else + HAVE_ALLOCA_H=0 + fi + + + + + + + case "$GL_GENERATE_ALLOCA_H" in + false) ALLOCA_H='' ;; + true) + if test -z "$ALLOCA_H"; then + ALLOCA_H="${gl_source_base_prefix}alloca.h" + fi + ;; + *) echo "*** GL_GENERATE_ALLOCA_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_ALLOCA_H; then + GL_GENERATE_ALLOCA_H_TRUE= + GL_GENERATE_ALLOCA_H_FALSE='#' +else + GL_GENERATE_ALLOCA_H_TRUE='#' + GL_GENERATE_ALLOCA_H_FALSE= +fi +: + if test -z "${GL_GENERATE_ALLOCA_H_TRUE}" && test -z "${GL_GENERATE_ALLOCA_H_FALSE}"; then + GL_GENERATE_ALLOCA_H_TRUE='#' + GL_GENERATE_ALLOCA_H_FALSE='#' + fi + + + + + + + + + + + + ac_fn_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_program_invocation_name" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl" >>confdefs.h +if test $ac_have_decl = 1 +then : + +else $as_nop + +printf "%s\n" "#define GNULIB_PROGRAM_INVOCATION_NAME 1" >>confdefs.h + +fi + + ac_fn_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl" >>confdefs.h +if test $ac_have_decl = 1 +then : + +else $as_nop + +printf "%s\n" "#define GNULIB_PROGRAM_INVOCATION_SHORT_NAME 1" >>confdefs.h + +fi + + + # Check if program_invocation_name and program_invocation_short_name + # are defined elsewhere. It is improbable that only one of them will + # be defined and other not, I prefer to stay on the safe side and to + # test each one separately. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether program_invocation_name is defined" >&5 +printf %s "checking whether program_invocation_name is defined... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern char *program_invocation_name; +int +main (void) +{ +program_invocation_name = "test"; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + +printf "%s\n" "#define HAVE_PROGRAM_INVOCATION_NAME 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether program_invocation_short_name is defined" >&5 +printf %s "checking whether program_invocation_short_name is defined... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern char *program_invocation_short_name; +int +main (void) +{ +program_invocation_short_name = "test"; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + +printf "%s\n" "#define HAVE_PROGRAM_INVOCATION_SHORT_NAME 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + + + + + + + + + + + + + + + + + + + + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=argp_error:2:c-format" + + + + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=argp_failure:4:c-format" + + + + + + + + + if test $ac_cv_func_btowc = no; then + HAVE_BTOWC=0 + else + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether btowc(0) is correct" >&5 +printf %s "checking whether btowc(0) is correct... " >&6; } +if test ${gl_cv_func_btowc_nul+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test "$cross_compiling" = yes +then : + + case "$host_os" in + # Guess no on Cygwin. + cygwin*) gl_cv_func_btowc_nul="guessing no" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_btowc_nul="guessing yes" ;; + # Guess yes otherwise. + *) gl_cv_func_btowc_nul="guessing yes" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +int main () +{ + if (btowc ('\0') != 0) + return 1; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_btowc_nul=yes +else $as_nop + gl_cv_func_btowc_nul=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_nul" >&5 +printf "%s\n" "$gl_cv_func_btowc_nul" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether btowc(EOF) is correct" >&5 +printf %s "checking whether btowc(EOF) is correct... " >&6; } +if test ${gl_cv_func_btowc_eof+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + case "$host_os" in + # Guess no on IRIX. + irix*) gl_cv_func_btowc_eof="guessing no" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_btowc_eof="guessing yes" ;; + # Guess yes otherwise. + *) gl_cv_func_btowc_eof="guessing yes" ;; + esac + if test $LOCALE_FR != none; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) + { + if (btowc (EOF) != WEOF) + return 1; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_btowc_eof=yes +else $as_nop + gl_cv_func_btowc_eof=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_eof" >&5 +printf "%s\n" "$gl_cv_func_btowc_eof" >&6; } + + case "$gl_cv_func_btowc_nul" in + *yes) ;; + *) REPLACE_BTOWC=1 ;; + esac + case "$gl_cv_func_btowc_eof" in + *yes) ;; + *) REPLACE_BTOWC=1 ;; + esac + fi + + + if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then + GL_COND_OBJ_BTOWC_TRUE= + GL_COND_OBJ_BTOWC_FALSE='#' +else + GL_COND_OBJ_BTOWC_TRUE='#' + GL_COND_OBJ_BTOWC_FALSE= +fi +: + if test -z "${GL_COND_OBJ_BTOWC_TRUE}" && test -z "${GL_COND_OBJ_BTOWC_FALSE}"; then + GL_COND_OBJ_BTOWC_TRUE='#' + GL_COND_OBJ_BTOWC_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_BTOWC_TRUE"; then : + + + : + + +fi + + + + + + + + + + + + + + + GL_GNULIB_BTOWC=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_BTOWC 1" >>confdefs.h + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_expect" >&5 +printf %s "checking for __builtin_expect... " >&6; } +if test ${gl_cv___builtin_expect+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + int + main (int argc, char **argv) + { + argc = __builtin_expect (argc, 100); + return argv[argc != 100][0]; + } +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv___builtin_expect=yes +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + int + main (int argc, char **argv) + { + argc = __builtin_expect (argc, 100); + return argv[argc != 100][0]; + } +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv___builtin_expect="in " +else $as_nop + gl_cv___builtin_expect=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv___builtin_expect" >&5 +printf "%s\n" "$gl_cv___builtin_expect" >&6; } + if test "$gl_cv___builtin_expect" = yes; then + printf "%s\n" "#define HAVE___BUILTIN_EXPECT 1" >>confdefs.h + + elif test "$gl_cv___builtin_expect" = "in "; then + printf "%s\n" "#define HAVE___BUILTIN_EXPECT 2" >>confdefs.h + + fi + + + + + + REPLACE_CALLOC_FOR_CALLOC_GNU="$REPLACE_CALLOC_FOR_CALLOC_POSIX" + if test $REPLACE_CALLOC_FOR_CALLOC_GNU = 0; then + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether calloc (0, n) and calloc (n, 0) return nonnull" >&5 +printf %s "checking whether calloc (0, n) and calloc (n, 0) return nonnull... " >&6; } +if test ${ac_cv_func_calloc_0_nonnull+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test $cross_compiling != yes; then + ac_cv_func_calloc_0_nonnull=yes + if test "$cross_compiling" = yes +then : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main (void) +{ +int result = 0; + char * volatile p = calloc (0, 0); + if (!p) + result |= 1; + free (p); + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + +else $as_nop + ac_cv_func_calloc_0_nonnull=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + else + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) ac_cv_func_calloc_0_nonnull="guessing yes" ;; + # Guess yes on musl systems. + *-musl*) ac_cv_func_calloc_0_nonnull="guessing yes" ;; + # Guess yes on native Windows. + mingw*) ac_cv_func_calloc_0_nonnull="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) ac_cv_func_calloc_0_nonnull="$gl_cross_guess_normal" ;; + esac + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_calloc_0_nonnull" >&5 +printf "%s\n" "$ac_cv_func_calloc_0_nonnull" >&6; } + case $ac_cv_func_calloc_0_nonnull in #( + *yes) : + ;; #( + *) : + REPLACE_CALLOC_FOR_CALLOC_GNU=1 ;; +esac + + fi + + if test $REPLACE_CALLOC_FOR_CALLOC_GNU = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS calloc.$ac_objext" + + fi + + + + + + + + + + GL_GNULIB_CALLOC_GNU=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_CALLOC_GNU 1" >>confdefs.h + + + + + + + if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then + REPLACE_CALLOC_FOR_CALLOC_POSIX=1 + fi + + if test $REPLACE_CALLOC_FOR_CALLOC_POSIX = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS calloc.$ac_objext" + + fi + + + + + + + + + + GL_GNULIB_CALLOC_POSIX=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_CALLOC_POSIX 1" >>confdefs.h + + + + + + + + + + if test $ac_cv_func_canonicalize_file_name = no; then + HAVE_CANONICALIZE_FILE_NAME=0 + else + case "$gl_cv_func_realpath_works" in + *yes) ;; + *) REPLACE_CANONICALIZE_FILE_NAME=1 ;; + esac + fi + + + +printf "%s\n" "#define GNULIB_CANONICALIZE 1" >>confdefs.h + + + + +printf "%s\n" "#define GNULIB_TEST_CANONICALIZE 1" >>confdefs.h + + + + + + + + + + + + GL_GNULIB_CANONICALIZE_FILE_NAME=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_CANONICALIZE_FILE_NAME 1" >>confdefs.h + + + + + + + if test $ac_cv_func_canonicalize_file_name = no; then + HAVE_CANONICALIZE_FILE_NAME=0 + if test $ac_cv_func_realpath = no; then + HAVE_REALPATH=0 + else + case "$gl_cv_func_realpath_works" in + *yes) ;; + *) REPLACE_REALPATH=1 ;; + esac + fi + else + case "$gl_cv_func_realpath_works" in + *yes) + ;; + *) + REPLACE_CANONICALIZE_FILE_NAME=1 + REPLACE_REALPATH=1 + ;; + esac + fi + + + if test $HAVE_CANONICALIZE_FILE_NAME = 0 || test $REPLACE_CANONICALIZE_FILE_NAME = 1; then + GL_COND_OBJ_CANONICALIZE_LGPL_TRUE= + GL_COND_OBJ_CANONICALIZE_LGPL_FALSE='#' +else + GL_COND_OBJ_CANONICALIZE_LGPL_TRUE='#' + GL_COND_OBJ_CANONICALIZE_LGPL_FALSE= +fi +: + if test -z "${GL_COND_OBJ_CANONICALIZE_LGPL_TRUE}" && test -z "${GL_COND_OBJ_CANONICALIZE_LGPL_FALSE}"; then + GL_COND_OBJ_CANONICALIZE_LGPL_TRUE='#' + GL_COND_OBJ_CANONICALIZE_LGPL_FALSE='#' + fi + + + +printf "%s\n" "#define GNULIB_CANONICALIZE_LGPL 1" >>confdefs.h + + + + + + + + + + + + GL_GNULIB_CANONICALIZE_FILE_NAME=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_CANONICALIZE_FILE_NAME 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_REALPATH=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_REALPATH 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_CHDIR=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_CHDIR 1" >>confdefs.h + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether this system supports file names of any length" >&5 +printf %s "checking whether this system supports file names of any length... " >&6; } +if test ${gl_cv_have_unlimited_file_name_length+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Arrange to define PATH_MAX, like "pathmax.h" does. */ +#if HAVE_UNISTD_H +# include +#endif +#include +#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN +# include +#endif +#if !defined PATH_MAX && defined MAXPATHLEN +# define PATH_MAX MAXPATHLEN +#endif +#ifdef __hpux +# undef PATH_MAX +# define PATH_MAX 1024 +#endif +#if defined _WIN32 && ! defined __CYGWIN__ +# undef PATH_MAX +# define PATH_MAX 260 +#endif + +#ifdef PATH_MAX +have_arbitrary_file_name_length_limit +#endif +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "have_arbitrary_file_name_length_limit" >/dev/null 2>&1 +then : + gl_cv_have_unlimited_file_name_length=no +else $as_nop + gl_cv_have_unlimited_file_name_length=yes +fi +rm -rf conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_unlimited_file_name_length" >&5 +printf "%s\n" "$gl_cv_have_unlimited_file_name_length" >&6; } + + + if test $gl_cv_have_unlimited_file_name_length = no; then + GL_COND_OBJ_CHDIR_LONG_TRUE= + GL_COND_OBJ_CHDIR_LONG_FALSE='#' +else + GL_COND_OBJ_CHDIR_LONG_TRUE='#' + GL_COND_OBJ_CHDIR_LONG_FALSE= +fi +: + if test -z "${GL_COND_OBJ_CHDIR_LONG_TRUE}" && test -z "${GL_COND_OBJ_CHDIR_LONG_FALSE}"; then + GL_COND_OBJ_CHDIR_LONG_TRUE='#' + GL_COND_OBJ_CHDIR_LONG_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_CHDIR_LONG_TRUE"; then : + + : + +fi + + + if test $HAVE_CHOWN = 0 || test $REPLACE_CHOWN = 1; then + GL_COND_OBJ_CHOWN_TRUE= + GL_COND_OBJ_CHOWN_FALSE='#' +else + GL_COND_OBJ_CHOWN_TRUE='#' + GL_COND_OBJ_CHOWN_FALSE= +fi +: + if test -z "${GL_COND_OBJ_CHOWN_TRUE}" && test -z "${GL_COND_OBJ_CHOWN_FALSE}"; then + GL_COND_OBJ_CHOWN_TRUE='#' + GL_COND_OBJ_CHOWN_FALSE='#' + fi + + + if test $REPLACE_CHOWN = 1 && test $ac_cv_func_fchown = no; then + GL_COND_OBJ_FCHOWN_STUB_TRUE= + GL_COND_OBJ_FCHOWN_STUB_FALSE='#' +else + GL_COND_OBJ_FCHOWN_STUB_TRUE='#' + GL_COND_OBJ_FCHOWN_STUB_FALSE= +fi +: + if test -z "${GL_COND_OBJ_FCHOWN_STUB_TRUE}" && test -z "${GL_COND_OBJ_FCHOWN_STUB_FALSE}"; then + GL_COND_OBJ_FCHOWN_STUB_TRUE='#' + GL_COND_OBJ_FCHOWN_STUB_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_CHOWN=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_CHOWN 1" >>confdefs.h + + + + + + + # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function. + # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4. + + # Save and restore LIBS so e.g., -lrt, isn't added to it. Otherwise, *all* + # programs in the package would end up linked with that potentially-shared + # library, inducing unnecessary run-time overhead. + LIB_CLOCK_GETTIME= + + gl_saved_libs=$LIBS + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5 +printf %s "checking for library containing clock_gettime... " >&6; } +if test ${ac_cv_search_clock_gettime+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char clock_gettime (); +int +main (void) +{ +return clock_gettime (); + ; + return 0; +} +_ACEOF +for ac_lib in '' rt posix4 +do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO" +then : + ac_cv_search_clock_gettime=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext + if test ${ac_cv_search_clock_gettime+y} +then : + break +fi +done +if test ${ac_cv_search_clock_gettime+y} +then : + +else $as_nop + ac_cv_search_clock_gettime=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5 +printf "%s\n" "$ac_cv_search_clock_gettime" >&6; } +ac_res=$ac_cv_search_clock_gettime +if test "$ac_res" != no +then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + test "$ac_cv_search_clock_gettime" = "none required" || + LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime +fi + + ac_fn_c_check_func "$LINENO" "clock_getres" "ac_cv_func_clock_getres" +if test "x$ac_cv_func_clock_getres" = xyes +then : + printf "%s\n" "#define HAVE_CLOCK_GETRES 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime" +if test "x$ac_cv_func_clock_gettime" = xyes +then : + printf "%s\n" "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "clock_settime" "ac_cv_func_clock_settime" +if test "x$ac_cv_func_clock_settime" = xyes +then : + printf "%s\n" "#define HAVE_CLOCK_SETTIME 1" >>confdefs.h + +fi + + LIBS=$gl_saved_libs + + + +printf "%s\n" "#define GNULIB_TEST_CLOEXEC 1" >>confdefs.h + + + + + + + if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then + REPLACE_CLOSE=1 + fi + + + + + + + if test $ac_cv_header_sys_socket_h != yes; then + ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" +if test "x$ac_cv_header_winsock2_h" = xyes +then : + printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h + +fi + + fi + if test "$ac_cv_header_winsock2_h" = yes; then + HAVE_WINSOCK2_H=1 + UNISTD_H_HAVE_WINSOCK2_H=1 + SYS_IOCTL_H_HAVE_WINSOCK2_H=1 + else + HAVE_WINSOCK2_H=0 + fi + + + if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then + REPLACE_CLOSE=1 + fi + + + if test $REPLACE_CLOSE = 0; then + + + + if test $ac_cv_func_fchdir = no; then + HAVE_FCHDIR=0 + fi + + if test $HAVE_FCHDIR = 0; then + REPLACE_CLOSE=1 + fi + fi + + + + if test $REPLACE_CLOSE = 1; then + GL_COND_OBJ_CLOSE_TRUE= + GL_COND_OBJ_CLOSE_FALSE='#' +else + GL_COND_OBJ_CLOSE_TRUE='#' + GL_COND_OBJ_CLOSE_FALSE= +fi +: + if test -z "${GL_COND_OBJ_CLOSE_TRUE}" && test -z "${GL_COND_OBJ_CLOSE_FALSE}"; then + GL_COND_OBJ_CLOSE_TRUE='#' + GL_COND_OBJ_CLOSE_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_CLOSE=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_CLOSE 1" >>confdefs.h + + + + + + + ac_fn_c_check_func "$LINENO" "closedir" "ac_cv_func_closedir" +if test "x$ac_cv_func_closedir" = xyes +then : + printf "%s\n" "#define HAVE_CLOSEDIR 1" >>confdefs.h + +fi + + if test $ac_cv_func_closedir = no; then + HAVE_CLOSEDIR=0 + fi + + + + + if test $ac_cv_func_fchdir = no; then + HAVE_FCHDIR=0 + fi + + if test $HAVE_FCHDIR = 0; then + if test $HAVE_CLOSEDIR = 1; then + REPLACE_CLOSEDIR=1 + fi + fi + + case $host_os,$HAVE_CLOSEDIR in + os2*,1) + REPLACE_CLOSEDIR=1;; + esac + + + if test $HAVE_CLOSEDIR = 0 || test $REPLACE_CLOSEDIR = 1; then + GL_COND_OBJ_CLOSEDIR_TRUE= + GL_COND_OBJ_CLOSEDIR_FALSE='#' +else + GL_COND_OBJ_CLOSEDIR_TRUE='#' + GL_COND_OBJ_CLOSEDIR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_CLOSEDIR_TRUE}" && test -z "${GL_COND_OBJ_CLOSEDIR_FALSE}"; then + GL_COND_OBJ_CLOSEDIR_TRUE='#' + GL_COND_OBJ_CLOSEDIR_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_CLOSEDIR=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_CLOSEDIR 1" >>confdefs.h + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for d_ino member in directory struct" >&5 +printf %s "checking for d_ino member in directory struct... " >&6; } +if test ${gl_cv_struct_dirent_d_ino+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on glibc systems with Linux kernel. + linux*-gnu*) gl_cv_struct_dirent_d_ino="guessing yes" ;; + # Guess yes on musl systems with Linux kernel. + linux*-musl*) gl_cv_struct_dirent_d_ino="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_struct_dirent_d_ino="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_struct_dirent_d_ino="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + #include + +int +main (void) +{ +DIR *dp = opendir ("."); + struct dirent *e; + struct stat st; + if (! dp) + return 1; + e = readdir (dp); + if (! e) + { closedir (dp); return 2; } + if (lstat (e->d_name, &st) != 0) + { closedir (dp); return 3; } + if (e->d_ino != st.st_ino) + { closedir (dp); return 4; } + closedir (dp); + return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_struct_dirent_d_ino=yes +else $as_nop + gl_cv_struct_dirent_d_ino=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_struct_dirent_d_ino" >&5 +printf "%s\n" "$gl_cv_struct_dirent_d_ino" >&6; } + case "$gl_cv_struct_dirent_d_ino" in + *yes) + +printf "%s\n" "#define D_INO_IN_DIRENT 1" >>confdefs.h + + ;; + esac + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for d_type member in directory struct" >&5 +printf %s "checking for d_type member in directory struct... " >&6; } +if test ${gl_cv_struct_dirent_d_type+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main (void) +{ +struct dirent dp; dp.d_type = 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_struct_dirent_d_type=yes +else $as_nop + gl_cv_struct_dirent_d_type=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_struct_dirent_d_type" >&5 +printf "%s\n" "$gl_cv_struct_dirent_d_type" >&6; } + if test $gl_cv_struct_dirent_d_type = yes; then + +printf "%s\n" "#define HAVE_STRUCT_DIRENT_D_TYPE 1" >>confdefs.h + + fi + + + + + + + + + + + + + + + ac_fn_c_check_func "$LINENO" "dirfd" "ac_cv_func_dirfd" +if test "x$ac_cv_func_dirfd" = xyes +then : + printf "%s\n" "#define HAVE_DIRFD 1" >>confdefs.h + +fi + + ac_fn_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_dirfd" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_DIRFD $ac_have_decl" >>confdefs.h + + if test $ac_cv_have_decl_dirfd = no; then + HAVE_DECL_DIRFD=0 + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether dirfd is a macro" >&5 +printf %s "checking whether dirfd is a macro... " >&6; } +if test ${gl_cv_func_dirfd_macro+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#ifdef dirfd + dirent_header_defines_dirfd +#endif +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "dirent_header_defines_dirfd" >/dev/null 2>&1 +then : + gl_cv_func_dirfd_macro=yes +else $as_nop + gl_cv_func_dirfd_macro=no +fi +rm -rf conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dirfd_macro" >&5 +printf "%s\n" "$gl_cv_func_dirfd_macro" >&6; } + + # Use the replacement if we have no function or macro with that name, + # or if OS/2 kLIBC whose dirfd() does not work. + # Replace only if the system declares dirfd already. + case $ac_cv_func_dirfd,$gl_cv_func_dirfd_macro,$host_os,$ac_cv_have_decl_dirfd in + no,no,*,yes | *,*,os2*,yes) + REPLACE_DIRFD=1 + +printf "%s\n" "#define REPLACE_DIRFD 1" >>confdefs.h +;; + esac + + + if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no || test $REPLACE_DIRFD = 1; then + GL_COND_OBJ_DIRFD_TRUE= + GL_COND_OBJ_DIRFD_FALSE='#' +else + GL_COND_OBJ_DIRFD_TRUE='#' + GL_COND_OBJ_DIRFD_FALSE= +fi +: + if test -z "${GL_COND_OBJ_DIRFD_TRUE}" && test -z "${GL_COND_OBJ_DIRFD_FALSE}"; then + GL_COND_OBJ_DIRFD_TRUE='#' + GL_COND_OBJ_DIRFD_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_DIRFD_TRUE"; then : + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to get the file descriptor associated with an open DIR*" >&5 +printf %s "checking how to get the file descriptor associated with an open DIR*... " >&6; } +if test ${gl_cv_sys_dir_fd_member_name+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + dirfd_save_CFLAGS=$CFLAGS + for ac_expr in d_fd dd_fd; do + + CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include +int +main (void) +{ +DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + dir_fd_found=yes + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$dirfd_save_CFLAGS + test "$dir_fd_found" = yes && break + done + test "$dir_fd_found" = yes || ac_expr=no_such_member + + gl_cv_sys_dir_fd_member_name=$ac_expr + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_dir_fd_member_name" >&5 +printf "%s\n" "$gl_cv_sys_dir_fd_member_name" >&6; } + if test $gl_cv_sys_dir_fd_member_name != no_such_member; then + +printf "%s\n" "#define DIR_FD_MEMBER_NAME $gl_cv_sys_dir_fd_member_name" >>confdefs.h + + fi + + + +fi + + + + + + + + + + GL_GNULIB_DIRFD=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_DIRFD 1" >>confdefs.h + + + + + +printf "%s\n" "#define GNULIB_DIRNAME 1" >>confdefs.h + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5 +printf %s "checking whether // is distinct from /... " >&6; } +if test ${gl_cv_double_slash_root+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test x"$cross_compiling" = xyes ; then + # When cross-compiling, there is no way to tell whether // is special + # short of a list of hosts. However, the only known hosts to date + # that have a distinct // are Apollo DomainOS (too old to port to), + # Cygwin, and z/OS. If anyone knows of another system for which // has + # special semantics and is distinct from /, please report it to + # . + case $host in + *-cygwin | i370-ibm-openedition) + gl_cv_double_slash_root=yes ;; + *) + # Be optimistic and assume that / and // are the same when we + # don't know. + gl_cv_double_slash_root='unknown, assuming no' ;; + esac + else + set x `ls -di / // 2>/dev/null` + if test "$2" = "$4" && wc //dev/null >/dev/null 2>&1; then + gl_cv_double_slash_root=no + else + gl_cv_double_slash_root=yes + fi + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_double_slash_root" >&5 +printf "%s\n" "$gl_cv_double_slash_root" >&6; } + if test "$gl_cv_double_slash_root" = yes; then + +printf "%s\n" "#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h + + fi + + + + + + if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then + REPLACE_DUP=1 + fi + + + + + + if test $ac_cv_func_fchdir = no; then + HAVE_FCHDIR=0 + fi + + if test $HAVE_FCHDIR = 0; then + REPLACE_DUP=1 + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether dup works" >&5 +printf %s "checking whether dup works... " >&6; } +if test ${gl_cv_func_dup_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess no on native Windows. + mingw*) gl_cv_func_dup_works="guessing no" ;; + *) gl_cv_func_dup_works="guessing yes" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + #include + + +$gl_mda_defines + +int +main (void) +{ +/* On OS/2 kLIBC, dup does not work on a directory fd. */ + int fd = open (".", O_RDONLY); + return fd < 0 ? 1 : dup (fd) < 0 ? 2 : 0; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_dup_works=yes +else $as_nop + gl_cv_func_dup_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dup_works" >&5 +printf "%s\n" "$gl_cv_func_dup_works" >&6; } + case "$gl_cv_func_dup_works" in + *yes) ;; + *) + REPLACE_DUP=1 + ;; + esac + + + if test $REPLACE_DUP = 1; then + GL_COND_OBJ_DUP_TRUE= + GL_COND_OBJ_DUP_FALSE='#' +else + GL_COND_OBJ_DUP_TRUE='#' + GL_COND_OBJ_DUP_FALSE= +fi +: + if test -z "${GL_COND_OBJ_DUP_TRUE}" && test -z "${GL_COND_OBJ_DUP_FALSE}"; then + GL_COND_OBJ_DUP_TRUE='#' + GL_COND_OBJ_DUP_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_DUP_TRUE"; then : + + : + +fi + + + + + + + + + + GL_GNULIB_DUP=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_DUP 1" >>confdefs.h + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5 +printf %s "checking whether dup2 works... " >&6; } +if test ${gl_cv_func_dup2_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + mingw*) # on this platform, dup2 always returns 0 for success + gl_cv_func_dup2_works="guessing no" ;; + cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0 + gl_cv_func_dup2_works="guessing no" ;; + aix* | freebsd*) + # on AIX 7.1 and FreeBSD 6.1, dup2 (1,toobig) gives EMFILE, + # not EBADF. + gl_cv_func_dup2_works="guessing no" ;; + haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC. + gl_cv_func_dup2_works="guessing no" ;; + *-android*) # implemented using dup3(), which fails if oldfd == newfd + gl_cv_func_dup2_works="guessing no" ;; + os2*) # on OS/2 kLIBC, dup2() does not work on a directory fd. + gl_cv_func_dup2_works="guessing no" ;; + *) gl_cv_func_dup2_works="guessing yes" ;; + esac +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + #include + #include + #include + + +$gl_mda_defines + + #ifndef RLIM_SAVED_CUR + # define RLIM_SAVED_CUR RLIM_INFINITY + #endif + #ifndef RLIM_SAVED_MAX + # define RLIM_SAVED_MAX RLIM_INFINITY + #endif + +int +main (void) +{ +int result = 0; + int bad_fd = INT_MAX; + struct rlimit rlim; + if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 + && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX + && rlim.rlim_cur != RLIM_INFINITY + && rlim.rlim_cur != RLIM_SAVED_MAX + && rlim.rlim_cur != RLIM_SAVED_CUR) + bad_fd = rlim.rlim_cur; + #ifdef FD_CLOEXEC + if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1) + result |= 1; + #endif + if (dup2 (1, 1) != 1) + result |= 2; + #ifdef FD_CLOEXEC + if (fcntl (1, F_GETFD) != FD_CLOEXEC) + result |= 4; + #endif + close (0); + if (dup2 (0, 0) != -1) + result |= 8; + /* Many gnulib modules require POSIX conformance of EBADF. */ + if (dup2 (2, bad_fd) == -1 && errno != EBADF) + result |= 16; + /* Flush out some cygwin core dumps. */ + if (dup2 (2, -1) != -1 || errno != EBADF) + result |= 32; + dup2 (2, 255); + dup2 (2, 256); + /* On OS/2 kLIBC, dup2() does not work on a directory fd. */ + { + int fd = open (".", O_RDONLY); + if (fd == -1) + result |= 64; + else if (dup2 (fd, fd + 1) == -1) + result |= 128; + close (fd); + } + return result; + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_dup2_works=yes +else $as_nop + gl_cv_func_dup2_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dup2_works" >&5 +printf "%s\n" "$gl_cv_func_dup2_works" >&6; } + case "$gl_cv_func_dup2_works" in + *yes) ;; + *) + REPLACE_DUP2=1 + ac_fn_c_check_func "$LINENO" "setdtablesize" "ac_cv_func_setdtablesize" +if test "x$ac_cv_func_setdtablesize" = xyes +then : + printf "%s\n" "#define HAVE_SETDTABLESIZE 1" >>confdefs.h + +fi + + ;; + esac + + + + + if test $ac_cv_func_fchdir = no; then + HAVE_FCHDIR=0 + fi + + if test $HAVE_FCHDIR = 0; then + REPLACE_DUP2=1 + fi + + + + if test $REPLACE_DUP2 = 1; then + GL_COND_OBJ_DUP2_TRUE= + GL_COND_OBJ_DUP2_FALSE='#' +else + GL_COND_OBJ_DUP2_TRUE='#' + GL_COND_OBJ_DUP2_FALSE= +fi +: + if test -z "${GL_COND_OBJ_DUP2_TRUE}" && test -z "${GL_COND_OBJ_DUP2_FALSE}"; then + GL_COND_OBJ_DUP2_TRUE='#' + GL_COND_OBJ_DUP2_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_DUP2_TRUE"; then : + + + +fi + + + + + + + + + + GL_GNULIB_DUP2=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_DUP2 1" >>confdefs.h + + + + + + + + + + + + + + + GL_GNULIB_ENVIRON=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_ENVIRON 1" >>confdefs.h + + + + + + + + + case "$GL_GENERATE_ERRNO_H" in + false) ERRNO_H='' ;; + true) + if test -z "$ERRNO_H"; then + ERRNO_H="${gl_source_base_prefix}errno.h" + fi + ;; + *) echo "*** GL_GENERATE_ERRNO_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_ERRNO_H; then + GL_GENERATE_ERRNO_H_TRUE= + GL_GENERATE_ERRNO_H_FALSE='#' +else + GL_GENERATE_ERRNO_H_TRUE='#' + GL_GENERATE_ERRNO_H_FALSE= +fi +: + if test -z "${GL_GENERATE_ERRNO_H_TRUE}" && test -z "${GL_GENERATE_ERRNO_H_FALSE}"; then + GL_GENERATE_ERRNO_H_TRUE='#' + GL_GENERATE_ERRNO_H_FALSE='#' + fi + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5 +printf %s "checking for error_at_line... " >&6; } +if test ${ac_cv_lib_error_at_line+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +error_at_line (0, 0, "", 0, "an error occurred"); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_error_at_line=yes +else $as_nop + ac_cv_lib_error_at_line=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5 +printf "%s\n" "$ac_cv_lib_error_at_line" >&6; } + + + if test "$ac_cv_lib_error_at_line" = no; then + GL_COND_OBJ_ERROR_TRUE= + GL_COND_OBJ_ERROR_FALSE='#' +else + GL_COND_OBJ_ERROR_TRUE='#' + GL_COND_OBJ_ERROR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_ERROR_TRUE}" && test -z "${GL_COND_OBJ_ERROR_FALSE}"; then + GL_COND_OBJ_ERROR_TRUE='#' + GL_COND_OBJ_ERROR_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_ERROR_TRUE"; then : + + + + + + : + + +fi + + + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error:3:c-format" + + + + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error_at_line:5:c-format" + + + + + + + + if test $ac_cv_have_decl_fchdir = no; then + HAVE_DECL_FCHDIR=0 + fi + + + if test $HAVE_FCHDIR = 0; then + +printf "%s\n" "#define REPLACE_FCHDIR 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether open can visit directories" >&5 +printf %s "checking whether open can visit directories... " >&6; } +if test ${gl_cv_func_open_directory_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_open_directory_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_open_directory_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_open_directory_works="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_open_directory_works="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + + +$gl_mda_defines + +int +main (void) +{ +return open(".", O_RDONLY) < 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_open_directory_works=yes +else $as_nop + gl_cv_func_open_directory_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_open_directory_works" >&5 +printf "%s\n" "$gl_cv_func_open_directory_works" >&6; } + case "$gl_cv_func_open_directory_works" in + *yes) ;; + *) + +printf "%s\n" "#define REPLACE_OPEN_DIRECTORY 1" >>confdefs.h + + ;; + esac + fi + + + if test $HAVE_FCHDIR = 0; then + GL_COND_OBJ_FCHDIR_TRUE= + GL_COND_OBJ_FCHDIR_FALSE='#' +else + GL_COND_OBJ_FCHDIR_TRUE='#' + GL_COND_OBJ_FCHDIR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_FCHDIR_TRUE}" && test -z "${GL_COND_OBJ_FCHDIR_FALSE}"; then + GL_COND_OBJ_FCHDIR_TRUE='#' + GL_COND_OBJ_FCHDIR_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_FCHDIR_TRUE"; then : + + : + +fi + + + + + + + + + + GL_GNULIB_FCHDIR=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_FCHDIR 1" >>confdefs.h + + + + + + + + + if test $ac_cv_func_fcntl = no; then + + + + if test $ac_cv_func_fcntl = no; then + HAVE_FCNTL=0 + else + REPLACE_FCNTL=1 + fi + + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fcntl handles F_DUPFD correctly" >&5 +printf %s "checking whether fcntl handles F_DUPFD correctly... " >&6; } +if test ${gl_cv_func_fcntl_f_dupfd_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case $host_os in + aix* | cygwin* | haiku*) + gl_cv_func_fcntl_f_dupfd_works="guessing no" ;; + *) gl_cv_func_fcntl_f_dupfd_works="guessing yes" ;; + esac +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + #include + #include + #include + + +$gl_mda_defines + + #ifndef RLIM_SAVED_CUR + # define RLIM_SAVED_CUR RLIM_INFINITY + #endif + #ifndef RLIM_SAVED_MAX + # define RLIM_SAVED_MAX RLIM_INFINITY + #endif + +int +main (void) +{ +int result = 0; + int bad_fd = INT_MAX; + struct rlimit rlim; + if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 + && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX + && rlim.rlim_cur != RLIM_INFINITY + && rlim.rlim_cur != RLIM_SAVED_MAX + && rlim.rlim_cur != RLIM_SAVED_CUR) + bad_fd = rlim.rlim_cur; + if (fcntl (0, F_DUPFD, -1) != -1) result |= 1; + if (errno != EINVAL) result |= 2; + if (fcntl (0, F_DUPFD, bad_fd) != -1) result |= 4; + if (errno != EINVAL) result |= 8; + /* On OS/2 kLIBC, F_DUPFD does not work on a directory fd */ + { + int fd; + fd = open (".", O_RDONLY); + if (fd == -1) + result |= 16; + else if (fcntl (fd, F_DUPFD, STDERR_FILENO + 1) == -1) + result |= 32; + + close (fd); + } + return result; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_fcntl_f_dupfd_works=yes +else $as_nop + gl_cv_func_fcntl_f_dupfd_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fcntl_f_dupfd_works" >&5 +printf "%s\n" "$gl_cv_func_fcntl_f_dupfd_works" >&6; } + case $gl_cv_func_fcntl_f_dupfd_works in + *yes) ;; + *) + + + if test $ac_cv_func_fcntl = no; then + HAVE_FCNTL=0 + else + REPLACE_FCNTL=1 + fi + + +printf "%s\n" "#define FCNTL_DUPFD_BUGGY 1" >>confdefs.h + ;; + esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fcntl understands F_DUPFD_CLOEXEC" >&5 +printf %s "checking whether fcntl understands F_DUPFD_CLOEXEC... " >&6; } +if test ${gl_cv_func_fcntl_f_dupfd_cloexec+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess no on NetBSD. + netbsd*) gl_cv_func_fcntl_f_dupfd_cloexec="guessing no" ;; + *) gl_cv_func_fcntl_f_dupfd_cloexec="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + int main (int argc, char *argv[]) + { + if (argc == 1) + /* parent process */ + { + if (fcntl (1, F_DUPFD_CLOEXEC, 10) < 0) + return 1; + return execl ("./conftest", "./conftest", "child", NULL); + } + else + /* child process */ + return (fcntl (10, F_GETFL) < 0 ? 0 : 42); + } + + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __linux__ +/* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace + it to support the semantics on older kernels that failed with EINVAL. */ +choke me +#endif + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_func_fcntl_f_dupfd_cloexec=yes +else $as_nop + gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +else $as_nop + gl_cv_func_fcntl_f_dupfd_cloexec=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fcntl_f_dupfd_cloexec" >&5 +printf "%s\n" "$gl_cv_func_fcntl_f_dupfd_cloexec" >&6; } + case "$gl_cv_func_fcntl_f_dupfd_cloexec" in + *yes) ;; + *) + + + if test $ac_cv_func_fcntl = no; then + HAVE_FCNTL=0 + else + REPLACE_FCNTL=1 + fi + + ;; + esac + fi + + + + + if test $ac_cv_func_fchdir = no; then + HAVE_FCHDIR=0 + fi + + if test $HAVE_FCHDIR = 0; then + + + + if test $ac_cv_func_fcntl = no; then + HAVE_FCNTL=0 + else + REPLACE_FCNTL=1 + fi + + fi + + + + if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then + GL_COND_OBJ_FCNTL_TRUE= + GL_COND_OBJ_FCNTL_FALSE='#' +else + GL_COND_OBJ_FCNTL_TRUE='#' + GL_COND_OBJ_FCNTL_FALSE= +fi +: + if test -z "${GL_COND_OBJ_FCNTL_TRUE}" && test -z "${GL_COND_OBJ_FCNTL_FALSE}"; then + GL_COND_OBJ_FCNTL_TRUE='#' + GL_COND_OBJ_FCNTL_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_FCNTL=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_FCNTL 1" >>confdefs.h + + + + + + + + + + + + +printf "%s\n" "#define GNULIB_FD_SAFER_FLAG 1" >>confdefs.h + + + + + + + + ac_fn_check_decl "$LINENO" "fdopendir" "ac_cv_have_decl_fdopendir" " +#include + +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_fdopendir" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_FDOPENDIR $ac_have_decl" >>confdefs.h +if test $ac_have_decl = 1 +then : + +else $as_nop + HAVE_DECL_FDOPENDIR=0 +fi + + + if test $ac_cv_func_fdopendir = no; then + HAVE_FDOPENDIR=0 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fdopendir works" >&5 +printf %s "checking whether fdopendir works... " >&6; } +if test ${gl_cv_func_fdopendir_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_fdopendir_works="guessing yes" ;; + # Guess yes on musl systems. + *-musl*) gl_cv_func_fdopendir_works="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_fdopendir_works="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include + + +$gl_mda_defines + +#if !HAVE_DECL_FDOPENDIR +extern +# ifdef __cplusplus +"C" +# endif +DIR *fdopendir (int); +#endif + +int +main (void) +{ +int result = 0; + int fd = open ("conftest.c", O_RDONLY); + if (fd < 0) result |= 1; + if (fdopendir (fd)) result |= 2; + if (close (fd)) result |= 4; + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_fdopendir_works=yes +else $as_nop + gl_cv_func_fdopendir_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fdopendir_works" >&5 +printf "%s\n" "$gl_cv_func_fdopendir_works" >&6; } + case "$gl_cv_func_fdopendir_works" in + *yes) ;; + *) + REPLACE_FDOPENDIR=1 + ;; + esac + fi + + + if test $HAVE_FDOPENDIR = 0 || test $REPLACE_FDOPENDIR = 1; then + GL_COND_OBJ_FDOPENDIR_TRUE= + GL_COND_OBJ_FDOPENDIR_FALSE='#' +else + GL_COND_OBJ_FDOPENDIR_TRUE='#' + GL_COND_OBJ_FDOPENDIR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_FDOPENDIR_TRUE}" && test -z "${GL_COND_OBJ_FDOPENDIR_FALSE}"; then + GL_COND_OBJ_FDOPENDIR_TRUE='#' + GL_COND_OBJ_FDOPENDIR_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_FDOPENDIR=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_FDOPENDIR 1" >>confdefs.h + + + + + +printf "%s\n" "#define GNULIB_FDOPENDIR 1" >>confdefs.h + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for flexible array member" >&5 +printf %s "checking for flexible array member... " >&6; } +if test ${ac_cv_c_flexmember+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + #include + struct m { struct m *next, **list; char name[]; }; + struct s { struct s *p; struct m *m; int n; double d[]; }; +int +main (void) +{ +int m = getchar (); + size_t nbytes = offsetof (struct s, d) + m * sizeof (double); + nbytes += sizeof (struct s) - 1; + nbytes -= nbytes % sizeof (struct s); + struct s *p = malloc (nbytes); + p->p = p; + p->m = NULL; + p->d[0] = 0.0; + return p->d != (double *) NULL; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_flexmember=yes +else $as_nop + ac_cv_c_flexmember=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_flexmember" >&5 +printf "%s\n" "$ac_cv_c_flexmember" >&6; } + if test $ac_cv_c_flexmember = yes; then + +printf "%s\n" "#define FLEXIBLE_ARRAY_MEMBER /**/" >>confdefs.h + + else + printf "%s\n" "#define FLEXIBLE_ARRAY_MEMBER 1" >>confdefs.h + + fi + + + + + GL_GENERATE_FLOAT_H=false + REPLACE_FLOAT_LDBL=0 + case "$host_os" in + aix* | beos* | openbsd* | mirbsd* | irix*) + GL_GENERATE_FLOAT_H=true + ;; + freebsd* | dragonfly*) + case "$host_cpu" in + i[34567]86 ) + GL_GENERATE_FLOAT_H=true + ;; + x86_64 ) + # On x86_64 systems, the C compiler may still be generating + # 32-bit code. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __LP64__ || defined __x86_64__ || defined __amd64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + GL_GENERATE_FLOAT_H=true +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + esac + ;; + linux*) + case "$host_cpu" in + powerpc*) + GL_GENERATE_FLOAT_H=true + ;; + esac + ;; + esac + case "$host_os" in + aix* | freebsd* | dragonfly* | linux*) + if $GL_GENERATE_FLOAT_H; then + REPLACE_FLOAT_LDBL=1 + fi + ;; + esac + + REPLACE_ITOLD=0 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether conversion from 'int' to 'long double' works" >&5 +printf %s "checking whether conversion from 'int' to 'long double' works... " >&6; } +if test ${gl_cv_func_itold_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test "$cross_compiling" = yes +then : + case "$host" in + sparc*-*-linux*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __LP64__ || defined __arch64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_func_itold_works="guessing no" +else $as_nop + gl_cv_func_itold_works="guessing yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_itold_works="guessing yes" ;; + *) gl_cv_func_itold_works="guessing yes" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int i = -1; +volatile long double ld; +int main () +{ + ld += i * 1.0L; + if (ld > 0) + return 1; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_itold_works=yes +else $as_nop + gl_cv_func_itold_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_itold_works" >&5 +printf "%s\n" "$gl_cv_func_itold_works" >&6; } + case "$gl_cv_func_itold_works" in + *no) + REPLACE_ITOLD=1 + GL_GENERATE_FLOAT_H=true + ;; + esac + + if $GL_GENERATE_FLOAT_H; then + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_float_h='<'float.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_float_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'float.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_float_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_float_h + gl_cv_next_float_h='"'$gl_header'"' + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_float_h" >&5 +printf "%s\n" "$gl_cv_next_float_h" >&6; } + fi + NEXT_FLOAT_H=$gl_cv_next_float_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'float.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_float_h + fi + NEXT_AS_FIRST_DIRECTIVE_FLOAT_H=$gl_next_as_first_directive + + + + + fi + + + + + + + case "$GL_GENERATE_FLOAT_H" in + false) FLOAT_H='' ;; + true) + if test -z "$FLOAT_H"; then + FLOAT_H="${gl_source_base_prefix}float.h" + fi + ;; + *) echo "*** GL_GENERATE_FLOAT_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_FLOAT_H; then + GL_GENERATE_FLOAT_H_TRUE= + GL_GENERATE_FLOAT_H_FALSE='#' +else + GL_GENERATE_FLOAT_H_TRUE='#' + GL_GENERATE_FLOAT_H_FALSE= +fi +: + if test -z "${GL_GENERATE_FLOAT_H_TRUE}" && test -z "${GL_GENERATE_FLOAT_H_FALSE}"; then + GL_GENERATE_FLOAT_H_TRUE='#' + GL_GENERATE_FLOAT_H_FALSE='#' + fi + + + + + + + + if test $REPLACE_FLOAT_LDBL = 1; then + GL_COND_OBJ_FLOAT_TRUE= + GL_COND_OBJ_FLOAT_FALSE='#' +else + GL_COND_OBJ_FLOAT_TRUE='#' + GL_COND_OBJ_FLOAT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_FLOAT_TRUE}" && test -z "${GL_COND_OBJ_FLOAT_FALSE}"; then + GL_COND_OBJ_FLOAT_TRUE='#' + GL_COND_OBJ_FLOAT_FALSE='#' + fi + + + if test $REPLACE_ITOLD = 1; then + GL_COND_OBJ_ITOLD_TRUE= + GL_COND_OBJ_ITOLD_FALSE='#' +else + GL_COND_OBJ_ITOLD_TRUE='#' + GL_COND_OBJ_ITOLD_FALSE= +fi +: + if test -z "${GL_COND_OBJ_ITOLD_TRUE}" && test -z "${GL_COND_OBJ_ITOLD_FALSE}"; then + GL_COND_OBJ_ITOLD_TRUE='#' + GL_COND_OBJ_ITOLD_FALSE='#' + fi + + + + + if test $ac_cv_func_flock = no; then + HAVE_FLOCK=0 + fi + + + if test $HAVE_FLOCK = 0; then + GL_COND_OBJ_FLOCK_TRUE= + GL_COND_OBJ_FLOCK_FALSE='#' +else + GL_COND_OBJ_FLOCK_TRUE='#' + GL_COND_OBJ_FLOCK_FALSE= +fi +: + if test -z "${GL_COND_OBJ_FLOCK_TRUE}" && test -z "${GL_COND_OBJ_FLOCK_FALSE}"; then + GL_COND_OBJ_FLOCK_TRUE='#' + GL_COND_OBJ_FLOCK_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_FLOCK_TRUE"; then : + + + + + + ac_fn_c_check_member "$LINENO" "struct flock" "l_type" "ac_cv_member_struct_flock_l_type" "#include +" +if test "x$ac_cv_member_struct_flock_l_type" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_FLOCK_L_TYPE 1" >>confdefs.h + + +fi + + + +fi + + + + + + + + + + GL_GNULIB_FLOCK=1 + + + + + + + + + gl_fnmatch_required_lowercase=` + echo $gl_fnmatch_required | LC_ALL=C tr '[A-Z]' '[a-z]' + ` + + if test $ac_cv_func_fnmatch = no; then + HAVE_FNMATCH=0 + else + gl_fnmatch_cache_var="gl_cv_func_fnmatch_${gl_fnmatch_required_lowercase}" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working $gl_fnmatch_required fnmatch" >&5 +printf %s "checking for working $gl_fnmatch_required fnmatch... " >&6; } +if eval test \${$gl_fnmatch_cache_var+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test $gl_fnmatch_required = GNU; then + gl_fnmatch_gnu_start= + gl_fnmatch_gnu_end= + else + gl_fnmatch_gnu_start='#if 0' + gl_fnmatch_gnu_end='#endif' + fi + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on musl systems. + *-musl*) eval "$gl_fnmatch_cache_var=\"guessing yes\"" ;; + # Guess no otherwise, even on glibc systems. + *) eval "$gl_fnmatch_cache_var=\"guessing no\"" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + static int + y (char const *pattern, char const *string, int flags) + { + return fnmatch (pattern, string, flags) == 0; + } + static int + n (char const *pattern, char const *string, int flags) + { + return fnmatch (pattern, string, flags) == FNM_NOMATCH; + } + +int +main (void) +{ +char const *Apat = 'A' < '\\\\' ? "[A-\\\\\\\\]" : "[\\\\\\\\-A]"; + char const *apat = 'a' < '\\\\' ? "[a-\\\\\\\\]" : "[\\\\\\\\-a]"; + static char const A_1[] = { 'A' - 1, 0 }; + static char const A01[] = { 'A' + 1, 0 }; + static char const a_1[] = { 'a' - 1, 0 }; + static char const a01[] = { 'a' + 1, 0 }; + static char const bs_1[] = { '\\\\' - 1, 0 }; + static char const bs01[] = { '\\\\' + 1, 0 }; + int result = 0; + if (!n ("a*", "", 0)) + return 1; + if (!y ("a*", "abc", 0)) + return 1; + if (!y ("[/b", "[/b", 0)) /*"]]"*/ /* glibc Bugzilla bug 12378 */ + return 1; + if (!n ("d*/*1", "d/s/1", FNM_PATHNAME)) + return 2; + if (!y ("a\\\\bc", "abc", 0)) + return 3; + if (!n ("a\\\\bc", "abc", FNM_NOESCAPE)) + return 3; + if (!y ("*x", ".x", 0)) + return 4; + if (!n ("*x", ".x", FNM_PERIOD)) + return 4; + if (!y (Apat, "\\\\", 0)) + return 5; + if (!y (Apat, "A", 0)) + return 5; + if (!y (apat, "\\\\", 0)) + return 5; + if (!y (apat, "a", 0)) + return 5; + if (!(n (Apat, A_1, 0) == ('A' < '\\\\'))) + return 5; + if (!(n (apat, a_1, 0) == ('a' < '\\\\'))) + return 5; + if (!(y (Apat, A01, 0) == ('A' < '\\\\'))) + return 5; + if (!(y (apat, a01, 0) == ('a' < '\\\\'))) + return 5; + if (!(y (Apat, bs_1, 0) == ('A' < '\\\\'))) + return 5; + if (!(y (apat, bs_1, 0) == ('a' < '\\\\'))) + return 5; + if (!(n (Apat, bs01, 0) == ('A' < '\\\\'))) + return 5; + if (!(n (apat, bs01, 0) == ('a' < '\\\\'))) + return 5; + $gl_fnmatch_gnu_start + if (!y ("xxXX", "xXxX", FNM_CASEFOLD)) + result |= 8; + if (!y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH)) + result |= 16; + if (!n ("d*/*1", "d/s/1", FNM_FILE_NAME)) + result |= 32; + if (!y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR)) + result |= 64; + if (!y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR)) + result |= 64; + if (!y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR)) + result |= 64; + $gl_fnmatch_gnu_end + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + eval "$gl_fnmatch_cache_var=yes" +else $as_nop + eval "$gl_fnmatch_cache_var=no" +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +eval ac_res=\$$gl_fnmatch_cache_var + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval "gl_fnmatch_result=\"\$$gl_fnmatch_cache_var\"" + case "$gl_fnmatch_result" in + *yes) ;; + *) REPLACE_FNMATCH=1 ;; + esac + fi + if test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1; then + + + + + + + GL_GENERATE_FNMATCH_H=true + + fi + + + + + + case "$GL_GENERATE_FNMATCH_H" in + false) FNMATCH_H='' ;; + true) + if test -z "$FNMATCH_H"; then + FNMATCH_H="${gl_source_base_prefix}fnmatch.h" + fi + ;; + *) echo "*** GL_GENERATE_FNMATCH_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_FNMATCH_H; then + GL_GENERATE_FNMATCH_H_TRUE= + GL_GENERATE_FNMATCH_H_FALSE='#' +else + GL_GENERATE_FNMATCH_H_TRUE='#' + GL_GENERATE_FNMATCH_H_FALSE= +fi +: + if test -z "${GL_GENERATE_FNMATCH_H_TRUE}" && test -z "${GL_GENERATE_FNMATCH_H_FALSE}"; then + GL_GENERATE_FNMATCH_H_TRUE='#' + GL_GENERATE_FNMATCH_H_FALSE='#' + fi + + + + + + if test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext" + + + + + + fi + + + + + + + + + + GL_GNULIB_FNMATCH=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_FNMATCH 1" >>confdefs.h + + + + + + + + + if test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext" + + + + + + fi + + +printf "%s\n" "#define GNULIB_FNMATCH_GNU 1" >>confdefs.h + + + + + + + + + + + + + case "$GL_GENERATE_FNMATCH_H" in + false) FNMATCH_H='' ;; + true) + if test -z "$FNMATCH_H"; then + FNMATCH_H="${gl_source_base_prefix}fnmatch.h" + fi + ;; + *) echo "*** GL_GENERATE_FNMATCH_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_FNMATCH_H; then + GL_GENERATE_FNMATCH_H_TRUE= + GL_GENERATE_FNMATCH_H_FALSE='#' +else + GL_GENERATE_FNMATCH_H_TRUE='#' + GL_GENERATE_FNMATCH_H_FALSE= +fi +: + if test -z "${GL_GENERATE_FNMATCH_H_TRUE}" && test -z "${GL_GENERATE_FNMATCH_H_FALSE}"; then + GL_GENERATE_FNMATCH_H_TRUE='#' + GL_GENERATE_FNMATCH_H_FALSE='#' + fi + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether free is known to preserve errno" >&5 +printf %s "checking whether free is known to preserve errno... " >&6; } +if test ${gl_cv_func_free_preserves_errno+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +#if 2 < __GLIBC__ + (33 <= __GLIBC_MINOR__) + #elif defined __OpenBSD__ + #elif defined __sun + #else + #error "'free' is not known to preserve errno" + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_func_free_preserves_errno=yes +else $as_nop + gl_cv_func_free_preserves_errno=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_free_preserves_errno" >&5 +printf "%s\n" "$gl_cv_func_free_preserves_errno" >&6; } + + case $gl_cv_func_free_preserves_errno in + *yes) + +printf "%s\n" "#define HAVE_FREE_POSIX 1" >>confdefs.h + + ;; + *) REPLACE_FREE=1 ;; + esac + + + if test $REPLACE_FREE = 1; then + GL_COND_OBJ_FREE_TRUE= + GL_COND_OBJ_FREE_FALSE='#' +else + GL_COND_OBJ_FREE_TRUE='#' + GL_COND_OBJ_FREE_FALSE= +fi +: + if test -z "${GL_COND_OBJ_FREE_TRUE}" && test -z "${GL_COND_OBJ_FREE_FALSE}"; then + GL_COND_OBJ_FREE_TRUE='#' + GL_COND_OBJ_FREE_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_FREE_TRUE"; then : + + : + +fi + + + + + + + + + + GL_GNULIB_FREE_POSIX=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_FREE_POSIX 1" >>confdefs.h + + + + + + + + case "$host_os" in + mingw* | solaris*) + REPLACE_FSTAT=1 + ;; + esac + + + + + + if test $ac_cv_func_fchdir = no; then + HAVE_FCHDIR=0 + fi + + if test $HAVE_FCHDIR = 0; then + case "$gl_cv_func_open_directory_works" in + *yes) ;; + *) + REPLACE_FSTAT=1 + ;; + esac + fi + + + + if test $REPLACE_FSTAT = 1; then + GL_COND_OBJ_FSTAT_TRUE= + GL_COND_OBJ_FSTAT_FALSE='#' +else + GL_COND_OBJ_FSTAT_TRUE='#' + GL_COND_OBJ_FSTAT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_FSTAT_TRUE}" && test -z "${GL_COND_OBJ_FSTAT_FALSE}"; then + GL_COND_OBJ_FSTAT_TRUE='#' + GL_COND_OBJ_FSTAT_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_FSTAT_TRUE"; then : + + case "$host_os" in + mingw*) + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS stat-w32.$ac_objext" + + ;; + esac + + + + : + + +fi + + + + + + + + + + GL_GNULIB_FSTAT=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_FSTAT 1" >>confdefs.h + + + + + + + + + + + if test $ac_cv_func_fstatat = no; then + HAVE_FSTATAT=0 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fstatat (..., 0) works" >&5 +printf %s "checking whether fstatat (..., 0) works... " >&6; } +if test ${gl_cv_func_fstatat_zero_flag+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + aix*) gl_cv_func_fstatat_zero_flag="guessing no";; + *) gl_cv_func_fstatat_zero_flag="guessing yes";; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + int + main (void) + { + struct stat a; + return fstatat (AT_FDCWD, ".", &a, 0) != 0; + } + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_fstatat_zero_flag=yes +else $as_nop + gl_cv_func_fstatat_zero_flag=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fstatat_zero_flag" >&5 +printf "%s\n" "$gl_cv_func_fstatat_zero_flag" >&6; } + + case $gl_cv_func_fstatat_zero_flag+$gl_cv_func_lstat_dereferences_slashed_symlink in + *yes+*yes) ;; + *) REPLACE_FSTATAT=1 ;; + esac + + case $host_os in + solaris*) + REPLACE_FSTATAT=1 ;; + esac + + case $REPLACE_FSTATAT,$gl_cv_func_fstatat_zero_flag in + 1,*yes) + +printf "%s\n" "#define HAVE_WORKING_FSTATAT_ZERO_FLAG 1" >>confdefs.h + + ;; + esac + fi + + + if test $HAVE_FSTATAT = 0 || test $REPLACE_FSTATAT = 1; then + GL_COND_OBJ_FSTATAT_TRUE= + GL_COND_OBJ_FSTATAT_FALSE='#' +else + GL_COND_OBJ_FSTATAT_TRUE='#' + GL_COND_OBJ_FSTATAT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_FSTATAT_TRUE}" && test -z "${GL_COND_OBJ_FSTATAT_FALSE}"; then + GL_COND_OBJ_FSTATAT_TRUE='#' + GL_COND_OBJ_FSTATAT_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_FSTATAT=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_FSTATAT 1" >>confdefs.h + + + + + + + + + gl_abort_bug=no + case "$host_os" in + mingw*) + gl_cv_func_getcwd_path_max=yes + ;; + *) + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether getcwd handles long file names properly" >&5 +printf %s "checking whether getcwd handles long file names properly... " >&6; } +if test ${gl_cv_func_getcwd_path_max+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # Arrange for deletion of the temporary directory this test creates. + ac_clean_files="$ac_clean_files confdir3" + if test "$cross_compiling" = yes +then : + # Cross-compilation guesses: + case "$host_os" in + aix*) # On AIX, it has the AIX bug. + gl_cv_func_getcwd_path_max='guessing no, it has the AIX bug' ;; + gnu*) # On Hurd, it is 'yes'. + gl_cv_func_getcwd_path_max='guessing yes' ;; + linux* | kfreebsd*) + # On older Linux+glibc it's 'no, but it is partly working', + # on newer Linux+glibc it's 'yes'. + # On Linux+musl libc, it's 'no, but it is partly working'. + # On kFreeBSD+glibc, it's 'no, but it is partly working'. + gl_cv_func_getcwd_path_max='guessing no, but it is partly working' ;; + *) # If we don't know, obey --enable-cross-guesses. + gl_cv_func_getcwd_path_max="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if HAVE_UNISTD_H +# include +#else +# include +#endif +#include +#include +#include +#include +#include + + +/* Arrange to define PATH_MAX, like "pathmax.h" does. */ +#if HAVE_UNISTD_H +# include +#endif +#include +#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN +# include +#endif +#if !defined PATH_MAX && defined MAXPATHLEN +# define PATH_MAX MAXPATHLEN +#endif +#ifdef __hpux +# undef PATH_MAX +# define PATH_MAX 1024 +#endif +#if defined _WIN32 && ! defined __CYGWIN__ +# undef PATH_MAX +# define PATH_MAX 260 +#endif + + +#ifndef AT_FDCWD +# define AT_FDCWD 0 +#endif +#ifdef ENAMETOOLONG +# define is_ENAMETOOLONG(x) ((x) == ENAMETOOLONG) +#else +# define is_ENAMETOOLONG(x) 0 +#endif + +/* Use the getcwd function, not any macro. */ +#undef getcwd + + + +$gl_mda_defines + + +#ifndef S_IRWXU +# define S_IRWXU 0700 +#endif + +/* The length of this name must be 8. */ +#define DIR_NAME "confdir3" +#define DIR_NAME_LEN 8 +#define DIR_NAME_SIZE (DIR_NAME_LEN + 1) + +/* The length of "../". */ +#define DOTDOTSLASH_LEN 3 + +/* Leftover bytes in the buffer, to work around library or OS bugs. */ +#define BUF_SLOP 20 + +int +main () +{ +#ifndef PATH_MAX + /* The Hurd doesn't define this, so getcwd can't exhibit the bug -- + at least not on a local file system. And if we were to start worrying + about remote file systems, we'd have to enable the wrapper function + all of the time, just to be safe. That's not worth the cost. */ + exit (0); +#elif ((INT_MAX / (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1) \ + - DIR_NAME_SIZE - BUF_SLOP) \ + <= PATH_MAX) + /* FIXME: Assuming there's a system for which this is true, + this should be done in a compile test. */ + exit (0); +#else + char buf[PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1) + + DIR_NAME_SIZE + BUF_SLOP]; + char *cwd = getcwd (buf, PATH_MAX); + size_t initial_cwd_len; + size_t cwd_len; + int fail = 0; + size_t n_chdirs = 0; + + if (cwd == NULL) + exit (10); + + cwd_len = initial_cwd_len = strlen (cwd); + + while (1) + { + size_t dotdot_max = PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN); + char *c = NULL; + + cwd_len += DIR_NAME_SIZE; + /* If mkdir or chdir fails, it could be that this system cannot create + any file with an absolute name longer than PATH_MAX, such as cygwin. + If so, leave fail as 0, because the current working directory can't + be too long for getcwd if it can't even be created. On Linux with + the 9p file system, mkdir fails with error EINVAL when cwd_len gets + too long; ignore this failure because the getcwd() system call + produces good results whereas the gnulib substitute calls getdents64 + which fails with error EPROTO. + For other errors, be pessimistic and consider that as a failure, + too. */ + if (mkdir (DIR_NAME, S_IRWXU) < 0 || chdir (DIR_NAME) < 0) + { + if (! (errno == ERANGE || is_ENAMETOOLONG (errno))) + #ifdef __linux__ + if (! (errno == EINVAL)) + #endif + fail = 20; + break; + } + + if (PATH_MAX <= cwd_len && cwd_len < PATH_MAX + DIR_NAME_SIZE) + { + struct stat sb; + + c = getcwd (buf, PATH_MAX); + if (!c && errno == ENOENT) + { + fail = 11; + break; + } + if (c) + { + fail = 31; + break; + } + if (! (errno == ERANGE || is_ENAMETOOLONG (errno))) + { + fail = 21; + break; + } + + /* Our replacement needs to be able to stat() long ../../paths, + so generate a path larger than PATH_MAX to check, + avoiding the replacement if we can't stat(). */ + c = getcwd (buf, cwd_len + 1); + if (c && !AT_FDCWD && stat (c, &sb) != 0 && is_ENAMETOOLONG (errno)) + { + fail = 32; + break; + } + } + + if (dotdot_max <= cwd_len - initial_cwd_len) + { + if (dotdot_max + DIR_NAME_SIZE < cwd_len - initial_cwd_len) + break; + c = getcwd (buf, cwd_len + 1); + if (!c) + { + if (! (errno == ERANGE || errno == ENOENT + || is_ENAMETOOLONG (errno))) + { + fail = 22; + break; + } + if (AT_FDCWD || errno == ERANGE || errno == ENOENT) + { + fail = 12; + break; + } + } + } + + if (c && strlen (c) != cwd_len) + { + fail = 23; + break; + } + ++n_chdirs; + } + + /* Leaving behind such a deep directory is not polite. + So clean up here, right away, even though the driving + shell script would also clean up. */ + { + size_t i; + + /* Try rmdir first, in case the chdir failed. */ + rmdir (DIR_NAME); + for (i = 0; i <= n_chdirs; i++) + { + if (chdir ("..") < 0) + break; + if (rmdir (DIR_NAME) != 0) + break; + } + } + + exit (fail); +#endif +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_getcwd_path_max=yes +else $as_nop + case $? in + 10|11|12) gl_cv_func_getcwd_path_max='no, but it is partly working';; + 31) gl_cv_func_getcwd_path_max='no, it has the AIX bug';; + 32) gl_cv_func_getcwd_path_max='yes, but with shorter paths';; + *) gl_cv_func_getcwd_path_max=no;; + esac +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_path_max" >&5 +printf "%s\n" "$gl_cv_func_getcwd_path_max" >&6; } + + case "$gl_cv_func_getcwd_null" in + *yes) + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getpagesize" >&5 +printf %s "checking for getpagesize... " >&6; } +if test ${gl_cv_func_getpagesize+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +return getpagesize(); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_func_getpagesize=yes +else $as_nop + gl_cv_func_getpagesize=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getpagesize" >&5 +printf "%s\n" "$gl_cv_func_getpagesize" >&6; } + + if test $gl_cv_func_getpagesize = yes; then + +printf "%s\n" "#define HAVE_GETPAGESIZE 1" >>confdefs.h + + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether getcwd succeeds when 4k < cwd_length < 16k" >&5 +printf %s "checking whether getcwd succeeds when 4k < cwd_length < 16k... " >&6; } +if test ${gl_cv_func_getcwd_succeeds_beyond_4k+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # Remove any remnants of a previous test. + rm -rf confdir-14B--- + # Arrange for deletion of the temporary directory this test creates. + ac_clean_files="$ac_clean_files confdir-14B---" + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess no otherwise, even on glibc systems and musl systems. + *) gl_cv_func_getcwd_succeeds_beyond_4k="guessing no" + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if HAVE_UNISTD_H +# include +#else /* on Windows with MSVC */ +# include +#endif +#include +#include + + +/* Arrange to define PATH_MAX, like "pathmax.h" does. */ +#if HAVE_UNISTD_H +# include +#endif +#include +#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN +# include +#endif +#if !defined PATH_MAX && defined MAXPATHLEN +# define PATH_MAX MAXPATHLEN +#endif +#ifdef __hpux +# undef PATH_MAX +# define PATH_MAX 1024 +#endif +#if defined _WIN32 && ! defined __CYGWIN__ +# undef PATH_MAX +# define PATH_MAX 260 +#endif + + + +$gl_mda_defines + + +#ifndef S_IRWXU +# define S_IRWXU 0700 +#endif + +/* FIXME: skip the run-test altogether on systems without getpagesize. */ +#if ! HAVE_GETPAGESIZE +# define getpagesize() 0 +#endif + +/* This size is chosen to be larger than PATH_MAX (4k), yet smaller than + the 16kB pagesize on ia64 linux. Those conditions make the code below + trigger a bug in glibc's getcwd implementation before 2.4.90-10. */ +#define TARGET_LEN (5 * 1024) + +int +main () +{ + char *cwd; + size_t initial_cwd_len; + int fail = 0; + + /* The bug is triggered when PATH_MAX < getpagesize (), so skip + this relatively expensive and invasive test if that's not true. */ +#ifdef PATH_MAX + int bug_possible = PATH_MAX < getpagesize (); +#else + int bug_possible = 0; +#endif + if (! bug_possible) + return 0; + + cwd = getcwd (NULL, 0); + if (cwd == NULL) + return 2; + + initial_cwd_len = strlen (cwd); + free (cwd); + + if (1) + { + static char const dir_name[] = "confdir-14B---"; + size_t desired_depth = ((TARGET_LEN - 1 - initial_cwd_len) + / sizeof dir_name); + size_t d; + for (d = 0; d < desired_depth; d++) + { + if (mkdir (dir_name, S_IRWXU) < 0 || chdir (dir_name) < 0) + { + if (! (errno == ERANGE || errno == ENAMETOOLONG + || errno == ENOENT)) + fail = 3; /* Unable to construct deep hierarchy. */ + break; + } + } + + /* If libc has the bug in question, this invocation of getcwd + results in a failed assertion. */ + cwd = getcwd (NULL, 0); + if (cwd == NULL) + fail = 4; /* getcwd didn't assert, but it failed for a long name + where the answer could have been learned. */ + free (cwd); + + /* Call rmdir first, in case the above chdir failed. */ + rmdir (dir_name); + while (0 < d--) + { + if (chdir ("..") < 0) + { + fail = 5; + break; + } + rmdir (dir_name); + } + } + + return fail; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_getcwd_succeeds_beyond_4k=yes +else $as_nop + ret=$? + if test $ret -ge 128 || test $ret = 4; then + gl_cv_func_getcwd_succeeds_beyond_4k=no + else + gl_cv_func_getcwd_succeeds_beyond_4k=yes + fi + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_succeeds_beyond_4k" >&5 +printf "%s\n" "$gl_cv_func_getcwd_succeeds_beyond_4k" >&6; } + case "$gl_cv_func_getcwd_succeeds_beyond_4k" in + *no) + gl_abort_bug=yes + ;; + *) + + ;; + esac + + ;; + esac + ;; + esac + case "$gl_cv_func_getcwd_path_max" in + *"no" | *"no, it has the AIX bug") ;; + *) + +printf "%s\n" "#define HAVE_MINIMALLY_WORKING_GETCWD 1" >>confdefs.h + + ;; + esac + case "$gl_cv_func_getcwd_path_max" in + *"no, but it is partly working") + +printf "%s\n" "#define HAVE_PARTLY_WORKING_GETCWD 1" >>confdefs.h + + ;; + *"yes, but with shorter paths") + +printf "%s\n" "#define HAVE_GETCWD_SHORTER 1" >>confdefs.h + + ;; + esac + + if { case "$gl_cv_func_getcwd_null" in *yes) false;; *) true;; esac; } \ + || test $gl_cv_func_getcwd_posix_signature != yes \ + || { case "$gl_cv_func_getcwd_path_max" in *yes*) false;; *) true;; esac; } \ + || test $gl_abort_bug = yes; then + REPLACE_GETCWD=1 + fi + + + if test $REPLACE_GETCWD = 1; then + GL_COND_OBJ_GETCWD_TRUE= + GL_COND_OBJ_GETCWD_FALSE='#' +else + GL_COND_OBJ_GETCWD_TRUE='#' + GL_COND_OBJ_GETCWD_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GETCWD_TRUE}" && test -z "${GL_COND_OBJ_GETCWD_FALSE}"; then + GL_COND_OBJ_GETCWD_TRUE='#' + GL_COND_OBJ_GETCWD_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_GETCWD_TRUE"; then : + + + + + : + + +fi + + +printf "%s\n" "#define GNULIB_GETCWD 1" >>confdefs.h + + + + + + + + + + + + GL_GNULIB_GETCWD=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_GETCWD 1" >>confdefs.h + + + + + + + + + case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_posix_signature in + *yes,yes) ;; + *) + REPLACE_GETCWD=1 + ;; + esac + + + if test $REPLACE_GETCWD = 1; then + GL_COND_OBJ_GETCWD_LGPL_TRUE= + GL_COND_OBJ_GETCWD_LGPL_FALSE='#' +else + GL_COND_OBJ_GETCWD_LGPL_TRUE='#' + GL_COND_OBJ_GETCWD_LGPL_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GETCWD_LGPL_TRUE}" && test -z "${GL_COND_OBJ_GETCWD_LGPL_FALSE}"; then + GL_COND_OBJ_GETCWD_LGPL_TRUE='#' + GL_COND_OBJ_GETCWD_LGPL_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_GETCWD=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_GETCWD 1" >>confdefs.h + + + + + + + + + + + + if test $ac_cv_func_getdelim = yes; then + HAVE_GETDELIM=1 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working getdelim function" >&5 +printf %s "checking for working getdelim function... " >&6; } +if test ${gl_cv_func_working_getdelim+y} +then : + printf %s "(cached) " >&6 +else $as_nop + echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data + if test "$cross_compiling" = yes +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef __GNU_LIBRARY__ + #if (__GLIBC__ >= 2) && !defined __UCLIBC__ + Lucky GNU user + #endif +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky GNU user" >/dev/null 2>&1 +then : + gl_cv_func_working_getdelim="guessing yes" +else $as_nop + case "$host_os" in + *-musl*) gl_cv_func_working_getdelim="guessing yes" ;; + *) gl_cv_func_working_getdelim="$gl_cross_guess_normal" ;; + esac + +fi +rm -rf conftest* + + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# include +# include +# include + int main () + { + FILE *in = fopen ("./conftest.data", "r"); + if (!in) + return 1; + { + /* Test result for a NULL buffer and a zero size. + Based on a test program from Karl Heuer. */ + char *line = NULL; + size_t siz = 0; + int len = getdelim (&line, &siz, '\n', in); + if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) + { free (line); fclose (in); return 2; } + free (line); + } + { + /* Test result for a NULL buffer and a non-zero size. + This crashes on FreeBSD 8.0. */ + char *line = NULL; + size_t siz = (size_t)(~0) / 4; + if (getdelim (&line, &siz, '\n', in) == -1) + { fclose (in); return 3; } + free (line); + } + fclose (in); + return 0; + } + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_working_getdelim=yes +else $as_nop + gl_cv_func_working_getdelim=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_getdelim" >&5 +printf "%s\n" "$gl_cv_func_working_getdelim" >&6; } + case "$gl_cv_func_working_getdelim" in + *yes) ;; + *) REPLACE_GETDELIM=1 ;; + esac + else + HAVE_GETDELIM=0 + fi + + if test $ac_cv_have_decl_getdelim = no; then + HAVE_DECL_GETDELIM=0 + fi + + + if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then + GL_COND_OBJ_GETDELIM_TRUE= + GL_COND_OBJ_GETDELIM_FALSE='#' +else + GL_COND_OBJ_GETDELIM_TRUE='#' + GL_COND_OBJ_GETDELIM_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GETDELIM_TRUE}" && test -z "${GL_COND_OBJ_GETDELIM_FALSE}"; then + GL_COND_OBJ_GETDELIM_TRUE='#' + GL_COND_OBJ_GETDELIM_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_GETDELIM_TRUE"; then : + + + ac_fn_c_check_func "$LINENO" "flockfile" "ac_cv_func_flockfile" +if test "x$ac_cv_func_flockfile" = xyes +then : + printf "%s\n" "#define HAVE_FLOCKFILE 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "funlockfile" "ac_cv_func_funlockfile" +if test "x$ac_cv_func_funlockfile" = xyes +then : + printf "%s\n" "#define HAVE_FUNLOCKFILE 1" >>confdefs.h + +fi + + ac_fn_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_getc_unlocked" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl" >>confdefs.h + + + +fi + + + + + + + + + + GL_GNULIB_GETDELIM=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_GETDELIM 1" >>confdefs.h + + + + + + + + + if test $ac_cv_func_getdtablesize = yes && + test $ac_cv_have_decl_getdtablesize = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether getdtablesize works" >&5 +printf %s "checking whether getdtablesize works... " >&6; } +if test ${gl_cv_func_getdtablesize_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case "$host_os" in + vms*) gl_cv_func_getdtablesize_works="no (limitation)" ;; + *) + if test "$cross_compiling" = yes +then : + case "$host_os" in + cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows + gl_cv_func_getdtablesize_works="guessing no" ;; + *) gl_cv_func_getdtablesize_works="guessing yes" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + + +$gl_mda_defines + + +int +main (void) +{ +int size = getdtablesize(); + if (dup2 (0, getdtablesize()) != -1) + return 1; + if (size != getdtablesize()) + return 2; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_getdtablesize_works=yes +else $as_nop + gl_cv_func_getdtablesize_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + ;; + esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getdtablesize_works" >&5 +printf "%s\n" "$gl_cv_func_getdtablesize_works" >&6; } + case "$gl_cv_func_getdtablesize_works" in + *yes | "no (limitation)") ;; + *) REPLACE_GETDTABLESIZE=1 ;; + esac + else + HAVE_GETDTABLESIZE=0 + fi + + + if test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1; then + GL_COND_OBJ_GETDTABLESIZE_TRUE= + GL_COND_OBJ_GETDTABLESIZE_FALSE='#' +else + GL_COND_OBJ_GETDTABLESIZE_TRUE='#' + GL_COND_OBJ_GETDTABLESIZE_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GETDTABLESIZE_TRUE}" && test -z "${GL_COND_OBJ_GETDTABLESIZE_FALSE}"; then + GL_COND_OBJ_GETDTABLESIZE_TRUE='#' + GL_COND_OBJ_GETDTABLESIZE_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_GETDTABLESIZE_TRUE"; then : + + : + +fi + + + + + + + + + + GL_GNULIB_GETDTABLESIZE=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_GETDTABLESIZE 1" >>confdefs.h + + + + + + + + + + + gl_getline_needs_run_time_check=no + ac_fn_c_check_func "$LINENO" "getline" "ac_cv_func_getline" +if test "x$ac_cv_func_getline" = xyes +then : + gl_getline_needs_run_time_check=yes +else $as_nop + am_cv_func_working_getline=no +fi + + if test $gl_getline_needs_run_time_check = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working getline function" >&5 +printf %s "checking for working getline function... " >&6; } +if test ${am_cv_func_working_getline+y} +then : + printf %s "(cached) " >&6 +else $as_nop + echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data + if test "$cross_compiling" = yes +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef __GNU_LIBRARY__ + #if (__GLIBC__ >= 2) && !defined __UCLIBC__ + Lucky GNU user + #endif +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky GNU user" >/dev/null 2>&1 +then : + am_cv_func_working_getline="guessing yes" +else $as_nop + case "$host_os" in + *-musl*) am_cv_func_working_getline="guessing yes" ;; + *) am_cv_func_working_getline="$gl_cross_guess_normal" ;; + esac + +fi +rm -rf conftest* + + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# include +# include +# include + int main () + { + FILE *in = fopen ("./conftest.data", "r"); + if (!in) + return 1; + { + /* Test result for a NULL buffer and a zero size. + Based on a test program from Karl Heuer. */ + char *line = NULL; + size_t siz = 0; + int len = getline (&line, &siz, in); + if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) + { free (line); fclose (in); return 2; } + free (line); + } + { + /* Test result for a NULL buffer and a non-zero size. + This crashes on FreeBSD 8.0. */ + char *line = NULL; + size_t siz = (size_t)(~0) / 4; + if (getline (&line, &siz, in) == -1) + { fclose (in); return 3; } + free (line); + } + fclose (in); + return 0; + } + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + am_cv_func_working_getline=yes +else $as_nop + am_cv_func_working_getline=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_working_getline" >&5 +printf "%s\n" "$am_cv_func_working_getline" >&6; } + fi + + if test $ac_cv_have_decl_getline = no; then + HAVE_DECL_GETLINE=0 + fi + + case "$am_cv_func_working_getline" in + *yes) ;; + *) + REPLACE_GETLINE=1 + ;; + esac + + + if test $REPLACE_GETLINE = 1; then + GL_COND_OBJ_GETLINE_TRUE= + GL_COND_OBJ_GETLINE_FALSE='#' +else + GL_COND_OBJ_GETLINE_TRUE='#' + GL_COND_OBJ_GETLINE_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GETLINE_TRUE}" && test -z "${GL_COND_OBJ_GETLINE_FALSE}"; then + GL_COND_OBJ_GETLINE_TRUE='#' + GL_COND_OBJ_GETLINE_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_GETLINE_TRUE"; then : + + + : + + +fi + + + + + + + + + + GL_GNULIB_GETLINE=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_GETLINE 1" >>confdefs.h + + + + + + + + + + if test $ac_cv_have_decl_getlogin_r = no; then + HAVE_DECL_GETLOGIN_R=0 + fi + + + if test $ac_cv_func_getlogin_r = no; then + HAVE_GETLOGIN_R=0 + else + HAVE_GETLOGIN_R=1 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether getlogin_r works with small buffers" >&5 +printf %s "checking whether getlogin_r works with small buffers... " >&6; } +if test ${gl_cv_func_getlogin_r_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + case "$host_os" in + # Guess no on Mac OS X, OSF/1. + darwin* | osf*) gl_cv_func_getlogin_r_works="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_getlogin_r_works="guessing yes" ;; + esac + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#if !HAVE_DECL_GETLOGIN_R +extern +# ifdef __cplusplus +"C" +# endif +int getlogin_r (char *, size_t); +#endif +int +main (void) +{ + int result = 0; + char buf[100]; + + if (getlogin_r (buf, 0) == 0) + result |= 1; + if (getlogin_r (buf, 1) == 0) + result |= 2; + if (getlogin_r (buf, 100) == 0) + { + size_t n = strlen (buf); + if (getlogin_r (buf, n) == 0) + result |= 4; + } + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_getlogin_r_works=yes +else $as_nop + gl_cv_func_getlogin_r_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getlogin_r_works" >&5 +printf "%s\n" "$gl_cv_func_getlogin_r_works" >&6; } + case "$gl_cv_func_getlogin_r_works" in + *yes) ;; + *) REPLACE_GETLOGIN_R=1 ;; + esac + fi + + + if test $HAVE_GETLOGIN_R = 0 || test $REPLACE_GETLOGIN_R = 1; then + GL_COND_OBJ_GETLOGIN_R_TRUE= + GL_COND_OBJ_GETLOGIN_R_FALSE='#' +else + GL_COND_OBJ_GETLOGIN_R_TRUE='#' + GL_COND_OBJ_GETLOGIN_R_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GETLOGIN_R_TRUE}" && test -z "${GL_COND_OBJ_GETLOGIN_R_FALSE}"; then + GL_COND_OBJ_GETLOGIN_R_TRUE='#' + GL_COND_OBJ_GETLOGIN_R_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_GETLOGIN_R_TRUE"; then : + + + + + +fi + + + + + + + + + + GL_GNULIB_GETLOGIN_R=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_GETLOGIN_R 1" >>confdefs.h + + + + + + + + + + + + + + REPLACE_GETOPT=1 + + GL_GENERATE_GETOPT_H=false + GL_GENERATE_GETOPT_CDEFS_H=false + if test $REPLACE_GETOPT = 1; then + + + if test $ac_cv_header_sys_cdefs_h = yes; then + HAVE_SYS_CDEFS_H=1 + else + HAVE_SYS_CDEFS_H=0 + fi + + + +printf "%s\n" "#define __GETOPT_PREFIX rpl_" >>confdefs.h + + GL_GENERATE_GETOPT_H=true + GL_GENERATE_GETOPT_CDEFS_H=true + + fi + + + + + + case "$GL_GENERATE_GETOPT_H" in + false) GETOPT_H='' ;; + true) + if test -z "$GETOPT_H"; then + GETOPT_H="${gl_source_base_prefix}getopt.h" + fi + ;; + *) echo "*** GL_GENERATE_GETOPT_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_GETOPT_H; then + GL_GENERATE_GETOPT_H_TRUE= + GL_GENERATE_GETOPT_H_FALSE='#' +else + GL_GENERATE_GETOPT_H_TRUE='#' + GL_GENERATE_GETOPT_H_FALSE= +fi +: + if test -z "${GL_GENERATE_GETOPT_H_TRUE}" && test -z "${GL_GENERATE_GETOPT_H_FALSE}"; then + GL_GENERATE_GETOPT_H_TRUE='#' + GL_GENERATE_GETOPT_H_FALSE='#' + fi + + + + + + + + + + case "$GL_GENERATE_GETOPT_CDEFS_H" in + false) GETOPT_CDEFS_H='' ;; + true) + if test -z "$GETOPT_CDEFS_H"; then + GETOPT_CDEFS_H="${gl_source_base_prefix}getopt-cdefs.h" + fi + ;; + *) echo "*** GL_GENERATE_GETOPT_CDEFS_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_GETOPT_CDEFS_H; then + GL_GENERATE_GETOPT_CDEFS_H_TRUE= + GL_GENERATE_GETOPT_CDEFS_H_FALSE='#' +else + GL_GENERATE_GETOPT_CDEFS_H_TRUE='#' + GL_GENERATE_GETOPT_CDEFS_H_FALSE= +fi +: + if test -z "${GL_GENERATE_GETOPT_CDEFS_H_TRUE}" && test -z "${GL_GENERATE_GETOPT_CDEFS_H_FALSE}"; then + GL_GENERATE_GETOPT_CDEFS_H_TRUE='#' + GL_GENERATE_GETOPT_CDEFS_H_FALSE='#' + fi + + + + + + + + if test $REPLACE_GETOPT = 1; then + GL_COND_OBJ_GETOPT_TRUE= + GL_COND_OBJ_GETOPT_FALSE='#' +else + GL_COND_OBJ_GETOPT_TRUE='#' + GL_COND_OBJ_GETOPT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GETOPT_TRUE}" && test -z "${GL_COND_OBJ_GETOPT_FALSE}"; then + GL_COND_OBJ_GETOPT_TRUE='#' + GL_COND_OBJ_GETOPT_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_GETOPT_TRUE"; then : + + + + + + + + GL_GNULIB_UNISTD_H_GETOPT=1 + + + +fi + + + + + + + + + + GL_GNULIB_GETOPT_POSIX=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_GETOPT_POSIX 1" >>confdefs.h + + + + + + + ac_found=0 + ac_fn_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_program_invocation_name" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl" >>confdefs.h +if test $ac_have_decl = 1 +then : + ac_found=1 +fi + + ac_fn_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl" >>confdefs.h +if test $ac_have_decl = 1 +then : + ac_found=1 +fi + + ac_fn_check_decl "$LINENO" "__argv" "ac_cv_have_decl___argv" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl___argv" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL___ARGV $ac_have_decl" >>confdefs.h +if test $ac_have_decl = 1 +then : + ac_found=1 +fi + + + # Incur the cost of this test only if none of the above worked. + if test $ac_found = 0; then + # On OpenBSD 5.1, using the global __progname variable appears to be + # the only way to implement getprogname. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether __progname is defined in default libraries" >&5 +printf %s "checking whether __progname is defined in default libraries... " >&6; } +if test ${gl_cv_var___progname+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + gl_cv_var___progname= + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern char *__progname; +int +main (void) +{ +return *__progname; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_var___progname=yes + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_var___progname" >&5 +printf "%s\n" "$gl_cv_var___progname" >&6; } + if test "$gl_cv_var___progname" = yes; then + +printf "%s\n" "#define HAVE_VAR___PROGNAME 1" >>confdefs.h + + fi + fi + + + + + + if test "$ac_cv_func_getrandom" != yes; then + HAVE_GETRANDOM=0 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether getrandom is compatible with its GNU+BSD signature" >&5 +printf %s "checking whether getrandom is compatible with its GNU+BSD signature... " >&6; } +if test ${gl_cv_func_getrandom_ok+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Additional includes are needed before on uClibc + and Mac OS X. */ + #include + #include + #include + ssize_t getrandom (void *, size_t, unsigned int); + +int +main (void) +{ + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_func_getrandom_ok=yes +else $as_nop + gl_cv_func_getrandom_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getrandom_ok" >&5 +printf "%s\n" "$gl_cv_func_getrandom_ok" >&6; } + if test $gl_cv_func_getrandom_ok = no; then + REPLACE_GETRANDOM=1 + fi + fi + + case "$host_os" in + mingw*) + ac_fn_c_check_header_compile "$LINENO" "bcrypt.h" "ac_cv_header_bcrypt_h" "#include + +" +if test "x$ac_cv_header_bcrypt_h" = xyes +then : + printf "%s\n" "#define HAVE_BCRYPT_H 1" >>confdefs.h + +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the bcrypt library is guaranteed to be present" >&5 +printf %s "checking whether the bcrypt library is guaranteed to be present... " >&6; } +if test ${gl_cv_lib_assume_bcrypt+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +#if !(_WIN32_WINNT >= _WIN32_WINNT_WIN7) + cannot assume it + #endif + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_lib_assume_bcrypt=yes +else $as_nop + gl_cv_lib_assume_bcrypt=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_lib_assume_bcrypt" >&5 +printf "%s\n" "$gl_cv_lib_assume_bcrypt" >&6; } + if test $gl_cv_lib_assume_bcrypt = yes; then + +printf "%s\n" "#define HAVE_LIB_BCRYPT 1" >>confdefs.h + + LIB_GETRANDOM='-lbcrypt' + else + LIB_GETRANDOM='-ladvapi32' + fi + ;; + *) + LIB_GETRANDOM= ;; + esac + + + + if test $HAVE_GETRANDOM = 0 || test $REPLACE_GETRANDOM = 1; then + GL_COND_OBJ_GETRANDOM_TRUE= + GL_COND_OBJ_GETRANDOM_FALSE='#' +else + GL_COND_OBJ_GETRANDOM_TRUE='#' + GL_COND_OBJ_GETRANDOM_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GETRANDOM_TRUE}" && test -z "${GL_COND_OBJ_GETRANDOM_FALSE}"; then + GL_COND_OBJ_GETRANDOM_TRUE='#' + GL_COND_OBJ_GETRANDOM_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_GETRANDOM=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_GETRANDOM 1" >>confdefs.h + + + + + + + + + + + + + + + + + + gl_gettimeofday_timezone=void + if test $ac_cv_func_gettimeofday != yes; then + HAVE_GETTIMEOFDAY=0 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gettimeofday with POSIX signature" >&5 +printf %s "checking for gettimeofday with POSIX signature... " >&6; } +if test ${gl_cv_func_gettimeofday_posix_signature+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + struct timeval c; + int gettimeofday (struct timeval *restrict, void *restrict); + +int +main (void) +{ +/* glibc uses struct timezone * rather than the POSIX void * + if _GNU_SOURCE is defined. However, since the only portable + use of gettimeofday uses NULL as the second parameter, and + since the glibc definition is actually more typesafe, it is + not worth wrapping this to get a compliant signature. */ + int (*f) (struct timeval *restrict, void *restrict) + = gettimeofday; + int x = f (&c, 0); + return !(x | c.tv_sec | c.tv_usec); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_func_gettimeofday_posix_signature=yes +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int gettimeofday (struct timeval *restrict, struct timezone *restrict); + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_func_gettimeofday_posix_signature=almost +else $as_nop + gl_cv_func_gettimeofday_posix_signature=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_gettimeofday_posix_signature" >&5 +printf "%s\n" "$gl_cv_func_gettimeofday_posix_signature" >&6; } + if test $gl_cv_func_gettimeofday_posix_signature = almost; then + gl_gettimeofday_timezone='struct timezone' + elif test $gl_cv_func_gettimeofday_posix_signature != yes; then + REPLACE_GETTIMEOFDAY=1 + fi + if test $REPLACE_STRUCT_TIMEVAL = 1; then + REPLACE_GETTIMEOFDAY=1 + fi + case "$host_os" in + mingw*) REPLACE_GETTIMEOFDAY=1 ;; + esac + fi + +printf "%s\n" "#define GETTIMEOFDAY_TIMEZONE $gl_gettimeofday_timezone" >>confdefs.h + + + + if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then + GL_COND_OBJ_GETTIMEOFDAY_TRUE= + GL_COND_OBJ_GETTIMEOFDAY_FALSE='#' +else + GL_COND_OBJ_GETTIMEOFDAY_TRUE='#' + GL_COND_OBJ_GETTIMEOFDAY_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GETTIMEOFDAY_TRUE}" && test -z "${GL_COND_OBJ_GETTIMEOFDAY_FALSE}"; then + GL_COND_OBJ_GETTIMEOFDAY_TRUE='#' + GL_COND_OBJ_GETTIMEOFDAY_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_GETTIMEOFDAY_TRUE"; then : + + : + +fi + + + + + + + + + + GL_GNULIB_GETTIMEOFDAY=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_GETTIMEOFDAY 1" >>confdefs.h + + + + + + + + if test $ac_cv_func_glob = no; then + HAVE_GLOB=0 + else + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU glob interface version 1 or 2" >&5 +printf %s "checking for GNU glob interface version 1 or 2... " >&6; } +if test ${gl_cv_gnu_glob_interface_version_1_2+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +char a[_GNU_GLOB_INTERFACE_VERSION == 1 || _GNU_GLOB_INTERFACE_VERSION == 2 ? 1 : -1]; +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_gnu_glob_interface_version_1_2=yes +else $as_nop + gl_cv_gnu_glob_interface_version_1_2=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_gnu_glob_interface_version_1_2" >&5 +printf "%s\n" "$gl_cv_gnu_glob_interface_version_1_2" >&6; } + if test "$gl_cv_gnu_glob_interface_version_1_2" = "no"; then + REPLACE_GLOB=1 + fi + + if test $REPLACE_GLOB = 0; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether glob lists broken symlinks" >&5 +printf %s "checking whether glob lists broken symlinks... " >&6; } +if test ${gl_cv_glob_lists_symlinks+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test $cross_compiling != yes; then + if ln -s conf-doesntexist conf$$-globtest 2>/dev/null; then + gl_cv_glob_lists_symlinks=maybe + else + # If we can't make a symlink, then we cannot test this issue. Be + # pessimistic about this. + gl_cv_glob_lists_symlinks=no + fi + if test $gl_cv_glob_lists_symlinks = maybe; then + if test "$cross_compiling" = yes +then : + : + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include +int +main (void) +{ +glob_t found; + if (glob ("conf*-globtest", 0, NULL, &found) == GLOB_NOMATCH) + return 1; + globfree (&found); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_glob_lists_symlinks=yes +else $as_nop + gl_cv_glob_lists_symlinks=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + rm -f conf$$-globtest + else + gl_cv_glob_lists_symlinks="$gl_cross_guess_normal" + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_glob_lists_symlinks" >&5 +printf "%s\n" "$gl_cv_glob_lists_symlinks" >&6; } + case "$gl_cv_glob_lists_symlinks" in + *yes) ;; + *) REPLACE_GLOB=1 ;; + esac + fi + + if test $REPLACE_GLOB = 0; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether glob NOTDIR*/ omits symlink to nondir" >&5 +printf %s "checking whether glob NOTDIR*/ omits symlink to nondir... " >&6; } +if test ${gl_cv_glob_omit_nondir_symlinks+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test $cross_compiling != yes; then + if ln -s conf$$-file conf$$-globtest 2>/dev/null && touch conf$$-file + then + gl_cv_glob_omit_nondir_symlinks=maybe + else + # If we can't make a symlink, then we cannot test this issue. Be + # pessimistic about this. + gl_cv_glob_omit_nondir_symlinks=no + fi + if test $gl_cv_glob_omit_nondir_symlinks = maybe; then + if test "$cross_compiling" = yes +then : + : + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include +int +main (void) +{ +glob_t found; + if (glob ("conf*-globtest/", 0, NULL, &found) != GLOB_NOMATCH) + return 1; + globfree (&found); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_glob_omit_nondir_symlinks=yes +else $as_nop + gl_cv_glob_omit_nondir_symlinks=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + rm -f conf$$-file conf$$-globtest + else + gl_cv_glob_omit_nondir_symlinks="$gl_cross_guess_normal" + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_glob_omit_nondir_symlinks" >&5 +printf "%s\n" "$gl_cv_glob_omit_nondir_symlinks" >&6; } + case "$gl_cv_glob_omit_nondir_symlinks" in + *yes) ;; + *) REPLACE_GLOB=1 ;; + esac + fi + + fi + + if test $ac_cv_func_glob_pattern_p = no; then + HAVE_GLOB_PATTERN_P=0 + else + if test $REPLACE_GLOB = 1; then + REPLACE_GLOB_PATTERN_P=1 + fi + fi + + if test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1; then + + + + + + + GL_GENERATE_GLOB_H=true + + fi + + + + + + case "$GL_GENERATE_GLOB_H" in + false) GLOB_H='' ;; + true) + if test -z "$GLOB_H"; then + GLOB_H="${gl_source_base_prefix}glob.h" + fi + ;; + *) echo "*** GL_GENERATE_GLOB_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_GLOB_H; then + GL_GENERATE_GLOB_H_TRUE= + GL_GENERATE_GLOB_H_FALSE='#' +else + GL_GENERATE_GLOB_H_TRUE='#' + GL_GENERATE_GLOB_H_FALSE= +fi +: + if test -z "${GL_GENERATE_GLOB_H_TRUE}" && test -z "${GL_GENERATE_GLOB_H_FALSE}"; then + GL_GENERATE_GLOB_H_TRUE='#' + GL_GENERATE_GLOB_H_FALSE='#' + fi + + + + + + + if test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1; then + GL_COND_OBJ_GLOB_TRUE= + GL_COND_OBJ_GLOB_FALSE='#' +else + GL_COND_OBJ_GLOB_TRUE='#' + GL_COND_OBJ_GLOB_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GLOB_TRUE}" && test -z "${GL_COND_OBJ_GLOB_FALSE}"; then + GL_COND_OBJ_GLOB_TRUE='#' + GL_COND_OBJ_GLOB_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_GLOB_TRUE"; then : + + + + + + + +fi + + if test $HAVE_GLOB_PATTERN_P = 0 || test $REPLACE_GLOB_PATTERN_P = 1; then + GL_COND_OBJ_GLOB_PATTERN_P_TRUE= + GL_COND_OBJ_GLOB_PATTERN_P_FALSE='#' +else + GL_COND_OBJ_GLOB_PATTERN_P_TRUE='#' + GL_COND_OBJ_GLOB_PATTERN_P_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GLOB_PATTERN_P_TRUE}" && test -z "${GL_COND_OBJ_GLOB_PATTERN_P_FALSE}"; then + GL_COND_OBJ_GLOB_PATTERN_P_TRUE='#' + GL_COND_OBJ_GLOB_PATTERN_P_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_GLOB=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_GLOB 1" >>confdefs.h + + + + + + + + + + + + + + case "$GL_GENERATE_GLOB_H" in + false) GLOB_H='' ;; + true) + if test -z "$GLOB_H"; then + GLOB_H="${gl_source_base_prefix}glob.h" + fi + ;; + *) echo "*** GL_GENERATE_GLOB_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_GLOB_H; then + GL_GENERATE_GLOB_H_TRUE= + GL_GENERATE_GLOB_H_FALSE='#' +else + GL_GENERATE_GLOB_H_TRUE='#' + GL_GENERATE_GLOB_H_FALSE= +fi +: + if test -z "${GL_GENERATE_GLOB_H_TRUE}" && test -z "${GL_GENERATE_GLOB_H_FALSE}"; then + GL_GENERATE_GLOB_H_TRUE='#' + GL_GENERATE_GLOB_H_FALSE='#' + fi + + + + + + + + LIB_HARD_LOCALE="$LIB_SETLOCALE_NULL" + + + + + + + + + + + + + + + + + + + + + + + + + HAVE_IOCTL=1 + if test "$ac_cv_header_winsock2_h" = yes; then + HAVE_IOCTL=0 + else + ac_fn_c_check_func "$LINENO" "ioctl" "ac_cv_func_ioctl" +if test "x$ac_cv_func_ioctl" = xyes +then : + printf "%s\n" "#define HAVE_IOCTL 1" >>confdefs.h + +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ioctl with POSIX signature" >&5 +printf %s "checking for ioctl with POSIX signature... " >&6; } +if test ${gl_cv_func_ioctl_posix_signature+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* On some platforms, ioctl() is declared in . */ + #include + +int +main (void) +{ +extern + #ifdef __cplusplus + "C" + #endif + int ioctl (int, int, ...); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_func_ioctl_posix_signature=yes +else $as_nop + gl_cv_func_ioctl_posix_signature=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ioctl_posix_signature" >&5 +printf "%s\n" "$gl_cv_func_ioctl_posix_signature" >&6; } + if test $gl_cv_func_ioctl_posix_signature != yes; then + REPLACE_IOCTL=1 + fi + fi + + + if test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1; then + GL_COND_OBJ_IOCTL_TRUE= + GL_COND_OBJ_IOCTL_FALSE='#' +else + GL_COND_OBJ_IOCTL_TRUE='#' + GL_COND_OBJ_IOCTL_FALSE= +fi +: + if test -z "${GL_COND_OBJ_IOCTL_TRUE}" && test -z "${GL_COND_OBJ_IOCTL_FALSE}"; then + GL_COND_OBJ_IOCTL_TRUE='#' + GL_COND_OBJ_IOCTL_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_IOCTL=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_IOCTL 1" >>confdefs.h + + + + + + + + + if test $ac_cv_func_isblank = no; then + HAVE_ISBLANK=0 + fi + + + if test $HAVE_ISBLANK = 0; then + GL_COND_OBJ_ISBLANK_TRUE= + GL_COND_OBJ_ISBLANK_FALSE='#' +else + GL_COND_OBJ_ISBLANK_TRUE='#' + GL_COND_OBJ_ISBLANK_FALSE= +fi +: + if test -z "${GL_COND_OBJ_ISBLANK_TRUE}" && test -z "${GL_COND_OBJ_ISBLANK_FALSE}"; then + GL_COND_OBJ_ISBLANK_TRUE='#' + GL_COND_OBJ_ISBLANK_FALSE='#' + fi + + + +printf "%s\n" "#define GNULIB_ISBLANK 1" >>confdefs.h + + + + + + + + + + + + GL_GNULIB_ISBLANK=1 + + + + + + + + + + + + + + + + + ac_fn_c_check_func "$LINENO" "lchown" "ac_cv_func_lchown" +if test "x$ac_cv_func_lchown" = xyes +then : + printf "%s\n" "#define HAVE_LCHOWN 1" >>confdefs.h + +fi + + if test $ac_cv_func_lchown = no; then + HAVE_LCHOWN=0 + else + case "$gl_cv_func_chown_slash_works" in + *yes) ;; + *) + REPLACE_LCHOWN=1 + ;; + esac + case "$gl_cv_func_chown_ctime_works" in + *yes) ;; + *) + REPLACE_LCHOWN=1 + ;; + esac + fi + + + if test $HAVE_LCHOWN = 0 || test $REPLACE_LCHOWN = 1; then + GL_COND_OBJ_LCHOWN_TRUE= + GL_COND_OBJ_LCHOWN_FALSE='#' +else + GL_COND_OBJ_LCHOWN_TRUE='#' + GL_COND_OBJ_LCHOWN_FALSE= +fi +: + if test -z "${GL_COND_OBJ_LCHOWN_TRUE}" && test -z "${GL_COND_OBJ_LCHOWN_FALSE}"; then + GL_COND_OBJ_LCHOWN_TRUE='#' + GL_COND_OBJ_LCHOWN_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_LCHOWN=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_LCHOWN 1" >>confdefs.h + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler flag to ignore unused libraries" >&5 +printf %s "checking for C compiler flag to ignore unused libraries... " >&6; } +if test ${gl_cv_prog_c_ignore_unused_libraries+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gl_cv_prog_c_ignore_unused_libraries=none + gl_saved_ldflags=$LDFLAGS + gl_saved_libs=$LIBS + # Link with -lm to detect binutils 2.16 bug with --as-needed; see + # . + LIBS="$LIBS -lm" + # Use long option sequences like '-z ignore' to test for the feature, + # to forestall problems with linkers that have -z, -i, -g, -n, etc. flags. + # GCC + binutils likes '-Wl,--as-needed'. + # GCC + Solaris ld likes '-Wl,-z,ignore'. + # Sun C likes '-Wl,-z,ignore'. '-z ignore' is accepted but has no effect. + # Don't try bare '--as-needed'; nothing likes it and the HP-UX 11.11 + # native cc issues annoying warnings and then ignores it, + # which would cause us to incorrectly conclude that it worked. + for gl_flags in '-Wl,--as-needed' \ + '-Wl,-z,ignore' \ + '-z ignore' + + do + LDFLAGS="$gl_flags $LDFLAGS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_prog_c_ignore_unused_libraries=$gl_flags +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$gl_saved_ldflags + test "$gl_cv_prog_c_ignore_unused_libraries" != none && + break + done + LIBS=$gl_saved_libs + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_prog_c_ignore_unused_libraries" >&5 +printf "%s\n" "$gl_cv_prog_c_ignore_unused_libraries" >&6; } + IGNORE_UNUSED_LIBRARIES_CFLAGS= + if test "$gl_cv_prog_c_ignore_unused_libraries" != none; then + IGNORE_UNUSED_LIBRARIES_CFLAGS="$gl_cv_prog_c_ignore_unused_libraries" + fi + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the __inline keyword" >&5 +printf %s "checking whether the compiler supports the __inline keyword... " >&6; } +if test ${gl_cv_c___inline+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +typedef int foo_t; + static __inline foo_t foo (void) { return 0; } +int +main (void) +{ +return foo (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_c___inline=yes +else $as_nop + gl_cv_c___inline=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c___inline" >&5 +printf "%s\n" "$gl_cv_c___inline" >&6; } + if test $gl_cv_c___inline = yes; then + +printf "%s\n" "#define HAVE___INLINE 1" >>confdefs.h + + fi + + + + + + + case "$GL_GENERATE_LIMITS_H" in + false) LIMITS_H='' ;; + true) + if test -z "$LIMITS_H"; then + LIMITS_H="${gl_source_base_prefix}limits.h" + fi + ;; + *) echo "*** GL_GENERATE_LIMITS_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_LIMITS_H; then + GL_GENERATE_LIMITS_H_TRUE= + GL_GENERATE_LIMITS_H_FALSE='#' +else + GL_GENERATE_LIMITS_H_TRUE='#' + GL_GENERATE_LIMITS_H_FALSE= +fi +: + if test -z "${GL_GENERATE_LIMITS_H_TRUE}" && test -z "${GL_GENERATE_LIMITS_H_FALSE}"; then + GL_GENERATE_LIMITS_H_TRUE='#' + GL_GENERATE_LIMITS_H_FALSE='#' + fi + + + + + + + + + + LOCALCHARSET_TESTS_ENVIRONMENT= + + + + + + + + + + + + + if test $REPLACE_STRUCT_LCONV = 1; then + REPLACE_LOCALECONV=1 + fi + + + if test $REPLACE_LOCALECONV = 1; then + GL_COND_OBJ_LOCALECONV_TRUE= + GL_COND_OBJ_LOCALECONV_FALSE='#' +else + GL_COND_OBJ_LOCALECONV_TRUE='#' + GL_COND_OBJ_LOCALECONV_FALSE= +fi +: + if test -z "${GL_COND_OBJ_LOCALECONV_TRUE}" && test -z "${GL_COND_OBJ_LOCALECONV_FALSE}"; then + GL_COND_OBJ_LOCALECONV_TRUE='#' + GL_COND_OBJ_LOCALECONV_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_LOCALECONV_TRUE"; then : + + + ac_fn_c_check_member "$LINENO" "struct lconv" "decimal_point" "ac_cv_member_struct_lconv_decimal_point" "#include +" +if test "x$ac_cv_member_struct_lconv_decimal_point" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_LCONV_DECIMAL_POINT 1" >>confdefs.h + + +fi + + + +fi + + + + + + + + + + GL_GNULIB_LOCALECONV=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_LOCALECONV 1" >>confdefs.h + + + + + + if test "$gl_threads_api" = posix; then + # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the + # pthread_rwlock_* functions. + has_rwlock=false + ac_fn_c_check_type "$LINENO" "pthread_rwlock_t" "ac_cv_type_pthread_rwlock_t" "#include +" +if test "x$ac_cv_type_pthread_rwlock_t" = xyes +then : + has_rwlock=true + +printf "%s\n" "#define HAVE_PTHREAD_RWLOCK 1" >>confdefs.h + +fi + + if $has_rwlock; then + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthread_rwlock_rdlock prefers a writer to a reader" >&5 +printf %s "checking whether pthread_rwlock_rdlock prefers a writer to a reader... " >&6; } +if test ${gl_cv_pthread_rwlock_rdlock_prefer_writer+y} +then : + printf %s "(cached) " >&6 +else $as_nop + save_LIBS="$LIBS" + LIBS="$LIBS $LIBMULTITHREAD" + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess no on glibc systems. + *-gnu* | gnu*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;; + # Guess no on musl systems. + *-musl*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;; + # Guess no on bionic systems. + *-android*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;; + # Guess yes on native Windows with the mingw-w64 winpthreads library. + # Guess no on native Windows with the gnulib windows-rwlock module. + mingw*) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then + gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing yes" + else + gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" + fi + ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_pthread_rwlock_rdlock_prefer_writer="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include + +#define SUCCEED() exit (0) +#define FAILURE() exit (1) +#define UNEXPECTED(n) (exit (10 + (n))) + +/* The main thread creates the waiting writer and the requesting reader threads + in the default way; this guarantees that they have the same priority. + We can reuse the main thread as first reader thread. */ + +static pthread_rwlock_t lock; +static pthread_t reader1; +static pthread_t writer; +static pthread_t reader2; +static pthread_t timer; +/* Used to pass control from writer to reader2 and from reader2 to timer, + as in a relay race. + Passing control from one running thread to another running thread + is most likely faster than to create the second thread. */ +static pthread_mutex_t baton; + +static void * +timer_func (void *ignored) +{ + /* Step 13 (can be before or after step 12): + The timer thread takes the baton, then waits a moment to make sure + it can tell whether the second reader thread is blocked at step 12. */ + if (pthread_mutex_lock (&baton)) + UNEXPECTED (13); + usleep (100000); + /* By the time we get here, it's clear that the second reader thread is + blocked at step 12. This is the desired behaviour. */ + SUCCEED (); +} + +static void * +reader2_func (void *ignored) +{ + int err; + + /* Step 8 (can be before or after step 7): + The second reader thread takes the baton, then waits a moment to make sure + the writer thread has reached step 7. */ + if (pthread_mutex_lock (&baton)) + UNEXPECTED (8); + usleep (100000); + /* Step 9: The second reader thread requests the lock. */ + err = pthread_rwlock_tryrdlock (&lock); + if (err == 0) + FAILURE (); + else if (err != EBUSY) + UNEXPECTED (9); + /* Step 10: Launch a timer, to test whether the next call blocks. */ + if (pthread_create (&timer, NULL, timer_func, NULL)) + UNEXPECTED (10); + /* Step 11: Release the baton. */ + if (pthread_mutex_unlock (&baton)) + UNEXPECTED (11); + /* Step 12: The second reader thread requests the lock. */ + err = pthread_rwlock_rdlock (&lock); + if (err == 0) + FAILURE (); + else + UNEXPECTED (12); +} + +static void * +writer_func (void *ignored) +{ + /* Step 4: Take the baton, so that the second reader thread does not go ahead + too early. */ + if (pthread_mutex_lock (&baton)) + UNEXPECTED (4); + /* Step 5: Create the second reader thread. */ + if (pthread_create (&reader2, NULL, reader2_func, NULL)) + UNEXPECTED (5); + /* Step 6: Release the baton. */ + if (pthread_mutex_unlock (&baton)) + UNEXPECTED (6); + /* Step 7: The writer thread requests the lock. */ + if (pthread_rwlock_wrlock (&lock)) + UNEXPECTED (7); + return NULL; +} + +int +main () +{ + reader1 = pthread_self (); + + /* Step 1: The main thread initializes the lock and the baton. */ + if (pthread_rwlock_init (&lock, NULL)) + UNEXPECTED (1); + if (pthread_mutex_init (&baton, NULL)) + UNEXPECTED (1); + /* Step 2: The main thread acquires the lock as a reader. */ + if (pthread_rwlock_rdlock (&lock)) + UNEXPECTED (2); + /* Step 3: Create the writer thread. */ + if (pthread_create (&writer, NULL, writer_func, NULL)) + UNEXPECTED (3); + /* Job done. Go to sleep. */ + for (;;) + { + sleep (1); + } +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_pthread_rwlock_rdlock_prefer_writer=yes +else $as_nop + gl_cv_pthread_rwlock_rdlock_prefer_writer=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + LIBS="$save_LIBS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_pthread_rwlock_rdlock_prefer_writer" >&5 +printf "%s\n" "$gl_cv_pthread_rwlock_rdlock_prefer_writer" >&6; } + case "$gl_cv_pthread_rwlock_rdlock_prefer_writer" in + *yes) + +printf "%s\n" "#define HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER 1" >>confdefs.h + + ;; + esac + + fi + # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include +int +main (void) +{ + +#if __FreeBSD__ == 4 +error "No, in FreeBSD 4.0 recursive mutexes actually don't work." +#elif (defined __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ \ + && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070) +error "No, in Mac OS X < 10.7 recursive mutexes actually don't work." +#else +int x = (int)PTHREAD_MUTEX_RECURSIVE; +return !x; +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +printf "%s\n" "#define HAVE_PTHREAD_MUTEX_RECURSIVE 1" >>confdefs.h + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + : + + + +printf "%s\n" "#define GNULIB_LOCK 1" >>confdefs.h + + + + + + + if test $ac_cv_func_lstat = yes; then + + case $host_os,$gl_cv_func_lstat_dereferences_slashed_symlink in + solaris* | *no) + REPLACE_LSTAT=1 + ;; + esac + else + HAVE_LSTAT=0 + fi + + + if test $REPLACE_LSTAT = 1; then + GL_COND_OBJ_LSTAT_TRUE= + GL_COND_OBJ_LSTAT_FALSE='#' +else + GL_COND_OBJ_LSTAT_TRUE='#' + GL_COND_OBJ_LSTAT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_LSTAT_TRUE}" && test -z "${GL_COND_OBJ_LSTAT_FALSE}"; then + GL_COND_OBJ_LSTAT_TRUE='#' + GL_COND_OBJ_LSTAT_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_LSTAT_TRUE"; then : + + : + +fi + + + + + + + + + + GL_GNULIB_LSTAT=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_LSTAT 1" >>confdefs.h + + + + + + + REPLACE_MALLOC_FOR_MALLOC_GNU="$REPLACE_MALLOC_FOR_MALLOC_POSIX" + if test $REPLACE_MALLOC_FOR_MALLOC_GNU = 0; then + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether malloc (0) returns nonnull" >&5 +printf %s "checking whether malloc (0) returns nonnull... " >&6; } +if test ${ac_cv_func_malloc_0_nonnull+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on platforms where we know the result. + *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ + | gnu* | *-musl* | midnightbsd* \ + | hpux* | solaris* | cygwin* | mingw* | msys* ) + ac_cv_func_malloc_0_nonnull="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) ac_cv_func_malloc_0_nonnull="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +void *p = malloc (0); + int result = !p; + free (p); + return result; + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + ac_cv_func_malloc_0_nonnull=yes +else $as_nop + ac_cv_func_malloc_0_nonnull=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 +printf "%s\n" "$ac_cv_func_malloc_0_nonnull" >&6; } + case $ac_cv_func_malloc_0_nonnull in #( + *yes) : + ;; #( + *) : + REPLACE_MALLOC_FOR_MALLOC_GNU=1 ;; +esac + + fi + + if test $REPLACE_MALLOC_FOR_MALLOC_GNU = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext" + + fi + + + + + + + + + + GL_GNULIB_MALLOC_GNU=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_MALLOC_GNU 1" >>confdefs.h + + + + + if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext" + + fi + + + + + + + + + + GL_GNULIB_MALLOC_POSIX=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_MALLOC_POSIX 1" >>confdefs.h + + + + + + + + + + + + + + + + + + + + if case "$host_os" in + mingw*) true ;; + *) test $ac_cv_func_mbsinit = yes ;; + esac \ + && test $ac_cv_func_mbrtowc = yes; then + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 +printf %s "checking whether mbrtowc handles incomplete characters... " >&6; } +if test ${gl_cv_func_mbrtowc_incomplete_state+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + case "$host_os" in + # Guess no on AIX and OSF/1. + aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; + esac + if test $LOCALE_JA != none; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) + { + const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + if (mbsinit (&state)) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbrtowc_incomplete_state=yes +else $as_nop + gl_cv_func_mbrtowc_incomplete_state=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + else + if test $LOCALE_FR_UTF8 != none; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + const char input[] = "B\303\274\303\237er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + if (mbsinit (&state)) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbrtowc_incomplete_state=yes +else $as_nop + gl_cv_func_mbrtowc_incomplete_state=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 +printf "%s\n" "$gl_cv_func_mbrtowc_incomplete_state" >&6; } + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 +printf %s "checking whether mbrtowc works as well as mbtowc... " >&6; } +if test ${gl_cv_func_mbrtowc_sanitycheck+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + case "$host_os" in + # Guess no on Solaris 8. + solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; + esac + if test $LOCALE_ZH_CN != none; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +int main () +{ + /* This fails on Solaris 8: + mbrtowc returns 2, and sets wc to 0x00F0. + mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 6, &state) != 4 + && mbtowc (&wc, input + 3, 6) == 4) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbrtowc_sanitycheck=yes +else $as_nop + gl_cv_func_mbrtowc_sanitycheck=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 +printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; } + + REPLACE_MBSTATE_T=0 + case "$gl_cv_func_mbrtowc_incomplete_state" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + case "$gl_cv_func_mbrtowc_sanitycheck" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + else + REPLACE_MBSTATE_T=1 + fi + + + + if test $ac_cv_func_mbrtowc = no; then + HAVE_MBRTOWC=0 + ac_fn_check_decl "$LINENO" "mbrtowc" "ac_cv_have_decl_mbrtowc" " + #include + +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_mbrtowc" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_MBRTOWC $ac_have_decl" >>confdefs.h + + if test $ac_cv_have_decl_mbrtowc = yes; then + REPLACE_MBRTOWC=1 + fi + else + if test $REPLACE_MBSTATE_T = 1; then + REPLACE_MBRTOWC=1 + else + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL pwc argument" >&5 +printf %s "checking whether mbrtowc handles a NULL pwc argument... " >&6; } +if test ${gl_cv_func_mbrtowc_null_arg1+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + case "$host_os" in + # Guess no on Solaris. + solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_null_arg1="guessing yes" ;; + esac + if test $LOCALE_FR_UTF8 != none; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +int main () +{ + int result = 0; + + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + char input[] = "\303\237er"; + mbstate_t state; + wchar_t wc; + size_t ret; + + memset (&state, '\0', sizeof (mbstate_t)); + wc = (wchar_t) 0xBADFACE; + ret = mbrtowc (&wc, input, 5, &state); + if (ret != 2) + result |= 1; + if (!mbsinit (&state)) + result |= 2; + + memset (&state, '\0', sizeof (mbstate_t)); + ret = mbrtowc (NULL, input, 5, &state); + if (ret != 2) /* Solaris 7 fails here: ret is -1. */ + result |= 4; + if (!mbsinit (&state)) + result |= 8; + } + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbrtowc_null_arg1=yes +else $as_nop + gl_cv_func_mbrtowc_null_arg1=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg1" >&5 +printf "%s\n" "$gl_cv_func_mbrtowc_null_arg1" >&6; } + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL string argument" >&5 +printf %s "checking whether mbrtowc handles a NULL string argument... " >&6; } +if test ${gl_cv_func_mbrtowc_null_arg2+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + case "$host_os" in + # Guess no on OSF/1. + osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_null_arg2="guessing yes" ;; + esac + if test $LOCALE_FR_UTF8 != none; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + mbstate_t state; + wchar_t wc; + int ret; + + memset (&state, '\0', sizeof (mbstate_t)); + wc = (wchar_t) 0xBADFACE; + mbrtowc (&wc, NULL, 5, &state); + /* Check that wc was not modified. */ + if (wc != (wchar_t) 0xBADFACE) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbrtowc_null_arg2=yes +else $as_nop + gl_cv_func_mbrtowc_null_arg2=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg2" >&5 +printf "%s\n" "$gl_cv_func_mbrtowc_null_arg2" >&6; } + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc has a correct return value" >&5 +printf %s "checking whether mbrtowc has a correct return value... " >&6; } +if test ${gl_cv_func_mbrtowc_retval+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + case "$host_os" in + # Guess no on HP-UX, Solaris, native Windows. + hpux* | solaris* | mingw*) gl_cv_func_mbrtowc_retval="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_retval="guessing yes" ;; + esac + if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none \ + || { case "$host_os" in mingw*) true;; *) false;; esac; }; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + int result = 0; + int found_some_locale = 0; + /* This fails on Solaris. */ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + char input[] = "B\303\274\303\237er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + { + input[1] = '\0'; + if (mbrtowc (&wc, input + 2, 5, &state) != 1) + result |= 1; + } + found_some_locale = 1; + } + /* This fails on HP-UX 11.11. */ + if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) + { + char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + { + input[1] = '\0'; + if (mbrtowc (&wc, input + 2, 5, &state) != 2) + result |= 2; + } + found_some_locale = 1; + } + /* This fails on native Windows. */ + if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL) + { + char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) + { + input[3] = '\0'; + if (mbrtowc (&wc, input + 4, 4, &state) != 1) + result |= 4; + } + found_some_locale = 1; + } + if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL) + { + char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) + { + input[3] = '\0'; + if (mbrtowc (&wc, input + 4, 4, &state) != 1) + result |= 8; + } + found_some_locale = 1; + } + if (setlocale (LC_ALL, "Chinese_China.936") != NULL) + { + char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) + { + input[3] = '\0'; + if (mbrtowc (&wc, input + 4, 4, &state) != 1) + result |= 16; + } + found_some_locale = 1; + } + return (found_some_locale ? result : 77); +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbrtowc_retval=yes +else $as_nop + if test $? != 77; then + gl_cv_func_mbrtowc_retval=no + fi + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_retval" >&5 +printf "%s\n" "$gl_cv_func_mbrtowc_retval" >&6; } + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc returns 0 when parsing a NUL character" >&5 +printf %s "checking whether mbrtowc returns 0 when parsing a NUL character... " >&6; } +if test ${gl_cv_func_mbrtowc_nul_retval+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + case "$host_os" in + # Guess no on Solaris 8 and 9. + solaris2.[89]) gl_cv_func_mbrtowc_nul_retval="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_nul_retval="guessing yes" ;; + esac + if test $LOCALE_ZH_CN != none; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + /* This fails on Solaris 8 and 9. */ + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, "", 1, &state) != 0) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbrtowc_nul_retval=yes +else $as_nop + gl_cv_func_mbrtowc_nul_retval=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_nul_retval" >&5 +printf "%s\n" "$gl_cv_func_mbrtowc_nul_retval" >&6; } + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc stores incomplete characters" >&5 +printf %s "checking whether mbrtowc stores incomplete characters... " >&6; } +if test ${gl_cv_func_mbrtowc_stores_incomplete+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + case "$host_os" in + # Guess yes on native Windows. + mingw*) gl_cv_func_mbrtowc_stores_incomplete="guessing yes" ;; + *) gl_cv_func_mbrtowc_stores_incomplete="guessing no" ;; + esac + case "$host_os" in + mingw*) + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + int result = 0; + if (setlocale (LC_ALL, "French_France.65001") != NULL) + { + wchar_t wc = (wchar_t) 0xBADFACE; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, "\303", 1, &state) == (size_t)(-2) + && wc != (wchar_t) 0xBADFACE) + result |= 1; + } + if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL) + { + wchar_t wc = (wchar_t) 0xBADFACE; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, "\226", 1, &state) == (size_t)(-2) + && wc != (wchar_t) 0xBADFACE) + result |= 2; + } + if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL) + { + wchar_t wc = (wchar_t) 0xBADFACE; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, "\245", 1, &state) == (size_t)(-2) + && wc != (wchar_t) 0xBADFACE) + result |= 4; + } + if (setlocale (LC_ALL, "Chinese_China.936") != NULL) + { + wchar_t wc = (wchar_t) 0xBADFACE; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, "\261", 1, &state) == (size_t)(-2) + && wc != (wchar_t) 0xBADFACE) + result |= 8; + } + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbrtowc_stores_incomplete=no +else $as_nop + gl_cv_func_mbrtowc_stores_incomplete=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + ;; + *) + + if test $LOCALE_FR_UTF8 != none; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + wchar_t wc = (wchar_t) 0xBADFACE; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, "\303", 1, &state) == (size_t)(-2) + && wc != (wchar_t) 0xBADFACE) + return 1; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbrtowc_stores_incomplete=no +else $as_nop + gl_cv_func_mbrtowc_stores_incomplete=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + ;; + esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_stores_incomplete" >&5 +printf "%s\n" "$gl_cv_func_mbrtowc_stores_incomplete" >&6; } + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works on empty input" >&5 +printf %s "checking whether mbrtowc works on empty input... " >&6; } +if test ${gl_cv_func_mbrtowc_empty_input+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + case "$host_os" in + # Guess no on AIX and glibc systems. + aix* | *-gnu* | gnu*) gl_cv_func_mbrtowc_empty_input="guessing no" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; + *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; + esac + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + static wchar_t wc; + static mbstate_t mbs; + int + main (void) + { + return mbrtowc (&wc, "", 0, &mbs) != (size_t) -2; + } +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbrtowc_empty_input=yes +else $as_nop + gl_cv_func_mbrtowc_empty_input=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_empty_input" >&5 +printf "%s\n" "$gl_cv_func_mbrtowc_empty_input" >&6; } + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C locale is free of encoding errors" >&5 +printf %s "checking whether the C locale is free of encoding errors... " >&6; } +if test ${gl_cv_func_mbrtowc_C_locale_sans_EILSEQ+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="$gl_cross_guess_normal" + + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on native Windows. + mingw*) gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="guessing yes" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + #include + +int +main (void) +{ + + int i; + char *locale = setlocale (LC_ALL, "C"); + if (! locale) + return 2; + for (i = CHAR_MIN; i <= CHAR_MAX; i++) + { + char c = i; + wchar_t wc; + mbstate_t mbs = { 0, }; + size_t ss = mbrtowc (&wc, &c, 1, &mbs); + if (1 < ss) + return 3; + } + return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=yes +else $as_nop + gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" >&5 +printf "%s\n" "$gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" >&6; } + + case "$gl_cv_func_mbrtowc_null_arg1" in + *yes) ;; + *) +printf "%s\n" "#define MBRTOWC_NULL_ARG1_BUG 1" >>confdefs.h + + REPLACE_MBRTOWC=1 + ;; + esac + case "$gl_cv_func_mbrtowc_null_arg2" in + *yes) ;; + *) +printf "%s\n" "#define MBRTOWC_NULL_ARG2_BUG 1" >>confdefs.h + + REPLACE_MBRTOWC=1 + ;; + esac + case "$gl_cv_func_mbrtowc_retval" in + *yes) ;; + *) +printf "%s\n" "#define MBRTOWC_RETVAL_BUG 1" >>confdefs.h + + REPLACE_MBRTOWC=1 + ;; + esac + case "$gl_cv_func_mbrtowc_nul_retval" in + *yes) ;; + *) +printf "%s\n" "#define MBRTOWC_NUL_RETVAL_BUG 1" >>confdefs.h + + REPLACE_MBRTOWC=1 + ;; + esac + case "$gl_cv_func_mbrtowc_stores_incomplete" in + *no) ;; + *) +printf "%s\n" "#define MBRTOWC_STORES_INCOMPLETE_BUG 1" >>confdefs.h + + REPLACE_MBRTOWC=1 + ;; + esac + case "$gl_cv_func_mbrtowc_empty_input" in + *yes) ;; + *) +printf "%s\n" "#define MBRTOWC_EMPTY_INPUT_BUG 1" >>confdefs.h + + REPLACE_MBRTOWC=1 + ;; + esac + case "$gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" in + *yes) ;; + *) +printf "%s\n" "#define MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ 1" >>confdefs.h + + REPLACE_MBRTOWC=1 + ;; + esac + fi + fi + if test $REPLACE_MBSTATE_T = 1; then + case "$host_os" in + mingw*) LIB_MBRTOWC= ;; + *) + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 +printf %s "checking whether imported symbols can be declared weak... " >&6; } +if test ${gl_cv_have_weak+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case "$host_os" in + cygwin*) + gl_cv_have_weak="guessing no" + ;; + *) + gl_cv_have_weak=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern void xyzzy (); +#pragma weak xyzzy +int +main (void) +{ +xyzzy(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_have_weak=maybe +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test $gl_cv_have_weak = maybe; then + if test "$cross_compiling" = yes +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __ELF__ + Extensible Linking Format + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Extensible Linking Format" >/dev/null 2>&1 +then : + gl_cv_have_weak="guessing yes" +else $as_nop + gl_cv_have_weak="guessing no" +fi +rm -rf conftest* + + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#pragma weak fputs +int main () +{ + return (fputs == NULL); +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_have_weak=yes +else $as_nop + gl_cv_have_weak=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + ;; + esac + case " $LDFLAGS " in + *" -static "*) gl_cv_have_weak=no ;; + esac + case "$gl_cv_have_weak" in + *yes) + case "$host_os" in + freebsd* | dragonfly* | midnightbsd*) + : > conftest1.c + $CC $CPPFLAGS $CFLAGS $LDFLAGS -fPIC -shared -o libempty.so conftest1.c -lpthread >&5 2>&1 + cat < conftest2.c +#include +#pragma weak pthread_mutexattr_gettype +int main () +{ + return (pthread_mutexattr_gettype != NULL); +} +EOF + $CC $CPPFLAGS $CFLAGS $LDFLAGS -o conftest conftest2.c libempty.so >&5 2>&1 \ + || gl_cv_have_weak=no + rm -f conftest1.c libempty.so conftest2.c conftest + ;; + esac + ;; + esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 +printf "%s\n" "$gl_cv_have_weak" >&6; } + case "$gl_cv_have_weak" in + *yes) + +printf "%s\n" "#define HAVE_WEAK_SYMBOLS 1" >>confdefs.h + + ;; + esac + + case "$gl_cv_have_weak" in + *yes) LIB_MBRTOWC= ;; + *) LIB_MBRTOWC="$LIBPTHREAD" ;; + esac + ;; + esac + else + LIB_MBRTOWC= + fi + + + + if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then + GL_COND_OBJ_MBRTOWC_TRUE= + GL_COND_OBJ_MBRTOWC_FALSE='#' +else + GL_COND_OBJ_MBRTOWC_TRUE='#' + GL_COND_OBJ_MBRTOWC_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MBRTOWC_TRUE}" && test -z "${GL_COND_OBJ_MBRTOWC_FALSE}"; then + GL_COND_OBJ_MBRTOWC_TRUE='#' + GL_COND_OBJ_MBRTOWC_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_MBRTOWC_TRUE"; then : + + if test $REPLACE_MBSTATE_T = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS lc-charset-dispatch.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS mbtowc-lock.$ac_objext" + + + + + CFLAG_VISIBILITY= + HAVE_VISIBILITY=0 + if test -n "$GCC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the -Werror option is usable" >&5 +printf %s "checking whether the -Werror option is usable... " >&6; } +if test ${gl_cv_cc_vis_werror+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_cc_vis_werror=yes +else $as_nop + gl_cv_cc_vis_werror=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5 +printf "%s\n" "$gl_cv_cc_vis_werror" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5 +printf %s "checking for simple visibility declarations... " >&6; } +if test ${gl_cv_cc_visibility+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fvisibility=hidden" + if test $gl_cv_cc_vis_werror = yes; then + CFLAGS="$CFLAGS -Werror" + fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern __attribute__((__visibility__("hidden"))) int hiddenvar; + extern __attribute__((__visibility__("default"))) int exportedvar; + extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); + extern __attribute__((__visibility__("default"))) int exportedfunc (void); + void dummyfunc (void); + int hiddenvar; + int exportedvar; + int hiddenfunc (void) { return 51; } + int exportedfunc (void) { return 1225736919; } + void dummyfunc (void) {} + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_cc_visibility=yes +else $as_nop + gl_cv_cc_visibility=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5 +printf "%s\n" "$gl_cv_cc_visibility" >&6; } + if test $gl_cv_cc_visibility = yes; then + CFLAG_VISIBILITY="-fvisibility=hidden" + HAVE_VISIBILITY=1 + fi + fi + + + +printf "%s\n" "#define HAVE_VISIBILITY $HAVE_VISIBILITY" >>confdefs.h + + + + fi + + + : + + +fi + + + + + + + + + + + + + + + GL_GNULIB_MBRTOWC=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_MBRTOWC 1" >>confdefs.h + + + + + + + + + + + + + + + + if case "$host_os" in + mingw*) true ;; + *) test $ac_cv_func_mbsinit = yes ;; + esac \ + && test $ac_cv_func_mbrtowc = yes; then + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 +printf %s "checking whether mbrtowc handles incomplete characters... " >&6; } +if test ${gl_cv_func_mbrtowc_incomplete_state+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + case "$host_os" in + # Guess no on AIX and OSF/1. + aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; + esac + if test $LOCALE_JA != none; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) + { + const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + if (mbsinit (&state)) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbrtowc_incomplete_state=yes +else $as_nop + gl_cv_func_mbrtowc_incomplete_state=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + else + if test $LOCALE_FR_UTF8 != none; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + const char input[] = "B\303\274\303\237er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + if (mbsinit (&state)) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbrtowc_incomplete_state=yes +else $as_nop + gl_cv_func_mbrtowc_incomplete_state=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 +printf "%s\n" "$gl_cv_func_mbrtowc_incomplete_state" >&6; } + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 +printf %s "checking whether mbrtowc works as well as mbtowc... " >&6; } +if test ${gl_cv_func_mbrtowc_sanitycheck+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + case "$host_os" in + # Guess no on Solaris 8. + solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; + esac + if test $LOCALE_ZH_CN != none; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +int main () +{ + /* This fails on Solaris 8: + mbrtowc returns 2, and sets wc to 0x00F0. + mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 6, &state) != 4 + && mbtowc (&wc, input + 3, 6) == 4) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbrtowc_sanitycheck=yes +else $as_nop + gl_cv_func_mbrtowc_sanitycheck=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 +printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; } + + REPLACE_MBSTATE_T=0 + case "$gl_cv_func_mbrtowc_incomplete_state" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + case "$gl_cv_func_mbrtowc_sanitycheck" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + else + REPLACE_MBSTATE_T=1 + fi + + + + if test $ac_cv_func_mbsinit = no; then + HAVE_MBSINIT=0 + ac_fn_check_decl "$LINENO" "mbsinit" "ac_cv_have_decl_mbsinit" " + #include + +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_mbsinit" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_MBSINIT $ac_have_decl" >>confdefs.h + + if test $ac_cv_have_decl_mbsinit = yes; then + REPLACE_MBSINIT=1 + fi + else + if test $REPLACE_MBSTATE_T = 1; then + REPLACE_MBSINIT=1 + else + case "$host_os" in + mingw*) REPLACE_MBSINIT=1 ;; + esac + fi + fi + + + if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then + GL_COND_OBJ_MBSINIT_TRUE= + GL_COND_OBJ_MBSINIT_FALSE='#' +else + GL_COND_OBJ_MBSINIT_TRUE='#' + GL_COND_OBJ_MBSINIT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MBSINIT_TRUE}" && test -z "${GL_COND_OBJ_MBSINIT_FALSE}"; then + GL_COND_OBJ_MBSINIT_TRUE='#' + GL_COND_OBJ_MBSINIT_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_MBSINIT_TRUE"; then : + + + : + + +fi + + + + + + + + + + + + + + + GL_GNULIB_MBSINIT=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_MBSINIT 1" >>confdefs.h + + + + + + + + + + + + + + + if case "$host_os" in + mingw*) true ;; + *) test $ac_cv_func_mbsinit = yes ;; + esac \ + && test $ac_cv_func_mbrtowc = yes; then + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 +printf %s "checking whether mbrtowc handles incomplete characters... " >&6; } +if test ${gl_cv_func_mbrtowc_incomplete_state+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + case "$host_os" in + # Guess no on AIX and OSF/1. + aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; + esac + if test $LOCALE_JA != none; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) + { + const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + if (mbsinit (&state)) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbrtowc_incomplete_state=yes +else $as_nop + gl_cv_func_mbrtowc_incomplete_state=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + else + if test $LOCALE_FR_UTF8 != none; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + const char input[] = "B\303\274\303\237er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + if (mbsinit (&state)) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbrtowc_incomplete_state=yes +else $as_nop + gl_cv_func_mbrtowc_incomplete_state=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 +printf "%s\n" "$gl_cv_func_mbrtowc_incomplete_state" >&6; } + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 +printf %s "checking whether mbrtowc works as well as mbtowc... " >&6; } +if test ${gl_cv_func_mbrtowc_sanitycheck+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + case "$host_os" in + # Guess no on Solaris 8. + solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; + esac + if test $LOCALE_ZH_CN != none; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +int main () +{ + /* This fails on Solaris 8: + mbrtowc returns 2, and sets wc to 0x00F0. + mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 6, &state) != 4 + && mbtowc (&wc, input + 3, 6) == 4) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbrtowc_sanitycheck=yes +else $as_nop + gl_cv_func_mbrtowc_sanitycheck=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 +printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; } + + REPLACE_MBSTATE_T=0 + case "$gl_cv_func_mbrtowc_incomplete_state" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + case "$gl_cv_func_mbrtowc_sanitycheck" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + else + REPLACE_MBSTATE_T=1 + fi + + + + if test $ac_cv_func_mbsrtowcs = no; then + HAVE_MBSRTOWCS=0 + ac_fn_check_decl "$LINENO" "mbsrtowcs" "ac_cv_have_decl_mbsrtowcs" " + #include + +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_mbsrtowcs" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_MBSRTOWCS $ac_have_decl" >>confdefs.h + + if test $ac_cv_have_decl_mbsrtowcs = yes; then + REPLACE_MBSRTOWCS=1 + fi + else + if test $REPLACE_MBSTATE_T = 1; then + REPLACE_MBSRTOWCS=1 + else + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbsrtowcs works" >&5 +printf %s "checking whether mbsrtowcs works... " >&6; } +if test ${gl_cv_func_mbsrtowcs_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + case "$host_os" in + # Guess no on HP-UX, Solaris, mingw. + hpux* | solaris* | mingw*) gl_cv_func_mbsrtowcs_works="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbsrtowcs_works="guessing yes" ;; + esac + if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + int result = 0; + /* Test whether the function supports a NULL destination argument. + This fails on native Windows. */ + if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) + { + const char input[] = "\337er"; + const char *src = input; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbsrtowcs (NULL, &src, 1, &state) != 3 + || src != input) + result |= 1; + } + /* Test whether the function works when started with a conversion state + in non-initial state. This fails on HP-UX 11.11 and Solaris 10. */ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + const char input[] = "B\303\274\303\237er"; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (NULL, input + 1, 1, &state) == (size_t)(-2)) + if (!mbsinit (&state)) + { + const char *src = input + 2; + if (mbsrtowcs (NULL, &src, 10, &state) != 4) + result |= 2; + } + } + if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) + { + const char input[] = "<\306\374\313\334\270\354>"; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (NULL, input + 3, 1, &state) == (size_t)(-2)) + if (!mbsinit (&state)) + { + const char *src = input + 4; + if (mbsrtowcs (NULL, &src, 10, &state) != 3) + result |= 4; + } + } + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + const char input[] = "B\250\271\201\060\211\070er"; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (NULL, input + 1, 1, &state) == (size_t)(-2)) + if (!mbsinit (&state)) + { + const char *src = input + 2; + if (mbsrtowcs (NULL, &src, 10, &state) != 4) + result |= 8; + } + } + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbsrtowcs_works=yes +else $as_nop + gl_cv_func_mbsrtowcs_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbsrtowcs_works" >&5 +printf "%s\n" "$gl_cv_func_mbsrtowcs_works" >&6; } + + case "$gl_cv_func_mbsrtowcs_works" in + *yes) ;; + *) REPLACE_MBSRTOWCS=1 ;; + esac + fi + fi + + + if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then + GL_COND_OBJ_MBSRTOWCS_TRUE= + GL_COND_OBJ_MBSRTOWCS_FALSE='#' +else + GL_COND_OBJ_MBSRTOWCS_TRUE='#' + GL_COND_OBJ_MBSRTOWCS_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MBSRTOWCS_TRUE}" && test -z "${GL_COND_OBJ_MBSRTOWCS_FALSE}"; then + GL_COND_OBJ_MBSRTOWCS_TRUE='#' + GL_COND_OBJ_MBSRTOWCS_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_MBSRTOWCS_TRUE"; then : + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS mbsrtowcs-state.$ac_objext" + + + : + + +fi + + + + + + + + + + + + + + + GL_GNULIB_MBSRTOWCS=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_MBSRTOWCS 1" >>confdefs.h + + + + + + + ac_fn_c_check_func "$LINENO" "mbtowc" "ac_cv_func_mbtowc" +if test "x$ac_cv_func_mbtowc" = xyes +then : + printf "%s\n" "#define HAVE_MBTOWC 1" >>confdefs.h + +fi + + if test $ac_cv_func_mbtowc = no; then + HAVE_MBTOWC=0 + else + if false; then + REPLACE_MBTOWC=1 + fi + fi + + + if test $HAVE_MBTOWC = 0 || test $REPLACE_MBTOWC = 1; then + GL_COND_OBJ_MBTOWC_TRUE= + GL_COND_OBJ_MBTOWC_FALSE='#' +else + GL_COND_OBJ_MBTOWC_TRUE='#' + GL_COND_OBJ_MBTOWC_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MBTOWC_TRUE}" && test -z "${GL_COND_OBJ_MBTOWC_FALSE}"; then + GL_COND_OBJ_MBTOWC_TRUE='#' + GL_COND_OBJ_MBTOWC_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_MBTOWC_TRUE"; then : + + + : + + +fi + + + + + + + + + + GL_GNULIB_MBTOWC=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_MBTOWC 1" >>confdefs.h + + + + + + if test $REPLACE_MEMCHR = 1; then + GL_COND_OBJ_MEMCHR_TRUE= + GL_COND_OBJ_MEMCHR_FALSE='#' +else + GL_COND_OBJ_MEMCHR_TRUE='#' + GL_COND_OBJ_MEMCHR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MEMCHR_TRUE}" && test -z "${GL_COND_OBJ_MEMCHR_FALSE}"; then + GL_COND_OBJ_MEMCHR_TRUE='#' + GL_COND_OBJ_MEMCHR_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_MEMCHR_TRUE"; then : + + + ac_fn_c_check_header_compile "$LINENO" "bp-sym.h" "ac_cv_header_bp_sym_h" "$ac_includes_default" +if test "x$ac_cv_header_bp_sym_h" = xyes +then : + printf "%s\n" "#define HAVE_BP_SYM_H 1" >>confdefs.h + +fi + + + +fi + + + + + + + + + + + + + + + GL_GNULIB_MEMCHR=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_MEMCHR 1" >>confdefs.h + + + + + + if test $HAVE_DECL_MEMMEM = 1 && test $REPLACE_MEMMEM = 0; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether memmem works in linear time" >&5 +printf %s "checking whether memmem works in linear time... " >&6; } +if test ${gl_cv_func_memmem_works_fast+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef __GNU_LIBRARY__ + #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 9) || (__GLIBC__ > 2)) \ + && !defined __UCLIBC__ + Lucky user + #endif +#endif +#ifdef __CYGWIN__ + #include + #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 0) + Lucky user + #endif +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky user" >/dev/null 2>&1 +then : + gl_cv_func_memmem_works_fast="guessing yes" +else $as_nop + gl_cv_func_memmem_works_fast="$gl_cross_guess_normal" +fi +rm -rf conftest* + + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include /* for signal */ +#include /* for memmem */ +#include /* for malloc */ +#include /* for alarm */ +static void quit (int sig) { _exit (sig + 128); } + +int +main (void) +{ + + int result = 0; + size_t m = 1000000; + char *haystack = (char *) malloc (2 * m + 1); + char *needle = (char *) malloc (m + 1); + /* Failure to compile this test due to missing alarm is okay, + since all such platforms (mingw) also lack memmem. */ + signal (SIGALRM, quit); + alarm (5); + /* Check for quadratic performance. */ + if (haystack && needle) + { + memset (haystack, 'A', 2 * m); + haystack[2 * m] = 'B'; + memset (needle, 'A', m); + needle[m] = 'B'; + if (!memmem (haystack, 2 * m + 1, needle, m + 1)) + result |= 1; + } + /* Free allocated memory, in case some sanitizer is watching. */ + free (haystack); + free (needle); + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_memmem_works_fast=yes +else $as_nop + gl_cv_func_memmem_works_fast=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memmem_works_fast" >&5 +printf "%s\n" "$gl_cv_func_memmem_works_fast" >&6; } + case "$gl_cv_func_memmem_works_fast" in + *yes) ;; + *) + REPLACE_MEMMEM=1 + ;; + esac + fi + + if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS memmem.$ac_objext" + + fi + + + + + ac_fn_c_check_func "$LINENO" "memmem" "ac_cv_func_memmem" +if test "x$ac_cv_func_memmem" = xyes +then : + printf "%s\n" "#define HAVE_MEMMEM 1" >>confdefs.h + +fi + + if test $ac_cv_func_memmem = yes; then + HAVE_MEMMEM=1 + else + HAVE_MEMMEM=0 + fi + + if test $ac_cv_have_decl_memmem = no; then + HAVE_DECL_MEMMEM=0 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether memmem works" >&5 +printf %s "checking whether memmem works... " >&6; } +if test ${gl_cv_func_memmem_works_always+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include /* for __GNU_LIBRARY__ */ +#ifdef __GNU_LIBRARY__ + #include + #if ((__GLIBC__ == 2 && ((__GLIBC_MINOR > 0 && __GLIBC_MINOR__ < 9) \ + || __GLIBC_MINOR__ > 12)) \ + || (__GLIBC__ > 2)) \ + || defined __UCLIBC__ + Lucky user + #endif +#elif defined __CYGWIN__ + #include + #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) + Lucky user + #endif +#else + Lucky user +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky user" >/dev/null 2>&1 +then : + gl_cv_func_memmem_works_always="guessing yes" +else $as_nop + gl_cv_func_memmem_works_always="$gl_cross_guess_normal" +fi +rm -rf conftest* + + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include /* for memmem */ +#define P "_EF_BF_BD" +#define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P +#define NEEDLE P P P P P + +int +main (void) +{ + + int result = 0; + if (memmem (HAYSTACK, strlen (HAYSTACK), NEEDLE, strlen (NEEDLE))) + result |= 1; + /* Check for empty needle behavior. */ + { + const char *haystack = "AAA"; + if (memmem (haystack, 3, (const char *) 1, 0) != haystack) + result |= 2; + } + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_memmem_works_always=yes +else $as_nop + gl_cv_func_memmem_works_always=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memmem_works_always" >&5 +printf "%s\n" "$gl_cv_func_memmem_works_always" >&6; } + case "$gl_cv_func_memmem_works_always" in + *yes) ;; + *) + REPLACE_MEMMEM=1 + ;; + esac + fi + : + + if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS memmem.$ac_objext" + + fi + + + + + + + + + + + + + + + GL_GNULIB_MEMMEM=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_MEMMEM 1" >>confdefs.h + + + + + + + + + + ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy" +if test "x$ac_cv_func_mempcpy" = xyes +then : + printf "%s\n" "#define HAVE_MEMPCPY 1" >>confdefs.h + +fi + + if test $ac_cv_func_mempcpy = no; then + HAVE_MEMPCPY=0 + fi + + + if test $HAVE_MEMPCPY = 0; then + GL_COND_OBJ_MEMPCPY_TRUE= + GL_COND_OBJ_MEMPCPY_FALSE='#' +else + GL_COND_OBJ_MEMPCPY_TRUE='#' + GL_COND_OBJ_MEMPCPY_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MEMPCPY_TRUE}" && test -z "${GL_COND_OBJ_MEMPCPY_FALSE}"; then + GL_COND_OBJ_MEMPCPY_TRUE='#' + GL_COND_OBJ_MEMPCPY_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_MEMPCPY_TRUE"; then : + + + : + + +fi + + + + + + + + + + + + + + + GL_GNULIB_MEMPCPY=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_MEMPCPY 1" >>confdefs.h + + + + + + + + + if test $ac_cv_have_decl_memrchr = no; then + HAVE_DECL_MEMRCHR=0 + fi + + ac_fn_c_check_func "$LINENO" "memrchr" "ac_cv_func_memrchr" +if test "x$ac_cv_func_memrchr" = xyes +then : + printf "%s\n" "#define HAVE_MEMRCHR 1" >>confdefs.h + +fi + + + + if test $ac_cv_func_memrchr = no; then + GL_COND_OBJ_MEMRCHR_TRUE= + GL_COND_OBJ_MEMRCHR_FALSE='#' +else + GL_COND_OBJ_MEMRCHR_TRUE='#' + GL_COND_OBJ_MEMRCHR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MEMRCHR_TRUE}" && test -z "${GL_COND_OBJ_MEMRCHR_FALSE}"; then + GL_COND_OBJ_MEMRCHR_TRUE='#' + GL_COND_OBJ_MEMRCHR_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_MEMRCHR_TRUE"; then : + + : + +fi + + + + + + + + + + + + + + + GL_GNULIB_MEMRCHR=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_MEMRCHR 1" >>confdefs.h + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mkdir handles trailing slash" >&5 +printf %s "checking whether mkdir handles trailing slash... " >&6; } +if test ${gl_cv_func_mkdir_trailing_slash_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + rm -rf conftest.dir + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;; + # Guess yes on MSVC, no on mingw. + mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _MSC_VER + Known +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Known" >/dev/null 2>&1 +then : + gl_cv_func_mkdir_trailing_slash_works="guessing yes" +else $as_nop + gl_cv_func_mkdir_trailing_slash_works="guessing no" +fi +rm -rf conftest* + + ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_mkdir_trailing_slash_works="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + + +$gl_mda_defines + +int +main (void) +{ +return mkdir ("conftest.dir/", 0700); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mkdir_trailing_slash_works=yes +else $as_nop + gl_cv_func_mkdir_trailing_slash_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -rf conftest.dir + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mkdir_trailing_slash_works" >&5 +printf "%s\n" "$gl_cv_func_mkdir_trailing_slash_works" >&6; } + case "$gl_cv_func_mkdir_trailing_slash_works" in + *yes) ;; + *) + REPLACE_MKDIR=1 + ;; + esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mkdir handles trailing dot" >&5 +printf %s "checking whether mkdir handles trailing dot... " >&6; } +if test ${gl_cv_func_mkdir_trailing_dot_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + rm -rf conftest.dir + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;; + # Guess yes on musl systems. + *-musl*) gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_mkdir_trailing_dot_works="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_mkdir_trailing_dot_works="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + + +$gl_mda_defines + +int +main (void) +{ +return !mkdir ("conftest.dir/./", 0700); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mkdir_trailing_dot_works=yes +else $as_nop + gl_cv_func_mkdir_trailing_dot_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -rf conftest.dir + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mkdir_trailing_dot_works" >&5 +printf "%s\n" "$gl_cv_func_mkdir_trailing_dot_works" >&6; } + case "$gl_cv_func_mkdir_trailing_dot_works" in + *yes) ;; + *) + REPLACE_MKDIR=1 + +printf "%s\n" "#define FUNC_MKDIR_DOT_BUG 1" >>confdefs.h + + ;; + esac + + + if test $REPLACE_MKDIR = 1; then + GL_COND_OBJ_MKDIR_TRUE= + GL_COND_OBJ_MKDIR_FALSE='#' +else + GL_COND_OBJ_MKDIR_TRUE='#' + GL_COND_OBJ_MKDIR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MKDIR_TRUE}" && test -z "${GL_COND_OBJ_MKDIR_FALSE}"; then + GL_COND_OBJ_MKDIR_TRUE='#' + GL_COND_OBJ_MKDIR_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_MKDIR=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_MKDIR 1" >>confdefs.h + + + + + + ac_fn_c_check_func "$LINENO" "mkdtemp" "ac_cv_func_mkdtemp" +if test "x$ac_cv_func_mkdtemp" = xyes +then : + printf "%s\n" "#define HAVE_MKDTEMP 1" >>confdefs.h + +fi + + if test $ac_cv_func_mkdtemp = no; then + HAVE_MKDTEMP=0 + fi + + + if test $HAVE_MKDTEMP = 0; then + GL_COND_OBJ_MKDTEMP_TRUE= + GL_COND_OBJ_MKDTEMP_FALSE='#' +else + GL_COND_OBJ_MKDTEMP_TRUE='#' + GL_COND_OBJ_MKDTEMP_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MKDTEMP_TRUE}" && test -z "${GL_COND_OBJ_MKDTEMP_FALSE}"; then + GL_COND_OBJ_MKDTEMP_TRUE='#' + GL_COND_OBJ_MKDTEMP_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_MKDTEMP_TRUE"; then : + + : + + +fi + + + + + + + + + + GL_GNULIB_MKDTEMP=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_MKDTEMP 1" >>confdefs.h + + + + + + + + if test $ac_cv_func_mkstemp = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working mkstemp" >&5 +printf %s "checking for working mkstemp... " >&6; } +if test ${gl_cv_func_working_mkstemp+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + mkdir conftest.mkstemp + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_working_mkstemp="guessing yes" ;; + # Guess yes on musl systems. + *-musl*) gl_cv_func_working_mkstemp="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_working_mkstemp="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_working_mkstemp="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default + + +$gl_mda_defines + +int +main (void) +{ +int result = 0; + int i; + off_t large = (off_t) 4294967295u; + if (large < 0) + large = 2147483647; + umask (0); + for (i = 0; i < 70; i++) + { + char templ[] = "conftest.mkstemp/coXXXXXX"; + int (*mkstemp_function) (char *) = mkstemp; + int fd = mkstemp_function (templ); + if (fd < 0) + result |= 1; + else + { + struct stat st; + if (lseek (fd, large, SEEK_SET) != large) + result |= 2; + if (fstat (fd, &st) < 0) + result |= 4; + else if (st.st_mode & 0077) + result |= 8; + if (close (fd)) + result |= 16; + } + } + return result; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_working_mkstemp=yes +else $as_nop + gl_cv_func_working_mkstemp=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -rf conftest.mkstemp + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_mkstemp" >&5 +printf "%s\n" "$gl_cv_func_working_mkstemp" >&6; } + case "$gl_cv_func_working_mkstemp" in + *yes) ;; + *) + REPLACE_MKSTEMP=1 + ;; + esac + else + HAVE_MKSTEMP=0 + fi + + + if test $HAVE_MKSTEMP = 0 || test $REPLACE_MKSTEMP = 1; then + GL_COND_OBJ_MKSTEMP_TRUE= + GL_COND_OBJ_MKSTEMP_FALSE='#' +else + GL_COND_OBJ_MKSTEMP_TRUE='#' + GL_COND_OBJ_MKSTEMP_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MKSTEMP_TRUE}" && test -z "${GL_COND_OBJ_MKSTEMP_FALSE}"; then + GL_COND_OBJ_MKSTEMP_TRUE='#' + GL_COND_OBJ_MKSTEMP_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_MKSTEMP_TRUE"; then : + + + + +fi + + + + + + + + + + GL_GNULIB_MKSTEMP=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_MKSTEMP 1" >>confdefs.h + + + + + + if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then + GL_COND_OBJ_MSVC_INVAL_TRUE= + GL_COND_OBJ_MSVC_INVAL_FALSE='#' +else + GL_COND_OBJ_MSVC_INVAL_TRUE='#' + GL_COND_OBJ_MSVC_INVAL_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MSVC_INVAL_TRUE}" && test -z "${GL_COND_OBJ_MSVC_INVAL_FALSE}"; then + GL_COND_OBJ_MSVC_INVAL_TRUE='#' + GL_COND_OBJ_MSVC_INVAL_FALSE='#' + fi + + + + if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then + GL_COND_OBJ_MSVC_NOTHROW_TRUE= + GL_COND_OBJ_MSVC_NOTHROW_FALSE='#' +else + GL_COND_OBJ_MSVC_NOTHROW_TRUE='#' + GL_COND_OBJ_MSVC_NOTHROW_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MSVC_NOTHROW_TRUE}" && test -z "${GL_COND_OBJ_MSVC_NOTHROW_FALSE}"; then + GL_COND_OBJ_MSVC_NOTHROW_TRUE='#' + GL_COND_OBJ_MSVC_NOTHROW_FALSE='#' + fi + + + +printf "%s\n" "#define GNULIB_MSVC_NOTHROW 1" >>confdefs.h + + + + + + + + + + + nanosleep_save_libs=$LIBS + + # Solaris 2.5.1 needs -lposix4 to get the nanosleep function. + # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4. + LIB_NANOSLEEP= + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing nanosleep" >&5 +printf %s "checking for library containing nanosleep... " >&6; } +if test ${ac_cv_search_nanosleep+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char nanosleep (); +int +main (void) +{ +return nanosleep (); + ; + return 0; +} +_ACEOF +for ac_lib in '' rt posix4 +do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO" +then : + ac_cv_search_nanosleep=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext + if test ${ac_cv_search_nanosleep+y} +then : + break +fi +done +if test ${ac_cv_search_nanosleep+y} +then : + +else $as_nop + ac_cv_search_nanosleep=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nanosleep" >&5 +printf "%s\n" "$ac_cv_search_nanosleep" >&6; } +ac_res=$ac_cv_search_nanosleep +if test "$ac_res" != no +then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + test "$ac_cv_search_nanosleep" = "none required" || + LIB_NANOSLEEP=$ac_cv_search_nanosleep +fi + + if test "x$ac_cv_search_nanosleep" != xno; then + + + if test $APPLE_UNIVERSAL_BUILD = 1; then + # A universal build on Apple Mac OS X platforms. + # The test result would be 'no (mishandles large arguments)' in 64-bit + # mode but 'yes' in 32-bit mode. But we need a configuration result that + # is valid in both modes. + gl_cv_func_nanosleep='no (mishandles large arguments)' + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working nanosleep" >&5 +printf %s "checking for working nanosleep... " >&6; } +if test ${gl_cv_func_nanosleep+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test "$cross_compiling" = yes +then : + case "$host_os" in linux*) # Guess it halfway works when the kernel is Linux. + gl_cv_func_nanosleep='guessing no (mishandles large arguments)' ;; + mingw*) # Guess no on native Windows. + gl_cv_func_nanosleep='guessing no' ;; + *) # If we don't know, obey --enable-cross-guesses. + gl_cv_func_nanosleep="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + #include + #include + #include + #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) + #define TYPE_MAXIMUM(t) \ + ((t) (! TYPE_SIGNED (t) \ + ? (t) -1 \ + : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) + + #if HAVE_DECL_ALARM + static void + check_for_SIGALRM (int sig) + { + if (sig != SIGALRM) + _exit (1); + } + #endif + + int + main () + { + static struct timespec ts_sleep; + static struct timespec ts_remaining; + /* Test for major problems first. */ + if (! nanosleep) + return 2; + ts_sleep.tv_sec = 0; + ts_sleep.tv_nsec = 1; + #if HAVE_DECL_ALARM + { + static struct sigaction act; + act.sa_handler = check_for_SIGALRM; + sigemptyset (&act.sa_mask); + sigaction (SIGALRM, &act, NULL); + alarm (1); + if (nanosleep (&ts_sleep, NULL) != 0) + return 3; + /* Test for a minor problem: the handling of large arguments. */ + ts_sleep.tv_sec = TYPE_MAXIMUM (time_t); + ts_sleep.tv_nsec = 999999999; + alarm (1); + if (nanosleep (&ts_sleep, &ts_remaining) != -1) + return 4; + if (errno != EINTR) + return 5; + if (ts_remaining.tv_sec <= TYPE_MAXIMUM (time_t) - 10) + return 6; + } + #else /* A simpler test for native Windows. */ + if (nanosleep (&ts_sleep, &ts_remaining) < 0) + return 3; + #endif + return 0; + } +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_nanosleep=yes +else $as_nop + case $? in 4|5|6) gl_cv_func_nanosleep='no (mishandles large arguments)';; *) gl_cv_func_nanosleep=no;; + esac +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_nanosleep" >&5 +printf "%s\n" "$gl_cv_func_nanosleep" >&6; } + case "$gl_cv_func_nanosleep" in + *yes) + REPLACE_NANOSLEEP=0 + ;; + *) + REPLACE_NANOSLEEP=1 + case "$gl_cv_func_nanosleep" in + *"mishandles large arguments"*) + +printf "%s\n" "#define HAVE_BUG_BIG_NANOSLEEP 1" >>confdefs.h + + ;; + esac + ;; + esac + else + HAVE_NANOSLEEP=0 + fi + LIBS=$nanosleep_save_libs + + + if test $HAVE_NANOSLEEP = 0 || test $REPLACE_NANOSLEEP = 1; then + GL_COND_OBJ_NANOSLEEP_TRUE= + GL_COND_OBJ_NANOSLEEP_FALSE='#' +else + GL_COND_OBJ_NANOSLEEP_TRUE='#' + GL_COND_OBJ_NANOSLEEP_FALSE= +fi +: + if test -z "${GL_COND_OBJ_NANOSLEEP_TRUE}" && test -z "${GL_COND_OBJ_NANOSLEEP_FALSE}"; then + GL_COND_OBJ_NANOSLEEP_TRUE='#' + GL_COND_OBJ_NANOSLEEP_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_NANOSLEEP=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_NANOSLEEP 1" >>confdefs.h + + + + + + + + + + + + if test $ac_cv_func_nl_langinfo = yes; then + # On Irix 6.5, YESEXPR is defined, but nl_langinfo(YESEXPR) is broken. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether YESEXPR works" >&5 +printf %s "checking whether YESEXPR works... " >&6; } +if test ${gl_cv_func_nl_langinfo_yesexpr_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + + case "$host_os" in + # Guess no on irix systems. + irix*) gl_cv_func_nl_langinfo_yesexpr_works="guessing no";; + # Guess yes elsewhere. + *) gl_cv_func_nl_langinfo_yesexpr_works="guessing yes";; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +return !*nl_langinfo(YESEXPR); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_nl_langinfo_yesexpr_works=yes +else $as_nop + gl_cv_func_nl_langinfo_yesexpr_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_nl_langinfo_yesexpr_works" >&5 +printf "%s\n" "$gl_cv_func_nl_langinfo_yesexpr_works" >&6; } + case $gl_cv_func_nl_langinfo_yesexpr_works in + *yes) FUNC_NL_LANGINFO_YESEXPR_WORKS=1 ;; + *) FUNC_NL_LANGINFO_YESEXPR_WORKS=0 ;; + esac + +printf "%s\n" "#define FUNC_NL_LANGINFO_YESEXPR_WORKS $FUNC_NL_LANGINFO_YESEXPR_WORKS" >>confdefs.h + + # On Solaris 10 and Solaris 11.3, nl_langinfo is not multithread-safe. + case "$host_os" in + solaris*) NL_LANGINFO_MTSAFE=0 ;; + *) NL_LANGINFO_MTSAFE=1 ;; + esac + +printf "%s\n" "#define NL_LANGINFO_MTSAFE $NL_LANGINFO_MTSAFE" >>confdefs.h + + if test $HAVE_LANGINFO_CODESET = 1 \ + && test $HAVE_LANGINFO_T_FMT_AMPM = 1 \ + && test $HAVE_LANGINFO_ALTMON = 1 \ + && test $HAVE_LANGINFO_ERA = 1 \ + && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1 \ + && test $NL_LANGINFO_MTSAFE = 1; then + : + else + REPLACE_NL_LANGINFO=1 + +printf "%s\n" "#define REPLACE_NL_LANGINFO 1" >>confdefs.h + + fi + else + HAVE_NL_LANGINFO=0 + fi + if test $HAVE_NL_LANGINFO = 0 || test $HAVE_LANGINFO_CODESET = 0; then + LIB_NL_LANGINFO="$LIB_SETLOCALE_NULL" + else + LIB_NL_LANGINFO= + fi + + + + if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then + GL_COND_OBJ_NL_LANGINFO_TRUE= + GL_COND_OBJ_NL_LANGINFO_FALSE='#' +else + GL_COND_OBJ_NL_LANGINFO_TRUE='#' + GL_COND_OBJ_NL_LANGINFO_FALSE= +fi +: + if test -z "${GL_COND_OBJ_NL_LANGINFO_TRUE}" && test -z "${GL_COND_OBJ_NL_LANGINFO_FALSE}"; then + GL_COND_OBJ_NL_LANGINFO_TRUE='#' + GL_COND_OBJ_NL_LANGINFO_FALSE='#' + fi + + + if test $REPLACE_NL_LANGINFO = 1 && test $NL_LANGINFO_MTSAFE = 0; then + GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE= + GL_COND_OBJ_NL_LANGINFO_LOCK_FALSE='#' +else + GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE='#' + GL_COND_OBJ_NL_LANGINFO_LOCK_FALSE= +fi +: + if test -z "${GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE}" && test -z "${GL_COND_OBJ_NL_LANGINFO_LOCK_FALSE}"; then + GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE='#' + GL_COND_OBJ_NL_LANGINFO_LOCK_FALSE='#' + fi + + if test $REPLACE_NL_LANGINFO = 1 && test $NL_LANGINFO_MTSAFE = 0; then + + + + CFLAG_VISIBILITY= + HAVE_VISIBILITY=0 + if test -n "$GCC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the -Werror option is usable" >&5 +printf %s "checking whether the -Werror option is usable... " >&6; } +if test ${gl_cv_cc_vis_werror+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_cc_vis_werror=yes +else $as_nop + gl_cv_cc_vis_werror=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5 +printf "%s\n" "$gl_cv_cc_vis_werror" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5 +printf %s "checking for simple visibility declarations... " >&6; } +if test ${gl_cv_cc_visibility+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fvisibility=hidden" + if test $gl_cv_cc_vis_werror = yes; then + CFLAGS="$CFLAGS -Werror" + fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern __attribute__((__visibility__("hidden"))) int hiddenvar; + extern __attribute__((__visibility__("default"))) int exportedvar; + extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); + extern __attribute__((__visibility__("default"))) int exportedfunc (void); + void dummyfunc (void); + int hiddenvar; + int exportedvar; + int hiddenfunc (void) { return 51; } + int exportedfunc (void) { return 1225736919; } + void dummyfunc (void) {} + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_cc_visibility=yes +else $as_nop + gl_cv_cc_visibility=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5 +printf "%s\n" "$gl_cv_cc_visibility" >&6; } + if test $gl_cv_cc_visibility = yes; then + CFLAG_VISIBILITY="-fvisibility=hidden" + HAVE_VISIBILITY=1 + fi + fi + + + +printf "%s\n" "#define HAVE_VISIBILITY $HAVE_VISIBILITY" >>confdefs.h + + + + fi + + + + + + + + + + GL_GNULIB_NL_LANGINFO=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_NL_LANGINFO 1" >>confdefs.h + + + + + + + + + + + + + + + + GL_GNULIB_NONBLOCKING=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_NONBLOCKING 1" >>confdefs.h + + + + + +printf "%s\n" "#define GNULIB_NONBLOCKING 1" >>confdefs.h + + + + + + + + + + GL_GNULIB_STDIO_H_NONBLOCKING=1 + + + + + + + + + GL_GNULIB_UNISTD_H_NONBLOCKING=1 + + + + + + case "$host_os" in + mingw* | pw*) + REPLACE_OPEN=1 + ;; + *) + + if test "$gl_cv_macro_O_CLOEXEC" != yes; then + REPLACE_OPEN=1 + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether open recognizes a trailing slash" >&5 +printf %s "checking whether open recognizes a trailing slash... " >&6; } +if test ${gl_cv_func_open_slash+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + touch conftest.tmp + ln -s conftest.tmp conftest.lnk + fi + if test "$cross_compiling" = yes +then : + + case "$host_os" in + freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) + gl_cv_func_open_slash="guessing no" ;; + *) + gl_cv_func_open_slash="guessing yes" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#if HAVE_UNISTD_H +# include +#endif + + +$gl_mda_defines + +int main () +{ + int result = 0; +#if HAVE_LSTAT + if (open ("conftest.lnk/", O_RDONLY) != -1) + result |= 1; +#endif + if (open ("conftest.sl/", O_CREAT, 0600) >= 0) + result |= 2; + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_open_slash=yes +else $as_nop + gl_cv_func_open_slash=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.sl conftest.tmp conftest.lnk + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_open_slash" >&5 +printf "%s\n" "$gl_cv_func_open_slash" >&6; } + case "$gl_cv_func_open_slash" in + *no) + +printf "%s\n" "#define OPEN_TRAILING_SLASH_BUG 1" >>confdefs.h + + ;; + esac + + case "$gl_cv_func_open_slash" in + *no) + REPLACE_OPEN=1 + ;; + esac + ;; + esac + + if test $REPLACE_OPEN = 0; then + + + + if test $ac_cv_func_fchdir = no; then + HAVE_FCHDIR=0 + fi + + if test $HAVE_FCHDIR = 0; then + REPLACE_OPEN=1 + fi + fi + + + if test $REPLACE_OPEN = 0; then + + + + if test $gl_cv_have_open_O_NONBLOCK != yes; then + REPLACE_OPEN=1 + fi + fi + + + + if test $REPLACE_OPEN = 1; then + GL_COND_OBJ_OPEN_TRUE= + GL_COND_OBJ_OPEN_FALSE='#' +else + GL_COND_OBJ_OPEN_TRUE='#' + GL_COND_OBJ_OPEN_FALSE= +fi +: + if test -z "${GL_COND_OBJ_OPEN_TRUE}" && test -z "${GL_COND_OBJ_OPEN_FALSE}"; then + GL_COND_OBJ_OPEN_TRUE='#' + GL_COND_OBJ_OPEN_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_OPEN_TRUE"; then : + + + + : + + +fi + + + + + + + + + + GL_GNULIB_OPEN=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_OPEN 1" >>confdefs.h + + + + + + + + + + case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink+$gl_cv_macro_O_CLOEXEC in + yes+*yes+yes) + ;; + yes+*) + # Solaris 10 lacks O_CLOEXEC. + # Solaris 9 has *at functions, but uniformly mishandles trailing + # slash in all of them. + REPLACE_OPENAT=1 + ;; + *) + HAVE_OPENAT=0 + ;; + esac + + + if test $HAVE_OPENAT = 0 || test $REPLACE_OPENAT = 1; then + GL_COND_OBJ_OPENAT_TRUE= + GL_COND_OBJ_OPENAT_FALSE='#' +else + GL_COND_OBJ_OPENAT_TRUE='#' + GL_COND_OBJ_OPENAT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_OPENAT_TRUE}" && test -z "${GL_COND_OBJ_OPENAT_FALSE}"; then + GL_COND_OBJ_OPENAT_TRUE='#' + GL_COND_OBJ_OPENAT_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_OPENAT_TRUE"; then : + + + + : + + +fi + + +printf "%s\n" "#define GNULIB_OPENAT 1" >>confdefs.h + + + + + + + + + + + GL_GNULIB_OPENAT=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_OPENAT 1" >>confdefs.h + + + + + + + ac_fn_c_check_func "$LINENO" "opendir" "ac_cv_func_opendir" +if test "x$ac_cv_func_opendir" = xyes +then : + printf "%s\n" "#define HAVE_OPENDIR 1" >>confdefs.h + +fi + + if test $ac_cv_func_opendir = no; then + HAVE_OPENDIR=0 + fi + + + + + if test $ac_cv_func_fchdir = no; then + HAVE_FCHDIR=0 + fi + + if test $HAVE_FCHDIR = 0; then + if test $HAVE_OPENDIR = 1; then + REPLACE_OPENDIR=1 + fi + fi + + case $host_os,$HAVE_OPENDIR in + os2*,1) + REPLACE_OPENDIR=1;; + esac + + + if test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1; then + GL_COND_OBJ_OPENDIR_TRUE= + GL_COND_OBJ_OPENDIR_FALSE='#' +else + GL_COND_OBJ_OPENDIR_TRUE='#' + GL_COND_OBJ_OPENDIR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_OPENDIR_TRUE}" && test -z "${GL_COND_OBJ_OPENDIR_FALSE}"; then + GL_COND_OBJ_OPENDIR_TRUE='#' + GL_COND_OBJ_OPENDIR_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_OPENDIR=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_OPENDIR 1" >>confdefs.h + + + + + + + + + + + if test $ac_cv_func_pipe != yes; then + HAVE_PIPE=0 + fi + + + if test $HAVE_PIPE = 0; then + GL_COND_OBJ_PIPE_TRUE= + GL_COND_OBJ_PIPE_FALSE='#' +else + GL_COND_OBJ_PIPE_TRUE='#' + GL_COND_OBJ_PIPE_FALSE= +fi +: + if test -z "${GL_COND_OBJ_PIPE_TRUE}" && test -z "${GL_COND_OBJ_PIPE_FALSE}"; then + GL_COND_OBJ_PIPE_TRUE='#' + GL_COND_OBJ_PIPE_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_PIPE=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_PIPE 1" >>confdefs.h + + + + ac_fn_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_program_invocation_name" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl" >>confdefs.h + + ac_fn_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl" >>confdefs.h + + + + + + + if test $ac_cv_func_pselect = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether signature of pselect conforms to POSIX" >&5 +printf %s "checking whether signature of pselect conforms to POSIX... " >&6; } +if test ${gl_cv_sig_pselect+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +int (*p) (int, fd_set *, fd_set *, fd_set *restrict, + struct timespec const *restrict, + sigset_t const *restrict) = pselect; + return !p; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_sig_pselect=yes +else $as_nop + gl_cv_sig_pselect=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sig_pselect" >&5 +printf "%s\n" "$gl_cv_sig_pselect" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pselect detects invalid fds" >&5 +printf %s "checking whether pselect detects invalid fds... " >&6; } +if test ${gl_cv_func_pselect_detects_ebadf+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test "$cross_compiling" = yes +then : + + case "$host_os" in + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_pselect_detects_ebadf="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_pselect_detects_ebadf="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_pselect_detects_ebadf="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if HAVE_SYS_SELECT_H +# include +#endif +#include +#include + + +$gl_mda_defines + +int +main (void) +{ + + fd_set set; + dup2(0, 16); + FD_ZERO(&set); + FD_SET(16, &set); + close(16); + struct timespec timeout; + timeout.tv_sec = 0; + timeout.tv_nsec = 5000; + return pselect (17, &set, NULL, NULL, &timeout, NULL) != -1 || errno != EBADF; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_pselect_detects_ebadf=yes +else $as_nop + gl_cv_func_pselect_detects_ebadf=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pselect_detects_ebadf" >&5 +printf "%s\n" "$gl_cv_func_pselect_detects_ebadf" >&6; } + case $gl_cv_func_pselect_detects_ebadf in + *yes) ;; + *) REPLACE_PSELECT=1 ;; + esac + fi + + if test $ac_cv_func_pselect = no || test $gl_cv_sig_pselect = no; then + REPLACE_PSELECT=1 + fi + + + if test $HAVE_PSELECT = 0 || test $REPLACE_PSELECT = 1; then + GL_COND_OBJ_PSELECT_TRUE= + GL_COND_OBJ_PSELECT_FALSE='#' +else + GL_COND_OBJ_PSELECT_TRUE='#' + GL_COND_OBJ_PSELECT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_PSELECT_TRUE}" && test -z "${GL_COND_OBJ_PSELECT_FALSE}"; then + GL_COND_OBJ_PSELECT_TRUE='#' + GL_COND_OBJ_PSELECT_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_PSELECT=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_PSELECT 1" >>confdefs.h + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthread_sigmask is a macro" >&5 +printf %s "checking whether pthread_sigmask is a macro... " >&6; } +if test ${gl_cv_func_pthread_sigmask_macro+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#ifdef pthread_sigmask + headers_define_pthread_sigmask +#endif +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "headers_define_pthread_sigmask" >/dev/null 2>&1 +then : + gl_cv_func_pthread_sigmask_macro=yes +else $as_nop + gl_cv_func_pthread_sigmask_macro=no +fi +rm -rf conftest* + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_macro" >&5 +printf "%s\n" "$gl_cv_func_pthread_sigmask_macro" >&6; } + + LIB_PTHREAD_SIGMASK= + + if test $gl_cv_func_pthread_sigmask_macro = yes; then + HAVE_PTHREAD_SIGMASK=0 + REPLACE_PTHREAD_SIGMASK=1 + else + + + + if test "$gl_threads_api" = posix; then + if test $ac_cv_func_pthread_sigmask = yes; then + : + else + if test -n "$LIBMULTITHREAD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_sigmask in $LIBMULTITHREAD" >&5 +printf %s "checking for pthread_sigmask in $LIBMULTITHREAD... " >&6; } +if test ${gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gl_save_LIBS="$LIBS" + LIBS="$LIBS $LIBMULTITHREAD" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main (void) +{ +return pthread_sigmask (0, (sigset_t *) 0, (sigset_t *) 0); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=yes +else $as_nop + gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gl_save_LIBS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD" >&5 +printf "%s\n" "$gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD" >&6; } + if test $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD = yes; then + LIB_PTHREAD_SIGMASK="$LIBMULTITHREAD" + else + HAVE_PTHREAD_SIGMASK=0 + fi + else + HAVE_PTHREAD_SIGMASK=0 + fi + fi + else + if test $ac_cv_func_pthread_sigmask = yes; then + REPLACE_PTHREAD_SIGMASK=1 + else + HAVE_PTHREAD_SIGMASK=0 + fi + fi + + fi + + + + if test $HAVE_PTHREAD_SIGMASK = 1; then + + + if test -z "$LIB_PTHREAD_SIGMASK"; then + case " $LIBS " in + *' -pthread '*) ;; + *' -lpthread '*) ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthread_sigmask works without -lpthread" >&5 +printf %s "checking whether pthread_sigmask works without -lpthread... " >&6; } +if test ${gl_cv_func_pthread_sigmask_in_libc_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test "$cross_compiling" = yes +then : + + case "$host_os" in + freebsd* | midnightbsd* | hpux* | solaris | solaris2.[2-9]*) + gl_cv_func_pthread_sigmask_in_libc_works="guessing no";; + *) + gl_cv_func_pthread_sigmask_in_libc_works="guessing yes";; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + #include + int main () + { + sigset_t set; + sigemptyset (&set); + return pthread_sigmask (1729, &set, NULL) != 0; + } +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_pthread_sigmask_in_libc_works=no +else $as_nop + gl_cv_func_pthread_sigmask_in_libc_works=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_in_libc_works" >&5 +printf "%s\n" "$gl_cv_func_pthread_sigmask_in_libc_works" >&6; } + case "$gl_cv_func_pthread_sigmask_in_libc_works" in + *no) + REPLACE_PTHREAD_SIGMASK=1 + +printf "%s\n" "#define PTHREAD_SIGMASK_INEFFECTIVE 1" >>confdefs.h + + ;; + esac;; + esac + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthread_sigmask returns error numbers" >&5 +printf %s "checking whether pthread_sigmask returns error numbers... " >&6; } +if test ${gl_cv_func_pthread_sigmask_return_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + gl_save_LIBS="$LIBS" + LIBS="$LIBS $LIB_PTHREAD_SIGMASK" + if test "$cross_compiling" = yes +then : + case "$host_os" in + cygwin*) + gl_cv_func_pthread_sigmask_return_works="guessing no";; + *) + gl_cv_func_pthread_sigmask_return_works="guessing yes";; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + sigset_t set; + sigemptyset (&set); + if (pthread_sigmask (1729, &set, NULL) == -1) + return 1; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_pthread_sigmask_return_works=yes +else $as_nop + gl_cv_func_pthread_sigmask_return_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + LIBS="$gl_save_LIBS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_return_works" >&5 +printf "%s\n" "$gl_cv_func_pthread_sigmask_return_works" >&6; } + case "$gl_cv_func_pthread_sigmask_return_works" in + *no) + REPLACE_PTHREAD_SIGMASK=1 + +printf "%s\n" "#define PTHREAD_SIGMASK_FAILS_WITH_ERRNO 1" >>confdefs.h + + ;; + esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthread_sigmask unblocks signals correctly" >&5 +printf %s "checking whether pthread_sigmask unblocks signals correctly... " >&6; } +if test ${gl_cv_func_pthread_sigmask_unblock_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + case "$host_os" in + irix*) + gl_cv_func_pthread_sigmask_unblock_works="guessing no";; + *) + gl_cv_func_pthread_sigmask_unblock_works="guessing yes";; + esac + gl_save_LIBS=$LIBS + LIBS="$LIBS $LIBMULTITHREAD" + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +#include + + +$gl_mda_defines + +static volatile int sigint_occurred; +static void +sigint_handler (int sig) +{ + sigint_occurred++; +} +int main () +{ + sigset_t set; + int pid = getpid (); + char command[80]; + signal (SIGINT, sigint_handler); + sigemptyset (&set); + sigaddset (&set, SIGINT); + if (!(pthread_sigmask (SIG_BLOCK, &set, NULL) == 0)) + return 1; + sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, pid); + if (!(system (command) == 0)) + return 2; + sleep (2); + if (!(sigint_occurred == 0)) + return 3; + if (!(pthread_sigmask (SIG_UNBLOCK, &set, NULL) == 0)) + return 4; + if (!(sigint_occurred == 1)) /* This fails on IRIX. */ + return 5; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + : +else $as_nop + gl_cv_func_pthread_sigmask_unblock_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + LIBS=$gl_save_LIBS + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_unblock_works" >&5 +printf "%s\n" "$gl_cv_func_pthread_sigmask_unblock_works" >&6; } + case "$gl_cv_func_pthread_sigmask_unblock_works" in + *no) + REPLACE_PTHREAD_SIGMASK=1 + +printf "%s\n" "#define PTHREAD_SIGMASK_UNBLOCK_BUG 1" >>confdefs.h + + ;; + esac + fi + + + if test $HAVE_PTHREAD_SIGMASK = 0 || test $REPLACE_PTHREAD_SIGMASK = 1; then + GL_COND_OBJ_PTHREAD_SIGMASK_TRUE= + GL_COND_OBJ_PTHREAD_SIGMASK_FALSE='#' +else + GL_COND_OBJ_PTHREAD_SIGMASK_TRUE='#' + GL_COND_OBJ_PTHREAD_SIGMASK_FALSE= +fi +: + if test -z "${GL_COND_OBJ_PTHREAD_SIGMASK_TRUE}" && test -z "${GL_COND_OBJ_PTHREAD_SIGMASK_FALSE}"; then + GL_COND_OBJ_PTHREAD_SIGMASK_TRUE='#' + GL_COND_OBJ_PTHREAD_SIGMASK_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_PTHREAD_SIGMASK_TRUE"; then : + + + if test $HAVE_PTHREAD_SIGMASK = 1; then + +printf "%s\n" "#define HAVE_PTHREAD_SIGMASK 1" >>confdefs.h + + fi + + +fi + + + + + + + + + + GL_GNULIB_PTHREAD_SIGMASK=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_PTHREAD_SIGMASK 1" >>confdefs.h + + + + + + + ac_fn_c_check_func "$LINENO" "raise" "ac_cv_func_raise" +if test "x$ac_cv_func_raise" = xyes +then : + printf "%s\n" "#define HAVE_RAISE 1" >>confdefs.h + +fi + + if test $ac_cv_func_raise = no; then + HAVE_RAISE=0 + else + + + if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then + REPLACE_RAISE=1 + fi + + + + + + HAVE_POSIX_SIGNALBLOCKING=0 + if test "$gl_cv_type_sigset_t" = yes; then + ac_fn_c_check_func "$LINENO" "sigprocmask" "ac_cv_func_sigprocmask" +if test "x$ac_cv_func_sigprocmask" = xyes +then : + HAVE_POSIX_SIGNALBLOCKING=1 +fi + + fi + + if test $HAVE_POSIX_SIGNALBLOCKING = 0; then + + + + + if test $gl_cv_header_signal_h_SIGPIPE != yes; then + REPLACE_RAISE=1 + fi + + fi + + fi + + + if test $HAVE_RAISE = 0 || test $REPLACE_RAISE = 1; then + GL_COND_OBJ_RAISE_TRUE= + GL_COND_OBJ_RAISE_FALSE='#' +else + GL_COND_OBJ_RAISE_TRUE='#' + GL_COND_OBJ_RAISE_FALSE= +fi +: + if test -z "${GL_COND_OBJ_RAISE_TRUE}" && test -z "${GL_COND_OBJ_RAISE_FALSE}"; then + GL_COND_OBJ_RAISE_TRUE='#' + GL_COND_OBJ_RAISE_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_RAISE_TRUE"; then : + + : + +fi + + + + + + + + + + GL_GNULIB_RAISE=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_RAISE 1" >>confdefs.h + + + + + + + + ac_fn_c_check_func "$LINENO" "rawmemchr" "ac_cv_func_rawmemchr" +if test "x$ac_cv_func_rawmemchr" = xyes +then : + printf "%s\n" "#define HAVE_RAWMEMCHR 1" >>confdefs.h + +fi + + if test $ac_cv_func_rawmemchr = no; then + HAVE_RAWMEMCHR=0 + fi + + + if test $HAVE_RAWMEMCHR = 0; then + GL_COND_OBJ_RAWMEMCHR_TRUE= + GL_COND_OBJ_RAWMEMCHR_FALSE='#' +else + GL_COND_OBJ_RAWMEMCHR_TRUE='#' + GL_COND_OBJ_RAWMEMCHR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_RAWMEMCHR_TRUE}" && test -z "${GL_COND_OBJ_RAWMEMCHR_FALSE}"; then + GL_COND_OBJ_RAWMEMCHR_TRUE='#' + GL_COND_OBJ_RAWMEMCHR_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_RAWMEMCHR_TRUE"; then : + + : + +fi + + + + + + + + + + + + + + + GL_GNULIB_RAWMEMCHR=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_RAWMEMCHR 1" >>confdefs.h + + + + + + + ac_fn_c_check_func "$LINENO" "readdir" "ac_cv_func_readdir" +if test "x$ac_cv_func_readdir" = xyes +then : + printf "%s\n" "#define HAVE_READDIR 1" >>confdefs.h + +fi + + if test $ac_cv_func_readdir = no; then + HAVE_READDIR=0 + fi + + + if test $HAVE_READDIR = 0; then + GL_COND_OBJ_READDIR_TRUE= + GL_COND_OBJ_READDIR_FALSE='#' +else + GL_COND_OBJ_READDIR_TRUE='#' + GL_COND_OBJ_READDIR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_READDIR_TRUE}" && test -z "${GL_COND_OBJ_READDIR_FALSE}"; then + GL_COND_OBJ_READDIR_TRUE='#' + GL_COND_OBJ_READDIR_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_READDIR=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_READDIR 1" >>confdefs.h + + + + + + + if test $ac_cv_func_readlink = no; then + HAVE_READLINK=0 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether readlink signature is correct" >&5 +printf %s "checking whether readlink signature is correct... " >&6; } +if test ${gl_cv_decl_readlink_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Cause compilation failure if original declaration has wrong type. */ + ssize_t readlink (const char *, char *, size_t); +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_decl_readlink_works=yes +else $as_nop + gl_cv_decl_readlink_works=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_readlink_works" >&5 +printf "%s\n" "$gl_cv_decl_readlink_works" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether readlink handles trailing slash correctly" >&5 +printf %s "checking whether readlink handles trailing slash correctly... " >&6; } +if test ${gl_cv_func_readlink_trailing_slash+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # We have readlink, so assume ln -s works. + ln -s conftest.no-such conftest.link + ln -s conftest.link conftest.lnk2 + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on Linux or glibc systems. + linux-* | linux | *-gnu* | gnu*) + gl_cv_func_readlink_trailing_slash="guessing yes" ;; + # Guess no on AIX or HP-UX. + aix* | hpux*) + gl_cv_func_readlink_trailing_slash="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) + gl_cv_func_readlink_trailing_slash="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +char buf[20]; + return readlink ("conftest.lnk2/", buf, sizeof buf) != -1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_readlink_trailing_slash=yes +else $as_nop + gl_cv_func_readlink_trailing_slash=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.link conftest.lnk2 +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_readlink_trailing_slash" >&5 +printf "%s\n" "$gl_cv_func_readlink_trailing_slash" >&6; } + case "$gl_cv_func_readlink_trailing_slash" in + *yes) + if test "$gl_cv_decl_readlink_works" != yes; then + REPLACE_READLINK=1 + fi + ;; + *) + +printf "%s\n" "#define READLINK_TRAILING_SLASH_BUG 1" >>confdefs.h + + REPLACE_READLINK=1 + ;; + esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether readlink truncates results correctly" >&5 +printf %s "checking whether readlink truncates results correctly... " >&6; } +if test ${gl_cv_func_readlink_truncate+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # We have readlink, so assume ln -s works. + ln -s ab conftest.link + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on Linux or glibc systems. + linux-* | linux | *-gnu* | gnu*) + gl_cv_func_readlink_truncate="guessing yes" ;; + # Guess no on AIX or HP-UX. + aix* | hpux*) + gl_cv_func_readlink_truncate="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) + gl_cv_func_readlink_truncate="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +char c; + return readlink ("conftest.link", &c, 1) != 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_readlink_truncate=yes +else $as_nop + gl_cv_func_readlink_truncate=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.link conftest.lnk2 +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_readlink_truncate" >&5 +printf "%s\n" "$gl_cv_func_readlink_truncate" >&6; } + case $gl_cv_func_readlink_truncate in + *yes) + if test "$gl_cv_decl_readlink_works" != yes; then + REPLACE_READLINK=1 + fi + ;; + *) + +printf "%s\n" "#define READLINK_TRUNCATE_BUG 1" >>confdefs.h + + REPLACE_READLINK=1 + ;; + esac + fi + + + if test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1; then + GL_COND_OBJ_READLINK_TRUE= + GL_COND_OBJ_READLINK_FALSE='#' +else + GL_COND_OBJ_READLINK_TRUE='#' + GL_COND_OBJ_READLINK_FALSE= +fi +: + if test -z "${GL_COND_OBJ_READLINK_TRUE}" && test -z "${GL_COND_OBJ_READLINK_FALSE}"; then + GL_COND_OBJ_READLINK_TRUE='#' + GL_COND_OBJ_READLINK_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_READLINK_TRUE"; then : + + + : + + +fi + + + + + + + + + + GL_GNULIB_READLINK=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_READLINK 1" >>confdefs.h + + + + + + + + + if test $ac_cv_func_readlinkat = no; then + HAVE_READLINKAT=0 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether readlinkat signature is correct" >&5 +printf %s "checking whether readlinkat signature is correct... " >&6; } +if test ${gl_cv_decl_readlinkat_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check whether original declaration has correct type. */ + ssize_t readlinkat (int, char const *, char *, size_t); +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_decl_readlinkat_works=yes +else $as_nop + gl_cv_decl_readlinkat_works=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_readlinkat_works" >&5 +printf "%s\n" "$gl_cv_decl_readlinkat_works" >&6; } + # Assume readlinkat has the same bugs as readlink, + # as is the case on OS X 10.10 with trailing slashes. + case $gl_cv_decl_readlinkat_works,$gl_cv_func_readlink_trailing_slash,$gl_cv_func_readlink_truncate in + *yes,*yes,*yes) + ;; + *) + REPLACE_READLINKAT=1 + ;; + esac + fi + + + if test $HAVE_READLINKAT = 0 || test $REPLACE_READLINKAT = 1; then + GL_COND_OBJ_READLINKAT_TRUE= + GL_COND_OBJ_READLINKAT_FALSE='#' +else + GL_COND_OBJ_READLINKAT_TRUE='#' + GL_COND_OBJ_READLINKAT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_READLINKAT_TRUE}" && test -z "${GL_COND_OBJ_READLINKAT_FALSE}"; then + GL_COND_OBJ_READLINKAT_TRUE='#' + GL_COND_OBJ_READLINKAT_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_READLINKAT=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_READLINKAT 1" >>confdefs.h + + + + + + + if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 0; then + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether realloc (0, 0) returns nonnull" >&5 +printf %s "checking whether realloc (0, 0) returns nonnull... " >&6; } +if test ${ac_cv_func_realloc_0_nonnull+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on platforms where we know the result. + *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ + | gnu* | *-musl* | midnightbsd* \ + | hpux* | solaris* | cygwin* | mingw* | msys* ) + ac_cv_func_realloc_0_nonnull="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) ac_cv_func_realloc_0_nonnull="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +void *p = realloc (0, 0); + int result = !p; + free (p); + return result; + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + ac_cv_func_realloc_0_nonnull=yes +else $as_nop + ac_cv_func_realloc_0_nonnull=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_realloc_0_nonnull" >&5 +printf "%s\n" "$ac_cv_func_realloc_0_nonnull" >&6; } + case $ac_cv_func_realloc_0_nonnull in #( + *yes) : + ;; #( + *) : + REPLACE_REALLOC_FOR_REALLOC_GNU=1 ;; +esac + + fi + + if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS realloc.$ac_objext" + + fi + + + + + + + + + + GL_GNULIB_REALLOC_GNU=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_REALLOC_GNU 1" >>confdefs.h + + + + + + + if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then + REPLACE_REALLOC_FOR_REALLOC_POSIX=1 + fi + + if test $REPLACE_REALLOC_FOR_REALLOC_POSIX = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS realloc.$ac_objext" + + fi + + + + + + + + + + GL_GNULIB_REALLOC_POSIX=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_REALLOC_POSIX 1" >>confdefs.h + + + + + + + + + ac_fn_c_check_func "$LINENO" "reallocarray" "ac_cv_func_reallocarray" +if test "x$ac_cv_func_reallocarray" = xyes +then : + printf "%s\n" "#define HAVE_REALLOCARRAY 1" >>confdefs.h + +fi + + if test "$ac_cv_func_reallocarray" = no; then + HAVE_REALLOCARRAY=0 + elif test "$gl_cv_malloc_ptrdiff" = no; then + REPLACE_REALLOCARRAY=1 + fi + + + if test $HAVE_REALLOCARRAY = 0 || test $REPLACE_REALLOCARRAY = 1; then + GL_COND_OBJ_REALLOCARRAY_TRUE= + GL_COND_OBJ_REALLOCARRAY_FALSE='#' +else + GL_COND_OBJ_REALLOCARRAY_TRUE='#' + GL_COND_OBJ_REALLOCARRAY_FALSE= +fi +: + if test -z "${GL_COND_OBJ_REALLOCARRAY_TRUE}" && test -z "${GL_COND_OBJ_REALLOCARRAY_FALSE}"; then + GL_COND_OBJ_REALLOCARRAY_TRUE='#' + GL_COND_OBJ_REALLOCARRAY_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_REALLOCARRAY_TRUE"; then : + + : + +fi + + +printf "%s\n" "#define GNULIB_REALLOCARRAY 1" >>confdefs.h + + + + + + + + + + + + GL_GNULIB_REALLOCARRAY=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_REALLOCARRAY 1" >>confdefs.h + + + + + +# Check whether --with-included-regex was given. +if test ${with_included_regex+y} +then : + withval=$with_included_regex; +fi + + + case $with_included_regex in #( + yes|no) ac_use_included_regex=$with_included_regex + ;; + '') + # If the system regex support is good enough that it passes the + # following run test, then default to *not* using the included regex.c. + # If cross compiling, assume the test would fail and use the included + # regex.c. + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working re_compile_pattern" >&5 +printf %s "checking for working re_compile_pattern... " >&6; } +if test ${gl_cv_func_re_compile_pattern_working+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess no on native Windows. + mingw*) gl_cv_func_re_compile_pattern_working="guessing no" ;; + # Otherwise obey --enable-cross-guesses. + *) gl_cv_func_re_compile_pattern_working="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + + #include + #include + #include + + #if defined M_CHECK_ACTION || HAVE_DECL_ALARM + # include + # include + #endif + + #if HAVE_MALLOC_H + # include + #endif + + #ifdef M_CHECK_ACTION + /* Exit with distinguishable exit code. */ + static void sigabrt_no_core (int sig) { raise (SIGTERM); } + #endif + +int +main (void) +{ +int result = 0; + static struct re_pattern_buffer regex; + unsigned char folded_chars[UCHAR_MAX + 1]; + int i; + const char *s; + struct re_registers regs; + + /* Some builds of glibc go into an infinite loop on this + test. Use alarm to force death, and mallopt to avoid + malloc recursion in diagnosing the corrupted heap. */ +#if HAVE_DECL_ALARM + signal (SIGALRM, SIG_DFL); + alarm (2); +#endif +#ifdef M_CHECK_ACTION + signal (SIGABRT, sigabrt_no_core); + mallopt (M_CHECK_ACTION, 2); +#endif + + if (setlocale (LC_ALL, "en_US.UTF-8")) + { + { + /* https://sourceware.org/ml/libc-hacker/2006-09/msg00008.html + This test needs valgrind to catch the bug on Debian + GNU/Linux 3.1 x86, but it might catch the bug better + on other platforms and it shouldn't hurt to try the + test here. */ + static char const pat[] = "insert into"; + static char const data[] = + "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK"; + re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE + | RE_ICASE); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern (pat, sizeof pat - 1, ®ex); + if (s) + result |= 1; + else + { + if (re_search (®ex, data, sizeof data - 1, + 0, sizeof data - 1, ®s) + != -1) + result |= 1; + regfree (®ex); + } + } + + { + /* This test is from glibc bug 15078. + The test case is from Andreas Schwab in + . + */ + static char const pat[] = "[^x]x"; + static char const data[] = + /* */ + "\xe1\x80\x80" + "\xe1\x80\xbb" + "\xe1\x80\xbd" + "\xe1\x80\x94" + "\xe1\x80\xba" + "\xe1\x80\xaf" + "\xe1\x80\x95" + "\xe1\x80\xba" + "x"; + re_set_syntax (0); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern (pat, sizeof pat - 1, ®ex); + if (s) + result |= 1; + else + { + i = re_search (®ex, data, sizeof data - 1, + 0, sizeof data - 1, 0); + if (i != 0 && i != 21) + result |= 1; + regfree (®ex); + } + } + + if (! setlocale (LC_ALL, "C")) + return 1; + } + + /* This test is from glibc bug 3957, reported by Andrew Mackey. */ + re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("a[^x]b", 6, ®ex); + if (s) + result |= 2; + else + { + /* This should fail, but succeeds for glibc-2.5. */ + if (re_search (®ex, "a\nb", 3, 0, 3, ®s) != -1) + result |= 2; + regfree (®ex); + } + + /* This regular expression is from Spencer ere test number 75 + in grep-2.3. */ + re_set_syntax (RE_SYNTAX_POSIX_EGREP); + memset (®ex, 0, sizeof regex); + for (i = 0; i <= UCHAR_MAX; i++) + folded_chars[i] = i; + regex.translate = folded_chars; + s = re_compile_pattern ("a[[:]:]]b\n", 11, ®ex); + /* This should fail with _Invalid character class name_ error. */ + if (!s) + { + result |= 4; + regfree (®ex); + } + + /* Ensure that [b-a] is diagnosed as invalid, when + using RE_NO_EMPTY_RANGES. */ + re_set_syntax (RE_SYNTAX_POSIX_EGREP | RE_NO_EMPTY_RANGES); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("a[b-a]", 6, ®ex); + if (s == 0) + { + result |= 8; + regfree (®ex); + } + + /* This should succeed, but does not for glibc-2.1.3. */ + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("{1", 2, ®ex); + if (s) + result |= 8; + else + regfree (®ex); + + /* The following example is derived from a problem report + against gawk from Jorge Stolfi . */ + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("[an\371]*n", 7, ®ex); + if (s) + result |= 8; + else + { + /* This should match, but does not for glibc-2.2.1. */ + if (re_match (®ex, "an", 2, 0, ®s) != 2) + result |= 8; + else + { + free (regs.start); + free (regs.end); + } + regfree (®ex); + } + + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("x", 1, ®ex); + if (s) + result |= 8; + else + { + /* glibc-2.2.93 does not work with a negative RANGE argument. */ + if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) + result |= 8; + else + { + free (regs.start); + free (regs.end); + } + regfree (®ex); + } + + /* The version of regex.c in older versions of gnulib + ignored RE_ICASE. Detect that problem too. */ + re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("x", 1, ®ex); + if (s) + result |= 16; + else + { + if (re_search (®ex, "WXY", 3, 0, 3, ®s) < 0) + result |= 16; + else + { + free (regs.start); + free (regs.end); + } + regfree (®ex); + } + + /* Catch a bug reported by Vin Shelton in + https://lists.gnu.org/r/bug-coreutils/2007-06/msg00089.html + */ + re_set_syntax (RE_SYNTAX_POSIX_BASIC + & ~RE_CONTEXT_INVALID_DUP + & ~RE_NO_EMPTY_RANGES); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("[[:alnum:]_-]\\\\+\$", 16, ®ex); + if (s) + result |= 32; + else + regfree (®ex); + + /* REG_STARTEND was added to glibc on 2004-01-15. + Reject older versions. */ + if (! REG_STARTEND) + result |= 64; + + /* Matching with the compiled form of this regexp would provoke + an assertion failure prior to glibc-2.28: + regexec.c:1375: pop_fail_stack: Assertion 'num >= 0' failed + With glibc-2.28, compilation fails and reports the invalid + back reference. */ + re_set_syntax (RE_SYNTAX_POSIX_EGREP); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("0|()0|\\\\1|0", 10, ®ex); + if (!s) + { + memset (®s, 0, sizeof regs); + i = re_search (®ex, "x", 1, 0, 1, ®s); + if (i != -1) + result |= 64; + if (0 <= i) + { + free (regs.start); + free (regs.end); + } + regfree (®ex); + } + else + { + if (strcmp (s, "Invalid back reference")) + result |= 64; + } + + /* glibc bug 11053. */ + re_set_syntax (RE_SYNTAX_POSIX_BASIC); + memset (®ex, 0, sizeof regex); + static char const pat_sub2[] = "\\\\(a*\\\\)*a*\\\\1"; + s = re_compile_pattern (pat_sub2, sizeof pat_sub2 - 1, ®ex); + if (s) + result |= 64; + else + { + memset (®s, 0, sizeof regs); + static char const data[] = "a"; + int datalen = sizeof data - 1; + i = re_search (®ex, data, datalen, 0, datalen, ®s); + if (i != 0) + result |= 64; + else if (regs.num_regs < 2) + result |= 64; + else if (! (regs.start[0] == 0 && regs.end[0] == 1)) + result |= 64; + else if (! (regs.start[1] == 0 && regs.end[1] == 0)) + result |= 64; + regfree (®ex); + free (regs.start); + free (regs.end); + } + +#if 0 + /* It would be nice to reject hosts whose regoff_t values are too + narrow (including glibc on hosts with 64-bit ptrdiff_t and + 32-bit int), but we should wait until glibc implements this + feature. Otherwise, support for equivalence classes and + multibyte collation symbols would always be broken except + when compiling --without-included-regex. */ + if (sizeof (regoff_t) < sizeof (ptrdiff_t) + || sizeof (regoff_t) < sizeof (ssize_t)) + result |= 64; +#endif + + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_re_compile_pattern_working=yes +else $as_nop + gl_cv_func_re_compile_pattern_working=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_re_compile_pattern_working" >&5 +printf "%s\n" "$gl_cv_func_re_compile_pattern_working" >&6; } + case "$gl_cv_func_re_compile_pattern_working" in #( + *yes) ac_use_included_regex=no;; #( + *no) ac_use_included_regex=yes;; + esac + ;; + *) as_fn_error $? "Invalid value for --with-included-regex: $with_included_regex" "$LINENO" 5 + ;; + esac + + if test $ac_use_included_regex = yes; then + +printf "%s\n" "#define _REGEX_INCLUDE_LIMITS_H 1" >>confdefs.h + + +printf "%s\n" "#define _REGEX_LARGE_OFFSETS 1" >>confdefs.h + + +printf "%s\n" "#define re_syntax_options rpl_re_syntax_options" >>confdefs.h + + +printf "%s\n" "#define re_set_syntax rpl_re_set_syntax" >>confdefs.h + + +printf "%s\n" "#define re_compile_pattern rpl_re_compile_pattern" >>confdefs.h + + +printf "%s\n" "#define re_compile_fastmap rpl_re_compile_fastmap" >>confdefs.h + + +printf "%s\n" "#define re_search rpl_re_search" >>confdefs.h + + +printf "%s\n" "#define re_search_2 rpl_re_search_2" >>confdefs.h + + +printf "%s\n" "#define re_match rpl_re_match" >>confdefs.h + + +printf "%s\n" "#define re_match_2 rpl_re_match_2" >>confdefs.h + + +printf "%s\n" "#define re_set_registers rpl_re_set_registers" >>confdefs.h + + +printf "%s\n" "#define re_comp rpl_re_comp" >>confdefs.h + + +printf "%s\n" "#define re_exec rpl_re_exec" >>confdefs.h + + +printf "%s\n" "#define regcomp rpl_regcomp" >>confdefs.h + + +printf "%s\n" "#define regexec rpl_regexec" >>confdefs.h + + +printf "%s\n" "#define regerror rpl_regerror" >>confdefs.h + + +printf "%s\n" "#define regfree rpl_regfree" >>confdefs.h + + fi + + + if test $ac_use_included_regex = yes; then + GL_COND_OBJ_REGEX_TRUE= + GL_COND_OBJ_REGEX_FALSE='#' +else + GL_COND_OBJ_REGEX_TRUE='#' + GL_COND_OBJ_REGEX_FALSE= +fi +: + if test -z "${GL_COND_OBJ_REGEX_TRUE}" && test -z "${GL_COND_OBJ_REGEX_FALSE}"; then + GL_COND_OBJ_REGEX_TRUE='#' + GL_COND_OBJ_REGEX_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_REGEX_TRUE"; then : + + + + + + + + ac_fn_c_check_header_compile "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" +if test "x$ac_cv_header_libintl_h" = xyes +then : + printf "%s\n" "#define HAVE_LIBINTL_H 1" >>confdefs.h + +fi + + + ac_fn_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_isblank" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_ISBLANK $ac_have_decl" >>confdefs.h + + + +fi + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether rename honors trailing slash on destination" >&5 +printf %s "checking whether rename honors trailing slash on destination... " >&6; } +if test ${gl_cv_func_rename_slash_dst_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk + touch conftest.f && touch conftest.f1 && mkdir conftest.d1 || + as_fn_error $? "cannot create temporary files" "$LINENO" 5 + # Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + ln -s conftest.f conftest.lnk + fi + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_rename_slash_dst_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_rename_slash_dst_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_rename_slash_dst_works="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_rename_slash_dst_works="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# include +# include + +int +main (void) +{ +int result = 0; + if (rename ("conftest.f1", "conftest.f2/") == 0) + result |= 1; + if (rename ("conftest.d1", "conftest.d2/") != 0) + result |= 2; +#if HAVE_LSTAT + if (rename ("conftest.f", "conftest.lnk/") == 0) + result |= 4; +#endif + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_rename_slash_dst_works=yes +else $as_nop + gl_cv_func_rename_slash_dst_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_slash_dst_works" >&5 +printf "%s\n" "$gl_cv_func_rename_slash_dst_works" >&6; } + case "$gl_cv_func_rename_slash_dst_works" in + *yes) ;; + *) + REPLACE_RENAME=1 + +printf "%s\n" "#define RENAME_TRAILING_SLASH_DEST_BUG 1" >>confdefs.h + + ;; + esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether rename honors trailing slash on source" >&5 +printf %s "checking whether rename honors trailing slash on source... " >&6; } +if test ${gl_cv_func_rename_slash_src_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk + touch conftest.f && touch conftest.f1 && mkdir conftest.d1 || + as_fn_error $? "cannot create temporary files" "$LINENO" 5 + # Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + ln -s conftest.f conftest.lnk + fi + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_rename_slash_src_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_rename_slash_src_works="guessing yes" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_rename_slash_src_works="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_rename_slash_src_works="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# include +# include + +int +main (void) +{ +int result = 0; + if (rename ("conftest.f1/", "conftest.d3") == 0) + result |= 1; + if (rename ("conftest.d1/", "conftest.d2") != 0) + result |= 2; +#if HAVE_LSTAT + if (rename ("conftest.lnk/", "conftest.f") == 0) + result |= 4; +#endif + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_rename_slash_src_works=yes +else $as_nop + gl_cv_func_rename_slash_src_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_slash_src_works" >&5 +printf "%s\n" "$gl_cv_func_rename_slash_src_works" >&6; } + case "$gl_cv_func_rename_slash_src_works" in + *yes) ;; + *) + REPLACE_RENAME=1 + +printf "%s\n" "#define RENAME_TRAILING_SLASH_SOURCE_BUG 1" >>confdefs.h + + ;; + esac + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether rename manages hard links correctly" >&5 +printf %s "checking whether rename manages hard links correctly... " >&6; } +if test ${gl_cv_func_rename_link_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test $ac_cv_func_link = yes; then + if test $cross_compiling != yes; then + rm -rf conftest.f conftest.f1 conftest.f2 + if touch conftest.f conftest.f2 && ln conftest.f conftest.f1 && + set x `ls -i conftest.f conftest.f1` && test "" = ""; then + if test "$cross_compiling" = yes +then : + : + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# include +# include +# include +# include + + +$gl_mda_defines + +int +main (void) +{ +int result = 0; + if (rename ("conftest.f", "conftest.f1")) + result |= 1; + if (unlink ("conftest.f1")) + result |= 2; + + /* Allow either the POSIX-required behavior, where the + previous rename kept conftest.f, or the (better) NetBSD + behavior, where it removed conftest.f. */ + if (rename ("conftest.f", "conftest.f") != 0 + && errno != ENOENT) + result |= 4; + + if (rename ("conftest.f1", "conftest.f1") == 0) + result |= 8; + if (rename ("conftest.f2", "conftest.f2") != 0) + result |= 16; + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_rename_link_works=yes +else $as_nop + gl_cv_func_rename_link_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + else + gl_cv_func_rename_link_works="guessing no" + fi + rm -rf conftest.f conftest.f1 conftest.f2 + else + case "$host_os" in + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_rename_link_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_rename_link_works="guessing yes" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_rename_link_works="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_rename_link_works="$gl_cross_guess_normal" ;; + esac + fi + else + gl_cv_func_rename_link_works=yes + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_link_works" >&5 +printf "%s\n" "$gl_cv_func_rename_link_works" >&6; } + case "$gl_cv_func_rename_link_works" in + *yes) ;; + *) + REPLACE_RENAME=1 + +printf "%s\n" "#define RENAME_HARD_LINK_BUG 1" >>confdefs.h + + ;; + esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether rename manages existing destinations correctly" >&5 +printf %s "checking whether rename manages existing destinations correctly... " >&6; } +if test ${gl_cv_func_rename_dest_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + rm -rf conftest.f conftest.d1 conftest.d2 + touch conftest.f && mkdir conftest.d1 conftest.d2 || + as_fn_error $? "cannot create temporary files" "$LINENO" 5 + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_rename_dest_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_rename_dest_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_rename_dest_works="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_rename_dest_works="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# include +# include + +int +main (void) +{ +int result = 0; + if (rename ("conftest.d1", "conftest.d2") != 0) + result |= 1; + if (rename ("conftest.d2", "conftest.f") == 0) + result |= 2; + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_rename_dest_works=yes +else $as_nop + gl_cv_func_rename_dest_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -rf conftest.f conftest.d1 conftest.d2 + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_dest_works" >&5 +printf "%s\n" "$gl_cv_func_rename_dest_works" >&6; } + case "$gl_cv_func_rename_dest_works" in + *yes) ;; + *) + REPLACE_RENAME=1 + +printf "%s\n" "#define RENAME_DEST_EXISTS_BUG 1" >>confdefs.h + + ;; + esac + + + if test $REPLACE_RENAME = 1; then + GL_COND_OBJ_RENAME_TRUE= + GL_COND_OBJ_RENAME_FALSE='#' +else + GL_COND_OBJ_RENAME_TRUE='#' + GL_COND_OBJ_RENAME_FALSE= +fi +: + if test -z "${GL_COND_OBJ_RENAME_TRUE}" && test -z "${GL_COND_OBJ_RENAME_FALSE}"; then + GL_COND_OBJ_RENAME_TRUE='#' + GL_COND_OBJ_RENAME_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_RENAME=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_RENAME 1" >>confdefs.h + + + + + + + + + ac_fn_c_check_header_compile "$LINENO" "linux/fs.h" "ac_cv_header_linux_fs_h" "$ac_includes_default" +if test "x$ac_cv_header_linux_fs_h" = xyes +then : + printf "%s\n" "#define HAVE_LINUX_FS_H 1" >>confdefs.h + +fi + + + if test $ac_cv_func_renameat = no; then + HAVE_RENAMEAT=0 + elif test $REPLACE_RENAME = 1; then + REPLACE_RENAMEAT=1 + fi + + + if test $HAVE_RENAMEAT = 0 || test $REPLACE_RENAMEAT = 1; then + GL_COND_OBJ_RENAMEAT_TRUE= + GL_COND_OBJ_RENAMEAT_FALSE='#' +else + GL_COND_OBJ_RENAMEAT_TRUE='#' + GL_COND_OBJ_RENAMEAT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_RENAMEAT_TRUE}" && test -z "${GL_COND_OBJ_RENAMEAT_FALSE}"; then + GL_COND_OBJ_RENAMEAT_TRUE='#' + GL_COND_OBJ_RENAMEAT_FALSE='#' + fi + + if test $HAVE_RENAMEAT = 0; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS at-func2.$ac_objext" + + fi + + + + + + + + + + GL_GNULIB_RENAMEAT=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_RENAMEAT 1" >>confdefs.h + + + + + + + + + ac_fn_c_check_header_compile "$LINENO" "linux/fs.h" "ac_cv_header_linux_fs_h" "$ac_includes_default" +if test "x$ac_cv_header_linux_fs_h" = xyes +then : + printf "%s\n" "#define HAVE_LINUX_FS_H 1" >>confdefs.h + +fi + + + if test $ac_cv_func_renameat = no; then + HAVE_RENAMEAT=0 + elif test $REPLACE_RENAME = 1; then + REPLACE_RENAMEAT=1 + fi + + if test $HAVE_RENAMEAT = 0; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS at-func2.$ac_objext" + + fi + + + + ac_fn_c_check_func "$LINENO" "rewinddir" "ac_cv_func_rewinddir" +if test "x$ac_cv_func_rewinddir" = xyes +then : + printf "%s\n" "#define HAVE_REWINDDIR 1" >>confdefs.h + +fi + + if test $ac_cv_func_rewinddir = no; then + HAVE_REWINDDIR=0 + fi + + + if test $HAVE_REWINDDIR = 0; then + GL_COND_OBJ_REWINDDIR_TRUE= + GL_COND_OBJ_REWINDDIR_FALSE='#' +else + GL_COND_OBJ_REWINDDIR_TRUE='#' + GL_COND_OBJ_REWINDDIR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_REWINDDIR_TRUE}" && test -z "${GL_COND_OBJ_REWINDDIR_FALSE}"; then + GL_COND_OBJ_REWINDDIR_TRUE='#' + GL_COND_OBJ_REWINDDIR_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_REWINDDIR=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_REWINDDIR 1" >>confdefs.h + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether rmdir works" >&5 +printf %s "checking whether rmdir works... " >&6; } +if test ${gl_cv_func_rmdir_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + mkdir conftest.dir + touch conftest.file + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_rmdir_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_rmdir_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_rmdir_works="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_rmdir_works="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + #if HAVE_UNISTD_H + # include + #else /* on Windows with MSVC */ + # include + #endif + + +$gl_mda_defines + +int +main (void) +{ +int result = 0; + if (!rmdir ("conftest.file/")) + result |= 1; + else if (errno != ENOTDIR) + result |= 2; + if (!rmdir ("conftest.dir/./")) + result |= 4; + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_rmdir_works=yes +else $as_nop + gl_cv_func_rmdir_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -rf conftest.dir conftest.file +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rmdir_works" >&5 +printf "%s\n" "$gl_cv_func_rmdir_works" >&6; } + case "$gl_cv_func_rmdir_works" in + *yes) ;; + *) + REPLACE_RMDIR=1 + ;; + esac + + + if test $REPLACE_RMDIR = 1; then + GL_COND_OBJ_RMDIR_TRUE= + GL_COND_OBJ_RMDIR_FALSE='#' +else + GL_COND_OBJ_RMDIR_TRUE='#' + GL_COND_OBJ_RMDIR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_RMDIR_TRUE}" && test -z "${GL_COND_OBJ_RMDIR_FALSE}"; then + GL_COND_OBJ_RMDIR_TRUE='#' + GL_COND_OBJ_RMDIR_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_RMDIR=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_RMDIR 1" >>confdefs.h + + + + + + + + + + + + if test "$ac_cv_header_winsock2_h" = yes; then + REPLACE_SELECT=1 + else + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether select supports a 0 argument" >&5 +printf %s "checking whether select supports a 0 argument... " >&6; } +if test ${gl_cv_func_select_supports0+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test "$cross_compiling" = yes +then : + + case "$host_os" in + # Guess no on Interix. + interix*) gl_cv_func_select_supports0="guessing no";; + # Guess yes otherwise. + *) gl_cv_func_select_supports0="guessing yes";; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if HAVE_SYS_SELECT_H +#include +#endif +int main () +{ + struct timeval timeout; + timeout.tv_sec = 0; + timeout.tv_usec = 5; + return select (0, (fd_set *)0, (fd_set *)0, (fd_set *)0, &timeout) < 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_select_supports0=yes +else $as_nop + gl_cv_func_select_supports0=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_select_supports0" >&5 +printf "%s\n" "$gl_cv_func_select_supports0" >&6; } + case "$gl_cv_func_select_supports0" in + *yes) ;; + *) REPLACE_SELECT=1 ;; + esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether select detects invalid fds" >&5 +printf %s "checking whether select detects invalid fds... " >&6; } +if test ${gl_cv_func_select_detects_ebadf+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test "$cross_compiling" = yes +then : + + case "$host_os" in + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_select_detects_ebadf="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_select_detects_ebadf="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_select_detects_ebadf="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if HAVE_SYS_SELECT_H +# include +#endif +#include +#include + + +$gl_mda_defines + +int +main (void) +{ + + fd_set set; + dup2(0, 16); + FD_ZERO(&set); + FD_SET(16, &set); + close(16); + struct timeval timeout; + timeout.tv_sec = 0; + timeout.tv_usec = 5; + return select (17, &set, NULL, NULL, &timeout) != -1 || errno != EBADF; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_select_detects_ebadf=yes +else $as_nop + gl_cv_func_select_detects_ebadf=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_select_detects_ebadf" >&5 +printf "%s\n" "$gl_cv_func_select_detects_ebadf" >&6; } + case $gl_cv_func_select_detects_ebadf in + *yes) ;; + *) REPLACE_SELECT=1 ;; + esac + fi + + LIB_SELECT="$LIBSOCKET" + if test $REPLACE_SELECT = 1; then + case "$host_os" in + mingw*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define WIN32_LEAN_AND_MEAN +#include +int +main () +{ + MsgWaitForMultipleObjects (0, NULL, 0, 0, 0); + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + +else $as_nop + LIB_SELECT="$LIB_SELECT -luser32" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + ;; + esac + fi + + + + if test $REPLACE_SELECT = 1; then + GL_COND_OBJ_SELECT_TRUE= + GL_COND_OBJ_SELECT_FALSE='#' +else + GL_COND_OBJ_SELECT_TRUE='#' + GL_COND_OBJ_SELECT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_SELECT_TRUE}" && test -z "${GL_COND_OBJ_SELECT_FALSE}"; then + GL_COND_OBJ_SELECT_TRUE='#' + GL_COND_OBJ_SELECT_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_SELECT=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_SELECT 1" >>confdefs.h + + + + + + if test $ac_cv_func_setenv = no; then + HAVE_SETENV=0 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether setenv validates arguments" >&5 +printf %s "checking whether setenv validates arguments... " >&6; } +if test ${gl_cv_func_setenv_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_setenv_works="guessing yes" ;; + # Guess yes on musl systems. + *-musl*) gl_cv_func_setenv_works="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_setenv_works="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + #include + +int +main (void) +{ + + int result = 0; + { + if (setenv ("", "", 0) != -1) + result |= 1; + else if (errno != EINVAL) + result |= 2; + } + { + if (setenv ("a", "=", 1) != 0) + result |= 4; + else if (strcmp (getenv ("a"), "=") != 0) + result |= 8; + } + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_setenv_works=yes +else $as_nop + gl_cv_func_setenv_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setenv_works" >&5 +printf "%s\n" "$gl_cv_func_setenv_works" >&6; } + case "$gl_cv_func_setenv_works" in + *yes) ;; + *) + REPLACE_SETENV=1 + ;; + esac + fi + + + if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then + GL_COND_OBJ_SETENV_TRUE= + GL_COND_OBJ_SETENV_FALSE='#' +else + GL_COND_OBJ_SETENV_TRUE='#' + GL_COND_OBJ_SETENV_FALSE= +fi +: + if test -z "${GL_COND_OBJ_SETENV_TRUE}" && test -z "${GL_COND_OBJ_SETENV_FALSE}"; then + GL_COND_OBJ_SETENV_TRUE='#' + GL_COND_OBJ_SETENV_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_SETENV=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_SETENV 1" >>confdefs.h + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether setlocale (LC_ALL, NULL) is multithread-safe" >&5 +printf %s "checking whether setlocale (LC_ALL, NULL) is multithread-safe... " >&6; } +if test ${gl_cv_func_setlocale_null_all_mtsafe+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case "$host_os" in + # Guess no on musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin. + *-musl* | darwin* | freebsd* | midnightbsd* | netbsd* | openbsd* | aix* | haiku* | cygwin*) + gl_cv_func_setlocale_null_all_mtsafe=no ;; + # Guess yes on glibc, HP-UX, IRIX, Solaris, native Windows. + *-gnu* | gnu* | hpux* | irix* | solaris* | mingw*) + gl_cv_func_setlocale_null_all_mtsafe=yes ;; + # If we don't know, obey --enable-cross-guesses. + *) + gl_cv_func_setlocale_null_all_mtsafe="$gl_cross_guess_normal" ;; + esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setlocale_null_all_mtsafe" >&5 +printf "%s\n" "$gl_cv_func_setlocale_null_all_mtsafe" >&6; } + case "$host_os" in + mingw*) ;; + *) + if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then + gl_cv_func_setlocale_null_all_mtsafe="trivially yes" + fi + ;; + esac + case "$gl_cv_func_setlocale_null_all_mtsafe" in + *yes) SETLOCALE_NULL_ALL_MTSAFE=1 ;; + *) SETLOCALE_NULL_ALL_MTSAFE=0 ;; + esac + +printf "%s\n" "#define SETLOCALE_NULL_ALL_MTSAFE $SETLOCALE_NULL_ALL_MTSAFE" >>confdefs.h + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether setlocale (category, NULL) is multithread-safe" >&5 +printf %s "checking whether setlocale (category, NULL) is multithread-safe... " >&6; } +if test ${gl_cv_func_setlocale_null_one_mtsafe+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case "$host_os" in + # Guess no on OpenBSD, AIX. + openbsd* | aix*) + gl_cv_func_setlocale_null_one_mtsafe=no ;; + # Guess yes on glibc, musl libc, macOS, FreeBSD, NetBSD, HP-UX, IRIX, Solaris, Haiku, Cygwin, native Windows. + *-gnu* | gnu* | *-musl* | darwin* | freebsd* | midnightbsd* | netbsd* | hpux* | irix* | solaris* | haiku* | cygwin* | mingw*) + gl_cv_func_setlocale_null_one_mtsafe=yes ;; + # If we don't know, obey --enable-cross-guesses. + *) + gl_cv_func_setlocale_null_one_mtsafe="$gl_cross_guess_normal" ;; + esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setlocale_null_one_mtsafe" >&5 +printf "%s\n" "$gl_cv_func_setlocale_null_one_mtsafe" >&6; } + case "$host_os" in + mingw*) ;; + *) + if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then + gl_cv_func_setlocale_null_one_mtsafe="trivially yes" + fi + ;; + esac + case "$gl_cv_func_setlocale_null_one_mtsafe" in + *yes) SETLOCALE_NULL_ONE_MTSAFE=1 ;; + *) SETLOCALE_NULL_ONE_MTSAFE=0 ;; + esac + +printf "%s\n" "#define SETLOCALE_NULL_ONE_MTSAFE $SETLOCALE_NULL_ONE_MTSAFE" >>confdefs.h + + + if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0; then + case "$host_os" in + mingw*) LIB_SETLOCALE_NULL= ;; + *) + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 +printf %s "checking whether imported symbols can be declared weak... " >&6; } +if test ${gl_cv_have_weak+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case "$host_os" in + cygwin*) + gl_cv_have_weak="guessing no" + ;; + *) + gl_cv_have_weak=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern void xyzzy (); +#pragma weak xyzzy +int +main (void) +{ +xyzzy(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_have_weak=maybe +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test $gl_cv_have_weak = maybe; then + if test "$cross_compiling" = yes +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __ELF__ + Extensible Linking Format + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Extensible Linking Format" >/dev/null 2>&1 +then : + gl_cv_have_weak="guessing yes" +else $as_nop + gl_cv_have_weak="guessing no" +fi +rm -rf conftest* + + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#pragma weak fputs +int main () +{ + return (fputs == NULL); +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_have_weak=yes +else $as_nop + gl_cv_have_weak=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + ;; + esac + case " $LDFLAGS " in + *" -static "*) gl_cv_have_weak=no ;; + esac + case "$gl_cv_have_weak" in + *yes) + case "$host_os" in + freebsd* | dragonfly* | midnightbsd*) + : > conftest1.c + $CC $CPPFLAGS $CFLAGS $LDFLAGS -fPIC -shared -o libempty.so conftest1.c -lpthread >&5 2>&1 + cat < conftest2.c +#include +#pragma weak pthread_mutexattr_gettype +int main () +{ + return (pthread_mutexattr_gettype != NULL); +} +EOF + $CC $CPPFLAGS $CFLAGS $LDFLAGS -o conftest conftest2.c libempty.so >&5 2>&1 \ + || gl_cv_have_weak=no + rm -f conftest1.c libempty.so conftest2.c conftest + ;; + esac + ;; + esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 +printf "%s\n" "$gl_cv_have_weak" >&6; } + case "$gl_cv_have_weak" in + *yes) + +printf "%s\n" "#define HAVE_WEAK_SYMBOLS 1" >>confdefs.h + + ;; + esac + + case "$gl_cv_have_weak" in + *yes) LIB_SETLOCALE_NULL= ;; + *) LIB_SETLOCALE_NULL="$LIBPTHREAD" ;; + esac + ;; + esac + else + LIB_SETLOCALE_NULL= + fi + + + + if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0; then + GL_COND_OBJ_SETLOCALE_LOCK_TRUE= + GL_COND_OBJ_SETLOCALE_LOCK_FALSE='#' +else + GL_COND_OBJ_SETLOCALE_LOCK_TRUE='#' + GL_COND_OBJ_SETLOCALE_LOCK_FALSE= +fi +: + if test -z "${GL_COND_OBJ_SETLOCALE_LOCK_TRUE}" && test -z "${GL_COND_OBJ_SETLOCALE_LOCK_FALSE}"; then + GL_COND_OBJ_SETLOCALE_LOCK_TRUE='#' + GL_COND_OBJ_SETLOCALE_LOCK_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_SETLOCALE_LOCK_TRUE"; then : + + + + + CFLAG_VISIBILITY= + HAVE_VISIBILITY=0 + if test -n "$GCC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the -Werror option is usable" >&5 +printf %s "checking whether the -Werror option is usable... " >&6; } +if test ${gl_cv_cc_vis_werror+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_cc_vis_werror=yes +else $as_nop + gl_cv_cc_vis_werror=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5 +printf "%s\n" "$gl_cv_cc_vis_werror" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5 +printf %s "checking for simple visibility declarations... " >&6; } +if test ${gl_cv_cc_visibility+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fvisibility=hidden" + if test $gl_cv_cc_vis_werror = yes; then + CFLAGS="$CFLAGS -Werror" + fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern __attribute__((__visibility__("hidden"))) int hiddenvar; + extern __attribute__((__visibility__("default"))) int exportedvar; + extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); + extern __attribute__((__visibility__("default"))) int exportedfunc (void); + void dummyfunc (void); + int hiddenvar; + int exportedvar; + int hiddenfunc (void) { return 51; } + int exportedfunc (void) { return 1225736919; } + void dummyfunc (void) {} + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_cc_visibility=yes +else $as_nop + gl_cv_cc_visibility=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5 +printf "%s\n" "$gl_cv_cc_visibility" >&6; } + if test $gl_cv_cc_visibility = yes; then + CFLAG_VISIBILITY="-fvisibility=hidden" + HAVE_VISIBILITY=1 + fi + fi + + + +printf "%s\n" "#define HAVE_VISIBILITY $HAVE_VISIBILITY" >>confdefs.h + + + + +fi + + + + + + + + + + GL_GNULIB_SETLOCALE_NULL=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_SETLOCALE_NULL 1" >>confdefs.h + + + + + + + if test $ac_cv_func_sigaction = yes; then + ac_fn_c_check_member "$LINENO" "struct sigaction" "sa_sigaction" "ac_cv_member_struct_sigaction_sa_sigaction" "#include +" +if test "x$ac_cv_member_struct_sigaction_sa_sigaction" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_SIGACTION_SA_SIGACTION 1" >>confdefs.h + + +fi + + if test $ac_cv_member_struct_sigaction_sa_sigaction = no; then + HAVE_STRUCT_SIGACTION_SA_SIGACTION=0 + fi + else + HAVE_SIGACTION=0 + fi + + + if test $HAVE_SIGACTION = 0; then + GL_COND_OBJ_SIGACTION_TRUE= + GL_COND_OBJ_SIGACTION_FALSE='#' +else + GL_COND_OBJ_SIGACTION_TRUE='#' + GL_COND_OBJ_SIGACTION_FALSE= +fi +: + if test -z "${GL_COND_OBJ_SIGACTION_TRUE}" && test -z "${GL_COND_OBJ_SIGACTION_FALSE}"; then + GL_COND_OBJ_SIGACTION_TRUE='#' + GL_COND_OBJ_SIGACTION_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_SIGACTION_TRUE"; then : + + + + + + + + ac_fn_c_check_type "$LINENO" "siginfo_t" "ac_cv_type_siginfo_t" " +#include + +" +if test "x$ac_cv_type_siginfo_t" = xyes +then : + +printf "%s\n" "#define HAVE_SIGINFO_T 1" >>confdefs.h + + +fi + + if test $ac_cv_type_siginfo_t = no; then + HAVE_SIGINFO_T=0 + fi + + +fi + + + + + + + + + + GL_GNULIB_SIGACTION=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_SIGACTION 1" >>confdefs.h + + + + + + + + + + + + + + + +printf "%s\n" "#define GNULIB_SIGPIPE 1" >>confdefs.h + + + + + + + + + GL_GNULIB_SIGNAL_H_SIGPIPE=1 + + + + + + + + + + GL_GNULIB_STDIO_H_SIGPIPE=1 + + + + + + + + + GL_GNULIB_UNISTD_H_SIGPIPE=1 + + + + + + HAVE_POSIX_SIGNALBLOCKING=0 + if test "$gl_cv_type_sigset_t" = yes; then + ac_fn_c_check_func "$LINENO" "sigprocmask" "ac_cv_func_sigprocmask" +if test "x$ac_cv_func_sigprocmask" = xyes +then : + HAVE_POSIX_SIGNALBLOCKING=1 +fi + + fi + + + if test $HAVE_POSIX_SIGNALBLOCKING = 0; then + GL_COND_OBJ_SIGPROCMASK_TRUE= + GL_COND_OBJ_SIGPROCMASK_FALSE='#' +else + GL_COND_OBJ_SIGPROCMASK_TRUE='#' + GL_COND_OBJ_SIGPROCMASK_FALSE= +fi +: + if test -z "${GL_COND_OBJ_SIGPROCMASK_TRUE}" && test -z "${GL_COND_OBJ_SIGPROCMASK_FALSE}"; then + GL_COND_OBJ_SIGPROCMASK_TRUE='#' + GL_COND_OBJ_SIGPROCMASK_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_SIGPROCMASK_TRUE"; then : + + : + +fi + + + + + + + + + + GL_GNULIB_SIGPROCMASK=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_SIGPROCMASK 1" >>confdefs.h + + + + + ac_fn_c_check_header_compile "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" +if test "x$ac_cv_header_stdint_h" = xyes +then : + printf "%s\n" "#define HAVE_STDINT_H 1" >>confdefs.h + +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SIZE_MAX" >&5 +printf %s "checking for SIZE_MAX... " >&6; } +if test ${gl_cv_size_max+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + gl_cv_size_max=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#if HAVE_STDINT_H +#include +#endif +#ifdef SIZE_MAX +Found it +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Found it" >/dev/null 2>&1 +then : + gl_cv_size_max=yes +fi +rm -rf conftest* + + if test $gl_cv_size_max != yes; then + if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) * CHAR_BIT - 1" "size_t_bits_minus_1" "#include +#include " +then : + +else $as_nop + size_t_bits_minus_1= +fi + + if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) <= sizeof (unsigned int)" "fits_in_uint" "#include " +then : + +else $as_nop + fits_in_uint= +fi + + if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then + if test $fits_in_uint = 1; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + extern size_t foo; + extern unsigned long foo; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + fits_in_uint=0 +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + if test $fits_in_uint = 1; then + gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)" + else + gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)" + fi + else + gl_cv_size_max='((size_t)~(size_t)0)' + fi + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_size_max" >&5 +printf "%s\n" "$gl_cv_size_max" >&6; } + if test "$gl_cv_size_max" != yes; then + +printf "%s\n" "#define SIZE_MAX $gl_cv_size_max" >>confdefs.h + + fi + + + + + ac_fn_check_decl "$LINENO" "sleep" "ac_cv_have_decl_sleep" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_sleep" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_SLEEP $ac_have_decl" >>confdefs.h + + + if test $ac_cv_have_decl_sleep != yes; then + HAVE_SLEEP=0 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working sleep" >&5 +printf %s "checking for working sleep... " >&6; } +if test ${gl_cv_func_sleep_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_sleep_works="guessing yes" ;; + # Guess yes on musl systems. + *-musl*) gl_cv_func_sleep_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_sleep_works="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_sleep_works="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +static void +handle_alarm (int sig) +{ + if (sig != SIGALRM) + _exit (2); +} + +int +main (void) +{ + + /* Failure to compile this test due to missing alarm is okay, + since all such platforms (mingw) also lack sleep. */ + unsigned int pentecost = 50 * 24 * 60 * 60; /* 50 days. */ + unsigned int remaining; + signal (SIGALRM, handle_alarm); + alarm (1); + remaining = sleep (pentecost); + if (remaining > pentecost) + return 3; + if (remaining <= pentecost - 10) + return 4; + return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_sleep_works=yes +else $as_nop + gl_cv_func_sleep_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_sleep_works" >&5 +printf "%s\n" "$gl_cv_func_sleep_works" >&6; } + case "$gl_cv_func_sleep_works" in + *yes) ;; + *) + REPLACE_SLEEP=1 + ;; + esac + fi + + + if test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1; then + GL_COND_OBJ_SLEEP_TRUE= + GL_COND_OBJ_SLEEP_FALSE='#' +else + GL_COND_OBJ_SLEEP_TRUE='#' + GL_COND_OBJ_SLEEP_FALSE= +fi +: + if test -z "${GL_COND_OBJ_SLEEP_TRUE}" && test -z "${GL_COND_OBJ_SLEEP_FALSE}"; then + GL_COND_OBJ_SLEEP_TRUE='#' + GL_COND_OBJ_SLEEP_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_SLEEP=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_SLEEP 1" >>confdefs.h + + + + + + ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" " +/* is not needed according to POSIX, but the + in i386-unknown-freebsd4.10 and + powerpc-apple-darwin5.5 required it. */ +#include +#if HAVE_SYS_SOCKET_H +# include +#elif HAVE_WS2TCPIP_H +# include +#endif + +" +if test "x$ac_cv_type_socklen_t" = xyes +then : + +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for socklen_t equivalent" >&5 +printf %s "checking for socklen_t equivalent... " >&6; } +if test ${gl_cv_socklen_t_equiv+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # Systems have either "struct sockaddr *" or + # "void *" as the second argument to getpeername + gl_cv_socklen_t_equiv= + for arg2 in "struct sockaddr" void; do + for t in int size_t "unsigned int" "long int" "unsigned long int"; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + + int getpeername (int, $arg2 *, $t *); +int +main (void) +{ +$t len; + getpeername (0, 0, &len); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_socklen_t_equiv="$t" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + test "$gl_cv_socklen_t_equiv" != "" && break + done + test "$gl_cv_socklen_t_equiv" != "" && break + done + if test "$gl_cv_socklen_t_equiv" = ""; then + as_fn_error $? "Cannot find a type to use in place of socklen_t" "$LINENO" 5 + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socklen_t_equiv" >&5 +printf "%s\n" "$gl_cv_socklen_t_equiv" >&6; } + +printf "%s\n" "#define socklen_t $gl_cv_socklen_t_equiv" >>confdefs.h + +fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5 +printf %s "checking for ssize_t... " >&6; } +if test ${gt_cv_ssize_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +int x = sizeof (ssize_t *) + sizeof (ssize_t); + return !x; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gt_cv_ssize_t=yes +else $as_nop + gt_cv_ssize_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5 +printf "%s\n" "$gt_cv_ssize_t" >&6; } + if test $gt_cv_ssize_t = no; then + +printf "%s\n" "#define ssize_t int" >>confdefs.h + + fi + + + + + + case "$host_os" in + mingw*) + REPLACE_STAT=1 + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on files" >&5 +printf %s "checking whether stat handles trailing slashes on files... " >&6; } +if test ${gl_cv_func_stat_file_slash+y} +then : + printf %s "(cached) " >&6 +else $as_nop + touch conftest.tmp + # Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + ln -s conftest.tmp conftest.lnk + fi + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_stat_file_slash="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_stat_file_slash="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_stat_file_slash="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +int result = 0; + struct stat st; + if (!stat ("conftest.tmp/", &st)) + result |= 1; +#if HAVE_LSTAT + if (!stat ("conftest.lnk/", &st)) + result |= 2; +#endif + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_stat_file_slash=yes +else $as_nop + gl_cv_func_stat_file_slash=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.tmp conftest.lnk +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_stat_file_slash" >&5 +printf "%s\n" "$gl_cv_func_stat_file_slash" >&6; } + case $gl_cv_func_stat_file_slash in + *no) + REPLACE_STAT=1 + +printf "%s\n" "#define REPLACE_FUNC_STAT_FILE 1" >>confdefs.h +;; + esac + case $host_os in + solaris*) + REPLACE_FSTAT=1 ;; + esac + ;; + esac + + + if test $REPLACE_STAT = 1; then + GL_COND_OBJ_STAT_TRUE= + GL_COND_OBJ_STAT_FALSE='#' +else + GL_COND_OBJ_STAT_TRUE='#' + GL_COND_OBJ_STAT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STAT_TRUE}" && test -z "${GL_COND_OBJ_STAT_FALSE}"; then + GL_COND_OBJ_STAT_TRUE='#' + GL_COND_OBJ_STAT_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_STAT_TRUE"; then : + + case "$host_os" in + mingw*) + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS stat-w32.$ac_objext" + + ;; + esac + + + + : + + +fi + + + + + + + + + + GL_GNULIB_STAT=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_STAT 1" >>confdefs.h + + + + + + + + ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.tv_nsec" "ac_cv_member_struct_stat_st_atim_tv_nsec" "#include + #include +" +if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1" >>confdefs.h + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct stat.st_atim is of type struct timespec" >&5 +printf %s "checking whether struct stat.st_atim is of type struct timespec... " >&6; } +if test ${ac_cv_typeof_struct_stat_st_atim_is_struct_timespec+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + #if HAVE_SYS_TIME_H + # include + #endif + #include + struct timespec ts; + struct stat st; + +int +main (void) +{ + + st.st_atim = ts; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes +else $as_nop + ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&5 +printf "%s\n" "$ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&6; } + if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then + +printf "%s\n" "#define TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC 1" >>confdefs.h + + fi +else $as_nop + ac_fn_c_check_member "$LINENO" "struct stat" "st_atimespec.tv_nsec" "ac_cv_member_struct_stat_st_atimespec_tv_nsec" "#include + #include +" +if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1" >>confdefs.h + + +else $as_nop + ac_fn_c_check_member "$LINENO" "struct stat" "st_atimensec" "ac_cv_member_struct_stat_st_atimensec" "#include + #include +" +if test "x$ac_cv_member_struct_stat_st_atimensec" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIMENSEC 1" >>confdefs.h + + +else $as_nop + ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.st__tim.tv_nsec" "ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" "#include + #include +" +if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1" >>confdefs.h + + +fi + +fi + +fi + +fi + + + + + + ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimespec.tv_nsec" "ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" "#include + #include +" +if test "x$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 1" >>confdefs.h + + +else $as_nop + ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimensec" "ac_cv_member_struct_stat_st_birthtimensec" "#include + #include +" +if test "x$ac_cv_member_struct_stat_st_birthtimensec" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC 1" >>confdefs.h + + +else $as_nop + ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtim.tv_nsec" "ac_cv_member_struct_stat_st_birthtim_tv_nsec" "#include + #include +" +if test "x$ac_cv_member_struct_stat_st_birthtim_tv_nsec" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC 1" >>confdefs.h + + +fi + +fi + +fi + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working stdalign.h" >&5 +printf %s "checking for working stdalign.h... " >&6; } +if test ${gl_cv_header_working_stdalign_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + #include + + /* Test that alignof yields a result consistent with offsetof. + This catches GCC bug 52023 + . */ + #ifdef __cplusplus + template struct alignof_helper { char a; t b; }; + # define ao(type) offsetof (alignof_helper, b) + #else + # define ao(type) offsetof (struct { char a; type b; }, b) + #endif + char test_double[ao (double) % _Alignof (double) == 0 ? 1 : -1]; + char test_long[ao (long int) % _Alignof (long int) == 0 ? 1 : -1]; + char test_alignof[alignof (double) == _Alignof (double) ? 1 : -1]; + + /* Test _Alignas only on platforms where gnulib can help. */ + #if \ + ((defined __cplusplus && 201103 <= __cplusplus) \ + || (__TINYC__ && defined __attribute__) \ + || (defined __APPLE__ && defined __MACH__ \ + ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ + : __GNUC__) \ + || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ + || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__ \ + || 1300 <= _MSC_VER) + struct alignas_test { char c; char alignas (8) alignas_8; }; + char test_alignas[offsetof (struct alignas_test, alignas_8) == 8 + ? 1 : -1]; + #endif + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_working_stdalign_h=yes +else $as_nop + gl_cv_header_working_stdalign_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdalign_h" >&5 +printf "%s\n" "$gl_cv_header_working_stdalign_h" >&6; } + + if test $gl_cv_header_working_stdalign_h = yes; then + GL_GENERATE_STDALIGN_H=false + else + GL_GENERATE_STDALIGN_H=true + fi + + + + + + case "$GL_GENERATE_STDALIGN_H" in + false) STDALIGN_H='' ;; + true) + if test -z "$STDALIGN_H"; then + STDALIGN_H="${gl_source_base_prefix}stdalign.h" + fi + ;; + *) echo "*** GL_GENERATE_STDALIGN_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_STDALIGN_H; then + GL_GENERATE_STDALIGN_H_TRUE= + GL_GENERATE_STDALIGN_H_FALSE='#' +else + GL_GENERATE_STDALIGN_H_TRUE='#' + GL_GENERATE_STDALIGN_H_FALSE= +fi +: + if test -z "${GL_GENERATE_STDALIGN_H_TRUE}" && test -z "${GL_GENERATE_STDALIGN_H_FALSE}"; then + GL_GENERATE_STDALIGN_H_TRUE='#' + GL_GENERATE_STDALIGN_H_FALSE='#' + fi + + + + + + + + GL_GENERATE_STDARG_H=false + NEXT_STDARG_H='' + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5 +printf %s "checking for va_copy... " >&6; } +if test ${gl_cv_func_va_copy+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ + +#ifndef va_copy +void (*func) (va_list, va_list) = va_copy; +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_func_va_copy=yes +else $as_nop + gl_cv_func_va_copy=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_va_copy" >&5 +printf "%s\n" "$gl_cv_func_va_copy" >&6; } + if test $gl_cv_func_va_copy = no; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined _AIX && !defined __GNUC__ + AIX vaccine + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "vaccine" >/dev/null 2>&1 +then : + gl_aixcc=yes +else $as_nop + gl_aixcc=no +fi +rm -rf conftest* + + if test $gl_aixcc = yes; then + GL_GENERATE_STDARG_H=true + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_stdarg_h='<'stdarg.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_stdarg_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'stdarg.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_stdarg_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_stdarg_h + gl_cv_next_stdarg_h='"'$gl_header'"' + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdarg_h" >&5 +printf "%s\n" "$gl_cv_next_stdarg_h" >&6; } + fi + NEXT_STDARG_H=$gl_cv_next_stdarg_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'stdarg.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_stdarg_h + fi + NEXT_AS_FIRST_DIRECTIVE_STDARG_H=$gl_next_as_first_directive + + + + + if test "$gl_cv_next_stdarg_h" = '""'; then + gl_cv_next_stdarg_h='"///usr/include/stdarg.h"' + NEXT_STDARG_H="$gl_cv_next_stdarg_h" + fi + else + + + exec 9>&6 6>/dev/null + + if test ${gl_cv_func___va_copy+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ + +#ifndef __va_copy +error, bail out +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_func___va_copy=yes +else $as_nop + gl_cv_func___va_copy=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + + exec 6>&9 9>&- + + + if test $gl_cv_func___va_copy = yes; then + +printf "%s\n" "#define va_copy __va_copy" >>confdefs.h + + else + + +printf "%s\n" "#define va_copy gl_va_copy" >>confdefs.h + + fi + fi + fi + + + + + + + case "$GL_GENERATE_STDARG_H" in + false) STDARG_H='' ;; + true) + if test -z "$STDARG_H"; then + STDARG_H="${gl_source_base_prefix}stdarg.h" + fi + ;; + *) echo "*** GL_GENERATE_STDARG_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_STDARG_H; then + GL_GENERATE_STDARG_H_TRUE= + GL_GENERATE_STDARG_H_FALSE='#' +else + GL_GENERATE_STDARG_H_TRUE='#' + GL_GENERATE_STDARG_H_FALSE= +fi +: + if test -z "${GL_GENERATE_STDARG_H_TRUE}" && test -z "${GL_GENERATE_STDARG_H_FALSE}"; then + GL_GENERATE_STDARG_H_TRUE='#' + GL_GENERATE_STDARG_H_FALSE='#' + fi + + + + + + + + + + + if test "$ac_cv_header_stdbool_h" = yes; then + case "$host_os" in + solaris*) + if test -z "$GCC"; then + GL_GENERATE_STDBOOL_H=true + else + GL_GENERATE_STDBOOL_H=false + fi + ;; + *) + GL_GENERATE_STDBOOL_H=false + ;; + esac + else + GL_GENERATE_STDBOOL_H=true + fi + + if test "$ac_cv_type__Bool" = yes; then + HAVE__BOOL=1 + else + HAVE__BOOL=0 + fi + + + + + + + case "$GL_GENERATE_STDBOOL_H" in + false) STDBOOL_H='' ;; + true) + if test -z "$STDBOOL_H"; then + STDBOOL_H="${gl_source_base_prefix}stdbool.h" + fi + ;; + *) echo "*** GL_GENERATE_STDBOOL_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_STDBOOL_H; then + GL_GENERATE_STDBOOL_H_TRUE= + GL_GENERATE_STDBOOL_H_FALSE='#' +else + GL_GENERATE_STDBOOL_H_TRUE='#' + GL_GENERATE_STDBOOL_H_FALSE= +fi +: + if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then + GL_GENERATE_STDBOOL_H_TRUE='#' + GL_GENERATE_STDBOOL_H_FALSE='#' + fi + + + + + + + + + + + + + + + + + case "$GL_GENERATE_STDDEF_H" in + false) STDDEF_H='' ;; + true) + if test -z "$STDDEF_H"; then + STDDEF_H="${gl_source_base_prefix}stddef.h" + fi + ;; + *) echo "*** GL_GENERATE_STDDEF_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_STDDEF_H; then + GL_GENERATE_STDDEF_H_TRUE= + GL_GENERATE_STDDEF_H_FALSE='#' +else + GL_GENERATE_STDDEF_H_TRUE='#' + GL_GENERATE_STDDEF_H_FALSE= +fi +: + if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then + GL_GENERATE_STDDEF_H_TRUE='#' + GL_GENERATE_STDDEF_H_FALSE='#' + fi + + + + + + + + + + + + case "$GL_GENERATE_STDINT_H" in + false) STDINT_H='' ;; + true) + if test -z "$STDINT_H"; then + STDINT_H="${gl_source_base_prefix}stdint.h" + fi + ;; + *) echo "*** GL_GENERATE_STDINT_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_STDINT_H; then + GL_GENERATE_STDINT_H_TRUE= + GL_GENERATE_STDINT_H_FALSE='#' +else + GL_GENERATE_STDINT_H_TRUE='#' + GL_GENERATE_STDINT_H_FALSE= +fi +: + if test -z "${GL_GENERATE_STDINT_H_TRUE}" && test -z "${GL_GENERATE_STDINT_H_FALSE}"; then + GL_GENERATE_STDINT_H_TRUE='#' + GL_GENERATE_STDINT_H_FALSE='#' + fi + + + + + + + + + + case "$GL_GENERATE_LIMITS_H" in + false) LIMITS_H='' ;; + true) + if test -z "$LIMITS_H"; then + LIMITS_H="${gl_source_base_prefix}limits.h" + fi + ;; + *) echo "*** GL_GENERATE_LIMITS_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_LIMITS_H; then + GL_GENERATE_LIMITS_H_TRUE= + GL_GENERATE_LIMITS_H_FALSE='#' +else + GL_GENERATE_LIMITS_H_TRUE='#' + GL_GENERATE_LIMITS_H_FALSE= +fi +: + if test -z "${GL_GENERATE_LIMITS_H_TRUE}" && test -z "${GL_GENERATE_LIMITS_H_FALSE}"; then + GL_GENERATE_LIMITS_H_TRUE='#' + GL_GENERATE_LIMITS_H_FALSE='#' + fi + + + + + + + + + + + + + + + if test $REPLACE_STDIO_READ_FUNCS = 1; then + GL_COND_OBJ_STDIO_READ_TRUE= + GL_COND_OBJ_STDIO_READ_FALSE='#' +else + GL_COND_OBJ_STDIO_READ_TRUE='#' + GL_COND_OBJ_STDIO_READ_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STDIO_READ_TRUE}" && test -z "${GL_COND_OBJ_STDIO_READ_FALSE}"; then + GL_COND_OBJ_STDIO_READ_TRUE='#' + GL_COND_OBJ_STDIO_READ_FALSE='#' + fi + + + if test $REPLACE_STDIO_WRITE_FUNCS = 1; then + GL_COND_OBJ_STDIO_WRITE_TRUE= + GL_COND_OBJ_STDIO_WRITE_FALSE='#' +else + GL_COND_OBJ_STDIO_WRITE_TRUE='#' + GL_COND_OBJ_STDIO_WRITE_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STDIO_WRITE_TRUE}" && test -z "${GL_COND_OBJ_STDIO_WRITE_FALSE}"; then + GL_COND_OBJ_STDIO_WRITE_TRUE='#' + GL_COND_OBJ_STDIO_WRITE_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_FSCANF=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_FSCANF 1" >>confdefs.h + + + + + +printf "%s\n" "#define GNULIB_FSCANF 1" >>confdefs.h + + + + + + + + + + + + GL_GNULIB_SCANF=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_SCANF 1" >>confdefs.h + + + + + +printf "%s\n" "#define GNULIB_SCANF 1" >>confdefs.h + + + + + + + + + + + + GL_GNULIB_FGETC=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_FGETC 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_GETC=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_GETC 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_GETCHAR=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_GETCHAR 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_FGETS=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_FGETS 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_FREAD=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_FREAD 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_FPRINTF=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_FPRINTF 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_PRINTF=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_PRINTF 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_VFPRINTF=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_VFPRINTF 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_VPRINTF=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_VPRINTF 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_FPUTC=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_FPUTC 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_PUTC=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_PUTC 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_PUTCHAR=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_PUTCHAR 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_FPUTS=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_FPUTS 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_PUTS=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_PUTS 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_FWRITE=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_FWRITE 1" >>confdefs.h + + + + + + + + + + + + + + + + + ac_fn_c_check_func "$LINENO" "stpcpy" "ac_cv_func_stpcpy" +if test "x$ac_cv_func_stpcpy" = xyes +then : + printf "%s\n" "#define HAVE_STPCPY 1" >>confdefs.h + +fi + + if test $ac_cv_func_stpcpy = no; then + HAVE_STPCPY=0 + fi + + + if test $HAVE_STPCPY = 0; then + GL_COND_OBJ_STPCPY_TRUE= + GL_COND_OBJ_STPCPY_FALSE='#' +else + GL_COND_OBJ_STPCPY_TRUE='#' + GL_COND_OBJ_STPCPY_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STPCPY_TRUE}" && test -z "${GL_COND_OBJ_STPCPY_FALSE}"; then + GL_COND_OBJ_STPCPY_TRUE='#' + GL_COND_OBJ_STPCPY_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_STPCPY_TRUE"; then : + + + : + + +fi + + + + + + + + + + + + + + + GL_GNULIB_STPCPY=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_STPCPY 1" >>confdefs.h + + + + + + + ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp" +if test "x$ac_cv_func_strcasecmp" = xyes +then : + printf "%s\n" "#define HAVE_STRCASECMP 1" >>confdefs.h + +fi + + if test $ac_cv_func_strcasecmp = no; then + HAVE_STRCASECMP=0 + fi + + + + ac_fn_c_check_func "$LINENO" "strncasecmp" "ac_cv_func_strncasecmp" +if test "x$ac_cv_func_strncasecmp" = xyes +then : + printf "%s\n" "#define HAVE_STRNCASECMP 1" >>confdefs.h + +fi + + if test $ac_cv_func_strncasecmp = yes; then + HAVE_STRNCASECMP=1 + else + HAVE_STRNCASECMP=0 + fi + ac_fn_check_decl "$LINENO" "strncasecmp" "ac_cv_have_decl_strncasecmp" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_strncasecmp" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_STRNCASECMP $ac_have_decl" >>confdefs.h + + if test $ac_cv_have_decl_strncasecmp = no; then + HAVE_DECL_STRNCASECMP=0 + fi + + + + if test $HAVE_STRCASECMP = 0; then + GL_COND_OBJ_STRCASECMP_TRUE= + GL_COND_OBJ_STRCASECMP_FALSE='#' +else + GL_COND_OBJ_STRCASECMP_TRUE='#' + GL_COND_OBJ_STRCASECMP_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STRCASECMP_TRUE}" && test -z "${GL_COND_OBJ_STRCASECMP_FALSE}"; then + GL_COND_OBJ_STRCASECMP_TRUE='#' + GL_COND_OBJ_STRCASECMP_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_STRCASECMP_TRUE"; then : + + + : + + +fi + + if test $HAVE_STRNCASECMP = 0; then + GL_COND_OBJ_STRNCASECMP_TRUE= + GL_COND_OBJ_STRNCASECMP_FALSE='#' +else + GL_COND_OBJ_STRNCASECMP_TRUE='#' + GL_COND_OBJ_STRNCASECMP_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STRNCASECMP_TRUE}" && test -z "${GL_COND_OBJ_STRNCASECMP_FALSE}"; then + GL_COND_OBJ_STRNCASECMP_TRUE='#' + GL_COND_OBJ_STRNCASECMP_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_STRNCASECMP_TRUE"; then : + + + : + + +fi + + + if test $HAVE_STRCASESTR = 1 && test $REPLACE_STRCASESTR = 0; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strcasestr works in linear time" >&5 +printf %s "checking whether strcasestr works in linear time... " >&6; } +if test ${gl_cv_func_strcasestr_linear+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef __GNU_LIBRARY__ + #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ + && !defined __UCLIBC__ + Lucky user + #endif +#endif +#ifdef __CYGWIN__ + #include + #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) + Lucky user + #endif +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky user" >/dev/null 2>&1 +then : + gl_cv_func_strcasestr_linear="guessing yes" +else $as_nop + gl_cv_func_strcasestr_linear="$gl_cross_guess_normal" +fi +rm -rf conftest* + + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include /* for signal */ +#include /* for strcasestr */ +#include /* for malloc */ +#include /* for alarm */ +static void quit (int sig) { _exit (sig + 128); } + +int +main (void) +{ + + int result = 0; + size_t m = 1000000; + char *haystack = (char *) malloc (2 * m + 2); + char *needle = (char *) malloc (m + 2); + /* Failure to compile this test due to missing alarm is okay, + since all such platforms (mingw) also lack strcasestr. */ + signal (SIGALRM, quit); + alarm (5); + /* Check for quadratic performance. */ + if (haystack && needle) + { + memset (haystack, 'A', 2 * m); + haystack[2 * m] = 'B'; + haystack[2 * m + 1] = 0; + memset (needle, 'A', m); + needle[m] = 'B'; + needle[m + 1] = 0; + if (!strcasestr (haystack, needle)) + result |= 1; + } + /* Free allocated memory, in case some sanitizer is watching. */ + free (haystack); + free (needle); + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_strcasestr_linear=yes +else $as_nop + gl_cv_func_strcasestr_linear=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strcasestr_linear" >&5 +printf "%s\n" "$gl_cv_func_strcasestr_linear" >&6; } + case "$gl_cv_func_strcasestr_linear" in + *yes) ;; + *) + REPLACE_STRCASESTR=1 + ;; + esac + fi + + if test $HAVE_STRCASESTR = 0 || test $REPLACE_STRCASESTR = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS strcasestr.$ac_objext" + + + : + + fi + + + + + + + ac_fn_c_check_func "$LINENO" "strcasestr" "ac_cv_func_strcasestr" +if test "x$ac_cv_func_strcasestr" = xyes +then : + printf "%s\n" "#define HAVE_STRCASESTR 1" >>confdefs.h + +fi + + if test $ac_cv_func_strcasestr = no; then + HAVE_STRCASESTR=0 + else + if test $REPLACE_MEMCHR = 1; then + REPLACE_STRCASESTR=1 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strcasestr works" >&5 +printf %s "checking whether strcasestr works... " >&6; } +if test ${gl_cv_func_strcasestr_works_always+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include /* for __GNU_LIBRARY__ */ +#ifdef __GNU_LIBRARY__ + #include + #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ + || defined __UCLIBC__ + Lucky user + #endif +#elif defined __CYGWIN__ + #include + #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) + Lucky user + #endif +#else + Lucky user +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky user" >/dev/null 2>&1 +then : + gl_cv_func_strcasestr_works_always="guessing yes" +else $as_nop + gl_cv_func_strcasestr_works_always="$gl_cross_guess_normal" +fi +rm -rf conftest* + + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include /* for __GNU_LIBRARY__, strcasestr */ +#ifdef __GNU_LIBRARY__ + #include + #if __GLIBC__ == 2 && __GLIBC_MINOR__ == 28 + Unlucky user + #endif +#endif +#define P "_EF_BF_BD" +#define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P +#define NEEDLE P P P P P + +int +main (void) +{ +return !!strcasestr (HAYSTACK, NEEDLE); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_strcasestr_works_always=yes +else $as_nop + gl_cv_func_strcasestr_works_always=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strcasestr_works_always" >&5 +printf "%s\n" "$gl_cv_func_strcasestr_works_always" >&6; } + case "$gl_cv_func_strcasestr_works_always" in + *yes) ;; + *) + REPLACE_STRCASESTR=1 + ;; + esac + fi + fi + + if test $HAVE_STRCASESTR = 0 || test $REPLACE_STRCASESTR = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS strcasestr.$ac_objext" + + + : + + fi + + + + + + + + + + + + + + + GL_GNULIB_STRCASESTR=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_STRCASESTR 1" >>confdefs.h + + + + + + + + ac_fn_c_check_func "$LINENO" "strchrnul" "ac_cv_func_strchrnul" +if test "x$ac_cv_func_strchrnul" = xyes +then : + printf "%s\n" "#define HAVE_STRCHRNUL 1" >>confdefs.h + +fi + + if test $ac_cv_func_strchrnul = no; then + HAVE_STRCHRNUL=0 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strchrnul works" >&5 +printf %s "checking whether strchrnul works... " >&6; } +if test ${gl_cv_func_strchrnul_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#if defined __CYGWIN__ + #include + #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 9) + Lucky user + #endif +#else + Lucky user +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky user" >/dev/null 2>&1 +then : + gl_cv_func_strchrnul_works="guessing yes" +else $as_nop + gl_cv_func_strchrnul_works="guessing no" +fi +rm -rf conftest* + + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include /* for strchrnul */ + +int +main (void) +{ +const char *buf = "a"; + return strchrnul (buf, 'b') != buf + 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_strchrnul_works=yes +else $as_nop + gl_cv_func_strchrnul_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strchrnul_works" >&5 +printf "%s\n" "$gl_cv_func_strchrnul_works" >&6; } + case "$gl_cv_func_strchrnul_works" in + *yes) ;; + *) REPLACE_STRCHRNUL=1 ;; + esac + fi + + + if test $HAVE_STRCHRNUL = 0 || test $REPLACE_STRCHRNUL = 1; then + GL_COND_OBJ_STRCHRNUL_TRUE= + GL_COND_OBJ_STRCHRNUL_FALSE='#' +else + GL_COND_OBJ_STRCHRNUL_TRUE='#' + GL_COND_OBJ_STRCHRNUL_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STRCHRNUL_TRUE}" && test -z "${GL_COND_OBJ_STRCHRNUL_FALSE}"; then + GL_COND_OBJ_STRCHRNUL_TRUE='#' + GL_COND_OBJ_STRCHRNUL_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_STRCHRNUL_TRUE"; then : + + : + +fi + + + + + + + + + + + + + + + GL_GNULIB_STRCHRNUL=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_STRCHRNUL 1" >>confdefs.h + + + + + + + if test $gl_cv_func_malloc_posix != yes; then + REPLACE_STRDUP=1 + fi + + if test $ac_cv_have_decl_strdup = no; then + HAVE_DECL_STRDUP=0 + fi + + + if test $REPLACE_STRDUP = 1; then + GL_COND_OBJ_STRDUP_TRUE= + GL_COND_OBJ_STRDUP_FALSE='#' +else + GL_COND_OBJ_STRDUP_TRUE='#' + GL_COND_OBJ_STRDUP_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STRDUP_TRUE}" && test -z "${GL_COND_OBJ_STRDUP_FALSE}"; then + GL_COND_OBJ_STRDUP_TRUE='#' + GL_COND_OBJ_STRDUP_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_STRDUP_TRUE"; then : + + : + +fi + + + + + + + + + + + + + + + GL_GNULIB_STRDUP=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_STRDUP 1" >>confdefs.h + + + + + + + + + if test "$GL_GENERATE_ERRNO_H:$REPLACE_STRERROR_0" = false:0; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working strerror function" >&5 +printf %s "checking for working strerror function... " >&6; } +if test ${gl_cv_func_working_strerror+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;; + # Guess yes on musl systems. + *-musl*) gl_cv_func_working_strerror="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_working_strerror="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +if (!*strerror (-2)) return 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_working_strerror=yes +else $as_nop + gl_cv_func_working_strerror=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_strerror" >&5 +printf "%s\n" "$gl_cv_func_working_strerror" >&6; } + case "$gl_cv_func_working_strerror" in + *yes) ;; + *) + REPLACE_STRERROR=1 + ;; + esac + + else + REPLACE_STRERROR=1 + fi + + + if test $REPLACE_STRERROR = 1; then + GL_COND_OBJ_STRERROR_TRUE= + GL_COND_OBJ_STRERROR_FALSE='#' +else + GL_COND_OBJ_STRERROR_TRUE='#' + GL_COND_OBJ_STRERROR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STRERROR_TRUE}" && test -z "${GL_COND_OBJ_STRERROR_FALSE}"; then + GL_COND_OBJ_STRERROR_TRUE='#' + GL_COND_OBJ_STRERROR_FALSE='#' + fi + + + +printf "%s\n" "#define GNULIB_STRERROR 1" >>confdefs.h + + + + + + + + + + + + + + + + + GL_GNULIB_STRERROR=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_STRERROR 1" >>confdefs.h + + + + + + + if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then + GL_COND_OBJ_STRERROR_OVERRIDE_TRUE= + GL_COND_OBJ_STRERROR_OVERRIDE_FALSE='#' +else + GL_COND_OBJ_STRERROR_OVERRIDE_TRUE='#' + GL_COND_OBJ_STRERROR_OVERRIDE_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STRERROR_OVERRIDE_TRUE}" && test -z "${GL_COND_OBJ_STRERROR_OVERRIDE_FALSE}"; then + GL_COND_OBJ_STRERROR_OVERRIDE_TRUE='#' + GL_COND_OBJ_STRERROR_OVERRIDE_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_STRERROR_OVERRIDE_TRUE"; then : + + + + + + if test $ac_cv_header_sys_socket_h != yes; then + ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" +if test "x$ac_cv_header_winsock2_h" = xyes +then : + printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h + +fi + + fi + if test "$ac_cv_header_winsock2_h" = yes; then + HAVE_WINSOCK2_H=1 + UNISTD_H_HAVE_WINSOCK2_H=1 + SYS_IOCTL_H_HAVE_WINSOCK2_H=1 + else + HAVE_WINSOCK2_H=0 + fi + + + +fi + + + + + + + + + + + + + + + + + + + + + + + + + + if test $ac_cv_have_decl_strndup = no; then + HAVE_DECL_STRNDUP=0 + fi + + if test $ac_cv_func_strndup = yes; then + HAVE_STRNDUP=1 + # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working strndup" >&5 +printf %s "checking for working strndup... " >&6; } +if test ${gl_cv_func_strndup_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + + case $host_os in + aix | aix[3-6]*) gl_cv_func_strndup_works="guessing no";; + *) gl_cv_func_strndup_works="guessing yes";; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include +int +main (void) +{ + +#if !HAVE_DECL_STRNDUP + extern + #ifdef __cplusplus + "C" + #endif + char *strndup (const char *, size_t); +#endif + int result; + char *s; + s = strndup ("some longer string", 15); + free (s); + s = strndup ("shorter string", 13); + result = s[13] != '\0'; + free (s); + return result; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_strndup_works=yes +else $as_nop + gl_cv_func_strndup_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strndup_works" >&5 +printf "%s\n" "$gl_cv_func_strndup_works" >&6; } + case $gl_cv_func_strndup_works in + *no) REPLACE_STRNDUP=1 ;; + esac + else + HAVE_STRNDUP=0 + fi + + + if test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1; then + GL_COND_OBJ_STRNDUP_TRUE= + GL_COND_OBJ_STRNDUP_FALSE='#' +else + GL_COND_OBJ_STRNDUP_TRUE='#' + GL_COND_OBJ_STRNDUP_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STRNDUP_TRUE}" && test -z "${GL_COND_OBJ_STRNDUP_FALSE}"; then + GL_COND_OBJ_STRNDUP_TRUE='#' + GL_COND_OBJ_STRNDUP_FALSE='#' + fi + + + + + + + + + + + + + + + + GL_GNULIB_STRNDUP=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_STRNDUP 1" >>confdefs.h + + + + + + + + + + if test $ac_cv_have_decl_strnlen = no; then + HAVE_DECL_STRNLEN=0 + else + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working strnlen" >&5 +printf %s "checking for working strnlen... " >&6; } +if test ${ac_cv_func_strnlen_working+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + # Guess no on AIX systems, yes otherwise. + case "$host_os" in + aix*) ac_cv_func_strnlen_working=no;; + *) ac_cv_func_strnlen_working=yes;; + esac +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main (void) +{ + +#define S "foobar" +#define S_LEN (sizeof S - 1) + + /* At least one implementation is buggy: that of AIX 4.3 would + give strnlen (S, 1) == 3. */ + + int i; + for (i = 0; i < S_LEN + 1; ++i) + { + int expected = i <= S_LEN ? i : S_LEN; + if (strnlen (S, i) != expected) + return 1; + } + return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + ac_cv_func_strnlen_working=yes +else $as_nop + ac_cv_func_strnlen_working=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strnlen_working" >&5 +printf "%s\n" "$ac_cv_func_strnlen_working" >&6; } +test $ac_cv_func_strnlen_working = no && : + + + if test $ac_cv_func_strnlen_working = no; then + REPLACE_STRNLEN=1 + fi + fi + + + if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then + GL_COND_OBJ_STRNLEN_TRUE= + GL_COND_OBJ_STRNLEN_FALSE='#' +else + GL_COND_OBJ_STRNLEN_TRUE='#' + GL_COND_OBJ_STRNLEN_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STRNLEN_TRUE}" && test -z "${GL_COND_OBJ_STRNLEN_FALSE}"; then + GL_COND_OBJ_STRNLEN_TRUE='#' + GL_COND_OBJ_STRNLEN_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_STRNLEN_TRUE"; then : + + : + +fi + + + + + + + + + + + + + + + GL_GNULIB_STRNLEN=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_STRNLEN 1" >>confdefs.h + + + + + + + + + + ac_fn_c_check_func "$LINENO" "strsep" "ac_cv_func_strsep" +if test "x$ac_cv_func_strsep" = xyes +then : + printf "%s\n" "#define HAVE_STRSEP 1" >>confdefs.h + +fi + + if test $ac_cv_func_strsep = no; then + HAVE_STRSEP=0 + fi + + + if test $HAVE_STRSEP = 0; then + GL_COND_OBJ_STRSEP_TRUE= + GL_COND_OBJ_STRSEP_FALSE='#' +else + GL_COND_OBJ_STRSEP_TRUE='#' + GL_COND_OBJ_STRSEP_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STRSEP_TRUE}" && test -z "${GL_COND_OBJ_STRSEP_FALSE}"; then + GL_COND_OBJ_STRSEP_TRUE='#' + GL_COND_OBJ_STRSEP_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_STRSEP_TRUE"; then : + + : + +fi + + + + + + + + + + + + + + + GL_GNULIB_STRSEP=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_STRSEP 1" >>confdefs.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + if test $ac_cv_header_sysexits_h = yes; then + HAVE_SYSEXITS_H=1 + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_sysexits_h='<'sysexits.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_sysexits_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_sysexits_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'sysexits.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_sysexits_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_sysexits_h + gl_cv_next_sysexits_h='"'$gl_header'"' + else + gl_cv_next_sysexits_h='<'sysexits.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sysexits_h" >&5 +printf "%s\n" "$gl_cv_next_sysexits_h" >&6; } + fi + NEXT_SYSEXITS_H=$gl_cv_next_sysexits_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sysexits.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sysexits_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H=$gl_next_as_first_directive + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +switch (0) + { + case EX_OK: + case EX_USAGE: + case EX_DATAERR: + case EX_NOINPUT: + case EX_NOUSER: + case EX_NOHOST: + case EX_UNAVAILABLE: + case EX_SOFTWARE: + case EX_OSERR: + case EX_OSFILE: + case EX_CANTCREAT: + case EX_IOERR: + case EX_TEMPFAIL: + case EX_PROTOCOL: + case EX_NOPERM: + case EX_CONFIG: + break; + } + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + GL_GENERATE_SYSEXITS_H=false +else $as_nop + GL_GENERATE_SYSEXITS_H=true +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + else + HAVE_SYSEXITS_H=0 + GL_GENERATE_SYSEXITS_H=true + fi + + + + + + + case "$GL_GENERATE_SYSEXITS_H" in + false) SYSEXITS_H='' ;; + true) + if test -z "$SYSEXITS_H"; then + SYSEXITS_H="${gl_source_base_prefix}sysexits.h" + fi + ;; + *) echo "*** GL_GENERATE_SYSEXITS_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_SYSEXITS_H; then + GL_GENERATE_SYSEXITS_H_TRUE= + GL_GENERATE_SYSEXITS_H_FALSE='#' +else + GL_GENERATE_SYSEXITS_H_TRUE='#' + GL_GENERATE_SYSEXITS_H_FALSE= +fi +: + if test -z "${GL_GENERATE_SYSEXITS_H_TRUE}" && test -z "${GL_GENERATE_SYSEXITS_H_FALSE}"; then + GL_GENERATE_SYSEXITS_H_TRUE='#' + GL_GENERATE_SYSEXITS_H_FALSE='#' + fi + + + + + + + + + : + + + + +printf "%s\n" "#define GNULIB_TEMPNAME 1" >>confdefs.h + + + + + + + + + + + + + + + + + + : + + + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether unlink honors trailing slashes" >&5 +printf %s "checking whether unlink honors trailing slashes... " >&6; } +if test ${gl_cv_func_unlink_honors_slashes+y} +then : + printf %s "(cached) " >&6 +else $as_nop + touch conftest.file + # Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + ln -s conftest.file conftest.lnk + fi + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_unlink_honors_slashes="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_unlink_honors_slashes="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_unlink_honors_slashes="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_unlink_honors_slashes="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if HAVE_UNISTD_H + # include + #else /* on Windows with MSVC */ + # include + #endif + #include + + +$gl_mda_defines + +int +main (void) +{ +int result = 0; + if (!unlink ("conftest.file/")) + result |= 1; + else if (errno != ENOTDIR) + result |= 2; +#if HAVE_LSTAT + if (!unlink ("conftest.lnk/")) + result |= 4; + else if (errno != ENOTDIR) + result |= 8; +#endif + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_unlink_honors_slashes=yes +else $as_nop + gl_cv_func_unlink_honors_slashes=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.file conftest.lnk +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_unlink_honors_slashes" >&5 +printf "%s\n" "$gl_cv_func_unlink_honors_slashes" >&6; } + case "$gl_cv_func_unlink_honors_slashes" in + *no) + REPLACE_UNLINK=1 + ;; + esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether unlink of a parent directory fails as it should" >&5 +printf %s "checking whether unlink of a parent directory fails as it should... " >&6; } +if test ${gl_cv_func_unlink_parent_fails+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case "$host_os" in + darwin*) + if { + # Use the mktemp program if available. If not available, hide the error + # message. + tmp=`(umask 077 && mktemp -d /tmp/gtXXXXXX) 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" + } || + { + # Use a simple mkdir command. It is guaranteed to fail if the directory + # already exists. $RANDOM is bash specific and expands to empty in shells + # other than bash, ksh and zsh. Its use does not increase security; + # rather, it minimizes the probability of failure in a very cluttered /tmp + # directory. + tmp=/tmp/gt$$-$RANDOM + (umask 077 && mkdir "$tmp") + }; then + mkdir "$tmp/subdir" + GL_SUBDIR_FOR_UNLINK="$tmp/subdir" + export GL_SUBDIR_FOR_UNLINK + if test "$cross_compiling" = yes +then : + # If we don't know, obey --enable-cross-guesses. + gl_cv_func_unlink_parent_fails="$gl_cross_guess_normal" + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #if HAVE_UNISTD_H + # include + #else /* on Windows with MSVC */ + # include + # include + #endif + + +$gl_mda_defines + + int main () + { + int result = 0; + if (chdir (getenv ("GL_SUBDIR_FOR_UNLINK")) != 0) + result |= 1; + else if (unlink ("..") == 0) + result |= 2; + return result; + } + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_unlink_parent_fails=yes +else $as_nop + gl_cv_func_unlink_parent_fails=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + unset GL_SUBDIR_FOR_UNLINK + rm -rf "$tmp" + else + gl_cv_func_unlink_parent_fails="guessing no" + fi + ;; + *) + gl_cv_func_unlink_parent_fails="guessing yes" + ;; + esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_unlink_parent_fails" >&5 +printf "%s\n" "$gl_cv_func_unlink_parent_fails" >&6; } + case "$gl_cv_func_unlink_parent_fails" in + *no) + REPLACE_UNLINK=1 + +printf "%s\n" "#define UNLINK_PARENT_BUG 1" >>confdefs.h + + ;; + esac + + + if test $REPLACE_UNLINK = 1; then + GL_COND_OBJ_UNLINK_TRUE= + GL_COND_OBJ_UNLINK_FALSE='#' +else + GL_COND_OBJ_UNLINK_TRUE='#' + GL_COND_OBJ_UNLINK_FALSE= +fi +: + if test -z "${GL_COND_OBJ_UNLINK_TRUE}" && test -z "${GL_COND_OBJ_UNLINK_FALSE}"; then + GL_COND_OBJ_UNLINK_TRUE='#' + GL_COND_OBJ_UNLINK_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_UNLINK=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_UNLINK 1" >>confdefs.h + + + + + + + + + + if test $ac_cv_func_unlinkat = no; then + HAVE_UNLINKAT=0 + else + case "$gl_cv_func_lstat_dereferences_slashed_symlink" in + *no) + # Solaris 9 has *at functions, but uniformly mishandles trailing + # slash in all of them. + REPLACE_UNLINKAT=1 + ;; + *) + # GNU/Hurd has unlinkat, but it has the same bug as unlink. + # Darwin has unlinkat, but it has the same UNLINK_PARENT_BUG. + if test $REPLACE_UNLINK = 1; then + REPLACE_UNLINKAT=1 + fi + ;; + esac + fi + + + if test $HAVE_UNLINKAT = 0 || test $REPLACE_UNLINKAT = 1; then + GL_COND_OBJ_UNLINKAT_TRUE= + GL_COND_OBJ_UNLINKAT_FALSE='#' +else + GL_COND_OBJ_UNLINKAT_TRUE='#' + GL_COND_OBJ_UNLINKAT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_UNLINKAT_TRUE}" && test -z "${GL_COND_OBJ_UNLINKAT_FALSE}"; then + GL_COND_OBJ_UNLINKAT_TRUE='#' + GL_COND_OBJ_UNLINKAT_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_UNLINKAT=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_UNLINKAT 1" >>confdefs.h + + + + + + + + case "$host_os" in + mingw*) + REPLACE_UTIME=1 + ;; + *) + ac_fn_c_check_func "$LINENO" "utime" "ac_cv_func_utime" +if test "x$ac_cv_func_utime" = xyes +then : + printf "%s\n" "#define HAVE_UTIME 1" >>confdefs.h + +fi + + if test $ac_cv_func_utime = no; then + HAVE_UTIME=0 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether utime handles trailing slashes on files" >&5 +printf %s "checking whether utime handles trailing slashes on files... " >&6; } +if test ${gl_cv_func_utime_file_slash+y} +then : + printf %s "(cached) " >&6 +else $as_nop + touch conftest.tmp + # Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + ln -s conftest.tmp conftest.lnk + fi + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_utime_file_slash="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_utime_file_slash="guessing yes" ;; + # Guess no on macOS. + darwin*) gl_cv_func_utime_file_slash="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_utime_file_slash="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main (void) +{ +int result = 0; + if (!utime ("conftest.tmp/", NULL)) + result |= 1; + #if HAVE_LSTAT + if (!utime ("conftest.lnk/", NULL)) + result |= 2; + #endif + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_utime_file_slash=yes +else $as_nop + gl_cv_func_utime_file_slash=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.tmp conftest.lnk + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_utime_file_slash" >&5 +printf "%s\n" "$gl_cv_func_utime_file_slash" >&6; } + case $gl_cv_func_stat_file_slash in + *no) + REPLACE_UTIME=1 + +printf "%s\n" "#define REPLACE_FUNC_UTIME_FILE 1" >>confdefs.h + + ;; + esac + fi + ;; + esac + + + if test $HAVE_UTIME = 0 || test $REPLACE_UTIME = 1; then + GL_COND_OBJ_UTIME_TRUE= + GL_COND_OBJ_UTIME_FALSE='#' +else + GL_COND_OBJ_UTIME_TRUE='#' + GL_COND_OBJ_UTIME_FALSE= +fi +: + if test -z "${GL_COND_OBJ_UTIME_TRUE}" && test -z "${GL_COND_OBJ_UTIME_FALSE}"; then + GL_COND_OBJ_UTIME_TRUE='#' + GL_COND_OBJ_UTIME_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_UTIME_TRUE"; then : + + : + +fi + + + + + + + + + + GL_GNULIB_UTIME=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_UTIME 1" >>confdefs.h + + + + + + + + + + + + + + + + if test $ac_cv_func_futimens = no && test $ac_cv_func_futimesat = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether futimesat handles NULL file" >&5 +printf %s "checking whether futimesat handles NULL file... " >&6; } +if test ${gl_cv_func_futimesat_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + touch conftest.file + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_futimesat_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_futimesat_works="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_futimesat_works="$gl_cross_guess_normal" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include + + +$gl_mda_defines + +int +main (void) +{ +int fd = open ("conftest.file", O_RDWR); + if (fd < 0) return 1; + if (futimesat (fd, NULL, NULL)) return 2; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_futimesat_works=yes +else $as_nop + gl_cv_func_futimesat_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.file +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_futimesat_works" >&5 +printf "%s\n" "$gl_cv_func_futimesat_works" >&6; } + case "$gl_cv_func_futimesat_works" in + *yes) ;; + *) + +printf "%s\n" "#define FUTIMESAT_NULL_BUG 1" >>confdefs.h + + ;; + esac + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for variable-length arrays" >&5 +printf %s "checking for variable-length arrays... " >&6; } +if test ${ac_cv_c_vararrays+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC_NO_VLA__ + defined + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "defined" >/dev/null 2>&1 +then : + ac_cv_c_vararrays='no: __STDC_NO_VLA__ is defined' +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Test for VLA support. This test is partly inspired + from examples in the C standard. Use at least two VLA + functions to detect the GCC 3.4.3 bug described in: + https://lists.gnu.org/archive/html/bug-gnulib/2014-08/msg00014.html + */ + #ifdef __STDC_NO_VLA__ + syntax error; + #else + extern int n; + int B[100]; + int fvla (int m, int C[m][m]); + + int + simple (int count, int all[static count]) + { + return all[count - 1]; + } + + int + fvla (int m, int C[m][m]) + { + typedef int VLA[m][m]; + VLA x; + int D[m]; + static int (*q)[m] = &B; + int (*s)[n] = q; + return C && &x[0][0] == &D[0] && &D[0] == s[0]; + } + #endif + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_vararrays=yes +else $as_nop + ac_cv_c_vararrays=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -rf conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_vararrays" >&5 +printf "%s\n" "$ac_cv_c_vararrays" >&6; } + if test "$ac_cv_c_vararrays" = yes; then + +printf "%s\n" "#define HAVE_C_VARARRAYS 1" >>confdefs.h + + elif test "$ac_cv_c_vararrays" = no; then + +printf "%s\n" "#define __STDC_NO_VLA__ 1" >>confdefs.h + + fi + + + + + if test $ac_cv_func_vasnprintf = no; then + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS vasnprintf.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS printf-args.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS printf-parse.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS asnprintf.$ac_objext" + + if test $ac_cv_func_vasnprintf = yes; then + +printf "%s\n" "#define REPLACE_VASNPRINTF 1" >>confdefs.h + + fi + + + + + + + + + + ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" +if test "x$ac_cv_type_ptrdiff_t" = xyes +then : + +else $as_nop + +printf "%s\n" "#define ptrdiff_t long" >>confdefs.h + + +fi + + + + + + + + fi + + + ac_fn_c_check_func "$LINENO" "vasprintf" "ac_cv_func_vasprintf" +if test "x$ac_cv_func_vasprintf" = xyes +then : + printf "%s\n" "#define HAVE_VASPRINTF 1" >>confdefs.h + +fi + + if test $ac_cv_func_vasprintf = no; then + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS vasprintf.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS asprintf.$ac_objext" + + + if test $ac_cv_func_vasprintf = yes; then + REPLACE_VASPRINTF=1 + else + HAVE_VASPRINTF=0 + fi + + + + + + + + + fi + + + + + + + + + + + GL_GNULIB_VASPRINTF=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_VASPRINTF 1" >>confdefs.h + + + + + + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=asprintf:2:c-format" + + + + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=vasprintf:2:c-format" + + + + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=verror:3:c-format" + + + + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=verror_at_line:5:c-format" + + + + gl_cv_func_vsnprintf_usable=no + ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf" +if test "x$ac_cv_func_vsnprintf" = xyes +then : + printf "%s\n" "#define HAVE_VSNPRINTF 1" >>confdefs.h + +fi + + if test $ac_cv_func_vsnprintf = yes; then + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether snprintf respects a size of 1" >&5 +printf %s "checking whether snprintf respects a size of 1... " >&6; } +if test ${gl_cv_func_snprintf_size1+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess yes on Android. + linux*-android*) gl_cv_func_snprintf_size1="guessing yes" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_snprintf_size1="guessing yes" ;; + *) gl_cv_func_snprintf_size1="guessing yes" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#if HAVE_SNPRINTF +# define my_snprintf snprintf +#else +# include +static int my_snprintf (char *buf, int size, const char *format, ...) +{ + va_list args; + int ret; + va_start (args, format); + ret = vsnprintf (buf, size, format, args); + va_end (args); + return ret; +} +#endif +int main() +{ + static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; + my_snprintf (buf, 1, "%d", 12345); + return buf[1] != 'E'; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_snprintf_size1=yes +else $as_nop + gl_cv_func_snprintf_size1=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_size1" >&5 +printf "%s\n" "$gl_cv_func_snprintf_size1" >&6; } + + case "$gl_cv_func_snprintf_size1" in + *yes) + + case "$gl_cv_func_snprintf_retval_c99" in + *yes) + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether printf supports POSIX/XSI format strings with positions" >&5 +printf %s "checking whether printf supports POSIX/XSI format strings with positions... " >&6; } +if test ${gl_cv_func_printf_positions+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test "$cross_compiling" = yes +then : + + case "$host_os" in + netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*) + gl_cv_func_printf_positions="guessing no";; + beos*) gl_cv_func_printf_positions="guessing no";; + # Guess yes on Android. + linux*-android*) gl_cv_func_printf_positions="guessing yes";; + # Guess no on native Windows. + mingw* | pw*) gl_cv_func_printf_positions="guessing no";; + *) gl_cv_func_printf_positions="guessing yes";; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +/* The string "%2$d %1$d", with dollar characters protected from the shell's + dollar expansion (possibly an autoconf bug). */ +static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; +static char buf[100]; +int main () +{ + sprintf (buf, format, 33, 55); + return (strcmp (buf, "55 33") != 0); +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_printf_positions=yes +else $as_nop + gl_cv_func_printf_positions=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_positions" >&5 +printf "%s\n" "$gl_cv_func_printf_positions" >&6; } + + case "$gl_cv_func_printf_positions" in + *yes) + gl_cv_func_vsnprintf_usable=yes + ;; + esac + ;; + esac + ;; + esac + fi + if test $gl_cv_func_vsnprintf_usable = no; then + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS vsnprintf.$ac_objext" + + if test $ac_cv_func_vsnprintf = yes; then + REPLACE_VSNPRINTF=1 + else + + if test $ac_cv_have_decl_vsnprintf = yes; then + REPLACE_VSNPRINTF=1 + fi + fi + : + + fi + + if test $ac_cv_have_decl_vsnprintf = no; then + HAVE_DECL_VSNPRINTF=0 + fi + + + + + + + + + + + GL_GNULIB_VSNPRINTF=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_VSNPRINTF 1" >>confdefs.h + + + + + + + + + + + + + + + + + + + + + + + + + + + if case "$host_os" in + mingw*) true ;; + *) test $ac_cv_func_mbsinit = yes ;; + esac \ + && test $ac_cv_func_mbrtowc = yes; then + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 +printf %s "checking whether mbrtowc handles incomplete characters... " >&6; } +if test ${gl_cv_func_mbrtowc_incomplete_state+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + case "$host_os" in + # Guess no on AIX and OSF/1. + aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; + esac + if test $LOCALE_JA != none; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) + { + const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + if (mbsinit (&state)) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbrtowc_incomplete_state=yes +else $as_nop + gl_cv_func_mbrtowc_incomplete_state=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + else + if test $LOCALE_FR_UTF8 != none; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + const char input[] = "B\303\274\303\237er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + if (mbsinit (&state)) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbrtowc_incomplete_state=yes +else $as_nop + gl_cv_func_mbrtowc_incomplete_state=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 +printf "%s\n" "$gl_cv_func_mbrtowc_incomplete_state" >&6; } + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 +printf %s "checking whether mbrtowc works as well as mbtowc... " >&6; } +if test ${gl_cv_func_mbrtowc_sanitycheck+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + case "$host_os" in + # Guess no on Solaris 8. + solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; + esac + if test $LOCALE_ZH_CN != none; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +int main () +{ + /* This fails on Solaris 8: + mbrtowc returns 2, and sets wc to 0x00F0. + mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 6, &state) != 4 + && mbtowc (&wc, input + 3, 6) == 4) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_mbrtowc_sanitycheck=yes +else $as_nop + gl_cv_func_mbrtowc_sanitycheck=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 +printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; } + + REPLACE_MBSTATE_T=0 + case "$gl_cv_func_mbrtowc_incomplete_state" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + case "$gl_cv_func_mbrtowc_sanitycheck" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + else + REPLACE_MBSTATE_T=1 + fi + + + + if test $ac_cv_func_wcrtomb = no; then + HAVE_WCRTOMB=0 + ac_fn_check_decl "$LINENO" "wcrtomb" "ac_cv_have_decl_wcrtomb" " + #include + +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_wcrtomb" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_WCRTOMB $ac_have_decl" >>confdefs.h + + if test $ac_cv_have_decl_wcrtomb = yes; then + REPLACE_WCRTOMB=1 + fi + else + if test $REPLACE_WCRTOMB = 0; then + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb works in the C locale" >&5 +printf %s "checking whether wcrtomb works in the C locale... " >&6; } +if test ${gl_cv_func_wcrtomb_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + case "$host_os" in + # Guess no on Android. + linux*-android*) gl_cv_func_wcrtomb_works="guessing no";; + # Guess yes otherwise. + *) gl_cv_func_wcrtomb_works="guessing yes";; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + mbstate_t state; + char out[64]; + int count; + memset (&state, 0, sizeof (state)); + out[0] = 'x'; + count = wcrtomb (out, L'a', &state); + return !(count == 1 && out[0] == 'a'); +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_wcrtomb_works=yes +else $as_nop + gl_cv_func_wcrtomb_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcrtomb_works" >&5 +printf "%s\n" "$gl_cv_func_wcrtomb_works" >&6; } + case "$gl_cv_func_wcrtomb_works" in + *yes) ;; + *) +printf "%s\n" "#define WCRTOMB_C_LOCALE_BUG 1" >>confdefs.h + + REPLACE_WCRTOMB=1 ;; + esac + fi + if test $REPLACE_WCRTOMB = 0; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb return value is correct" >&5 +printf %s "checking whether wcrtomb return value is correct... " >&6; } +if test ${gl_cv_func_wcrtomb_retval+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + case "$host_os" in + # Guess no on AIX 4, OSF/1, Solaris, native Windows. + aix4* | osf* | solaris* | mingw*) gl_cv_func_wcrtomb_retval="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_wcrtomb_retval="guessing yes" ;; + esac + if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +int main () +{ + int result = 0; + if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) + { + if (wcrtomb (NULL, 0, NULL) != 1) + result |= 1; + } + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + if (wcrtomb (NULL, 0, NULL) != 1) + result |= 2; + { + wchar_t wc = (wchar_t) 0xBADFACE; + if (mbtowc (&wc, "\303\274", 2) == 2) + if (wcrtomb (NULL, wc, NULL) != 1) + result |= 2; + } + } + if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) + { + if (wcrtomb (NULL, 0, NULL) != 1) + result |= 4; + } + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + if (wcrtomb (NULL, 0, NULL) != 1) + result |= 8; + } + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_wcrtomb_retval=yes +else $as_nop + gl_cv_func_wcrtomb_retval=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcrtomb_retval" >&5 +printf "%s\n" "$gl_cv_func_wcrtomb_retval" >&6; } + case "$gl_cv_func_wcrtomb_retval" in + *yes) ;; + *) +printf "%s\n" "#define WCRTOMB_RETVAL_BUG 1" >>confdefs.h + + REPLACE_WCRTOMB=1 ;; + esac + fi + fi + + + if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then + GL_COND_OBJ_WCRTOMB_TRUE= + GL_COND_OBJ_WCRTOMB_FALSE='#' +else + GL_COND_OBJ_WCRTOMB_TRUE='#' + GL_COND_OBJ_WCRTOMB_FALSE= +fi +: + if test -z "${GL_COND_OBJ_WCRTOMB_TRUE}" && test -z "${GL_COND_OBJ_WCRTOMB_FALSE}"; then + GL_COND_OBJ_WCRTOMB_TRUE='#' + GL_COND_OBJ_WCRTOMB_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_WCRTOMB_TRUE"; then : + + + : + + +fi + + + + + + + + + + + + + + + GL_GNULIB_WCRTOMB=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_WCRTOMB 1" >>confdefs.h + + + + + + + + + + + + + if case "$host_os" in mingw*) true;; *) false;; esac; then + GL_COND_OBJ_WINDOWS_MUTEX_TRUE= + GL_COND_OBJ_WINDOWS_MUTEX_FALSE='#' +else + GL_COND_OBJ_WINDOWS_MUTEX_TRUE='#' + GL_COND_OBJ_WINDOWS_MUTEX_FALSE= +fi +: + if test -z "${GL_COND_OBJ_WINDOWS_MUTEX_TRUE}" && test -z "${GL_COND_OBJ_WINDOWS_MUTEX_FALSE}"; then + GL_COND_OBJ_WINDOWS_MUTEX_TRUE='#' + GL_COND_OBJ_WINDOWS_MUTEX_FALSE='#' + fi + + + + if case "$host_os" in mingw*) true;; *) false;; esac; then + GL_COND_OBJ_WINDOWS_ONCE_TRUE= + GL_COND_OBJ_WINDOWS_ONCE_FALSE='#' +else + GL_COND_OBJ_WINDOWS_ONCE_TRUE='#' + GL_COND_OBJ_WINDOWS_ONCE_FALSE= +fi +: + if test -z "${GL_COND_OBJ_WINDOWS_ONCE_TRUE}" && test -z "${GL_COND_OBJ_WINDOWS_ONCE_FALSE}"; then + GL_COND_OBJ_WINDOWS_ONCE_TRUE='#' + GL_COND_OBJ_WINDOWS_ONCE_FALSE='#' + fi + + + + if case "$host_os" in mingw*) true;; *) false;; esac; then + GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE= + GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE='#' +else + GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE='#' + GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE= +fi +: + if test -z "${GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE}" && test -z "${GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE}"; then + GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE='#' + GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE='#' + fi + + + + if case "$host_os" in mingw*) true;; *) false;; esac; then + GL_COND_OBJ_WINDOWS_RWLOCK_TRUE= + GL_COND_OBJ_WINDOWS_RWLOCK_FALSE='#' +else + GL_COND_OBJ_WINDOWS_RWLOCK_TRUE='#' + GL_COND_OBJ_WINDOWS_RWLOCK_FALSE= +fi +: + if test -z "${GL_COND_OBJ_WINDOWS_RWLOCK_TRUE}" && test -z "${GL_COND_OBJ_WINDOWS_RWLOCK_FALSE}"; then + GL_COND_OBJ_WINDOWS_RWLOCK_TRUE='#' + GL_COND_OBJ_WINDOWS_RWLOCK_FALSE='#' + fi + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wmemchr" >&5 +printf %s "checking for wmemchr... " >&6; } +if test ${gl_cv_func_wmemchr+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +return ! wmemchr ((const wchar_t *) 0, (wchar_t) ' ', 0); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_func_wmemchr=yes +else $as_nop + gl_cv_func_wmemchr=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wmemchr" >&5 +printf "%s\n" "$gl_cv_func_wmemchr" >&6; } + if test $gl_cv_func_wmemchr = no; then + HAVE_WMEMCHR=0 + fi + + + if test $HAVE_WMEMCHR = 0; then + GL_COND_OBJ_WMEMCHR_TRUE= + GL_COND_OBJ_WMEMCHR_FALSE='#' +else + GL_COND_OBJ_WMEMCHR_TRUE='#' + GL_COND_OBJ_WMEMCHR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_WMEMCHR_TRUE}" && test -z "${GL_COND_OBJ_WMEMCHR_FALSE}"; then + GL_COND_OBJ_WMEMCHR_TRUE='#' + GL_COND_OBJ_WMEMCHR_FALSE='#' + fi + + + + + + + + + + + + + + + + GL_GNULIB_WMEMCHR=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_WMEMCHR 1" >>confdefs.h + + + + + + + + + + + + if test $ac_cv_func_wmempcpy = no; then + HAVE_WMEMPCPY=0 + fi + + + if test $HAVE_WMEMPCPY = 0; then + GL_COND_OBJ_WMEMPCPY_TRUE= + GL_COND_OBJ_WMEMPCPY_FALSE='#' +else + GL_COND_OBJ_WMEMPCPY_TRUE='#' + GL_COND_OBJ_WMEMPCPY_FALSE= +fi +: + if test -z "${GL_COND_OBJ_WMEMPCPY_TRUE}" && test -z "${GL_COND_OBJ_WMEMPCPY_FALSE}"; then + GL_COND_OBJ_WMEMPCPY_TRUE='#' + GL_COND_OBJ_WMEMPCPY_FALSE='#' + fi + + + + + + + + + + + + + + + + GL_GNULIB_WMEMPCPY=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_WMEMPCPY 1" >>confdefs.h + + + + : + + +printf "%s\n" "#define GNULIB_XALLOC 1" >>confdefs.h + + + + +printf "%s\n" "#define GNULIB_XALLOC_DIE 1" >>confdefs.h + + + + : + + + + ac_fn_c_check_header_compile "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" +if test "x$ac_cv_header_stdint_h" = xyes +then : + printf "%s\n" "#define HAVE_STDINT_H 1" >>confdefs.h + +fi + + + + + : + + + : + + + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=xasprintf:1:c-format" + + # End of code from modules + + + + + + + + + + + + gltests_libdeps= + gltests_ltlibdeps= + + + + + + + + + + + + + gl_source_base='tests' + gl_source_base_prefix= + gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS + + gl_module_indicator_condition=$gltests_WITNESS + + + + + + + + + + + + + +ac_fn_c_check_header_compile "$LINENO" "sys/file.h" "ac_cv_header_sys_file_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_file_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_FILE_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "linux/fiemap.h" "ac_cv_header_linux_fiemap_h" "$ac_includes_default" +if test "x$ac_cv_header_linux_fiemap_h" = xyes +then : + printf "%s\n" "#define HAVE_LINUX_FIEMAP_H 1" >>confdefs.h + +fi + +ac_fn_c_check_func "$LINENO" "posix_fadvise" "ac_cv_func_posix_fadvise" +if test "x$ac_cv_func_posix_fadvise" = xyes +then : + printf "%s\n" "#define HAVE_POSIX_FADVISE 1" >>confdefs.h + +fi + + +# Internationalization support. + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 +printf %s "checking whether NLS is requested... " >&6; } + # Check whether --enable-nls was given. +if test ${enable_nls+y} +then : + enableval=$enable_nls; USE_NLS=$enableval +else $as_nop + USE_NLS=yes +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +printf "%s\n" "$USE_NLS" >&6; } + + + + + GETTEXT_MACRO_VERSION=0.18 + + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_MSGFMT+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case "$MSGFMT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" + ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test "$MSGFMT" != ":"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +printf "%s\n" "$MSGFMT" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_GMSGFMT+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_GMSGFMT="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +printf "%s\n" "$GMSGFMT" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + + case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; + *) MSGFMT_015=$MSGFMT ;; + esac + + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; + *) GMSGFMT_015=$GMSGFMT ;; + esac + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_XGETTEXT+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case "$XGETTEXT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" + ;; +esac +fi +XGETTEXT="$ac_cv_path_XGETTEXT" +if test "$XGETTEXT" != ":"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +printf "%s\n" "$XGETTEXT" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + rm -f messages.po + + case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; + *) XGETTEXT_015=$XGETTEXT ;; + esac + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "msgmerge", so it can be a program name with args. +set dummy msgmerge; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_MSGMERGE+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case "$MSGMERGE" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then + ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" + ;; +esac +fi +MSGMERGE="$ac_cv_path_MSGMERGE" +if test "$MSGMERGE" != ":"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 +printf "%s\n" "$MSGMERGE" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$localedir" || localedir='${datadir}/locale' + + + test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= + + + ac_config_commands="$ac_config_commands po-directories" + + + + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" + + + +# Check whether --with-gnu-ld was given. +if test ${with_gnu_ld+y} +then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else $as_nop + with_gnu_ld=no +fi + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +if test -n "$LD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld" >&5 +printf %s "checking for ld... " >&6; } +elif test "$GCC" = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +printf %s "checking for ld used by $CC... " >&6; } +elif test "$with_gnu_ld" = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +printf %s "checking for GNU ld... " >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +printf %s "checking for non-GNU ld... " >&6; } +fi +if test -n "$LD"; then + # Let the user override the test with a path. + : +else + if test ${acl_cv_path_LD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + acl_cv_path_LD= # Final result of this test + ac_prog=ld # Program to search in $PATH + if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + acl_output=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $acl_output in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` + while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do + acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` + done + # Got the pathname. No search in PATH is needed. + acl_cv_path_LD="$acl_output" + ac_prog= + ;; + "") + # If it fails, then pretend we aren't using GCC. + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac + fi + if test -n "$ac_prog"; then + # Search for $ac_prog in $PATH. + acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$acl_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 conftest.$ac_ext +/* end confdefs.h. */ +#if defined __powerpc64__ || defined __LP64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + # The compiler produces 64-bit code. Add option '-b64' so that the + # linker groks 64-bit object files. + case "$acl_cv_path_LD " in + *" -b64 "*) ;; + *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;; + esac + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + sparc64-*-netbsd*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __sparcv9 || defined __arch64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + # The compiler produces 32-bit code. Add option '-m elf32_sparc' + # so that the linker groks 32-bit object files. + case "$acl_cv_path_LD " in + *" -m elf32_sparc "*) ;; + *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;; + esac + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + esac + +fi + + LD="$acl_cv_path_LD" +fi +if test -n "$LD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 +printf "%s\n" "$LD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +printf %s "checking if the linker ($LD) is GNU ld... " >&6; } +if test ${acl_cv_prog_gnu_ld+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +printf "%s\n" "$acl_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$acl_cv_prog_gnu_ld + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 +printf %s "checking for shared library run path origin... " >&6; } +if test ${acl_cv_rpath+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 +printf "%s\n" "$acl_cv_rpath" >&6; } + wl="$acl_cv_wl" + acl_libext="$acl_cv_libext" + acl_shlibext="$acl_cv_shlibext" + acl_libname_spec="$acl_cv_libname_spec" + acl_library_names_spec="$acl_cv_library_names_spec" + acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + acl_hardcode_direct="$acl_cv_hardcode_direct" + acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" + # Check whether --enable-rpath was given. +if test ${enable_rpath+y} +then : + enableval=$enable_rpath; : +else $as_nop + enable_rpath=yes +fi + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking 32-bit host C ABI" >&5 +printf %s "checking 32-bit host C ABI... " >&6; } +if test ${gl_cv_host_cpu_c_abi_32bit+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$gl_cv_host_cpu_c_abi"; then + case "$gl_cv_host_cpu_c_abi" in + i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc) + gl_cv_host_cpu_c_abi_32bit=yes ;; + x86_64 | alpha | arm64 | hppa64 | ia64 | mips64 | powerpc64 | powerpc64-elfv2 | riscv*-lp64* | s390x | sparc64 ) + gl_cv_host_cpu_c_abi_32bit=no ;; + *) + gl_cv_host_cpu_c_abi_32bit=unknown ;; + esac + else + case "$host_cpu" in + + # CPUs that only support a 32-bit ABI. + arc \ + | bfin \ + | cris* \ + | csky \ + | epiphany \ + | ft32 \ + | h8300 \ + | m68k \ + | microblaze | microblazeel \ + | nds32 | nds32le | nds32be \ + | nios2 | nios2eb | nios2el \ + | or1k* \ + | or32 \ + | sh | sh1234 | sh1234elb \ + | tic6x \ + | xtensa* ) + gl_cv_host_cpu_c_abi_32bit=yes + ;; + + # CPUs that only support a 64-bit ABI. + alpha | alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] \ + | mmix ) + gl_cv_host_cpu_c_abi_32bit=no + ;; + + i[34567]86 ) + gl_cv_host_cpu_c_abi_32bit=yes + ;; + + x86_64 ) + # On x86_64 systems, the C compiler may be generating code in one of + # these ABIs: + # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. + # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 + # with native Windows (mingw, MSVC). + # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if (defined __x86_64__ || defined __amd64__ \ + || defined _M_X64 || defined _M_AMD64) \ + && !(defined __ILP32__ || defined _ILP32) + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else $as_nop + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + arm* | aarch64 ) + # Assume arm with EABI. + # On arm64 systems, the C compiler may be generating code in one of + # these ABIs: + # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. + # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32) + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else $as_nop + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) + # On hppa, the C compiler may be generating 32-bit code or 64-bit + # code. In the latter case, it defines _LP64 and __LP64__. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __LP64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else $as_nop + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + ia64* ) + # On ia64 on HP-UX, the C compiler may be generating 64-bit code or + # 32-bit code. In the latter case, it defines _ILP32. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef _ILP32 + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=yes +else $as_nop + gl_cv_host_cpu_c_abi_32bit=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + mips* ) + # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this + # at 32. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else $as_nop + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + powerpc* ) + # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. + # No need to distinguish them here; the caller may distinguish + # them based on the OS. + # On powerpc64 systems, the C compiler may still be generating + # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may + # be generating 64-bit code. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __powerpc64__ || defined __LP64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else $as_nop + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + rs6000 ) + gl_cv_host_cpu_c_abi_32bit=yes + ;; + + riscv32 | riscv64 ) + # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. + # Size of 'long' and 'void *': + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __LP64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else $as_nop + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + s390* ) + # On s390x, the C compiler may be generating 64-bit (= s390x) code + # or 31-bit (= s390) code. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __LP64__ || defined __s390x__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else $as_nop + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + sparc | sparc64 ) + # UltraSPARCs running Linux have `uname -m` = "sparc64", but the + # C compiler still generates 32-bit code. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __sparcv9 || defined __arch64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else $as_nop + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + *) + gl_cv_host_cpu_c_abi_32bit=unknown + ;; + esac + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi_32bit" >&5 +printf "%s\n" "$gl_cv_host_cpu_c_abi_32bit" >&6; } + + HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit" + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ELF binary format" >&5 +printf %s "checking for ELF binary format... " >&6; } +if test ${gl_cv_elf+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __ELF__ || (defined __linux__ && defined __EDG__) + Extensible Linking Format + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Extensible Linking Format" >/dev/null 2>&1 +then : + gl_cv_elf=yes +else $as_nop + gl_cv_elf=no +fi +rm -rf conftest* + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_elf" >&5 +printf "%s\n" "$gl_cv_elf" >&6; } + if test $gl_cv_elf = yes; then + # Extract the ELF class of a file (5th byte) in decimal. + # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header + if od -A x < /dev/null >/dev/null 2>/dev/null; then + # Use POSIX od. + func_elfclass () + { + od -A n -t d1 -j 4 -N 1 + } + else + # Use BSD hexdump. + func_elfclass () + { + dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "' + echo + } + fi + # Use 'expr', not 'test', to compare the values of func_elfclass, because on + # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002, + # not 1 or 2. + case $HOST_CPU_C_ABI_32BIT in + yes) + # 32-bit ABI. + acl_is_expected_elfclass () + { + expr "`func_elfclass | sed -e 's/[ ]//g'`" = 1 > /dev/null + } + ;; + no) + # 64-bit ABI. + acl_is_expected_elfclass () + { + expr "`func_elfclass | sed -e 's/[ ]//g'`" = 2 > /dev/null + } + ;; + *) + # Unknown. + acl_is_expected_elfclass () + { + : + } + ;; + esac + else + acl_is_expected_elfclass () + { + : + } + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the common suffixes of directories in the library search path" >&5 +printf %s "checking for the common suffixes of directories in the library search path... " >&6; } +if test ${acl_cv_libdirstems+y} +then : + printf %s "(cached) " >&6 +else $as_nop + acl_libdirstem=lib + acl_libdirstem2= + acl_libdirstem3= + case "$host_os" in + solaris*) + if test $HOST_CPU_C_ABI_32BIT = no; then + acl_libdirstem2=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem3=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem3=lib/amd64 ;; + esac + fi + ;; + *) + searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \ + | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test $HOST_CPU_C_ABI_32BIT != no; then + # 32-bit or unknown ABI. + if test -d /usr/lib32; then + acl_libdirstem2=lib32 + fi + fi + if test $HOST_CPU_C_ABI_32BIT != yes; then + # 64-bit or unknown ABI. + if test -d /usr/lib64; then + acl_libdirstem3=lib64 + fi + fi + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;; + */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib32 ) acl_libdirstem2=lib32 ;; + */lib64 ) acl_libdirstem3=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + if test $HOST_CPU_C_ABI_32BIT = yes; then + # 32-bit ABI. + acl_libdirstem3= + fi + if test $HOST_CPU_C_ABI_32BIT = no; then + # 64-bit ABI. + acl_libdirstem2= + fi + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" + test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem" + acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_libdirstems" >&5 +printf "%s\n" "$acl_cv_libdirstems" >&6; } + acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` + acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'` + acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'` + + + + + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" + eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libiconv-prefix was given. +if test ${with_libiconv_prefix+y} +then : + withval=$with_libiconv_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" + eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + additional_libdir2="$withval/$acl_libdirstem2" + additional_libdir3="$withval/$acl_libdirstem3" + fi + fi + +fi + + if test "X$additional_libdir2" = "X$additional_libdir"; then + additional_libdir2= + fi + if test "X$additional_libdir3" = "X$additional_libdir"; then + additional_libdir3= + fi + LIBICONV= + LTLIBICONV= + INCICONV= + LIBICONV_PREFIX= + HAVE_LIBICONV= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='iconv ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do + if test "X$found_dir" = "X"; then + eval dir=\$$additional_libdir_variable + if test -n "$dir"; then + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + fi + done + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$acl_hardcode_direct" = yes; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = 'iconv'; then + LIBICONV_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = 'iconv'; then + LIBICONV_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem3 | */$acl_libdirstem3/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` + if test "$name" = 'iconv'; then + LIBICONV_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ + && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then + haveit= + if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ + || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$dependency_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$dependency_libdir"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$dependency_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$dependency_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$dependency_libdir"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$dependency_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dep=`echo "X$dep" | sed -e 's/^X-l//'` + if test "X$dep" != Xc \ + || case $host_os in + linux* | gnu* | k*bsd*-gnu) false ;; + *) true ;; + esac; then + names_next_round="$names_next_round $dep" + fi + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" + ;; + esac + done + fi + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" + done + fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 +printf %s "checking for CFPreferencesCopyAppValue... " >&6; } +if test ${gt_cv_func_CFPreferencesCopyAppValue+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +CFPreferencesCopyAppValue(NULL, NULL) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gt_cv_func_CFPreferencesCopyAppValue=yes +else $as_nop + gt_cv_func_CFPreferencesCopyAppValue=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 +printf "%s\n" "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + +printf "%s\n" "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h + + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 +printf %s "checking for CFLocaleCopyCurrent... " >&6; } +if test ${gt_cv_func_CFLocaleCopyCurrent+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +CFLocaleCopyCurrent(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gt_cv_func_CFLocaleCopyCurrent=yes +else $as_nop + gt_cv_func_CFLocaleCopyCurrent=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 +printf "%s\n" "$gt_cv_func_CFLocaleCopyCurrent" >&6; } + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + +printf "%s\n" "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h + + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + + + + + + + LIBINTL= + LTLIBINTL= + POSUB= + + case " $gt_needs " in + *" need-formatstring-macros "*) gt_api_version=3 ;; + *" need-ngettext "*) gt_api_version=2 ;; + *) gt_api_version=1 ;; + esac + gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" + gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" + + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + + + if test $gt_api_version -ge 3; then + gt_revision_test_code=' +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +' + else + gt_revision_test_code= + fi + if test $gt_api_version -ge 2; then + gt_expression_test_code=' + * ngettext ("", "", 0)' + else + gt_expression_test_code= + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 +printf %s "checking for GNU gettext in libc... " >&6; } +if eval test \${$gt_func_gnugettext_libc+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings; + +int +main (void) +{ + +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + eval "$gt_func_gnugettext_libc=yes" +else $as_nop + eval "$gt_func_gnugettext_libc=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$gt_func_gnugettext_libc + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + + + + + + am_save_CPPFLAGS="$CPPFLAGS" + + for element in $INCICONV; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 +printf %s "checking for iconv... " >&6; } +if test ${am_cv_func_iconv+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main (void) +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + am_cv_func_iconv=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main (void) +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + am_cv_lib_iconv=yes + am_cv_func_iconv=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$am_save_LIBS" + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 +printf "%s\n" "$am_cv_func_iconv" >&6; } + if test "$am_cv_func_iconv" = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 +printf %s "checking for working iconv... " >&6; } +if test ${am_cv_func_iconv_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + if test "$cross_compiling" = yes +then : + + case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +int main () +{ + int result = 0; + /* Test against AIX 5.1 bug: Failures are not distinguishable from successful + returns. */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 1; + iconv_close (cd_utf8_to_88591); + } + } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\263"; + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 2; + iconv_close (cd_ascii_to_88591); + } + } + /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static const char input[] = "\304"; + static char buf[2] = { (char)0xDE, (char)0xAD }; + const char *inptr = input; + size_t inbytesleft = 1; + char *outptr = buf; + size_t outbytesleft = 1; + size_t res = iconv (cd_88591_to_utf8, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) + result |= 4; + iconv_close (cd_88591_to_utf8); + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + result |= 8; + iconv_close (cd_88591_to_utf8); + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + if (/* Try standardized names. */ + iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) + /* Try IRIX, OSF/1 names. */ + && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) + /* Try AIX names. */ + && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) + /* Try HP-UX names. */ + && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) + result |= 16; + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + am_cv_func_iconv_works=yes +else $as_nop + am_cv_func_iconv_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + LIBS="$am_save_LIBS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 +printf "%s\n" "$am_cv_func_iconv_works" >&6; } + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then + +printf "%s\n" "#define HAVE_ICONV 1" >>confdefs.h + + fi + if test "$am_cv_lib_iconv" = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 +printf %s "checking how to link with libiconv... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 +printf "%s\n" "$LIBICONV" >&6; } + else + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + + + + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" + eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libintl-prefix was given. +if test ${with_libintl_prefix+y} +then : + withval=$with_libintl_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" + eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + additional_libdir2="$withval/$acl_libdirstem2" + additional_libdir3="$withval/$acl_libdirstem3" + fi + fi + +fi + + if test "X$additional_libdir2" = "X$additional_libdir"; then + additional_libdir2= + fi + if test "X$additional_libdir3" = "X$additional_libdir"; then + additional_libdir3= + fi + LIBINTL= + LTLIBINTL= + INCINTL= + LIBINTL_PREFIX= + HAVE_LIBINTL= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='intl ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do + if test "X$found_dir" = "X"; then + eval dir=\$$additional_libdir_variable + if test -n "$dir"; then + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + fi + done + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$acl_hardcode_direct" = yes; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = 'intl'; then + LIBINTL_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = 'intl'; then + LIBINTL_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem3 | */$acl_libdirstem3/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` + if test "$name" = 'intl'; then + LIBINTL_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ + && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then + haveit= + if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ + || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$dependency_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$dependency_libdir"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$dependency_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$dependency_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$dependency_libdir"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$dependency_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dep=`echo "X$dep" | sed -e 's/^X-l//'` + if test "X$dep" != Xc \ + || case $host_os in + linux* | gnu* | k*bsd*-gnu) false ;; + *) true ;; + esac; then + names_next_round="$names_next_round $dep" + fi + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" + ;; + esac + done + fi + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" + done + fi + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 +printf %s "checking for GNU gettext in libintl... " >&6; } +if eval test \${$gt_func_gnugettext_libintl+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); + +int +main (void) +{ + +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + eval "$gt_func_gnugettext_libintl=yes" +else $as_nop + eval "$gt_func_gnugettext_libintl=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); + +int +main (void) +{ + +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + eval "$gt_func_gnugettext_libintl=yes" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS" +fi +eval ac_res=\$$gt_func_gnugettext_libintl + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + fi + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ + || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + +printf "%s\n" "#define ENABLE_NLS 1" >>confdefs.h + + else + USE_NLS=no + fi + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 +printf %s "checking whether to use NLS... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +printf "%s\n" "$USE_NLS" >&6; } + if test "$USE_NLS" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 +printf %s "checking where the gettext function comes from... " >&6; } + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 +printf "%s\n" "$gt_source" >&6; } + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 +printf %s "checking how to link with libintl... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 +printf "%s\n" "$LIBINTL" >&6; } + + for element in $INCINTL; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + fi + + +printf "%s\n" "#define HAVE_GETTEXT 1" >>confdefs.h + + +printf "%s\n" "#define HAVE_DCGETTEXT 1" >>confdefs.h + + fi + + POSUB=po + fi + + + + INTLLIBS="$LIBINTL" + + + + + + + + + + + + + + am_save_CPPFLAGS="$CPPFLAGS" + + for element in $INCICONV; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 +printf %s "checking for iconv... " >&6; } +if test ${am_cv_func_iconv+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main (void) +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + am_cv_func_iconv=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main (void) +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + am_cv_lib_iconv=yes + am_cv_func_iconv=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$am_save_LIBS" + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 +printf "%s\n" "$am_cv_func_iconv" >&6; } + if test "$am_cv_func_iconv" = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 +printf %s "checking for working iconv... " >&6; } +if test ${am_cv_func_iconv_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + if test "$cross_compiling" = yes +then : + + case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +int main () +{ + int result = 0; + /* Test against AIX 5.1 bug: Failures are not distinguishable from successful + returns. */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 1; + iconv_close (cd_utf8_to_88591); + } + } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\263"; + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 2; + iconv_close (cd_ascii_to_88591); + } + } + /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static const char input[] = "\304"; + static char buf[2] = { (char)0xDE, (char)0xAD }; + const char *inptr = input; + size_t inbytesleft = 1; + char *outptr = buf; + size_t outbytesleft = 1; + size_t res = iconv (cd_88591_to_utf8, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) + result |= 4; + iconv_close (cd_88591_to_utf8); + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + result |= 8; + iconv_close (cd_88591_to_utf8); + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + if (/* Try standardized names. */ + iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) + /* Try IRIX, OSF/1 names. */ + && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) + /* Try AIX names. */ + && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) + /* Try HP-UX names. */ + && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) + result |= 16; + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + am_cv_func_iconv_works=yes +else $as_nop + am_cv_func_iconv_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + LIBS="$am_save_LIBS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 +printf "%s\n" "$am_cv_func_iconv_works" >&6; } + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then + +printf "%s\n" "#define HAVE_ICONV 1" >>confdefs.h + + fi + if test "$am_cv_lib_iconv" = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 +printf %s "checking how to link with libiconv... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 +printf "%s\n" "$LIBICONV" >&6; } + else + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + + + + if test "$am_cv_func_iconv" = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5 +printf %s "checking for iconv declaration... " >&6; } + if test ${am_cv_proto_iconv+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + am_cv_proto_iconv_arg1="" +else $as_nop + am_cv_proto_iconv_arg1="const" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + 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);" +fi + + am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: + $am_cv_proto_iconv" >&5 +printf "%s\n" " + $am_cv_proto_iconv" >&6; } + +printf "%s\n" "#define ICONV_CONST $am_cv_proto_iconv_arg1" >>confdefs.h + + + fi + +for ac_prog in po4a +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_PO4A+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$PO4A"; then + ac_cv_prog_PO4A="$PO4A" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_PO4A="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +PO4A=$ac_cv_prog_PO4A +if test -n "$PO4A"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PO4A" >&5 +printf "%s\n" "$PO4A" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$PO4A" && break +done + + + if test -n "$PO4A"; then + PO4A_TRUE= + PO4A_FALSE='#' +else + PO4A_TRUE='#' + PO4A_FALSE= +fi + + + + if test "$USE_NLS" = yes; then + # The LINGUAS file contains the set of available languages. + man_all_linguas= + if test -n "$srcdir/man/LINGUAS"; then + man_all_linguas=`sed -e "/^#/d" -e "s/#.*//" "$srcdir/man/LINGUAS"` + fi + if test -n "$PO4A" && test -n "$srcdir/man/LINGUAS.po4a"; then + man_all_linguas_po4a=`sed -e "/^#/d" -e "s/#.*//" "$srcdir/man/LINGUAS.po4a"` + man_all_linguas="$man_all_linguas $man_all_linguas_po4a" + fi + man_inst_linguas= + for presentlang in $man_all_linguas; do + useit=no + if test -n "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$man_all_linguas" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + man_inst_linguas="$man_inst_linguas $presentlang" + fi + done + if test -n "$PO4A"; then + MAN_SUBDIRS="po4a $man_inst_linguas" + else + MAN_SUBDIRS="$man_inst_linguas" + fi + else + MAN_SUBDIRS= + fi + + + +# Checks for structures and compiler characteristics. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 +printf %s "checking for an ANSI C-conforming const... " >&6; } +if test ${ac_cv_c_const+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + +#ifndef __cplusplus + /* Ultrix mips cc rejects this sort of thing. */ + typedef int charset[2]; + const charset cs = { 0, 0 }; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* IBM XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + pcpcc = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; + { /* SCO 3.2v4 cc rejects this sort of thing. */ + char tx; + char *t = &tx; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + if (s) return 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* IBM XL C 1.02.0.0 rejects this sort of thing, saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; } bx; + struct s *b = &bx; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + if (!foo) return 0; + } + return !cs[0] && !zero.x; +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_const=yes +else $as_nop + ac_cv_c_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +printf "%s\n" "$ac_cv_c_const" >&6; } +if test $ac_cv_c_const = no; then + +printf "%s\n" "#define const /**/" >>confdefs.h + +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +printf %s "checking for inline... " >&6; } +if test ${ac_cv_c_inline+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo (void) {return 0; } +$ac_kw foo_t foo (void) {return 0; } +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_inline=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +printf "%s\n" "$ac_cv_c_inline" >&6; } + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + + + ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default +" +if test "x$ac_cv_type_pid_t" = xyes +then : + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #if defined _WIN64 && !defined __CYGWIN__ + LLP64 + #endif + +int +main (void) +{ + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_pid_type='int' +else $as_nop + ac_pid_type='__int64' +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +printf "%s\n" "#define pid_t $ac_pid_type" >>confdefs.h + + +fi + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 +printf %s "checking for uid_t in sys/types.h... " >&6; } +if test ${ac_cv_type_uid_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "uid_t" >/dev/null 2>&1 +then : + ac_cv_type_uid_t=yes +else $as_nop + ac_cv_type_uid_t=no +fi +rm -rf conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 +printf "%s\n" "$ac_cv_type_uid_t" >&6; } +if test $ac_cv_type_uid_t = no; then + +printf "%s\n" "#define uid_t int" >>confdefs.h + + +printf "%s\n" "#define gid_t int" >>confdefs.h + +fi + +ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" +if test "x$ac_cv_type_size_t" = xyes +then : + +else $as_nop + +printf "%s\n" "#define size_t unsigned int" >>confdefs.h + +fi + + +# Check for pipeline library. + +pkg_failed=no +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libpipeline >= 1.5.0" >&5 +printf %s "checking for libpipeline >= 1.5.0... " >&6; } + +if test -n "$libpipeline_CFLAGS"; then + pkg_cv_libpipeline_CFLAGS="$libpipeline_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpipeline >= 1.5.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libpipeline >= 1.5.0") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_libpipeline_CFLAGS=`$PKG_CONFIG --cflags "libpipeline >= 1.5.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$libpipeline_LIBS"; then + pkg_cv_libpipeline_LIBS="$libpipeline_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpipeline >= 1.5.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libpipeline >= 1.5.0") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_libpipeline_LIBS=`$PKG_CONFIG --libs "libpipeline >= 1.5.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + libpipeline_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libpipeline >= 1.5.0" 2>&1` + else + libpipeline_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libpipeline >= 1.5.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$libpipeline_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (libpipeline >= 1.5.0) were not met: + +$libpipeline_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables libpipeline_CFLAGS +and libpipeline_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables libpipeline_CFLAGS +and libpipeline_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + libpipeline_CFLAGS=$pkg_cv_libpipeline_CFLAGS + libpipeline_LIBS=$pkg_cv_libpipeline_LIBS + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +fi + +# Find a suitable database interface header and library. +# +# Check for GNU dbm routines. +if test "$db" = "no" || test "$db" = "gdbm" +then + ac_fn_c_check_header_compile "$LINENO" "gdbm.h" "ac_cv_header_gdbm_h" "$ac_includes_default" +if test "x$ac_cv_header_gdbm_h" = xyes +then : + + for lib in gdbm c dbm + do + as_ac_Lib=`printf "%s\n" "ac_cv_lib_$lib""_gdbm_fetch" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gdbm_fetch in -l$lib" >&5 +printf %s "checking for gdbm_fetch in -l$lib... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-l$lib $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char gdbm_fetch (); +int +main (void) +{ +return gdbm_fetch (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + eval "$as_ac_Lib=yes" +else $as_nop + eval "$as_ac_Lib=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +eval ac_res=\$$as_ac_Lib + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : + test "$lib" = "c" || DBLIBS="-l$lib" + +printf "%s\n" "#define GDBM 1" >>confdefs.h + + DBTYPE=gdbm + + db=yes +else $as_nop + db=no +fi + + if test "$db" = "yes" + then + man_save_LIBS="$LIBS" + LIBS="$LIBS $DBLIBS" + ac_fn_c_check_func "$LINENO" "gdbm_exists" "ac_cv_func_gdbm_exists" +if test "x$ac_cv_func_gdbm_exists" = xyes +then : + printf "%s\n" "#define HAVE_GDBM_EXISTS 1" >>confdefs.h + +fi + + LIBS="$man_save_LIBS" + break + fi + done +else $as_nop + db=no +fi + +fi + +# Check for Berkeley db routines (first version API). + man_bdb_requested=no + for trydb in db5 db + do + if test "$db" = "$trydb" + then + man_bdb_requested=yes + fi + done + if test "$db" = no || test "$man_bdb_requested" = yes + then + if test "$db" != yes + then + for ac_header in db5/db_185.h +do : + ac_fn_c_check_header_compile "$LINENO" "db5/db_185.h" "ac_cv_header_db5_db_185_h" "$ac_includes_default" +if test "x$ac_cv_header_db5_db_185_h" = xyes +then : + printf "%s\n" "#define HAVE_DB5_DB_185_H 1" >>confdefs.h + got=yes +else $as_nop + got=no +fi + +done + if test "$got" = "yes" + then + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb5" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb5" >&5 +printf %s "checking for dbopen from in -ldb5... " >&6; } +if test ${man_cv_bdb_header_db5_db_185_h_lib_db5+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db5_db_185_h_lib_db5=yes +else $as_nop + man_cv_bdb_header_db5_db_185_h_lib_db5=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db5_db_185_h_lib_db5" >&5 +printf "%s\n" "$man_cv_bdb_header_db5_db_185_h_lib_db5" >&6; } + if test "x$man_cv_bdb_header_db5_db_185_h_lib_db5" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb5" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb-5" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb-5" >&5 +printf %s "checking for dbopen from in -ldb-5... " >&6; } +if test ${man_cv_bdb_header_db5_db_185_h_lib_db_5+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db5_db_185_h_lib_db_5=yes +else $as_nop + man_cv_bdb_header_db5_db_185_h_lib_db_5=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db5_db_185_h_lib_db_5" >&5 +printf "%s\n" "$man_cv_bdb_header_db5_db_185_h_lib_db_5" >&6; } + if test "x$man_cv_bdb_header_db5_db_185_h_lib_db_5" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb-5" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + + fi + fi + if test "$db" != yes + then + for ac_header in db_185.h +do : + ac_fn_c_check_header_compile "$LINENO" "db_185.h" "ac_cv_header_db_185_h" "$ac_includes_default" +if test "x$ac_cv_header_db_185_h" = xyes +then : + printf "%s\n" "#define HAVE_DB_185_H 1" >>confdefs.h + got=yes +else $as_nop + got=no +fi + +done + if test "$got" = "yes" + then + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb5" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb5" >&5 +printf %s "checking for dbopen from in -ldb5... " >&6; } +if test ${man_cv_bdb_header_db_185_h_lib_db5+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db_185_h_lib_db5=yes +else $as_nop + man_cv_bdb_header_db_185_h_lib_db5=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db_185_h_lib_db5" >&5 +printf "%s\n" "$man_cv_bdb_header_db_185_h_lib_db5" >&6; } + if test "x$man_cv_bdb_header_db_185_h_lib_db5" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb5" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb-5" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb-5" >&5 +printf %s "checking for dbopen from in -ldb-5... " >&6; } +if test ${man_cv_bdb_header_db_185_h_lib_db_5+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db_185_h_lib_db_5=yes +else $as_nop + man_cv_bdb_header_db_185_h_lib_db_5=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db_185_h_lib_db_5" >&5 +printf "%s\n" "$man_cv_bdb_header_db_185_h_lib_db_5" >&6; } + if test "x$man_cv_bdb_header_db_185_h_lib_db_5" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb-5" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + + fi + fi + + fi + man_bdb_requested=no + for trydb in db4 db + do + if test "$db" = "$trydb" + then + man_bdb_requested=yes + fi + done + if test "$db" = no || test "$man_bdb_requested" = yes + then + if test "$db" != yes + then + for ac_header in db4/db_185.h +do : + ac_fn_c_check_header_compile "$LINENO" "db4/db_185.h" "ac_cv_header_db4_db_185_h" "$ac_includes_default" +if test "x$ac_cv_header_db4_db_185_h" = xyes +then : + printf "%s\n" "#define HAVE_DB4_DB_185_H 1" >>confdefs.h + got=yes +else $as_nop + got=no +fi + +done + if test "$got" = "yes" + then + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb4" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb4" >&5 +printf %s "checking for dbopen from in -ldb4... " >&6; } +if test ${man_cv_bdb_header_db4_db_185_h_lib_db4+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db4_db_185_h_lib_db4=yes +else $as_nop + man_cv_bdb_header_db4_db_185_h_lib_db4=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db4_db_185_h_lib_db4" >&5 +printf "%s\n" "$man_cv_bdb_header_db4_db_185_h_lib_db4" >&6; } + if test "x$man_cv_bdb_header_db4_db_185_h_lib_db4" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb4" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb-4" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb-4" >&5 +printf %s "checking for dbopen from in -ldb-4... " >&6; } +if test ${man_cv_bdb_header_db4_db_185_h_lib_db_4+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db4_db_185_h_lib_db_4=yes +else $as_nop + man_cv_bdb_header_db4_db_185_h_lib_db_4=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db4_db_185_h_lib_db_4" >&5 +printf "%s\n" "$man_cv_bdb_header_db4_db_185_h_lib_db_4" >&6; } + if test "x$man_cv_bdb_header_db4_db_185_h_lib_db_4" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb-4" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + + fi + fi + if test "$db" != yes + then + for ac_header in db_185.h +do : + ac_fn_c_check_header_compile "$LINENO" "db_185.h" "ac_cv_header_db_185_h" "$ac_includes_default" +if test "x$ac_cv_header_db_185_h" = xyes +then : + printf "%s\n" "#define HAVE_DB_185_H 1" >>confdefs.h + got=yes +else $as_nop + got=no +fi + +done + if test "$got" = "yes" + then + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb4" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb4" >&5 +printf %s "checking for dbopen from in -ldb4... " >&6; } +if test ${man_cv_bdb_header_db_185_h_lib_db4+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db_185_h_lib_db4=yes +else $as_nop + man_cv_bdb_header_db_185_h_lib_db4=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db_185_h_lib_db4" >&5 +printf "%s\n" "$man_cv_bdb_header_db_185_h_lib_db4" >&6; } + if test "x$man_cv_bdb_header_db_185_h_lib_db4" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb4" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb-4" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb-4" >&5 +printf %s "checking for dbopen from in -ldb-4... " >&6; } +if test ${man_cv_bdb_header_db_185_h_lib_db_4+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db_185_h_lib_db_4=yes +else $as_nop + man_cv_bdb_header_db_185_h_lib_db_4=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db_185_h_lib_db_4" >&5 +printf "%s\n" "$man_cv_bdb_header_db_185_h_lib_db_4" >&6; } + if test "x$man_cv_bdb_header_db_185_h_lib_db_4" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb-4" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + + fi + fi + + fi + man_bdb_requested=no + for trydb in db3 db + do + if test "$db" = "$trydb" + then + man_bdb_requested=yes + fi + done + if test "$db" = no || test "$man_bdb_requested" = yes + then + if test "$db" != yes + then + for ac_header in db3/db_185.h +do : + ac_fn_c_check_header_compile "$LINENO" "db3/db_185.h" "ac_cv_header_db3_db_185_h" "$ac_includes_default" +if test "x$ac_cv_header_db3_db_185_h" = xyes +then : + printf "%s\n" "#define HAVE_DB3_DB_185_H 1" >>confdefs.h + got=yes +else $as_nop + got=no +fi + +done + if test "$got" = "yes" + then + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb3" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb3" >&5 +printf %s "checking for dbopen from in -ldb3... " >&6; } +if test ${man_cv_bdb_header_db3_db_185_h_lib_db3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db3_db_185_h_lib_db3=yes +else $as_nop + man_cv_bdb_header_db3_db_185_h_lib_db3=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db3_db_185_h_lib_db3" >&5 +printf "%s\n" "$man_cv_bdb_header_db3_db_185_h_lib_db3" >&6; } + if test "x$man_cv_bdb_header_db3_db_185_h_lib_db3" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb3" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + + fi + fi + if test "$db" != yes + then + for ac_header in db_185.h +do : + ac_fn_c_check_header_compile "$LINENO" "db_185.h" "ac_cv_header_db_185_h" "$ac_includes_default" +if test "x$ac_cv_header_db_185_h" = xyes +then : + printf "%s\n" "#define HAVE_DB_185_H 1" >>confdefs.h + got=yes +else $as_nop + got=no +fi + +done + if test "$got" = "yes" + then + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb3" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb3" >&5 +printf %s "checking for dbopen from in -ldb3... " >&6; } +if test ${man_cv_bdb_header_db_185_h_lib_db3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db_185_h_lib_db3=yes +else $as_nop + man_cv_bdb_header_db_185_h_lib_db3=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db_185_h_lib_db3" >&5 +printf "%s\n" "$man_cv_bdb_header_db_185_h_lib_db3" >&6; } + if test "x$man_cv_bdb_header_db_185_h_lib_db3" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb3" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + + fi + fi + + fi + man_bdb_requested=no + for trydb in db2 db + do + if test "$db" = "$trydb" + then + man_bdb_requested=yes + fi + done + if test "$db" = no || test "$man_bdb_requested" = yes + then + if test "$db" != yes + then + for ac_header in db_185.h +do : + ac_fn_c_check_header_compile "$LINENO" "db_185.h" "ac_cv_header_db_185_h" "$ac_includes_default" +if test "x$ac_cv_header_db_185_h" = xyes +then : + printf "%s\n" "#define HAVE_DB_185_H 1" >>confdefs.h + got=yes +else $as_nop + got=no +fi + +done + if test "$got" = "yes" + then + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb2" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb2" >&5 +printf %s "checking for dbopen from in -ldb2... " >&6; } +if test ${man_cv_bdb_header_db_185_h_lib_db2+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db_185_h_lib_db2=yes +else $as_nop + man_cv_bdb_header_db_185_h_lib_db2=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db_185_h_lib_db2" >&5 +printf "%s\n" "$man_cv_bdb_header_db_185_h_lib_db2" >&6; } + if test "x$man_cv_bdb_header_db_185_h_lib_db2" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb2" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb" >&5 +printf %s "checking for dbopen from in -ldb... " >&6; } +if test ${man_cv_bdb_header_db_185_h_lib_db+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db_185_h_lib_db=yes +else $as_nop + man_cv_bdb_header_db_185_h_lib_db=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db_185_h_lib_db" >&5 +printf "%s\n" "$man_cv_bdb_header_db_185_h_lib_db" >&6; } + if test "x$man_cv_bdb_header_db_185_h_lib_db" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + + fi + fi + if test "$db" != yes + then + for ac_header in db2/db_185.h +do : + ac_fn_c_check_header_compile "$LINENO" "db2/db_185.h" "ac_cv_header_db2_db_185_h" "$ac_includes_default" +if test "x$ac_cv_header_db2_db_185_h" = xyes +then : + printf "%s\n" "#define HAVE_DB2_DB_185_H 1" >>confdefs.h + got=yes +else $as_nop + got=no +fi + +done + if test "$got" = "yes" + then + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb2" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb2" >&5 +printf %s "checking for dbopen from in -ldb2... " >&6; } +if test ${man_cv_bdb_header_db2_db_185_h_lib_db2+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db2_db_185_h_lib_db2=yes +else $as_nop + man_cv_bdb_header_db2_db_185_h_lib_db2=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db2_db_185_h_lib_db2" >&5 +printf "%s\n" "$man_cv_bdb_header_db2_db_185_h_lib_db2" >&6; } + if test "x$man_cv_bdb_header_db2_db_185_h_lib_db2" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb2" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb" >&5 +printf %s "checking for dbopen from in -ldb... " >&6; } +if test ${man_cv_bdb_header_db2_db_185_h_lib_db+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db2_db_185_h_lib_db=yes +else $as_nop + man_cv_bdb_header_db2_db_185_h_lib_db=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db2_db_185_h_lib_db" >&5 +printf "%s\n" "$man_cv_bdb_header_db2_db_185_h_lib_db" >&6; } + if test "x$man_cv_bdb_header_db2_db_185_h_lib_db" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + + fi + fi + if test "$db" != yes + then + for ac_header in db2_185.h +do : + ac_fn_c_check_header_compile "$LINENO" "db2_185.h" "ac_cv_header_db2_185_h" "$ac_includes_default" +if test "x$ac_cv_header_db2_185_h" = xyes +then : + printf "%s\n" "#define HAVE_DB2_185_H 1" >>confdefs.h + got=yes +else $as_nop + got=no +fi + +done + if test "$got" = "yes" + then + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb2" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb2" >&5 +printf %s "checking for dbopen from in -ldb2... " >&6; } +if test ${man_cv_bdb_header_db2_185_h_lib_db2+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db2_185_h_lib_db2=yes +else $as_nop + man_cv_bdb_header_db2_185_h_lib_db2=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db2_185_h_lib_db2" >&5 +printf "%s\n" "$man_cv_bdb_header_db2_185_h_lib_db2" >&6; } + if test "x$man_cv_bdb_header_db2_185_h_lib_db2" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb2" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb" >&5 +printf %s "checking for dbopen from in -ldb... " >&6; } +if test ${man_cv_bdb_header_db2_185_h_lib_db+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db2_185_h_lib_db=yes +else $as_nop + man_cv_bdb_header_db2_185_h_lib_db=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db2_185_h_lib_db" >&5 +printf "%s\n" "$man_cv_bdb_header_db2_185_h_lib_db" >&6; } + if test "x$man_cv_bdb_header_db2_185_h_lib_db" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + + fi + fi + + fi + man_bdb_requested=no + for trydb in db1 db + do + if test "$db" = "$trydb" + then + man_bdb_requested=yes + fi + done + if test "$db" = no || test "$man_bdb_requested" = yes + then + if test "$db" != yes + then + for ac_header in db/db.h +do : + ac_fn_c_check_header_compile "$LINENO" "db/db.h" "ac_cv_header_db_db_h" "$ac_includes_default" +if test "x$ac_cv_header_db_db_h" = xyes +then : + printf "%s\n" "#define HAVE_DB_DB_H 1" >>confdefs.h + got=yes +else $as_nop + got=no +fi + +done + if test "$got" = "yes" + then + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb" >&5 +printf %s "checking for dbopen from in -ldb... " >&6; } +if test ${man_cv_bdb_header_db_db_h_lib_db+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db_db_h_lib_db=yes +else $as_nop + man_cv_bdb_header_db_db_h_lib_db=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db_db_h_lib_db" >&5 +printf "%s\n" "$man_cv_bdb_header_db_db_h_lib_db" >&6; } + if test "x$man_cv_bdb_header_db_db_h_lib_db" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb1" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb1" >&5 +printf %s "checking for dbopen from in -ldb1... " >&6; } +if test ${man_cv_bdb_header_db_db_h_lib_db1+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db_db_h_lib_db1=yes +else $as_nop + man_cv_bdb_header_db_db_h_lib_db1=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db_db_h_lib_db1" >&5 +printf "%s\n" "$man_cv_bdb_header_db_db_h_lib_db1" >&6; } + if test "x$man_cv_bdb_header_db_db_h_lib_db1" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb1" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -lc" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -lc" >&5 +printf %s "checking for dbopen from in -lc... " >&6; } +if test ${man_cv_bdb_header_db_db_h_lib_c+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db_db_h_lib_c=yes +else $as_nop + man_cv_bdb_header_db_db_h_lib_c=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db_db_h_lib_c" >&5 +printf "%s\n" "$man_cv_bdb_header_db_db_h_lib_c" >&6; } + if test "x$man_cv_bdb_header_db_db_h_lib_c" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-lc" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + + fi + fi + if test "$db" != yes + then + for ac_header in db.h +do : + ac_fn_c_check_header_compile "$LINENO" "db.h" "ac_cv_header_db_h" "$ac_includes_default" +if test "x$ac_cv_header_db_h" = xyes +then : + printf "%s\n" "#define HAVE_DB_H 1" >>confdefs.h + got=yes +else $as_nop + got=no +fi + +done + if test "$got" = "yes" + then + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb" >&5 +printf %s "checking for dbopen from in -ldb... " >&6; } +if test ${man_cv_bdb_header_db_h_lib_db+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db_h_lib_db=yes +else $as_nop + man_cv_bdb_header_db_h_lib_db=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db_h_lib_db" >&5 +printf "%s\n" "$man_cv_bdb_header_db_h_lib_db" >&6; } + if test "x$man_cv_bdb_header_db_h_lib_db" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb1" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb1" >&5 +printf %s "checking for dbopen from in -ldb1... " >&6; } +if test ${man_cv_bdb_header_db_h_lib_db1+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db_h_lib_db1=yes +else $as_nop + man_cv_bdb_header_db_h_lib_db1=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db_h_lib_db1" >&5 +printf "%s\n" "$man_cv_bdb_header_db_h_lib_db1" >&6; } + if test "x$man_cv_bdb_header_db_h_lib_db1" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb1" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -lc" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -lc" >&5 +printf %s "checking for dbopen from in -lc... " >&6; } +if test ${man_cv_bdb_header_db_h_lib_c+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db_h_lib_c=yes +else $as_nop + man_cv_bdb_header_db_h_lib_c=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db_h_lib_c" >&5 +printf "%s\n" "$man_cv_bdb_header_db_h_lib_c" >&6; } + if test "x$man_cv_bdb_header_db_h_lib_c" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-lc" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + + fi + fi + if test "$db" != yes + then + for ac_header in db1/db.h +do : + ac_fn_c_check_header_compile "$LINENO" "db1/db.h" "ac_cv_header_db1_db_h" "$ac_includes_default" +if test "x$ac_cv_header_db1_db_h" = xyes +then : + printf "%s\n" "#define HAVE_DB1_DB_H 1" >>confdefs.h + got=yes +else $as_nop + got=no +fi + +done + if test "$got" = "yes" + then + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb" >&5 +printf %s "checking for dbopen from in -ldb... " >&6; } +if test ${man_cv_bdb_header_db1_db_h_lib_db+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db1_db_h_lib_db=yes +else $as_nop + man_cv_bdb_header_db1_db_h_lib_db=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db1_db_h_lib_db" >&5 +printf "%s\n" "$man_cv_bdb_header_db1_db_h_lib_db" >&6; } + if test "x$man_cv_bdb_header_db1_db_h_lib_db" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -ldb1" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -ldb1" >&5 +printf %s "checking for dbopen from in -ldb1... " >&6; } +if test ${man_cv_bdb_header_db1_db_h_lib_db1+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db1_db_h_lib_db1=yes +else $as_nop + man_cv_bdb_header_db1_db_h_lib_db1=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db1_db_h_lib_db1" >&5 +printf "%s\n" "$man_cv_bdb_header_db1_db_h_lib_db1" >&6; } + if test "x$man_cv_bdb_header_db1_db_h_lib_db1" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-ldb1" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + if test "$db" != yes + then + man_saved_LIBS="$LIBS" + LIBS="$LIBS -lc" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbopen from in -lc" >&5 +printf %s "checking for dbopen from in -lc... " >&6; } +if test ${man_cv_bdb_header_db1_db_h_lib_c+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +dbopen("foo", 0, 0, 0, (void *) 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + man_cv_bdb_header_db1_db_h_lib_c=yes +else $as_nop + man_cv_bdb_header_db1_db_h_lib_c=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $man_cv_bdb_header_db1_db_h_lib_c" >&5 +printf "%s\n" "$man_cv_bdb_header_db1_db_h_lib_c" >&6; } + if test "x$man_cv_bdb_header_db1_db_h_lib_c" = xyes +then : + + +printf "%s\n" "#define BDB_H " >>confdefs.h + + +printf "%s\n" "#define BTREE 1" >>confdefs.h + + DBTYPE=btree + + DBLIBS="-lc" + db=yes +else $as_nop + db=no +fi + LIBS="$man_saved_LIBS" + fi + + fi + fi + + fi + + +# Check for UNIX ndbm routines. +if test "$db" = "no" || test "$db" = "ndbm" +then + ac_fn_c_check_header_compile "$LINENO" "ndbm.h" "ac_cv_header_ndbm_h" "$ac_includes_default" +if test "x$ac_cv_header_ndbm_h" = xyes +then : + + for lib in ndbm c dbm + do + as_ac_Lib=`printf "%s\n" "ac_cv_lib_$lib""_dbm_fetch" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbm_fetch in -l$lib" >&5 +printf %s "checking for dbm_fetch in -l$lib... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-l$lib $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char dbm_fetch (); +int +main (void) +{ +return dbm_fetch (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + eval "$as_ac_Lib=yes" +else $as_nop + eval "$as_ac_Lib=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +eval ac_res=\$$as_ac_Lib + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : + test "$lib" = "c" || DBLIBS="-l$lib" + +printf "%s\n" "#define NDBM 1" >>confdefs.h + + DBTYPE=ndbm + + db=yes +else $as_nop + db=no +fi + + test "$db" = "yes" && break + done +else $as_nop + db=no +fi + + if test "$db" = no + then + ac_fn_c_check_header_compile "$LINENO" "gdbm-ndbm.h" "ac_cv_header_gdbm_ndbm_h" "$ac_includes_default" +if test "x$ac_cv_header_gdbm_ndbm_h" = xyes +then : + + for lib in gdbm_compat c dbm + do + as_ac_Lib=`printf "%s\n" "ac_cv_lib_$lib""_dbm_fetch" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbm_fetch in -l$lib" >&5 +printf %s "checking for dbm_fetch in -l$lib... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-l$lib $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char dbm_fetch (); +int +main (void) +{ +return dbm_fetch (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + eval "$as_ac_Lib=yes" +else $as_nop + eval "$as_ac_Lib=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +eval ac_res=\$$as_ac_Lib + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : + test "$lib" = "c" || DBLIBS="-l$lib" + +printf "%s\n" "#define NDBM 1" >>confdefs.h + + DBTYPE=ndbm + + db=yes +else $as_nop + db=no +fi + + test "$db" = "yes" && break + done +else $as_nop + db=no +fi + + fi +fi + +if test "$db" != "yes" +then + if test "$db" = "no" + then + as_fn_error $? "Fatal: no supported database library/header found" "$LINENO" 5 + else + as_fn_error $? "Fatal: $db: unsupported database library" "$LINENO" 5 + fi +fi + + +# Check for libseccomp library. + +# Check whether --with-libseccomp was given. +if test ${with_libseccomp+y} +then : + withval=$with_libseccomp; +else $as_nop + with_libseccomp=check +fi + + if test "x$with_libseccomp" != "xno"; then + +pkg_failed=no +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libseccomp" >&5 +printf %s "checking for libseccomp... " >&6; } + +if test -n "$libseccomp_CFLAGS"; then + pkg_cv_libseccomp_CFLAGS="$libseccomp_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libseccomp\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libseccomp") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_libseccomp_CFLAGS=`$PKG_CONFIG --cflags "libseccomp" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$libseccomp_LIBS"; then + pkg_cv_libseccomp_LIBS="$libseccomp_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libseccomp\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libseccomp") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_libseccomp_LIBS=`$PKG_CONFIG --libs "libseccomp" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + libseccomp_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libseccomp" 2>&1` + else + libseccomp_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libseccomp" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$libseccomp_PKG_ERRORS" >&5 + + if test "x$with_libseccomp" = "xyes"; then + as_fn_error $? "--with-libseccomp given but cannot find libseccomp" "$LINENO" 5 + fi +elif test $pkg_failed = untried; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + if test "x$with_libseccomp" = "xyes"; then + as_fn_error $? "--with-libseccomp given but cannot find libseccomp" "$LINENO" 5 + fi +else + libseccomp_CFLAGS=$pkg_cv_libseccomp_CFLAGS + libseccomp_LIBS=$pkg_cv_libseccomp_LIBS + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_LIBSECCOMP 1" >>confdefs.h + +fi + fi + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: default CC = \"$CC\"" >&5 +printf "%s\n" "$as_me: default CC = \"$CC\"" >&6;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: default CPP = \"$CPP\"" >&5 +printf "%s\n" "$as_me: default CPP = \"$CPP\"" >&6;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: default CPPFLAGS = \"$CPPFLAGS\"" >&5 +printf "%s\n" "$as_me: default CPPFLAGS = \"$CPPFLAGS\"" >&6;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: default CFLAGS = \"$CFLAGS\"" >&5 +printf "%s\n" "$as_me: default CFLAGS = \"$CFLAGS\"" >&6;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: default LDFLAGS = \"$LDFLAGS\"" >&5 +printf "%s\n" "$as_me: default LDFLAGS = \"$LDFLAGS\"" >&6;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: default LIBS = \"$LIBS\"" >&5 +printf "%s\n" "$as_me: default LIBS = \"$LIBS\"" >&6;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: default DBLIBS = \"$DBLIBS\"" >&5 +printf "%s\n" "$as_me: default DBLIBS = \"$DBLIBS\"" >&6;} + +# Transformed versions of program names for use in Automake variables. +man_transformed=`echo "apropos" | sed "$program_transform_name"` + man_transformed_upper=`echo "$man_transformed" | LC_ALL=C tr 'a-z' 'A-Z'` + TRANS_APROPOS=$man_transformed + + TRANS_APROPOS_UPPER=$man_transformed_upper + + +man_transformed=`echo "catman" | sed "$program_transform_name"` + man_transformed_upper=`echo "$man_transformed" | LC_ALL=C tr 'a-z' 'A-Z'` + TRANS_CATMAN=$man_transformed + + TRANS_CATMAN_UPPER=$man_transformed_upper + + +man_transformed=`echo "lexgrog" | sed "$program_transform_name"` + man_transformed_upper=`echo "$man_transformed" | LC_ALL=C tr 'a-z' 'A-Z'` + TRANS_LEXGROG=$man_transformed + + TRANS_LEXGROG_UPPER=$man_transformed_upper + + +man_transformed=`echo "man" | sed "$program_transform_name"` + man_transformed_upper=`echo "$man_transformed" | LC_ALL=C tr 'a-z' 'A-Z'` + TRANS_MAN=$man_transformed + + TRANS_MAN_UPPER=$man_transformed_upper + + +man_transformed=`echo "man-recode" | sed "$program_transform_name"` + man_transformed_upper=`echo "$man_transformed" | LC_ALL=C tr 'a-z' 'A-Z'` + TRANS_MAN_RECODE=$man_transformed + + TRANS_MAN_RECODE_UPPER=$man_transformed_upper + + +man_transformed=`echo "manconv" | sed "$program_transform_name"` + man_transformed_upper=`echo "$man_transformed" | LC_ALL=C tr 'a-z' 'A-Z'` + TRANS_MANCONV=$man_transformed + + TRANS_MANCONV_UPPER=$man_transformed_upper + + +man_transformed=`echo "mandb" | sed "$program_transform_name"` + man_transformed_upper=`echo "$man_transformed" | LC_ALL=C tr 'a-z' 'A-Z'` + TRANS_MANDB=$man_transformed + + TRANS_MANDB_UPPER=$man_transformed_upper + + +man_transformed=`echo "manpath" | sed "$program_transform_name"` + man_transformed_upper=`echo "$man_transformed" | LC_ALL=C tr 'a-z' 'A-Z'` + TRANS_MANPATH=$man_transformed + + TRANS_MANPATH_UPPER=$man_transformed_upper + + +man_transformed=`echo "whatis" | sed "$program_transform_name"` + man_transformed_upper=`echo "$man_transformed" | LC_ALL=C tr 'a-z' 'A-Z'` + TRANS_WHATIS=$man_transformed + + TRANS_WHATIS_UPPER=$man_transformed_upper + + +man_transformed=`echo "zsoelim" | sed "$program_transform_name"` + man_transformed_upper=`echo "$man_transformed" | LC_ALL=C tr 'a-z' 'A-Z'` + TRANS_ZSOELIM=$man_transformed + + TRANS_ZSOELIM_UPPER=$man_transformed_upper + + + +# If we're cross-compiling, tests won't work. + if test "x$cross_compiling" = xyes; then + CROSS_COMPILING_TRUE= + CROSS_COMPILING_FALSE='#' +else + CROSS_COMPILING_TRUE='#' + CROSS_COMPILING_FALSE= +fi + + +# Are Gnulib translations available? + if test -f "$srcdir/gl/po/POTFILES.in"; then + HAVE_GNULIB_PO_TRUE= + HAVE_GNULIB_PO_FALSE='#' +else + HAVE_GNULIB_PO_TRUE='#' + HAVE_GNULIB_PO_FALSE= +fi + + +ac_config_files="$ac_config_files Makefile gl/lib/Makefile init/Makefile init/systemd/Makefile lib/Makefile src/Makefile src/man_db.conf src/tests/Makefile man/Makefile man/replace.sin man/po4a/Makefile man/da/Makefile man/de/Makefile man/es/Makefile man/fr/Makefile man/id/Makefile man/it/Makefile man/ja/Makefile man/ko/Makefile man/nl/Makefile man/pl/Makefile man/pt/Makefile man/pt_BR/Makefile man/ro/Makefile man/ru/Makefile man/sr/Makefile man/sv/Makefile man/tr/Makefile man/zh_CN/Makefile manual/Makefile libdb/Makefile docs/Makefile tools/Makefile po/Makefile.in" + +if test -f "$srcdir/gl/po/Makefile.in.in"; then + ac_config_files="$ac_config_files gl/po/Makefile.in" + +fi +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +printf "%s\n" "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +printf %s "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5 +printf "%s\n" "done" >&6; } + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${INSTALL_SYSTEMD_TMPFILES_TRUE}" && test -z "${INSTALL_SYSTEMD_TMPFILES_FALSE}"; then + as_fn_error $? "conditional \"INSTALL_SYSTEMD_TMPFILES\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${INSTALL_SYSTEMD_TIMER_TRUE}" && test -z "${INSTALL_SYSTEMD_TIMER_FALSE}"; then + as_fn_error $? "conditional \"INSTALL_SYSTEMD_TIMER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_MANUAL_TRUE}" && test -z "${BUILD_MANUAL_FALSE}"; then + as_fn_error $? "conditional \"BUILD_MANUAL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then + as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + + + gl_libobjs= + gl_ltlibobjs= + gl_libobjdeps= + if test -n "$gl_LIBOBJS"; then + # Remove the extension. + sed_drop_objext='s/\.o$//;s/\.obj$//' + sed_dirname1='s,//*,/,g' + sed_dirname2='s,\(.\)/$,\1,' + sed_dirname3='s,^[^/]*$,.,' + sed_dirname4='s,\(.\)/[^/]*$,\1,' + sed_basename1='s,.*/,,' + for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do + gl_libobjs="$gl_libobjs $i.$ac_objext" + gl_ltlibobjs="$gl_ltlibobjs $i.lo" + i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3" -e "$sed_dirname4"` + i_base=`echo "$i" | sed -e "$sed_basename1"` + gl_libobjdeps="$gl_libobjdeps $i_dir/\$(DEPDIR)/$i_base.Plo" + done + fi + gl_LIBOBJS=$gl_libobjs + + gl_LTLIBOBJS=$gl_ltlibobjs + + gl_LIBOBJDEPS=$gl_libobjdeps + + + + gltests_libobjs= + gltests_ltlibobjs= + gltests_libobjdeps= + if test -n "$gltests_LIBOBJS"; then + # Remove the extension. + sed_drop_objext='s/\.o$//;s/\.obj$//' + sed_dirname1='s,//*,/,g' + sed_dirname2='s,\(.\)/$,\1,' + sed_dirname3='s,^[^/]*$,.,' + sed_dirname4='s,\(.\)/[^/]*$,\1,' + sed_basename1='s,.*/,,' + for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do + gltests_libobjs="$gltests_libobjs $i.$ac_objext" + gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" + i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3" -e "$sed_dirname4"` + i_base=`echo "$i" | sed -e "$sed_basename1"` + gltests_libobjdeps="$gltests_libobjdeps $i_dir/\$(DEPDIR)/$i_base.Plo" + done + fi + gltests_LIBOBJS=$gltests_libobjs + + gltests_LTLIBOBJS=$gltests_ltlibobjs + + gltests_LIBOBJDEPS=$gltests_libobjdeps + + +if test -z "${PO4A_TRUE}" && test -z "${PO4A_FALSE}"; then + as_fn_error $? "conditional \"PO4A\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CROSS_COMPILING_TRUE}" && test -z "${CROSS_COMPILING_FALSE}"; then + as_fn_error $? "conditional \"CROSS_COMPILING\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_GNULIB_PO_TRUE}" && test -z "${HAVE_GNULIB_PO_FALSE}"; then + as_fn_error $? "conditional \"HAVE_GNULIB_PO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else $as_nop + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. +as_nl=' +' +export as_nl +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi + +# The user is always right. +if ${PATH_SEPARATOR+false} :; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + printf "%s\n" "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else $as_nop + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else $as_nop + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by man-db $as_me 2.11.2, which was +generated by GNU Autoconf 2.71. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` +ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config='$ac_cs_config_escaped' +ac_cs_version="\\ +man-db config.status 2.11.2 +configured by $0, generated by GNU Autoconf 2.71, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2021 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + printf "%s\n" "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + printf "%s\n" "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + printf "%s\n" "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + printf "%s\n" "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +FILECMD='`$ECHO "$FILECMD" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' +configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +FILECMD \ +OBJDUMP \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ +AR \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_import \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +lt_cv_nm_interface \ +nm_file_list_spec \ +lt_cv_truncate_bin \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +configure_time_dlsearch_path \ +configure_time_lt_sys_library_path; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' + +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile' + + + +# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it + # from automake < 1.5. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "gl/lib/Makefile") CONFIG_FILES="$CONFIG_FILES gl/lib/Makefile" ;; + "init/Makefile") CONFIG_FILES="$CONFIG_FILES init/Makefile" ;; + "init/systemd/Makefile") CONFIG_FILES="$CONFIG_FILES init/systemd/Makefile" ;; + "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/man_db.conf") CONFIG_FILES="$CONFIG_FILES src/man_db.conf" ;; + "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;; + "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; + "man/replace.sin") CONFIG_FILES="$CONFIG_FILES man/replace.sin" ;; + "man/po4a/Makefile") CONFIG_FILES="$CONFIG_FILES man/po4a/Makefile" ;; + "man/da/Makefile") CONFIG_FILES="$CONFIG_FILES man/da/Makefile" ;; + "man/de/Makefile") CONFIG_FILES="$CONFIG_FILES man/de/Makefile" ;; + "man/es/Makefile") CONFIG_FILES="$CONFIG_FILES man/es/Makefile" ;; + "man/fr/Makefile") CONFIG_FILES="$CONFIG_FILES man/fr/Makefile" ;; + "man/id/Makefile") CONFIG_FILES="$CONFIG_FILES man/id/Makefile" ;; + "man/it/Makefile") CONFIG_FILES="$CONFIG_FILES man/it/Makefile" ;; + "man/ja/Makefile") CONFIG_FILES="$CONFIG_FILES man/ja/Makefile" ;; + "man/ko/Makefile") CONFIG_FILES="$CONFIG_FILES man/ko/Makefile" ;; + "man/nl/Makefile") CONFIG_FILES="$CONFIG_FILES man/nl/Makefile" ;; + "man/pl/Makefile") CONFIG_FILES="$CONFIG_FILES man/pl/Makefile" ;; + "man/pt/Makefile") CONFIG_FILES="$CONFIG_FILES man/pt/Makefile" ;; + "man/pt_BR/Makefile") CONFIG_FILES="$CONFIG_FILES man/pt_BR/Makefile" ;; + "man/ro/Makefile") CONFIG_FILES="$CONFIG_FILES man/ro/Makefile" ;; + "man/ru/Makefile") CONFIG_FILES="$CONFIG_FILES man/ru/Makefile" ;; + "man/sr/Makefile") CONFIG_FILES="$CONFIG_FILES man/sr/Makefile" ;; + "man/sv/Makefile") CONFIG_FILES="$CONFIG_FILES man/sv/Makefile" ;; + "man/tr/Makefile") CONFIG_FILES="$CONFIG_FILES man/tr/Makefile" ;; + "man/zh_CN/Makefile") CONFIG_FILES="$CONFIG_FILES man/zh_CN/Makefile" ;; + "manual/Makefile") CONFIG_FILES="$CONFIG_FILES manual/Makefile" ;; + "libdb/Makefile") CONFIG_FILES="$CONFIG_FILES libdb/Makefile" ;; + "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; + "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;; + "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; + "gl/po/Makefile.in") CONFIG_FILES="$CONFIG_FILES gl/po/Makefile.in" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files + test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers + test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +printf "%s\n" "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`printf "%s\n" "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + printf "%s\n" "/* $configure_input */" >&1 \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +printf "%s\n" "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + printf "%s\n" "/* $configure_input */" >&1 \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +printf "%s\n" "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + case $CONFIG_FILES in #( + *\'*) : + eval set x "$CONFIG_FILES" ;; #( + *) : + set x $CONFIG_FILES ;; #( + *) : + ;; +esac + shift + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf + do + # Strip MF so we end up with the name of the file. + am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`$as_dirname -- "$am_mf" || +$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$am_mf" : 'X\(//\)[^/]' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$am_mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + am_filepart=`$as_basename -- "$am_mf" || +$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X/"$am_mf" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { echo "$as_me:$LINENO: cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles" >&5 + (cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } || am_rc=$? + done + if test $am_rc -ne 0; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE=\"gmake\" (or whatever is + necessary). You can also try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking). +See \`config.log' for more details" "$LINENO" 5; } + fi + { am_dirpart=; unset am_dirpart;} + { am_filepart=; unset am_filepart;} + { am_mf=; unset am_mf;} + { am_rc=; unset am_rc;} + rm -f conftest-deps.mk +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +# The names of the tagged configurations supported by this script. +available_tags='' + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shared archive member basename,for filename based shared library versioning on AIX. +shared_archive_member_spec=$shared_archive_member_spec + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# A file(cmd) program that detects file types. +FILECMD=$lt_FILECMD + +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive (by configure). +lt_ar_flags=$lt_ar_flags + +# Flags to create an archive. +AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"} + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm into a list of symbols to manually relocate. +global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# The name lister interface. +nm_interface=$lt_lt_cv_nm_interface + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and where our libraries should be installed. +lt_sysroot=$lt_sysroot + +# Command to truncate a binary pipe. +lt_truncate_bin=$lt_lt_cv_truncate_bin + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Detected run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path + +# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. +configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \$shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + + +ltmain=$ac_aux_dir/ltmain.sh + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + $SED '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; + "po-directories":C) + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + gt_tab=`printf '\t'` + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assignment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + # Hide the ALL_LINGUAS assignment from automake < 1.5. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..0c3f02a --- /dev/null +++ b/configure.ac @@ -0,0 +1,578 @@ +dnl Process this file with autoconf to produce a configure script. +m4_pattern_forbid([^MAN_]) + +# Initialise and check we're in the correct directory. +AC_INIT([man-db], [2.11.2], [cjwatson@debian.org]) +AC_CONFIG_AUX_DIR([build-aux]) +AM_INIT_AUTOMAKE([1.14 -Wall -Wno-override -Werror foreign dist-xz no-dist-gzip parallel-tests]) +AM_SILENT_RULES([yes]) +AC_PREREQ([2.64]) +AC_CONFIG_SRCDIR([src/man.c]) +AC_USE_SYSTEM_EXTENSIONS +MAN_TAR_SORT_NAME + +AC_CONFIG_HEADERS([config.h]) +AC_CANONICAL_HOST + +# Define below date and version information to be put into man pages etc. +date=2023-01-08 +AC_SUBST([date])dnl +roff_version=`echo AC_PACKAGE_VERSION | sed 's/-/\\-/g'` +AC_SUBST([roff_version])dnl + +# Explicitly check for pkg-config early on, since otherwise the conditional +# calls in MAN_ARG_SYSTEMDTMPFILESDIR and MAN_ARG_SYSTEMDSYSTEMUNITDIR are +# problematic. +PKG_PROG_PKG_CONFIG + +# We have to be a bit naughty here and supply options. +# The autoconf literature states that only features that can be separately +# 'built' should use --enable and friends. Oh well... +MAN_ARG_CACHE_OWNER +MAN_ARG_SETUID +MAN_ARG_UNDOC +MAN_ARG_DEVICE +MAN_ARG_DB +MAN_ARG_CONFIG_FILE +MAN_ARG_SECTIONS +MAN_ARG_AUTOMATIC_CREATE +MAN_ARG_AUTOMATIC_UPDATE +MAN_ARG_CATS +MAN_ARG_OVERRIDE_DIR +MAN_ARG_SYSTEMDTMPFILESDIR +MAN_ARG_SYSTEMDSYSTEMUNITDIR +MAN_ARG_MANDIRS +MAN_ARG_MANUAL +MAN_ARG_SNAPDIR + +# Check $PATH for the following programs and append suitable options. +AC_PROG_CC +gl_EARLY +AC_PROG_CPP +CFLAGS="$CFLAGS -Wall" +case $host_os in + ultrix4.3*) + dnl When compiled for BSD environment, each running `man' + dnl increases the system load as reported by uptime(1) by + dnl one. The reason for this behaviour is currently + dnl unknown, but the load increase does *not* reflect actual + dnl resource usage. To avoid it, compile for POSIX + dnl environment: + CFLAGS="$CFLAGS -YPOSIX" + ;; +esac + +AC_ARG_ENABLE([gcc-warnings], + [AS_HELP_STRING([--enable-gcc-warnings=TYPE], + [control generation of GCC warnings. The TYPE 'no' disables + warnings; 'yes' generates cheap warnings if available (default); + 'expensive' in addition generates expensive-to-compute warnings + if available])], + [case $enableval in + no|yes|expensive) ;; + *) AC_MSG_ERROR([bad value $enableval for gcc-warnings option]) ;; + esac + man_gcc_warnings=$enableval], + [man_gcc_warnings=yes] +) +if test "$man_gcc_warnings" != no; then + # Enable all reasonable GCC warnings. + gl_MANYWARN_ALL_GCC([warnings]) + nw= + nw="$nw -Wsystem-headers" + nw="$nw -Wmissing-field-initializers" + nw="$nw -Winline" + if test "$man_gcc_warnings" != expensive; then + nw="$nw -fanalyzer" + fi + gl_MANYWARN_COMPLEMENT([warnings], [$warnings], [$nw]) + for w in $warnings; do + gl_WARN_ADD([$w]) + done + gl_WARN_ADD([-Wno-missing-field-initializers]) + # Disable use of VLAs by Gnulib to avoid tripping over -Wvla. + AC_DEFINE([GNULIB_NO_VLA], [1], [Define to 1 to disable use of VLAs.]) +fi + +AC_PROG_INSTALL +AC_PROG_LN_S +AM_PROG_AR +LT_INIT([disable-static]) + +libman_export_ldflags= +if test "$with_gnu_ld" = yes; then + case $host_os in + cygwin*|mingw*|pw32*|cegcc*) + libman_export_ldflags='-Wl,--export-all-symbols' + ;; + esac +fi +AC_SUBST([LIBMAN_EXPORT_LDFLAGS], [$libman_export_ldflags]) + +AC_CHECK_PROGS([cat], [cat]) +AC_DEFINE_UNQUOTED([PROG_CAT], ["$cat"], [Program to use as cat.]) +MAN_CHECK_PROGS([browser], [BROWSER], [use BROWSER as default web browser], [www-browser lynx elinks w3m]) +test -n "$browser" && browser="exec $browser" +AC_DEFINE_UNQUOTED([PROG_BROWSER], ["$browser"], [Program to use as browser.]) +AC_CHECK_PROGS([tr], [tr]) +AC_DEFINE_UNQUOTED([PROG_TR], ["$tr"], [Program to use as tr.]) +AC_CHECK_PROGS([grep], [grep]) +AC_DEFINE_UNQUOTED([PROG_GREP], ["$grep"], [Program to use as grep.]) +MAN_CHECK_PROGS([pager], [PAGER], [use PAGER as default pager], [pager less more]) +AC_DEFINE_UNQUOTED([PROG_PAGER], ["$pager"], [Program to use as pager.]) + +# Define below (in list of preference) *roff macros to check for. +macros="andoc an doc" + +# We have problems here, as different systems have different *roff +# formatters and they accept different options and do different things :( +MAN_CHECK_PROGS([nroff], [NROFF], [use NROFF as roff formatter for character devices], [nroff gnroff groff]) +if test -n "$nroff" +then + MAN_PROG_GNU_NROFF([$nroff]) + if test "$man_cv_prog_gnu_nroff" != "yes" + then + MAN_PROG_HEIRLOOM_NROFF([$nroff]) + fi + if test -n "$nroff_device" + then + AC_MSG_CHECKING([that nroff works with argument$nroff_device]) + # We cannot cache this result as it can change between runs + # of configure. + if $nroff $nroff_device /dev/null 2>&1 3>&1 + then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + AC_MSG_ERROR([nroff does not work with argument$nroff_device]) + fi + fi + AC_MSG_CHECKING([for appropriate nroff macro]) + AC_CACHE_VAL([man_cv_prog_nroff_macro], [ + + for macro in $macros + do + if $nroff -m$macro $nroff_device /dev/null 2>&1 3>&1 + then + man_cv_prog_nroff_macro=-m$macro + break + fi + done]) + + if test -n "$man_cv_prog_nroff_macro" + then + if test "$man_cv_prog_heirloom_nroff" = "yes" + then + # Heirloom works best with some extra options: + # -mg: groff compatibility + # -msafe: disable privileged operations + # -mpadj: clean up line breaking + man_cv_prog_nroff_macro="-mg -msafe -mpadj ${man_cv_prog_nroff_macro}" + fi + nroff="$nroff ${man_cv_prog_nroff_macro}" +dnl nroff="$nroff ${man_cv_prog_nroff_macro}${nroff_device}" + AC_MSG_RESULT([$man_cv_prog_nroff_macro]) + else + AC_MSG_RESULT([ambiguous]) + AC_MSG_WARN([please edit config.h and add nroff definition]) + fi +else + AC_MSG_WARN([Cannot find an nroff-like program, formatting of manual page source will not be supported.]) + nroff="(nroff not installed)" + AC_DEFINE([NROFF_MISSING], [1], [Define if you don't have nroff.]) +fi +AC_DEFINE_UNQUOTED([PROG_NROFF], ["$nroff"], [Program to use as nroff.]) + +dnl It would be nice to use MAN_CHECK_PROGS here, but how do we determine +dnl TROFF_IS_GROFF? +AC_CHECK_PROGS([troff], [groff]) +if test -n "$troff" +then + troff_is_groff=yes + AC_DEFINE([TROFF_IS_GROFF], [1], [Define if you are using groff as troff.]) + TROFF=groff +else + troff_is_groff=no + AC_CHECK_PROGS([troff], [troff gtroff]) + TROFF=troff +fi +AC_SUBST([troff_is_groff]) +AC_SUBST([TROFF]) +if test -n "$troff" +then + AC_DEFINE([HAS_TROFF], [1], [Define if you have troff.]) + AC_MSG_CHECKING([for appropriate $TROFF options]) + AC_CACHE_VAL([man_cv_prog_troff_options], [ + # Do a quick test to see if -t works [AIX needs this], groff doesn't + # as it indicates pre-process with tbl. + test "$TROFF" = "troff" && $troff -t /dev/null 2>&1 3>&1 \ + && troff_filter="-t " + for macro in $macros + do + if $troff $troff_filter -m$macro /dev/null 2>&1 3>&1 + then + man_cv_prog_troff_options="${troff_filter}-m${macro}" + break + fi + done]) + if test -n "$man_cv_prog_troff_options" + then + if test "$man_cv_prog_heirloom_nroff" = "yes" + then + # Heirloom works best with some extra options: + # -mg: groff compatibility + # -msafe: disable privileged operations + # -mpadj: clean up line breaking + man_cv_prog_troff_options="-mg -msafe -mpadj ${man_cv_prog_troff_options}" + fi + troff="$troff $man_cv_prog_troff_options" + AC_MSG_RESULT([$man_cv_prog_troff_options]) + else + AC_MSG_RESULT([ambiguous]) + AC_MSG_WARN([please edit config.h and add troff definition]) + fi +else + troff="(troff not installed)" +fi +AC_DEFINE_UNQUOTED([PROG_TROFF], ["$troff"], [Program to use as troff.]) +dnl We want to end up with "-" written as "\-" in manual pages. This +dnl requires additional \-escaping corresponding to the following quote +dnl removal steps: +dnl 1) the following sed command +dnl 2) the following assignment +dnl 2) sed running on the substituted version of man/replace.sin.in +troff_as_troff_input=`echo "$troff" | sed 's/-/\\\\\\\\-/g'` +AC_SUBST([troff_as_troff_input]) + +if test -n "$nroff" +then + AC_CACHE_CHECK([whether nroff supports warning control], + [man_cv_prog_nroff_warnings], [ + if test "x$troff_is_groff" = xyes && \ + nroff -wmac /dev/null 2>&1 + then + man_cv_prog_nroff_warnings=yes + else + man_cv_prog_nroff_warnings=no + fi]) + if test "x$man_cv_prog_nroff_warnings" = xyes; then + AC_DEFINE([NROFF_WARNINGS], [1], + [Define if nroff supports warning control.]) + fi +fi + +AC_CHECK_PROGS([preconv], [gpreconv preconv]) + +AC_MSG_CHECKING([for groff with Debian multibyte patch or real Unicode support]) +man_mb_groff=no +AC_ARG_ENABLE([mb-groff], +[AS_HELP_STRING([--enable-mb-groff], [expect groff with Debian multibyte patch or real Unicode support])], + [if test "$enableval" = "yes" + then + man_mb_groff=yes + fi], + [if test -n "$preconv" + then + man_mb_groff=yes + elif test -n "$troff" && test "$troff_is_groff" = "yes" + then + if $troff -Tnippon /dev/null 2>&1 + then + man_mb_groff=yes + fi + fi]) +AC_MSG_RESULT([$man_mb_groff]) +if test "$man_mb_groff" = "yes" +then + AC_DEFINE([MULTIBYTE_GROFF], 1, + [Define if your groff installation has the Debian multibyte patch.]) +fi + +MAN_CHECK_PROGS([eqn], [EQN], [use EQN to preprocess equations], [eqn geqn]) +AC_DEFINE_UNQUOTED([PROG_EQN], ["$eqn"], [Program to use as eqn.]) +MAN_CHECK_PROGS([neqn], [NEQN], [use NEQN to preprocess equations for character devices], [neqn gneqn]) +# If we fail to find an neqn, use eqn and try to force it to output for an +# ascii device. As this is only relevant for equations (?), not using latin1 +# should be acceptable. -Tlatin1 is ignored by some eqn implementations. +if test -z "$neqn" +then + test -n "$eqn" && + (test -n "$nroff_device" && neqn="$eqn -T$nroff_device" || neqn="$eqn -Tascii") +fi +AC_DEFINE_UNQUOTED([PROG_NEQN], ["$neqn"], [Program to use as neqn.]) +MAN_CHECK_PROGS([tbl], [TBL], [use TBL to preprocess tables], [tbl gtbl]) +AC_DEFINE_UNQUOTED([PROG_TBL], ["$tbl"], [Program to use as tbl.]) +TBL_X_FORMAT= +if test -n "$tbl" +then + AC_CACHE_CHECK([whether tbl supports the 'x' format character], + [man_cv_tbl_x_format], [ + if (echo .TS; echo ';'; echo lx.; echo SENTINEL; echo .TE) | \ + $tbl 2>/dev/null | grep SENTINEL >/dev/null 2>&1 + then + man_cv_tbl_x_format=yes + else + man_cv_tbl_x_format=no + fi]) + if test "x$man_cv_tbl_x_format" = xyes + then + TBL_X_FORMAT=x + fi +fi +AC_SUBST([TBL_X_FORMAT]) +MAN_CHECK_PROGS([col], [COL], [use COL to filter formatting characters from output], [col gcol]) +AC_DEFINE_UNQUOTED([PROG_COL], ["$col"], [Program to use as col.]) +MAN_CHECK_PROGS([vgrind], [VGRIND], [use VGRIND to preprocess program sources], [vgrind gvgrind]) +AC_DEFINE_UNQUOTED([PROG_VGRIND], ["$vgrind"], [Program to use as vgrind.]) +MAN_CHECK_PROGS([refer], [REFER], [use REFER to preprocess bibliographic references], [refer grefer]) +AC_DEFINE_UNQUOTED([PROG_REFER], ["$refer"], [Program to use as refer.]) +MAN_CHECK_PROGS([grap], [GRAP], [use GRAP to preprocess graphs], [grap]) +AC_DEFINE_UNQUOTED([PROG_GRAP], ["$grap"], [Program to use as grap.]) +MAN_CHECK_PROGS([pic], [PIC], [use PIC to preprocess pictures], [pic gpic]) +test -n "$pic" && pic="$pic -S" +AC_DEFINE_UNQUOTED([PROG_PIC], ["$pic"], [Program to use as pic.]) + +MAN_CHECK_PROGS([gzip], [GZIP], [use GZIP as GNU compression utility], [gzip]) +if test -n "$gzip" +then + gunzip="$gzip -dc" + compressor="$gzip -c7" + compress_ext="gz" +fi +MAN_CHECK_PROGS([compress], [COMPRESS], [use COMPRESS as UNIX compression utility], [compress]) +if test -n "$compress" +then + uncompress="$compress -dc" + if test -z "$gzip" + then + compressor="$compress -c" + compress_ext="Z" + fi +fi +MAN_CHECK_PROGS([bzip2], [BZIP2], [use BZIP2 as block-sorting compression utility], [bzip2]) +if test -n "$bzip2" +then + bunzip2="$bzip2 -dc" +fi +MAN_CHECK_PROGS([xz], [XZ], [use XZ as Lempel-Ziv-Markov chain-Algorithm compression utility], [xz]) +if test -n "$xz" +then + unxz="$xz -dc" + unlzma= +else + dnl lzma not used/needed if we have xz + MAN_CHECK_PROGS([lzma], [LZMA], [use LZMA as Lempel-Ziv-Markov chain-Algorithm compression utility], [lzma]) + if test -n "$lzma" + then + unlzma="$lzma -dc" + fi +fi +MAN_CHECK_PROGS([lzip], [LZIP], [use LZIP as Lempel-Ziv-Markov chain-Algorithm compression utility], [lzip]) +if test -n "$lzip" +then + unlzip="$lzip -dc" +fi +MAN_CHECK_PROGS([zstd], [ZSTD], [use ZSTD as LZ77/entropy-coding compression utility], [zstd]) +if test -n "$zstd" +then + unzstd="$zstd -dc" +fi +if test -n "$compressor" +then + AC_DEFINE([COMP_CAT], [1], [Define if you have compressors and want to support compressed cat files.]) +fi +dnl Compressors are used for compressing cat pages. +AC_SUBST([compressor]) +AC_DEFINE_UNQUOTED( + [PROG_COMPRESSOR], ["$compressor"], + [Default compressor, used for compressing cat pages.]) +AC_DEFINE_UNQUOTED( + [COMPRESS_EXT], ["$compress_ext"], + [Default compression extension, used for compressing cat pages.]) +dnl Decompressors are used for decompressing cat pages and nroff source. +dnl To add further decompressors, you will also need to edit +dnl lib/compression.c. +AC_DEFINE_UNQUOTED([PROG_GUNZIP], ["$gunzip"], [Program to use as gunzip.]) +AC_DEFINE_UNQUOTED( + [PROG_UNCOMPRESS], ["$uncompress"], [Program to use as uncompress.]) +AC_DEFINE_UNQUOTED([PROG_BUNZIP2], ["$bunzip2"], [Program to use as bunzip2.]) +AC_DEFINE_UNQUOTED([PROG_UNLZMA], ["$unlzma"], [Program to use as unlzma.]) +AC_DEFINE_UNQUOTED([PROG_UNXZ], ["$unxz"], [Program to use as unxz.]) +AC_DEFINE_UNQUOTED([PROG_UNLZIP], ["$unlzip"], [Program to use as unlzip.]) +AC_DEFINE_UNQUOTED([PROG_UNZSTD], ["$unzstd"], [Program to use as unzstd.]) +MAN_COMPRESS_LIB([z], [gzopen]) +dnl To add more decompressors just follow the scheme above. + +# Check for various header files and associated libraries. +dnl The "noyywrap" argument is new in Autoconf 2.70, but this also works +dnl fine with older versions that ignore the argument. +AC_PROG_LEX([noyywrap]) +if test "$LEX" = ":" && (test ! -e src/lexgrog.c || test ! -e src/zsoelim.c) +then + AC_MSG_ERROR([flex is required when building from revision control]) +fi +gl_INIT +AC_CHECK_HEADERS([sys/file.h linux/fiemap.h]) +AC_CHECK_FUNCS([posix_fadvise]) + +# Internationalization support. +AM_GNU_GETTEXT([external]) +AM_GNU_GETTEXT_VERSION([0.18.3]) +AC_SUBST([LINGUAS]) +AM_ICONV +MAN_PO4A +MAN_LINGUAS + +# Checks for structures and compiler characteristics. +AC_C_CONST +AC_C_INLINE +AC_TYPE_PID_T +AC_TYPE_UID_T +AC_TYPE_SIZE_T + +# Check for pipeline library. +PKG_CHECK_MODULES([libpipeline], [libpipeline >= 1.5.0]) + +# Find a suitable database interface header and library. +# +# Check for GNU dbm routines. +if test "$db" = "no" || test "$db" = "gdbm" +then + AC_CHECK_HEADER([gdbm.h], [ + for lib in gdbm c dbm + do + AC_CHECK_LIB([$lib], [gdbm_fetch], + test "$lib" = "c" || DBLIBS="-l$lib" + [AC_DEFINE([GDBM], [1], [Define if you have, and want to use, gdbm interface routines.]) + AC_SUBST([DBTYPE], [gdbm])] + db=yes, db=no) + if test "$db" = "yes" + then + man_save_LIBS="$LIBS" + LIBS="$LIBS $DBLIBS" + AC_CHECK_FUNCS([gdbm_exists]) + LIBS="$man_save_LIBS" + break + fi + done], db=no) +fi + +# Check for Berkeley db routines (first version API). +MAN_CHECK_BDB([db5 db], [db5/db_185.h db_185.h], [db5 db-5]) +MAN_CHECK_BDB([db4 db], [db4/db_185.h db_185.h], [db4 db-4]) +MAN_CHECK_BDB([db3 db], [db3/db_185.h db_185.h], [db3]) +MAN_CHECK_BDB([db2 db], [db_185.h db2/db_185.h db2_185.h], [db2 db]) +MAN_CHECK_BDB([db1 db], [db/db.h db.h db1/db.h], [db db1 c]) + +dnl MAN_CHECK_BDB([db2], [db2_185.h], [db2 db c], [AC_DEFINE(DB_ON_LIBC)]) +dnl MAN_CHECK_BDB([db2], [db2/db_185.h], [db2 db c]) + +# Check for UNIX ndbm routines. +if test "$db" = "no" || test "$db" = "ndbm" +then + AC_CHECK_HEADER([ndbm.h], [ + for lib in ndbm c dbm + do + AC_CHECK_LIB([$lib], [dbm_fetch], + test "$lib" = "c" || DBLIBS="-l$lib" + [AC_DEFINE([NDBM], [1], [Define if you have, and want to use, ndbm interface routines.]) + AC_SUBST([DBTYPE], [ndbm])] + db=yes, db=no) + test "$db" = "yes" && break + done], db=no) + if test "$db" = no + then + AC_CHECK_HEADER([gdbm-ndbm.h], [ + for lib in gdbm_compat c dbm + do + AC_CHECK_LIB([$lib], [dbm_fetch], + test "$lib" = "c" || DBLIBS="-l$lib" + [AC_DEFINE([NDBM], [1], [Define if you have, and want to use, ndbm interface routines.]) + AC_SUBST([DBTYPE], [ndbm])] + db=yes, db=no) + test "$db" = "yes" && break + done], db=no) + fi +fi + +if test "$db" != "yes" +then + if test "$db" = "no" + then + AC_MSG_ERROR([Fatal: no supported database library/header found]) + else + AC_MSG_ERROR([Fatal: $db: unsupported database library]) + fi +fi +AC_SUBST([DBLIBS]) + +# Check for libseccomp library. +MAN_LIBSECCOMP + +dnl MAN_ECHO_VAR(ENV-VARIABLE) +define([MAN_ECHO_VAR], [AC_MSG_NOTICE([default $1 = "$$1"])])dnl +dnl +MAN_ECHO_VAR([CC]) +MAN_ECHO_VAR([CPP]) +MAN_ECHO_VAR([CPPFLAGS]) +MAN_ECHO_VAR([CFLAGS]) +MAN_ECHO_VAR([LDFLAGS]) +MAN_ECHO_VAR([LIBS]) +MAN_ECHO_VAR([DBLIBS]) + +# Transformed versions of program names for use in Automake variables. +MAN_TRANS_SUBST([apropos]) +MAN_TRANS_SUBST([catman]) +MAN_TRANS_SUBST([lexgrog]) +MAN_TRANS_SUBST([man]) +MAN_TRANS_SUBST([man-recode]) +MAN_TRANS_SUBST([manconv]) +MAN_TRANS_SUBST([mandb]) +MAN_TRANS_SUBST([manpath]) +MAN_TRANS_SUBST([whatis]) +MAN_TRANS_SUBST([zsoelim]) + +# If we're cross-compiling, tests won't work. +AM_CONDITIONAL([CROSS_COMPILING], [test "x$cross_compiling" = xyes]) + +# Are Gnulib translations available? +AM_CONDITIONAL([HAVE_GNULIB_PO], [test -f "$srcdir/gl/po/POTFILES.in"]) + +AC_CONFIG_FILES([Makefile + gl/lib/Makefile + init/Makefile + init/systemd/Makefile + lib/Makefile + src/Makefile + src/man_db.conf + src/tests/Makefile + man/Makefile + man/replace.sin + man/po4a/Makefile + man/da/Makefile + man/de/Makefile + man/es/Makefile + man/fr/Makefile + man/id/Makefile + man/it/Makefile + man/ja/Makefile + man/ko/Makefile + man/nl/Makefile + man/pl/Makefile + man/pt/Makefile + man/pt_BR/Makefile + man/ro/Makefile + man/ru/Makefile + man/sr/Makefile + man/sv/Makefile + man/tr/Makefile + man/zh_CN/Makefile + manual/Makefile + libdb/Makefile + docs/Makefile + tools/Makefile + po/Makefile.in]) +if test -f "$srcdir/gl/po/Makefile.in.in"; then + AC_CONFIG_FILES([gl/po/Makefile.in]) +fi +AC_OUTPUT diff --git a/docs/COPYING.GPLv2 b/docs/COPYING.GPLv2 new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/docs/COPYING.GPLv2 @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/docs/COPYING.LIB b/docs/COPYING.LIB new file mode 100644 index 0000000..4362b49 --- /dev/null +++ b/docs/COPYING.LIB @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/docs/HACKING.md b/docs/HACKING.md new file mode 100644 index 0000000..5b448c7 --- /dev/null +++ b/docs/HACKING.md @@ -0,0 +1,181 @@ +Hacking on man-db +================= + +man-db is not a large or particularly complicated project, but there is +still plenty for an interested developer to contribute. Here's a very brief +guide on how to get started. + + +Directory layout +---------------- + +The source tree looks something like this, ignoring some directories added +by autoconf, automake, gettext, and gnulib: + +
+
docs/
+
Assorted documentation.
+ +
man/
+
Man pages for man-db's programs.
+ +
manual/
+
The man-db manual, written in troff.
+ +
include/
+
Header files used throughout the package.
+ +
lib/
+
+ Basic library files, some of which supplement inadequate C libraries on + various systems and some of which implement utility functions used + throughout the package. +
+ +
libdb/
+
+ The database access library. Code outside this directory should not know + about specific back-end database implementations. +
+ +
src/
+
Source code to the man-db programs themselves.
+ +
tools/
+
Miscellaneous add-on scripts.
+ +
po/
+
Translations.
+
+ + +Coding style +------------ + +Each indent is a single tab. Brace style is K&R. Each function name is +separated from the following opening parenthesis by a single space. (All +this is almost certainly controversial somewhere, but it's as close as +you'll get to a prevailing style here.) + +Keep all code within 80 columns (counting tabs as 8). This can sometimes be +a little tight with the deep indent; think of it as a useful discipline to +stop indentation levels getting out of hand. :-) (This rule is currently +broken for argp option declarations, for the sake of other kinds of +readability. This may change.) + +If you're editing existing code and it differs from any of the above, stick +with whatever the existing code does. Likewise, if in doubt, find similar +code and use its style. Maintaining a consistent style is important for +general readability, and is more important than any individual point. It's +also the easiest way to avoid long and tedious debates about "correct" +style. + + +Facilities and portability +-------------------------- + +man-db uses Gnulib to provide portability support and utility functions +common to many GNU packages (although man-db is not itself a GNU package), +while the `lib/` directory provides some other utility functions specific to +man-db. Please make use of these facilities where available. In particular, +there are various functions beginning with 'x' which check the return values +from the system's memory allocation calls, which you should use instead of +their non-'x' siblings. + +`appendstr()` provides manageable string concatenation. Use it where +appropriate. Remember to terminate its argument list with a NULL. In many +cases, `xasprintf()` from Gnulib may be more readable. + +If you're calling any of the `is*()` or `to*()` functions in ``, +please do so via the `CTYPE()` macro in `include/manconfig.h` to ensure that +the argument type is correct. + +You may assume C99. + + +Testing +------- + +There is a small test suite in `src/tests/`, as well as basic tests in +`man/` to ensure that man-db's own manual pages format without errors. Tests +for new bug fixes are not *required*, but are generally a good idea. + +Various test library facilities are available in `src/tests/testlib.sh`. +Feel free to extend this as necessary. + + +Things to do +------------ + +`docs/TODO` has a number of outstanding projects. Things near the bottom are +usually more detailed and accurate. + +The Debian bug tracking system has a number of [outstanding reports on +man-db](https://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=man-db;ordering=upstream). + +Much of the work needed on man-db is for maintainability. Patches that take +difficult-to-understand code with hairy memory allocation and replace it +with clean, obvious, and reliable code are most welcome, especially if they +introduce new abstractions which are of more general use. The replacement of +`splitline()` with the `page_description` interface is a good example of +this. + +Work on porting to platforms other than GNU/Linux is welcome. It's been a +while since serious effort in that direction has been invested in man-db. +Most of the code should be quite portable, but the occasional teething +problem would not be a surprise. + + +Sending patches +--------------- + +GitLab merge requests are preferred. Create an account on gitlab.com, +[fork](https://gitlab.com/man-db/man-db/-/forks/new) the repository to your +own account, push your branch, and create a merge request. + +If you can't or don't want to use GitLab merge requests, then you can fall +back to sending patches in unified diff format (use `git diff`, or GNU diff +with the -u option) to man-db-devel@nongnu.org (see [subscription +instructions](https://lists.nongnu.org/mailman/listinfo/man-db-devel)). + + +Revision control +---------------- + +man-db is revision-controlled using [git](https://git-scm.com/). The archive +may be fetched from here using `git clone`, and merge requests are accepted +in the usual way: + + https://gitlab.com/man-db/man-db + +Generated files should be added to `.gitignore` and should not be committed +to revision control. + + +Release process +--------------- + +1. Update the `AC_INIT` version number in `configure.ac` to "x.y.z-pre1". + Commit and tag. + +2. Pushing the tag should cause the GitLab CI machinery to upload a + preliminary tarball for translators to the [package + registry](https://gitlab.com/man-db/man-db/-/packages). Send this to the + Translation Project robot, to provide context for `po/man-db.pot`. + +3. Wait a couple of weeks for a reasonable number of translation updates to + arrive. During this time, test until your eyeballs fall out, but try to + avoid changing any translated messages. + +4. Once you're ready to release, update `NEWS.md`, and + the `AC_INIT` version number and `date` in `configure.ac`. Commit and + tag. + +5. Pushing the tag should cause the GitLab CI machinery to upload the + release tarball to the [package + registry](https://gitlab.com/man-db/man-db/-/packages). GPG-sign that + tarball, and upload the tarball and its signature to Savannah so that the + URLs in the newly-created [GitLab release + notes](https://gitlab.com/man-db/man-db/-/releases) are valid. + +6. Announce to wherever seems appropriate. diff --git a/docs/INSTALL.autoconf b/docs/INSTALL.autoconf new file mode 100644 index 0000000..a093a36 --- /dev/null +++ b/docs/INSTALL.autoconf @@ -0,0 +1,368 @@ +Installation Instructions +************************* + + Copyright (C) 1994-1996, 1999-2002, 2004-2017, 2020-2022 Free +Software Foundation, Inc. + + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. + +Basic Installation +================== + + Briefly, the shell command './configure && make && make install' +should configure, build, and install this package. The following +more-detailed instructions are generic; see the 'README' file for +instructions specific to this package. Some packages provide this +'INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. + + The 'configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a 'Makefile' in each directory of the package. +It may also create one or more '.h' files containing system-dependent +definitions. Finally, it creates a shell script 'config.status' that +you can run in the future to recreate the current configuration, and a +file 'config.log' containing compiler output (useful mainly for +debugging 'configure'). + + It can also use an optional file (typically called 'config.cache' and +enabled with '--cache-file=config.cache' or simply '-C') that saves the +results of its tests to speed up reconfiguring. Caching is disabled by +default to prevent problems with accidental use of stale cache files. + + If you need to do unusual things to compile the package, please try +to figure out how 'configure' could check whether to do them, and mail +diffs or instructions to the address given in the 'README' so they can +be considered for the next release. If you are using the cache, and at +some point 'config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file 'configure.ac' (or 'configure.in') is used to create +'configure' by a program called 'autoconf'. You need 'configure.ac' if +you want to change it or regenerate 'configure' using a newer version of +'autoconf'. + + The simplest way to compile this package is: + + 1. 'cd' to the directory containing the package's source code and type + './configure' to configure the package for your system. + + Running 'configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type 'make' to compile the package. + + 3. Optionally, type 'make check' to run any self-tests that come with + the package, generally using the just-built uninstalled binaries. + + 4. Type 'make install' to install the programs and any data files and + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the 'make install' phase executed with root + privileges. + + 5. Optionally, type 'make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior 'make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the + source code directory by typing 'make clean'. To also remove the + files that 'configure' created (so you can compile the package for + a different kind of computer), type 'make distclean'. There is + also a 'make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 7. Often, you can also type 'make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide 'make + distcheck', which can by used by developers to test that all other + targets like 'make install' and 'make uninstall' work correctly. + This target is generally not run by end users. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the 'configure' script does not know about. Run './configure --help' +for details on some of the pertinent environment variables. + + You can give 'configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here is +an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU 'make'. 'cd' to the +directory where you want the object files and executables to go and run +the 'configure' script. 'configure' automatically checks for the source +code in the directory that 'configure' is in and in '..'. This is known +as a "VPATH" build. + + With a non-GNU 'make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use 'make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple '-arch' options to the +compiler but only a single '-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the 'lipo' tool if you have problems. + +Installation Names +================== + + By default, 'make install' installs the package's commands under +'/usr/local/bin', include files under '/usr/local/include', etc. You +can specify an installation prefix other than '/usr/local' by giving +'configure' the option '--prefix=PREFIX', where PREFIX must be an +absolute file name. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option '--exec-prefix=PREFIX' to 'configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like '--bindir=DIR' to specify different values for particular +kinds of files. Run 'configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the default +for these options is expressed in terms of '${prefix}', so that +specifying just '--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to 'configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +'make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, 'make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +'${prefix}'. Any directories that were specified during 'configure', +but not in terms of '${prefix}', must each be overridden at install time +for the entire installation to be relocated. The approach of makefile +variable overrides for each directory variable is required by the GNU +Coding Standards, and ideally causes no recompilation. However, some +platforms have known limitations with the semantics of shared libraries +that end up requiring recompilation when using this method, particularly +noticeable in packages that use GNU Libtool. + + The second method involves providing the 'DESTDIR' variable. For +example, 'make install DESTDIR=/alternate/directory' will prepend +'/alternate/directory' before all installation names. The approach of +'DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of '${prefix}' +at 'configure' time. + +Optional Features +================= + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving 'configure' the +option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'. + + Some packages pay attention to '--enable-FEATURE' options to +'configure', where FEATURE indicates an optional part of the package. +They may also pay attention to '--with-PACKAGE' options, where PACKAGE +is something like 'gnu-as' or 'x' (for the X Window System). The +'README' should mention any '--enable-' and '--with-' options that the +package recognizes. + + For packages that use the X Window System, 'configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the 'configure' options '--x-includes=DIR' and +'--x-libraries=DIR' to specify their locations. + + Some packages offer the ability to configure how verbose the +execution of 'make' will be. For these packages, running './configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with 'make V=1'; while running './configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with 'make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC +is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + HP-UX 'make' updates targets which have the same timestamps as their +prerequisites, which makes it generally unusable when shipped generated +files such as 'configure' are involved. Use GNU 'make' instead. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its '' header file. The option '-nodtk' can be used as a +workaround. If GNU CC is not installed, it is therefore recommended to +try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put '/usr/ucb' early in your 'PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in '/usr/bin'. So, if you need '/usr/ucb' +in your 'PATH', put it _after_ '/usr/bin'. + + On Haiku, software installed for all users goes in '/boot/common', +not '/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + +Specifying the System Type +========================== + + There may be some features 'configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, 'configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +'--build=TYPE' option. TYPE can either be a short name for the system +type, such as 'sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file 'config.sub' for the possible values of each field. If +'config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option '--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with '--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for 'configure' scripts to share, +you can create a site shell script called 'config.site' that gives +default values for variables like 'CC', 'cache_file', and 'prefix'. +'configure' looks for 'PREFIX/share/config.site' if it exists, then +'PREFIX/etc/config.site' if it exists. Or, you can set the +'CONFIG_SITE' environment variable to the location of the site script. +A warning: not all 'configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to 'configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the 'configure' command line, using 'VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified 'gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an +Autoconf limitation. Until the limitation is lifted, you can use this +workaround: + + CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash + +'configure' Invocation +====================== + + 'configure' recognizes the following options to control how it +operates. + +'--help' +'-h' + Print a summary of all of the options to 'configure', and exit. + +'--help=short' +'--help=recursive' + Print a summary of the options unique to this package's + 'configure', and exit. The 'short' variant lists options used only + in the top level, while the 'recursive' variant lists options also + present in any nested packages. + +'--version' +'-V' + Print the version of Autoconf used to generate the 'configure' + script, and exit. + +'--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally 'config.cache'. FILE defaults to '/dev/null' to + disable caching. + +'--config-cache' +'-C' + Alias for '--cache-file=config.cache'. + +'--quiet' +'--silent' +'-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to '/dev/null' (any error + messages will still be shown). + +'--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + 'configure' can determine that directory automatically. + +'--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: for + more details, including other options available for fine-tuning the + installation locations. + +'--no-create' +'-n' + Run the configure checks, but stop before creating any output + files. + +'configure' also accepts some other, not widely useful, options. Run +'configure --help' for more details. diff --git a/docs/INSTALL.quick b/docs/INSTALL.quick new file mode 100644 index 0000000..5b5645f --- /dev/null +++ b/docs/INSTALL.quick @@ -0,0 +1,45 @@ +Full installation details are included in ../README.md. If you are simply +upgrading an old version of man-db and know that all of the defaults +are correct (your config file will NOT be overwritten), you may follow +the Quick install below. + +man-db requires several external packages: + + * libpipeline >= 1.5.0 (https://nongnu.org/libpipeline/) + * flex >= 2.5.30 (http://flex.sf.net/) + * a database library, one of: + GDBM (https://www.gnu.org.ua/software/gdbm/) + Berkeley DB < 6 + NDBM + +and on systems without GNU libc: + + * libiconv >= 1.8 (https://www.gnu.org/software/libiconv/) + +Some other packages are recommended and used if available: + + * zlib (https://zlib.net/) + * libseccomp (https://github.com/seccomp/libseccomp) + +Quick INSTALL +============= + + * RUN `./configure ' + * EDIT configuration files/headers if necessary + * RUN `make ' + * RUN `make install ' + +Note (1): If you don't know what or mean, you should be reading/following the install +procedure in ../README.md instead. + +Note (2): You must not replace the `make install' step by copying the +binaries to wherever you may want them. Various paths are hard coded +into the binaries during `make' and unless you know exactly what you +are doing, it is likely that run time errors will occur. + +Note (3): If you run make with path/prefix/name_transformation variable +definitions such as `make prefix=/tmp zsoelim=soelim', you must supply +the same variable definitions to `make install'. In general it is +better to run `./configure' with the appropriate options rather than +waiting until the make stage of the build. diff --git a/docs/Makefile.am b/docs/Makefile.am new file mode 100644 index 0000000..ad9ef3f --- /dev/null +++ b/docs/Makefile.am @@ -0,0 +1,13 @@ +dist_noinst_DATA = \ + COPYING.GPLv2 \ + COPYING.LIB \ + HACKING.md \ + TODO \ + manpage.example \ + manpage.example.mdoc \ + manpage.example.pod \ + manpage.example.sgml + +EXTRA_DIST = \ + INSTALL.autoconf \ + INSTALL.quick diff --git a/docs/Makefile.in b/docs/Makefile.in new file mode 100644 index 0000000..97b6287 --- /dev/null +++ b/docs/Makefile.in @@ -0,0 +1,1767 @@ +# Makefile.in generated by automake 1.16.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2021 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = docs +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ + $(top_srcdir)/m4/man-arg-automatic-update.m4 \ + $(top_srcdir)/m4/man-arg-cache-owner.m4 \ + $(top_srcdir)/m4/man-arg-cats.m4 \ + $(top_srcdir)/m4/man-arg-config-file.m4 \ + $(top_srcdir)/m4/man-arg-db.m4 \ + $(top_srcdir)/m4/man-arg-device.m4 \ + $(top_srcdir)/m4/man-arg-mandirs.m4 \ + $(top_srcdir)/m4/man-arg-manual.m4 \ + $(top_srcdir)/m4/man-arg-override-dir.m4 \ + $(top_srcdir)/m4/man-arg-sections.m4 \ + $(top_srcdir)/m4/man-arg-setuid.m4 \ + $(top_srcdir)/m4/man-arg-snapdir.m4 \ + $(top_srcdir)/m4/man-arg-systemdsystemunitdir.m4 \ + $(top_srcdir)/m4/man-arg-systemdtmpfilesdir.m4 \ + $(top_srcdir)/m4/man-arg-undoc.m4 $(top_srcdir)/m4/man-bdb.m4 \ + $(top_srcdir)/m4/man-check-progs.m4 \ + $(top_srcdir)/m4/man-compress-lib.m4 \ + $(top_srcdir)/m4/man-gnu-nroff.m4 \ + $(top_srcdir)/m4/man-heirloom-nroff.m4 \ + $(top_srcdir)/m4/man-libseccomp.m4 \ + $(top_srcdir)/m4/man-linguas.m4 $(top_srcdir)/m4/man-po4a.m4 \ + $(top_srcdir)/m4/man-tar-sort-name.m4 \ + $(top_srcdir)/m4/man-trans-subst.m4 \ + $(top_srcdir)/gl/m4/00gnulib.m4 \ + $(top_srcdir)/gl/m4/__inline.m4 \ + $(top_srcdir)/gl/m4/absolute-header.m4 \ + $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/argp.m4 \ + $(top_srcdir)/gl/m4/asm-underscore.m4 \ + $(top_srcdir)/gl/m4/btowc.m4 \ + $(top_srcdir)/gl/m4/builtin-expect.m4 \ + $(top_srcdir)/gl/m4/calloc.m4 \ + $(top_srcdir)/gl/m4/canonicalize.m4 \ + $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \ + $(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \ + $(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \ + $(top_srcdir)/gl/m4/ctype_h.m4 $(top_srcdir)/gl/m4/d-ino.m4 \ + $(top_srcdir)/gl/m4/d-type.m4 $(top_srcdir)/gl/m4/dirent_h.m4 \ + $(top_srcdir)/gl/m4/dirfd.m4 \ + $(top_srcdir)/gl/m4/double-slash-root.m4 \ + $(top_srcdir)/gl/m4/dup.m4 $(top_srcdir)/gl/m4/dup2.m4 \ + $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ + $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ + $(top_srcdir)/gl/m4/exponentd.m4 \ + $(top_srcdir)/gl/m4/extensions.m4 \ + $(top_srcdir)/gl/m4/extern-inline.m4 \ + $(top_srcdir)/gl/m4/fchdir.m4 $(top_srcdir)/gl/m4/fcntl-o.m4 \ + $(top_srcdir)/gl/m4/fcntl.m4 $(top_srcdir)/gl/m4/fcntl_h.m4 \ + $(top_srcdir)/gl/m4/fdopendir.m4 \ + $(top_srcdir)/gl/m4/filenamecat.m4 \ + $(top_srcdir)/gl/m4/flexmember.m4 \ + $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/flock.m4 \ + $(top_srcdir)/gl/m4/fnmatch.m4 \ + $(top_srcdir)/gl/m4/fnmatch_h.m4 $(top_srcdir)/gl/m4/free.m4 \ + $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/fstatat.m4 \ + $(top_srcdir)/gl/m4/getcwd-abort-bug.m4 \ + $(top_srcdir)/gl/m4/getcwd-path-max.m4 \ + $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \ + $(top_srcdir)/gl/m4/getdtablesize.m4 \ + $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getlogin.m4 \ + $(top_srcdir)/gl/m4/getlogin_r.m4 \ + $(top_srcdir)/gl/m4/getopt.m4 \ + $(top_srcdir)/gl/m4/getpagesize.m4 \ + $(top_srcdir)/gl/m4/getprogname.m4 \ + $(top_srcdir)/gl/m4/getrandom.m4 \ + $(top_srcdir)/gl/m4/gettext.m4 $(top_srcdir)/gl/m4/gettime.m4 \ + $(top_srcdir)/gl/m4/gettimeofday.m4 \ + $(top_srcdir)/gl/m4/glob.m4 $(top_srcdir)/gl/m4/glob_h.m4 \ + $(top_srcdir)/gl/m4/gnulib-common.m4 \ + $(top_srcdir)/gl/m4/gnulib-comp.m4 \ + $(top_srcdir)/gl/m4/host-cpu-c-abi.m4 \ + $(top_srcdir)/gl/m4/iconv.m4 $(top_srcdir)/gl/m4/idpriv.m4 \ + $(top_srcdir)/gl/m4/include_next.m4 \ + $(top_srcdir)/gl/m4/intlmacosx.m4 \ + $(top_srcdir)/gl/m4/intmax_t.m4 \ + $(top_srcdir)/gl/m4/inttypes.m4 \ + $(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \ + $(top_srcdir)/gl/m4/isblank.m4 \ + $(top_srcdir)/gl/m4/langinfo_h.m4 \ + $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \ + $(top_srcdir)/gl/m4/lib-ignore.m4 \ + $(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \ + $(top_srcdir)/gl/m4/lib-prefix.m4 \ + $(top_srcdir)/gl/m4/libtool.m4 $(top_srcdir)/gl/m4/limits-h.m4 \ + $(top_srcdir)/gl/m4/localcharset.m4 \ + $(top_srcdir)/gl/m4/locale-fr.m4 \ + $(top_srcdir)/gl/m4/locale-ja.m4 \ + $(top_srcdir)/gl/m4/locale-zh.m4 \ + $(top_srcdir)/gl/m4/locale_h.m4 \ + $(top_srcdir)/gl/m4/localeconv.m4 $(top_srcdir)/gl/m4/lock.m4 \ + $(top_srcdir)/gl/m4/lstat.m4 $(top_srcdir)/gl/m4/ltoptions.m4 \ + $(top_srcdir)/gl/m4/ltsugar.m4 \ + $(top_srcdir)/gl/m4/ltversion.m4 \ + $(top_srcdir)/gl/m4/lt~obsolete.m4 \ + $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ + $(top_srcdir)/gl/m4/manywarnings.m4 \ + $(top_srcdir)/gl/m4/mbrtowc.m4 $(top_srcdir)/gl/m4/mbsinit.m4 \ + $(top_srcdir)/gl/m4/mbsrtowcs.m4 \ + $(top_srcdir)/gl/m4/mbstate_t.m4 $(top_srcdir)/gl/m4/mbtowc.m4 \ + $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/memmem.m4 \ + $(top_srcdir)/gl/m4/mempcpy.m4 $(top_srcdir)/gl/m4/memrchr.m4 \ + $(top_srcdir)/gl/m4/minmax.m4 $(top_srcdir)/gl/m4/mkdir.m4 \ + $(top_srcdir)/gl/m4/mkdtemp.m4 $(top_srcdir)/gl/m4/mkstemp.m4 \ + $(top_srcdir)/gl/m4/mmap-anon.m4 $(top_srcdir)/gl/m4/mode_t.m4 \ + $(top_srcdir)/gl/m4/msvc-inval.m4 \ + $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ + $(top_srcdir)/gl/m4/multiarch.m4 \ + $(top_srcdir)/gl/m4/nanosleep.m4 \ + $(top_srcdir)/gl/m4/nl_langinfo.m4 $(top_srcdir)/gl/m4/nls.m4 \ + $(top_srcdir)/gl/m4/nocrash.m4 \ + $(top_srcdir)/gl/m4/nonblocking.m4 \ + $(top_srcdir)/gl/m4/off_t.m4 \ + $(top_srcdir)/gl/m4/open-cloexec.m4 \ + $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ + $(top_srcdir)/gl/m4/openat.m4 $(top_srcdir)/gl/m4/opendir.m4 \ + $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pipe.m4 \ + $(top_srcdir)/gl/m4/po.m4 $(top_srcdir)/gl/m4/printf.m4 \ + $(top_srcdir)/gl/m4/progtest.m4 $(top_srcdir)/gl/m4/pselect.m4 \ + $(top_srcdir)/gl/m4/pthread_rwlock_rdlock.m4 \ + $(top_srcdir)/gl/m4/pthread_sigmask.m4 \ + $(top_srcdir)/gl/m4/raise.m4 $(top_srcdir)/gl/m4/rawmemchr.m4 \ + $(top_srcdir)/gl/m4/readdir.m4 $(top_srcdir)/gl/m4/readlink.m4 \ + $(top_srcdir)/gl/m4/readlinkat.m4 \ + $(top_srcdir)/gl/m4/realloc.m4 \ + $(top_srcdir)/gl/m4/reallocarray.m4 \ + $(top_srcdir)/gl/m4/regex.m4 $(top_srcdir)/gl/m4/rename.m4 \ + $(top_srcdir)/gl/m4/renameat.m4 \ + $(top_srcdir)/gl/m4/rewinddir.m4 $(top_srcdir)/gl/m4/rmdir.m4 \ + $(top_srcdir)/gl/m4/save-cwd.m4 $(top_srcdir)/gl/m4/select.m4 \ + $(top_srcdir)/gl/m4/setenv.m4 \ + $(top_srcdir)/gl/m4/setlocale_null.m4 \ + $(top_srcdir)/gl/m4/sigaction.m4 \ + $(top_srcdir)/gl/m4/signal_h.m4 \ + $(top_srcdir)/gl/m4/signalblocking.m4 \ + $(top_srcdir)/gl/m4/sigpipe.m4 $(top_srcdir)/gl/m4/size_max.m4 \ + $(top_srcdir)/gl/m4/sleep.m4 $(top_srcdir)/gl/m4/socketlib.m4 \ + $(top_srcdir)/gl/m4/sockets.m4 $(top_srcdir)/gl/m4/socklen.m4 \ + $(top_srcdir)/gl/m4/ssize_t.m4 \ + $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ + $(top_srcdir)/gl/m4/stdalign.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ + $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ + $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdint_h.m4 \ + $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ + $(top_srcdir)/gl/m4/stpcpy.m4 $(top_srcdir)/gl/m4/strcase.m4 \ + $(top_srcdir)/gl/m4/strcasestr.m4 \ + $(top_srcdir)/gl/m4/strchrnul.m4 $(top_srcdir)/gl/m4/strdup.m4 \ + $(top_srcdir)/gl/m4/strerror.m4 \ + $(top_srcdir)/gl/m4/string_h.m4 \ + $(top_srcdir)/gl/m4/strings_h.m4 \ + $(top_srcdir)/gl/m4/strndup.m4 $(top_srcdir)/gl/m4/strnlen.m4 \ + $(top_srcdir)/gl/m4/strsep.m4 \ + $(top_srcdir)/gl/m4/sys_file_h.m4 \ + $(top_srcdir)/gl/m4/sys_ioctl_h.m4 \ + $(top_srcdir)/gl/m4/sys_random_h.m4 \ + $(top_srcdir)/gl/m4/sys_select_h.m4 \ + $(top_srcdir)/gl/m4/sys_socket_h.m4 \ + $(top_srcdir)/gl/m4/sys_stat_h.m4 \ + $(top_srcdir)/gl/m4/sys_time_h.m4 \ + $(top_srcdir)/gl/m4/sys_types_h.m4 \ + $(top_srcdir)/gl/m4/sys_uio_h.m4 \ + $(top_srcdir)/gl/m4/sysexits.m4 \ + $(top_srcdir)/gl/m4/tempname.m4 \ + $(top_srcdir)/gl/m4/termios_h.m4 \ + $(top_srcdir)/gl/m4/threadlib.m4 $(top_srcdir)/gl/m4/time_h.m4 \ + $(top_srcdir)/gl/m4/timespec.m4 \ + $(top_srcdir)/gl/m4/unistd-safer.m4 \ + $(top_srcdir)/gl/m4/unistd_h.m4 $(top_srcdir)/gl/m4/unlink.m4 \ + $(top_srcdir)/gl/m4/unlinkat.m4 $(top_srcdir)/gl/m4/utime.m4 \ + $(top_srcdir)/gl/m4/utime_h.m4 $(top_srcdir)/gl/m4/utimens.m4 \ + $(top_srcdir)/gl/m4/utimes.m4 \ + $(top_srcdir)/gl/m4/vasnprintf.m4 \ + $(top_srcdir)/gl/m4/vasprintf.m4 \ + $(top_srcdir)/gl/m4/visibility.m4 \ + $(top_srcdir)/gl/m4/vsnprintf.m4 \ + $(top_srcdir)/gl/m4/warn-on-use.m4 \ + $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ + $(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wcrtomb.m4 \ + $(top_srcdir)/gl/m4/wctype_h.m4 $(top_srcdir)/gl/m4/wint_t.m4 \ + $(top_srcdir)/gl/m4/wmemchr.m4 $(top_srcdir)/gl/m4/wmempcpy.m4 \ + $(top_srcdir)/gl/m4/xalloc.m4 $(top_srcdir)/gl/m4/xgetcwd.m4 \ + $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \ + $(top_srcdir)/gl/m4/xvasprintf.m4 \ + $(top_srcdir)/gl/m4/year2038.m4 \ + $(top_srcdir)/gl/m4/zzgnulib.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(dist_noinst_DATA) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +DATA = $(dist_noinst_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in COPYING.LIB TODO +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALLOCA = @ALLOCA@ +ALLOCA_H = @ALLOCA_H@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ +AR = @AR@ +ARFLAGS = @ARFLAGS@ +ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ +BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ +BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ +BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ +BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ +CYGPATH_W = @CYGPATH_W@ +DBLIBS = @DBLIBS@ +DBTYPE = @DBTYPE@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ +EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ +ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ +ENOLINK_VALUE = @ENOLINK_VALUE@ +EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ +EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ +ERRNO_H = @ERRNO_H@ +ETAGS = @ETAGS@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FILECMD = @FILECMD@ +FLOAT_H = @FLOAT_H@ +FNMATCH_H = @FNMATCH_H@ +GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ +GETOPT_H = @GETOPT_H@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GLOB_H = @GLOB_H@ +GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ +GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ +GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ +GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ +GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ +GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ +GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ +GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ +GL_GNULIB_BIND = @GL_GNULIB_BIND@ +GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ +GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ +GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ +GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ +GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ +GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ +GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ +GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ +GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ +GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ +GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ +GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ +GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ +GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ +GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ +GL_GNULIB_DUP = @GL_GNULIB_DUP@ +GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ +GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ +GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ +GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ +GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ +GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ +GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ +GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ +GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ +GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ +GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ +GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ +GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ +GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ +GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ +GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ +GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ +GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ +GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ +GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ +GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ +GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ +GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ +GL_GNULIB_FFS = @GL_GNULIB_FFS@ +GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ +GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ +GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ +GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ +GL_GNULIB_FLOCK = @GL_GNULIB_FLOCK@ +GL_GNULIB_FNMATCH = @GL_GNULIB_FNMATCH@ +GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ +GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ +GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ +GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ +GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ +GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ +GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ +GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ +GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ +GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ +GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ +GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ +GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ +GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ +GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ +GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ +GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ +GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ +GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ +GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ +GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ +GL_GNULIB_GETC = @GL_GNULIB_GETC@ +GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ +GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ +GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ +GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ +GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ +GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ +GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ +GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ +GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ +GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ +GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ +GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ +GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ +GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ +GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ +GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ +GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ +GL_GNULIB_GETRANDOM = @GL_GNULIB_GETRANDOM@ +GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ +GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ +GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ +GL_GNULIB_GETTIMEOFDAY = @GL_GNULIB_GETTIMEOFDAY@ +GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ +GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ +GL_GNULIB_GLOB = @GL_GNULIB_GLOB@ +GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ +GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ +GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ +GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ +GL_GNULIB_IOCTL = @GL_GNULIB_IOCTL@ +GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ +GL_GNULIB_ISBLANK = @GL_GNULIB_ISBLANK@ +GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ +GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ +GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ +GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ +GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ +GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ +GL_GNULIB_LINK = @GL_GNULIB_LINK@ +GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ +GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ +GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ +GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ +GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ +GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ +GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ +GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ +GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ +GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ +GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ +GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ +GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ +GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ +GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ +GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ +GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ +GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ +GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ +GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ +GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ +GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ +GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ +GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ +GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ +GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ +GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ +GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ +GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ +GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ +GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ +GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ +GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ +GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ +GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ +GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ +GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ +GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ +GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ +GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ +GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ +GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ +GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ +GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ +GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ +GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ +GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ +GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ +GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ +GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ +GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ +GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ +GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ +GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ +GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ +GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ +GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ +GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ +GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ +GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ +GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ +GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ +GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ +GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ +GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ +GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ +GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ +GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ +GL_GNULIB_MDA_UTIME = @GL_GNULIB_MDA_UTIME@ +GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ +GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ +GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ +GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ +GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ +GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ +GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ +GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ +GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ +GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ +GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ +GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ +GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ +GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ +GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ +GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ +GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ +GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ +GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ +GL_GNULIB_NL_LANGINFO = @GL_GNULIB_NL_LANGINFO@ +GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ +GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ +GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ +GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ +GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ +GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ +GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ +GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ +GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ +GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ +GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ +GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ +GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ +GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ +GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ +GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ +GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ +GL_GNULIB_PSELECT = @GL_GNULIB_PSELECT@ +GL_GNULIB_PTHREAD_SIGMASK = @GL_GNULIB_PTHREAD_SIGMASK@ +GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ +GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ +GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ +GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ +GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ +GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ +GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ +GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ +GL_GNULIB_RAISE = @GL_GNULIB_RAISE@ +GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ +GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ +GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ +GL_GNULIB_READ = @GL_GNULIB_READ@ +GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ +GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ +GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ +GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ +GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ +GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ +GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ +GL_GNULIB_RECV = @GL_GNULIB_RECV@ +GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ +GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ +GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ +GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ +GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ +GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ +GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ +GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ +GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ +GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ +GL_GNULIB_SELECT = @GL_GNULIB_SELECT@ +GL_GNULIB_SEND = @GL_GNULIB_SEND@ +GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ +GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ +GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ +GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ +GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ +GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ +GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ +GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ +GL_GNULIB_SIGACTION = @GL_GNULIB_SIGACTION@ +GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ +GL_GNULIB_SIGNAL_H_SIGPIPE = @GL_GNULIB_SIGNAL_H_SIGPIPE@ +GL_GNULIB_SIGPROCMASK = @GL_GNULIB_SIGPROCMASK@ +GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ +GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ +GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ +GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ +GL_GNULIB_STAT = @GL_GNULIB_STAT@ +GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ +GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ +GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ +GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ +GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ +GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ +GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ +GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ +GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ +GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ +GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ +GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ +GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ +GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ +GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ +GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ +GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ +GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ +GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ +GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ +GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ +GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ +GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ +GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ +GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ +GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ +GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ +GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ +GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ +GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ +GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ +GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ +GL_GNULIB_TCGETSID = @GL_GNULIB_TCGETSID@ +GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ +GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ +GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ +GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ +GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ +GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ +GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ +GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ +GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ +GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ +GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ +GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ +GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ +GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ +GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ +GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ +GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ +GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ +GL_GNULIB_UTIME = @GL_GNULIB_UTIME@ +GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ +GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ +GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ +GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ +GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ +GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ +GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ +GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ +GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ +GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ +GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ +GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ +GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ +GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ +GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ +GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ +GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ +GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ +GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ +GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ +GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ +GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ +GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ +GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ +GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ +GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ +GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ +GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ +GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ +GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ +GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ +GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ +GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ +GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ +GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ +GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ +GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ +GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ +GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ +GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ +GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ +GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ +GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ +GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ +GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ +GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ +GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ +GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ +GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ +GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ +GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ +GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ +GREP = @GREP@ +HAVE_ACCEPT4 = @HAVE_ACCEPT4@ +HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ +HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ +HAVE_ALPHASORT = @HAVE_ALPHASORT@ +HAVE_ATOLL = @HAVE_ATOLL@ +HAVE_BTOWC = @HAVE_BTOWC@ +HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ +HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ +HAVE_CHOWN = @HAVE_CHOWN@ +HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ +HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ +HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ +HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ +HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ +HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ +HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ +HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ +HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ +HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ +HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ +HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ +HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ +HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ +HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ +HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ +HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ +HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ +HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ +HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ +HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ +HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ +HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ +HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ +HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ +HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ +HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ +HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ +HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ +HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ +HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ +HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ +HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ +HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ +HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ +HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ +HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ +HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ +HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ +HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ +HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ +HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ +HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ +HAVE_DECL_TCGETSID = @HAVE_DECL_TCGETSID@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ +HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ +HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ +HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ +HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ +HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ +HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ +HAVE_DIRENT_H = @HAVE_DIRENT_H@ +HAVE_DPRINTF = @HAVE_DPRINTF@ +HAVE_DUP3 = @HAVE_DUP3@ +HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ +HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ +HAVE_EXECVPE = @HAVE_EXECVPE@ +HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ +HAVE_FACCESSAT = @HAVE_FACCESSAT@ +HAVE_FCHDIR = @HAVE_FCHDIR@ +HAVE_FCHMODAT = @HAVE_FCHMODAT@ +HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ +HAVE_FCNTL = @HAVE_FCNTL@ +HAVE_FDATASYNC = @HAVE_FDATASYNC@ +HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ +HAVE_FEATURES_H = @HAVE_FEATURES_H@ +HAVE_FFS = @HAVE_FFS@ +HAVE_FFSL = @HAVE_FFSL@ +HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FLOCK = @HAVE_FLOCK@ +HAVE_FNMATCH = @HAVE_FNMATCH@ +HAVE_FNMATCH_H = @HAVE_FNMATCH_H@ +HAVE_FREELOCALE = @HAVE_FREELOCALE@ +HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FSTATAT = @HAVE_FSTATAT@ +HAVE_FSYNC = @HAVE_FSYNC@ +HAVE_FTELLO = @HAVE_FTELLO@ +HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_FUTIMENS = @HAVE_FUTIMENS@ +HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ +HAVE_GETENTROPY = @HAVE_GETENTROPY@ +HAVE_GETGROUPS = @HAVE_GETGROUPS@ +HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ +HAVE_GETLOGIN = @HAVE_GETLOGIN@ +HAVE_GETOPT_H = @HAVE_GETOPT_H@ +HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ +HAVE_GETRANDOM = @HAVE_GETRANDOM@ +HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ +HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ +HAVE_GETUMASK = @HAVE_GETUMASK@ +HAVE_GLOB = @HAVE_GLOB@ +HAVE_GLOB_H = @HAVE_GLOB_H@ +HAVE_GLOB_PATTERN_P = @HAVE_GLOB_PATTERN_P@ +HAVE_GRANTPT = @HAVE_GRANTPT@ +HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ +HAVE_INITSTATE = @HAVE_INITSTATE@ +HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ +HAVE_ISBLANK = @HAVE_ISBLANK@ +HAVE_ISWBLANK = @HAVE_ISWBLANK@ +HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ +HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ +HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ +HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ +HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ +HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ +HAVE_LCHMOD = @HAVE_LCHMOD@ +HAVE_LCHOWN = @HAVE_LCHOWN@ +HAVE_LINK = @HAVE_LINK@ +HAVE_LINKAT = @HAVE_LINKAT@ +HAVE_LSTAT = @HAVE_LSTAT@ +HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ +HAVE_MBRLEN = @HAVE_MBRLEN@ +HAVE_MBRTOWC = @HAVE_MBRTOWC@ +HAVE_MBSINIT = @HAVE_MBSINIT@ +HAVE_MBSLEN = @HAVE_MBSLEN@ +HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ +HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ +HAVE_MBTOWC = @HAVE_MBTOWC@ +HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MKDIRAT = @HAVE_MKDIRAT@ +HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_MKFIFO = @HAVE_MKFIFO@ +HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ +HAVE_MKNOD = @HAVE_MKNOD@ +HAVE_MKNODAT = @HAVE_MKNODAT@ +HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ +HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ +HAVE_MKSTEMP = @HAVE_MKSTEMP@ +HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ +HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ +HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ +HAVE_OPENAT = @HAVE_OPENAT@ +HAVE_OPENDIR = @HAVE_OPENDIR@ +HAVE_OS_H = @HAVE_OS_H@ +HAVE_PCLOSE = @HAVE_PCLOSE@ +HAVE_PIPE = @HAVE_PIPE@ +HAVE_PIPE2 = @HAVE_PIPE2@ +HAVE_POPEN = @HAVE_POPEN@ +HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ +HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ +HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ +HAVE_PREAD = @HAVE_PREAD@ +HAVE_PSELECT = @HAVE_PSELECT@ +HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ +HAVE_PTSNAME = @HAVE_PTSNAME@ +HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ +HAVE_PWRITE = @HAVE_PWRITE@ +HAVE_QSORT_R = @HAVE_QSORT_R@ +HAVE_RAISE = @HAVE_RAISE@ +HAVE_RANDOM = @HAVE_RANDOM@ +HAVE_RANDOM_H = @HAVE_RANDOM_H@ +HAVE_RANDOM_R = @HAVE_RANDOM_R@ +HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ +HAVE_READDIR = @HAVE_READDIR@ +HAVE_READLINK = @HAVE_READLINK@ +HAVE_READLINKAT = @HAVE_READLINKAT@ +HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ +HAVE_REALPATH = @HAVE_REALPATH@ +HAVE_RENAMEAT = @HAVE_RENAMEAT@ +HAVE_REWINDDIR = @HAVE_REWINDDIR@ +HAVE_RPMATCH = @HAVE_RPMATCH@ +HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ +HAVE_SCANDIR = @HAVE_SCANDIR@ +HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ +HAVE_SETENV = @HAVE_SETENV@ +HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ +HAVE_SETSTATE = @HAVE_SETSTATE@ +HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ +HAVE_SIGACTION = @HAVE_SIGACTION@ +HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ +HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ +HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ +HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ +HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ +HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ +HAVE_SIGSET_T = @HAVE_SIGSET_T@ +HAVE_SLEEP = @HAVE_SLEEP@ +HAVE_STDINT_H = @HAVE_STDINT_H@ +HAVE_STPCPY = @HAVE_STPCPY@ +HAVE_STPNCPY = @HAVE_STPNCPY@ +HAVE_STRCASECMP = @HAVE_STRCASECMP@ +HAVE_STRCASESTR = @HAVE_STRCASESTR@ +HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ +HAVE_STRINGS_H = @HAVE_STRINGS_H@ +HAVE_STRPBRK = @HAVE_STRPBRK@ +HAVE_STRPTIME = @HAVE_STRPTIME@ +HAVE_STRSEP = @HAVE_STRSEP@ +HAVE_STRTOD = @HAVE_STRTOD@ +HAVE_STRTOL = @HAVE_STRTOL@ +HAVE_STRTOLD = @HAVE_STRTOLD@ +HAVE_STRTOLL = @HAVE_STRTOLL@ +HAVE_STRTOUL = @HAVE_STRTOUL@ +HAVE_STRTOULL = @HAVE_STRTOULL@ +HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ +HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ +HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ +HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ +HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ +HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ +HAVE_SYMLINK = @HAVE_SYMLINK@ +HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ +HAVE_SYSEXITS_H = @HAVE_SYSEXITS_H@ +HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ +HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ +HAVE_SYS_FILE_H = @HAVE_SYS_FILE_H@ +HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ +HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ +HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ +HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ +HAVE_SYS_RANDOM_H = @HAVE_SYS_RANDOM_H@ +HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ +HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ +HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ +HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ +HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ +HAVE_TERMIOS_H = @HAVE_TERMIOS_H@ +HAVE_TIMEGM = @HAVE_TIMEGM@ +HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ +HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ +HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ +HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ +HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNLINKAT = @HAVE_UNLINKAT@ +HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ +HAVE_USLEEP = @HAVE_USLEEP@ +HAVE_UTIME = @HAVE_UTIME@ +HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ +HAVE_UTIME_H = @HAVE_UTIME_H@ +HAVE_VASPRINTF = @HAVE_VASPRINTF@ +HAVE_VDPRINTF = @HAVE_VDPRINTF@ +HAVE_VISIBILITY = @HAVE_VISIBILITY@ +HAVE_WCHAR_H = @HAVE_WCHAR_H@ +HAVE_WCHAR_T = @HAVE_WCHAR_T@ +HAVE_WCPCPY = @HAVE_WCPCPY@ +HAVE_WCPNCPY = @HAVE_WCPNCPY@ +HAVE_WCRTOMB = @HAVE_WCRTOMB@ +HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ +HAVE_WCSCAT = @HAVE_WCSCAT@ +HAVE_WCSCHR = @HAVE_WCSCHR@ +HAVE_WCSCMP = @HAVE_WCSCMP@ +HAVE_WCSCOLL = @HAVE_WCSCOLL@ +HAVE_WCSCPY = @HAVE_WCSCPY@ +HAVE_WCSCSPN = @HAVE_WCSCSPN@ +HAVE_WCSDUP = @HAVE_WCSDUP@ +HAVE_WCSFTIME = @HAVE_WCSFTIME@ +HAVE_WCSLEN = @HAVE_WCSLEN@ +HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ +HAVE_WCSNCAT = @HAVE_WCSNCAT@ +HAVE_WCSNCMP = @HAVE_WCSNCMP@ +HAVE_WCSNCPY = @HAVE_WCSNCPY@ +HAVE_WCSNLEN = @HAVE_WCSNLEN@ +HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ +HAVE_WCSPBRK = @HAVE_WCSPBRK@ +HAVE_WCSRCHR = @HAVE_WCSRCHR@ +HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ +HAVE_WCSSPN = @HAVE_WCSSPN@ +HAVE_WCSSTR = @HAVE_WCSSTR@ +HAVE_WCSTOK = @HAVE_WCSTOK@ +HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ +HAVE_WCSXFRM = @HAVE_WCSXFRM@ +HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ +HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ +HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ +HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ +HAVE_WINT_T = @HAVE_WINT_T@ +HAVE_WMEMCHR = @HAVE_WMEMCHR@ +HAVE_WMEMCMP = @HAVE_WMEMCMP@ +HAVE_WMEMCPY = @HAVE_WMEMCPY@ +HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ +HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ +HAVE_WMEMSET = @HAVE_WMEMSET@ +HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ +HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ +HAVE__BOOL = @HAVE__BOOL@ +HAVE__EXIT = @HAVE__EXIT@ +IGNORE_UNUSED_LIBRARIES_CFLAGS = @IGNORE_UNUSED_LIBRARIES_CFLAGS@ +INCLUDE_NEXT = @INCLUDE_NEXT@ +INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ +INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBCOMPRESS = @LIBCOMPRESS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBMAN_EXPORT_LDFLAGS = @LIBMAN_EXPORT_LDFLAGS@ +LIBMULTITHREAD = @LIBMULTITHREAD@ +LIBOBJS = @LIBOBJS@ +LIBPMULTITHREAD = @LIBPMULTITHREAD@ +LIBPTHREAD = @LIBPTHREAD@ +LIBS = @LIBS@ +LIBSOCKET = @LIBSOCKET@ +LIBSTDTHREAD = @LIBSTDTHREAD@ +LIBTHREAD = @LIBTHREAD@ +LIBTOOL = @LIBTOOL@ +LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_GETLOGIN = @LIB_GETLOGIN@ +LIB_GETRANDOM = @LIB_GETRANDOM@ +LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ +LIB_MBRTOWC = @LIB_MBRTOWC@ +LIB_NANOSLEEP = @LIB_NANOSLEEP@ +LIB_NL_LANGINFO = @LIB_NL_LANGINFO@ +LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ +LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ +LIB_SELECT = @LIB_SELECT@ +LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ +LIMITS_H = @LIMITS_H@ +LINGUAS = @LINGUAS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ +LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ +LOCALE_FR = @LOCALE_FR@ +LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ +LOCALE_JA = @LOCALE_JA@ +LOCALE_ZH_CN = @LOCALE_ZH_CN@ +LTALLOCA = @LTALLOCA@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ +LTLIBOBJS = @LTLIBOBJS@ +LTLIBTHREAD = @LTLIBTHREAD@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANDIR_LAYOUT = @MANDIR_LAYOUT@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MAN_SUBDIRS = @MAN_SUBDIRS@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ +NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ +NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ +NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ +NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ +NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H@ +NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ +NEXT_AS_FIRST_DIRECTIVE_GLOB_H = @NEXT_AS_FIRST_DIRECTIVE_GLOB_H@ +NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ +NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ +NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ +NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ +NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ +NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ +NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ +NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ +NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ +NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H = @NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_FILE_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_FILE_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ +NEXT_AS_FIRST_DIRECTIVE_TERMIOS_H = @NEXT_AS_FIRST_DIRECTIVE_TERMIOS_H@ +NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ +NEXT_AS_FIRST_DIRECTIVE_UTIME_H = @NEXT_AS_FIRST_DIRECTIVE_UTIME_H@ +NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ +NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ +NEXT_CTYPE_H = @NEXT_CTYPE_H@ +NEXT_DIRENT_H = @NEXT_DIRENT_H@ +NEXT_ERRNO_H = @NEXT_ERRNO_H@ +NEXT_FCNTL_H = @NEXT_FCNTL_H@ +NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_FNMATCH_H = @NEXT_FNMATCH_H@ +NEXT_GETOPT_H = @NEXT_GETOPT_H@ +NEXT_GLOB_H = @NEXT_GLOB_H@ +NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ +NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ +NEXT_LIMITS_H = @NEXT_LIMITS_H@ +NEXT_LOCALE_H = @NEXT_LOCALE_H@ +NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ +NEXT_STDARG_H = @NEXT_STDARG_H@ +NEXT_STDDEF_H = @NEXT_STDDEF_H@ +NEXT_STDINT_H = @NEXT_STDINT_H@ +NEXT_STDIO_H = @NEXT_STDIO_H@ +NEXT_STDLIB_H = @NEXT_STDLIB_H@ +NEXT_STRINGS_H = @NEXT_STRINGS_H@ +NEXT_STRING_H = @NEXT_STRING_H@ +NEXT_SYSEXITS_H = @NEXT_SYSEXITS_H@ +NEXT_SYS_FILE_H = @NEXT_SYS_FILE_H@ +NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ +NEXT_SYS_RANDOM_H = @NEXT_SYS_RANDOM_H@ +NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ +NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ +NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ +NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ +NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ +NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ +NEXT_TERMIOS_H = @NEXT_TERMIOS_H@ +NEXT_TIME_H = @NEXT_TIME_H@ +NEXT_UNISTD_H = @NEXT_UNISTD_H@ +NEXT_UTIME_H = @NEXT_UTIME_H@ +NEXT_WCHAR_H = @NEXT_WCHAR_H@ +NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PO4A = @PO4A@ +POSUB = @POSUB@ +PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ +PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ +PRIPTR_PREFIX = @PRIPTR_PREFIX@ +PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ +PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ +RANLIB = @RANLIB@ +REPLACE_ACCESS = @REPLACE_ACCESS@ +REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ +REPLACE_BTOWC = @REPLACE_BTOWC@ +REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ +REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ +REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ +REPLACE_CHMOD = @REPLACE_CHMOD@ +REPLACE_CHOWN = @REPLACE_CHOWN@ +REPLACE_CLOSE = @REPLACE_CLOSE@ +REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ +REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ +REPLACE_CREAT = @REPLACE_CREAT@ +REPLACE_CTIME = @REPLACE_CTIME@ +REPLACE_DIRFD = @REPLACE_DIRFD@ +REPLACE_DPRINTF = @REPLACE_DPRINTF@ +REPLACE_DUP = @REPLACE_DUP@ +REPLACE_DUP2 = @REPLACE_DUP2@ +REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ +REPLACE_EXECL = @REPLACE_EXECL@ +REPLACE_EXECLE = @REPLACE_EXECLE@ +REPLACE_EXECLP = @REPLACE_EXECLP@ +REPLACE_EXECV = @REPLACE_EXECV@ +REPLACE_EXECVE = @REPLACE_EXECVE@ +REPLACE_EXECVP = @REPLACE_EXECVP@ +REPLACE_EXECVPE = @REPLACE_EXECVPE@ +REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ +REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ +REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ +REPLACE_FCLOSE = @REPLACE_FCLOSE@ +REPLACE_FCNTL = @REPLACE_FCNTL@ +REPLACE_FDOPEN = @REPLACE_FDOPEN@ +REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ +REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FFSLL = @REPLACE_FFSLL@ +REPLACE_FNMATCH = @REPLACE_FNMATCH@ +REPLACE_FOPEN = @REPLACE_FOPEN@ +REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ +REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREE = @REPLACE_FREE@ +REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ +REPLACE_FREOPEN = @REPLACE_FREOPEN@ +REPLACE_FSEEK = @REPLACE_FSEEK@ +REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FSTAT = @REPLACE_FSTAT@ +REPLACE_FSTATAT = @REPLACE_FSTATAT@ +REPLACE_FTELL = @REPLACE_FTELL@ +REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ +REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ +REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETDELIM = @REPLACE_GETDELIM@ +REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ +REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ +REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ +REPLACE_GETLINE = @REPLACE_GETLINE@ +REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ +REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ +REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ +REPLACE_GETRANDOM = @REPLACE_GETRANDOM@ +REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ +REPLACE_GLOB = @REPLACE_GLOB@ +REPLACE_GLOB_PATTERN_P = @REPLACE_GLOB_PATTERN_P@ +REPLACE_GMTIME = @REPLACE_GMTIME@ +REPLACE_INITSTATE = @REPLACE_INITSTATE@ +REPLACE_IOCTL = @REPLACE_IOCTL@ +REPLACE_ISATTY = @REPLACE_ISATTY@ +REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ +REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ +REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ +REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ +REPLACE_ITOLD = @REPLACE_ITOLD@ +REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LINK = @REPLACE_LINK@ +REPLACE_LINKAT = @REPLACE_LINKAT@ +REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ +REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ +REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ +REPLACE_LSEEK = @REPLACE_LSEEK@ +REPLACE_LSTAT = @REPLACE_LSTAT@ +REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ +REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ +REPLACE_MBRLEN = @REPLACE_MBRLEN@ +REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ +REPLACE_MBSINIT = @REPLACE_MBSINIT@ +REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ +REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ +REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ +REPLACE_MBTOWC = @REPLACE_MBTOWC@ +REPLACE_MEMCHR = @REPLACE_MEMCHR@ +REPLACE_MEMMEM = @REPLACE_MEMMEM@ +REPLACE_MKDIR = @REPLACE_MKDIR@ +REPLACE_MKFIFO = @REPLACE_MKFIFO@ +REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ +REPLACE_MKNOD = @REPLACE_MKNOD@ +REPLACE_MKNODAT = @REPLACE_MKNODAT@ +REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_MKTIME = @REPLACE_MKTIME@ +REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ +REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ +REPLACE_NULL = @REPLACE_NULL@ +REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ +REPLACE_OPEN = @REPLACE_OPEN@ +REPLACE_OPENAT = @REPLACE_OPENAT@ +REPLACE_OPENDIR = @REPLACE_OPENDIR@ +REPLACE_PERROR = @REPLACE_PERROR@ +REPLACE_POPEN = @REPLACE_POPEN@ +REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ +REPLACE_PREAD = @REPLACE_PREAD@ +REPLACE_PRINTF = @REPLACE_PRINTF@ +REPLACE_PSELECT = @REPLACE_PSELECT@ +REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ +REPLACE_PTSNAME = @REPLACE_PTSNAME@ +REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ +REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_PWRITE = @REPLACE_PWRITE@ +REPLACE_QSORT_R = @REPLACE_QSORT_R@ +REPLACE_RAISE = @REPLACE_RAISE@ +REPLACE_RANDOM = @REPLACE_RANDOM@ +REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ +REPLACE_READ = @REPLACE_READ@ +REPLACE_READLINK = @REPLACE_READLINK@ +REPLACE_READLINKAT = @REPLACE_READLINKAT@ +REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ +REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ +REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ +REPLACE_REALPATH = @REPLACE_REALPATH@ +REPLACE_REMOVE = @REPLACE_REMOVE@ +REPLACE_RENAME = @REPLACE_RENAME@ +REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ +REPLACE_RMDIR = @REPLACE_RMDIR@ +REPLACE_SELECT = @REPLACE_SELECT@ +REPLACE_SETENV = @REPLACE_SETENV@ +REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ +REPLACE_SETSTATE = @REPLACE_SETSTATE@ +REPLACE_SLEEP = @REPLACE_SLEEP@ +REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ +REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STAT = @REPLACE_STAT@ +REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ +REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ +REPLACE_STPNCPY = @REPLACE_STPNCPY@ +REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ +REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ +REPLACE_STRDUP = @REPLACE_STRDUP@ +REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ +REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ +REPLACE_STRFTIME = @REPLACE_STRFTIME@ +REPLACE_STRNCAT = @REPLACE_STRNCAT@ +REPLACE_STRNDUP = @REPLACE_STRNDUP@ +REPLACE_STRNLEN = @REPLACE_STRNLEN@ +REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ +REPLACE_STRSTR = @REPLACE_STRSTR@ +REPLACE_STRTOD = @REPLACE_STRTOD@ +REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ +REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_STRTOL = @REPLACE_STRTOL@ +REPLACE_STRTOLD = @REPLACE_STRTOLD@ +REPLACE_STRTOLL = @REPLACE_STRTOLL@ +REPLACE_STRTOUL = @REPLACE_STRTOUL@ +REPLACE_STRTOULL = @REPLACE_STRTOULL@ +REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ +REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ +REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ +REPLACE_SYMLINK = @REPLACE_SYMLINK@ +REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ +REPLACE_TIMEGM = @REPLACE_TIMEGM@ +REPLACE_TMPFILE = @REPLACE_TMPFILE@ +REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ +REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ +REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ +REPLACE_TZSET = @REPLACE_TZSET@ +REPLACE_UNLINK = @REPLACE_UNLINK@ +REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ +REPLACE_UNSETENV = @REPLACE_UNSETENV@ +REPLACE_USLEEP = @REPLACE_USLEEP@ +REPLACE_UTIME = @REPLACE_UTIME@ +REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ +REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ +REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ +REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ +REPLACE_VPRINTF = @REPLACE_VPRINTF@ +REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ +REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ +REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ +REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ +REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ +REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ +REPLACE_WCSTOK = @REPLACE_WCSTOK@ +REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ +REPLACE_WCTOB = @REPLACE_WCTOB@ +REPLACE_WCTOMB = @REPLACE_WCTOMB@ +REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ +REPLACE_WRITE = @REPLACE_WRITE@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ +SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ +STDALIGN_H = @STDALIGN_H@ +STDARG_H = @STDARG_H@ +STDBOOL_H = @STDBOOL_H@ +STDDEF_H = @STDDEF_H@ +STDINT_H = @STDINT_H@ +STRIP = @STRIP@ +SYSEXITS_H = @SYSEXITS_H@ +SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ +SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ +SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ +TBL_X_FORMAT = @TBL_X_FORMAT@ +TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ +TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ +TRANS_APROPOS = @TRANS_APROPOS@ +TRANS_APROPOS_UPPER = @TRANS_APROPOS_UPPER@ +TRANS_CATMAN = @TRANS_CATMAN@ +TRANS_CATMAN_UPPER = @TRANS_CATMAN_UPPER@ +TRANS_LEXGROG = @TRANS_LEXGROG@ +TRANS_LEXGROG_UPPER = @TRANS_LEXGROG_UPPER@ +TRANS_MAN = @TRANS_MAN@ +TRANS_MANCONV = @TRANS_MANCONV@ +TRANS_MANCONV_UPPER = @TRANS_MANCONV_UPPER@ +TRANS_MANDB = @TRANS_MANDB@ +TRANS_MANDB_UPPER = @TRANS_MANDB_UPPER@ +TRANS_MANPATH = @TRANS_MANPATH@ +TRANS_MANPATH_UPPER = @TRANS_MANPATH_UPPER@ +TRANS_MAN_RECODE = @TRANS_MAN_RECODE@ +TRANS_MAN_RECODE_UPPER = @TRANS_MAN_RECODE_UPPER@ +TRANS_MAN_UPPER = @TRANS_MAN_UPPER@ +TRANS_WHATIS = @TRANS_WHATIS@ +TRANS_WHATIS_UPPER = @TRANS_WHATIS_UPPER@ +TRANS_ZSOELIM = @TRANS_ZSOELIM@ +TRANS_ZSOELIM_UPPER = @TRANS_ZSOELIM_UPPER@ +TROFF = @TROFF@ +UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ +UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ +UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ +UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ +UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ +UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ +UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ +WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ +WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ +WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ +WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ +WINT_T_SUFFIX = @WINT_T_SUFFIX@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +browser = @browser@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +bzip2 = @bzip2@ +cache_top_owner = @cache_top_owner@ +cat = @cat@ +col = @col@ +compress = @compress@ +compressor = @compressor@ +config_file = @config_file@ +config_file_basename = @config_file_basename@ +config_file_dirname = @config_file_dirname@ +datadir = @datadir@ +datarootdir = @datarootdir@ +date = @date@ +docdir = @docdir@ +dvidir = @dvidir@ +eqn = @eqn@ +exec_prefix = @exec_prefix@ +gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ +gl_LIBOBJS = @gl_LIBOBJS@ +gl_LTLIBOBJS = @gl_LTLIBOBJS@ +gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ +gltests_LIBOBJS = @gltests_LIBOBJS@ +gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ +gltests_WITNESS = @gltests_WITNESS@ +grap = @grap@ +grep = @grep@ +gzip = @gzip@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libpipeline_CFLAGS = @libpipeline_CFLAGS@ +libpipeline_LIBS = @libpipeline_LIBS@ +libseccomp_CFLAGS = @libseccomp_CFLAGS@ +libseccomp_LIBS = @libseccomp_LIBS@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lzip = @lzip@ +lzma = @lzma@ +man_mode = @man_mode@ +man_owner = @man_owner@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +neqn = @neqn@ +nroff = @nroff@ +oldincludedir = @oldincludedir@ +override_dir = @override_dir@ +pager = @pager@ +pdfdir = @pdfdir@ +pic = @pic@ +preconv = @preconv@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +refer = @refer@ +roff_version = @roff_version@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sections = @sections@ +sharedstatedir = @sharedstatedir@ +snapdir = @snapdir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +systemdsystemunitdir = @systemdsystemunitdir@ +systemdtmpfilesdir = @systemdtmpfilesdir@ +target_alias = @target_alias@ +tbl = @tbl@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +tr = @tr@ +troff = @troff@ +troff_as_troff_input = @troff_as_troff_input@ +troff_is_groff = @troff_is_groff@ +vgrind = @vgrind@ +xz = @xz@ +zstd = @zstd@ +dist_noinst_DATA = \ + COPYING.GPLv2 \ + COPYING.LIB \ + HACKING.md \ + TODO \ + manpage.example \ + manpage.example.mdoc \ + manpage.example.pod \ + manpage.example.sgml + +EXTRA_DIST = \ + INSTALL.autoconf \ + INSTALL.quick + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign docs/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign docs/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/docs/TODO b/docs/TODO new file mode 100644 index 0000000..19fae14 --- /dev/null +++ b/docs/TODO @@ -0,0 +1,20 @@ +In progress: + +* store .so link in the db. +* reduce wasted/duplicated text stored within the databases. + 10-20% database size reduction so far. +* pipeline library: + - make COMMAND_FUNCTION child reentrant, so it doesn't have to be a + subprocess; will save lots of forks of zlib children in mandb + +In need of attention: + +* clear up the use of troff and/or groff +* complete configuration file redesign to allow better dynamic determination + of programs/paths/extensions etc. +* multiple debug levels? + +Case-insensitive lookup transition: + +* Solaris layout is broken. +* Need to make sure pointers trigger an exact-case lookup [done for whatis]. diff --git a/docs/manpage.example b/docs/manpage.example new file mode 100644 index 0000000..8a9d22e --- /dev/null +++ b/docs/manpage.example @@ -0,0 +1,114 @@ +.\" In .TH, FOO should be all caps, SECTION should be 1-8, maybe w/ subsection +.\" other parms are allowed: see man(7), man(1) +.\" +.\" This template provided by Tom Christiansen . +.\" +.TH FOO SECTION +.SH NAME +foo, bar \- programs to do something +.SH SYNOPSIS +A short usage summary. +.PP +.B foo +{ +.BR this | that +} +[ +.B -flags +] +[ +.B \-o +.I option +] +.I argument +[ +.I more... +] +.SH DESCRIPTION +.\" Putting a newline after each sentence can generate better output. +Long drawn-out discussion of the program. +It's a good idea to break this up into subsections using the .SS macro, +like these: +.SS "A Sample Subsection" +.SS "Yet Another Sample Subsection" +References to the +.BR foo (SECTION) +(or other) manual page should use the .BR macro as here. +.PP +Use the .PP macro to start a new paragraph within a section. +.SH OPTIONS +Some people make this separate from the description. +The following style is typically used to document options: +.TP +.BR this | that +The user MUST specify either +.B this +or +.B that +to run the program. +The { and } braces mean one of the enclosed is required. +The bar (|) separates exclusive options (i.e. you cannot have both at once). +.TP +.B \-o +Pass the user-supplied +.I option +to +.B foo +to change its behaviour. +The fact that +.I option +is underlined or in italics means that the user replaces it with a valid +value for this option. +The [ and ] brackets mean it isn't required. +.IP +Use \(oq\e-\(cq rather than \(oq-\(cq for dashes in command-line options. +\(oq-\(cq means hyphen, and formats differently when using certain output +devices. +.TP +.I argument +The last +.I argument +is required, because it is not in brackets. +.TP +.I more +means that the user can optionally specify additional arguments at the end. +The ellipses (...) indicate one or more of this parameter is allowed. +.SH "RETURN VALUE" +What the program or function returns if successful. +.SH ERRORS +Return codes, either exit status or errno settings. +.SH EXAMPLES +Give some example uses of the program. +.SH ENVIRONMENT +Environment variables this program might care about. +.SH FILES +All files used by the program. +Typical usage is like this: +.br +.nf +.\" set tabstop to longest possible filename, plus a wee bit +.ta \w'/usr/lib/perl/getopts.pl 'u +\fI/usr/man\fR default man tree +\fI/usr/man/man*/*.*\fR unformatted (nroff source) man pages +.SH NOTES +Miscellaneous commentary. +.SH CAVEATS +Things to take special care with, sometimes called WARNINGS. +.SH DIAGNOSTICS +All the possible error messages the program can print out, +what they mean, and how to correct them if applicable. +.SH BUGS +Things that are broken or just don't work quite right. +.SH RESTRICTIONS +Bugs you don't plan to fix. :-) +.SH AUTHOR +Who wrote it (or AUTHORS if multiple). +.SH HISTORY +Programs derived from other sources sometimes have this. +.SH "SEE ALSO" +.\" Always quote multiple words for .SH +Other man pages to check out, like +.BR man (1), +.BR man (7), +.BR mandb (8), +.BR catman (8). diff --git a/docs/manpage.example.mdoc b/docs/manpage.example.mdoc new file mode 100644 index 0000000..b10fee7 --- /dev/null +++ b/docs/manpage.example.mdoc @@ -0,0 +1,134 @@ +.\" -mdoc is a groff macro package supporting logical formatting. The author +.\" of this example considers it the best package available in groff for +.\" writing manual pages. If you're used to the traditional Unix -man +.\" macros, give this a try; it doesn't take long to learn. groff_mdoc(7) is +.\" a complete reference manual. +.\" +.\" Many of the macros below stack, so ".Op Ar foo" means an optional +.\" argument called "foo", while ".Ar foo" means an argument called "foo". +.\" Where you see things like ".Ql .Fl" below, the second dot causes ".Fl" +.\" to be interpreted as ordinary text rather than calling the .Fl macro. +.Dd June 4, 2005 +.Os FooOS +.Dt FOO 1 +.Sh NAME +.Nm foo +.Nd program to do something +.Sh SYNOPSIS +A short usage summary. +.Pp +.Nm +.Brq Cm this | Cm that +.Op Fl flags +.Op Fl o Ar option +.Ar argument +.\" Punctuation is treated specially by -mdoc, and often gets pushed up +.\" against whatever precedes it without the special formatting, so having +.\" an underlined argument immediately followed by a normal comma is easy. +.\" If you want to make sure this special handling isn't applied, put a +.\" zero-width space, \&, before the punctuation. +.Op Ar more \&... +.Sh DESCRIPTION +.\" Putting a newline after each sentence generates better output. +Long drawn-out discussion of the program. +It's a good idea to break this up into subsections using the +.Ql .Ss +macro, like these: +.Ss A Sample Subsection +.Ss Yet Another Sample Subsection +.Pp +References to the +.Xr foo SECTION +(or other) manual page should use the +.Ql .Xr +macro as here. +References to the +.Sx OPTIONS +(or other) section within this manual page should use the +.Ql .Sx +macro as here. +.Pp +Use the +.Ql .Pp +macro to start a new paragraph within a section. +.Sh OPTIONS +Some people make this separate from the description. +The following list style is typically used to document options: +.Bl -tag -width 4n +.It Cm this | Cm that +The user MUST specify either +.Cm this +or +.Cm that +to run the program. +The { and } braces (using the +.Ql .Brq +macro) mean one of the enclosed is required. +The bar (|) separates exclusive options (i.e. you cannot have both at once). +.It Fl o +Pass the user-supplied +.Ar option +to +.Nm +to change its behaviour. +The fact that +.Ar option +is underlined or in italics means that the user replaces it with a valid +value for this option. +The [ and ] brackets (using the +.Ql .Op +macro) mean it isn't required. +.Pp +Use the +.Ql .Fl +macro to render dashes in command-line option. +.It Ar argument +The last +.Ar argument +is required, because it is not in brackets. +.It Ar more +means that the user can optionally specify additional arguments at the end. +The ellipses +.Pf ( Ar ... ) +indicate one or more of this parameter is allowed. +.\" Remember to close lists you open with .Bl. +.El +.Sh RETURN VALUE +What the program or function returns if successful. +.Sh ERRORS +Return codes, either exit status or errno settings. +.Sh EXAMPLES +Give some example uses of the program. +.Sh ENVIRONMENT +Environment variables this program might care about. +.Sh FILES +All files used by the program. +Typical usage is like this: +.Pp +.Bl -tag -width "/usr/man/man*/*.*" -compact +.It Pa /usr/man +default man tree +.It Pa /usr/man/man*/*.* +unformatted (nroff source) man pages +.El +.Sh NOTES +Miscellaneous commentary. +.Sh CAVEATS +Things to take special care with, sometimes called WARNINGS. +.Sh DIAGNOSTICS +All the possible error messages the program can print out, +what they mean, and how to correct them if applicable. +.Sh BUGS +Things that are broken or just don't work quite right. +.Sh RESTRICTIONS +Bugs you don't plan to fix. :-) +.Sh AUTHOR +Who wrote it (or AUTHORS if multiple). +.Sh HISTORY +Programs derived from other sources sometimes have this. +.Sh SEE ALSO +Other man pages to check out, like +.Xr man 1 , +.Xr man 7 , +.Xr mandb 8 , +.Xr catman 8 . diff --git a/docs/manpage.example.pod b/docs/manpage.example.pod new file mode 100644 index 0000000..7c62de7 --- /dev/null +++ b/docs/manpage.example.pod @@ -0,0 +1,126 @@ +=head1 NAME + +foo, bar - programs to do something + +=head1 SYNOPSIS + +A short usage summary. + +B { B|B } [ B<-flags> ] [ B<-o> I