No specific user configuration
[platform/upstream/bash.git] / aclocal.m4
1 dnl
2 dnl Bash specific tests
3 dnl
4 dnl Some derived from PDKSH 5.1.3 autoconf tests
5 dnl
6
7 AC_DEFUN(BASH_C_LONG_LONG,
8 [AC_CACHE_CHECK(for long long, ac_cv_c_long_long,
9 [if test "$GCC" = yes; then
10   ac_cv_c_long_long=yes
11 else
12 AC_TRY_RUN([
13 int
14 main()
15 {
16 long long foo = 0;
17 exit(sizeof(long long) < sizeof(long));
18 }
19 ], ac_cv_c_long_long=yes, ac_cv_c_long_long=no)
20 fi])
21 if test $ac_cv_c_long_long = yes; then
22   AC_DEFINE(HAVE_LONG_LONG, 1, [Define if the `long long' type works.])
23 fi
24 ])
25
26 dnl
27 dnl This is very similar to AC_C_LONG_DOUBLE, with the fix for IRIX
28 dnl (< changed to <=) added.
29 dnl
30 AC_DEFUN(BASH_C_LONG_DOUBLE,
31 [AC_CACHE_CHECK(for long double, ac_cv_c_long_double,
32 [if test "$GCC" = yes; then
33   ac_cv_c_long_double=yes
34 else
35 AC_TRY_RUN([
36 int
37 main()
38 {
39   /* The Stardent Vistra knows sizeof(long double), but does not
40      support it. */
41   long double foo = 0.0;
42   /* On Ultrix 4.3 cc, long double is 4 and double is 8.  */
43   /* On IRIX 5.3, the compiler converts long double to double with a warning,
44      but compiles this successfully. */
45   exit(sizeof(long double) <= sizeof(double));
46 }
47 ], ac_cv_c_long_double=yes, ac_cv_c_long_double=no)
48 fi])
49 if test $ac_cv_c_long_double = yes; then
50   AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if the `long double' type works.])
51 fi
52 ])
53
54 dnl
55 dnl Check for <inttypes.h>.  This is separated out so that it can be
56 dnl AC_REQUIREd.
57 dnl
58 dnl BASH_HEADER_INTTYPES
59 AC_DEFUN(BASH_HEADER_INTTYPES,
60 [
61  AC_CHECK_HEADERS(inttypes.h)
62 ])
63
64 dnl
65 dnl check for typedef'd symbols in header files, but allow the caller to
66 dnl specify the include files to be checked in addition to the default
67 dnl 
68 dnl BASH_CHECK_TYPE(TYPE, HEADERS, DEFAULT[, VALUE-IF-FOUND])
69 AC_DEFUN(BASH_CHECK_TYPE,
70 [
71 AC_REQUIRE([AC_HEADER_STDC])dnl
72 AC_REQUIRE([BASH_HEADER_INTTYPES])
73 AC_MSG_CHECKING(for $1)
74 AC_CACHE_VAL(bash_cv_type_$1,
75 [AC_EGREP_CPP($1, [#include <sys/types.h>
76 #if STDC_HEADERS
77 #include <stdlib.h>
78 #include <stddef.h>
79 #endif
80 #if HAVE_INTTYPES_H
81 #include <inttypes.h>
82 #endif
83 #if HAVE_STDINT_H
84 #include <stdint.h>
85 #endif
86 $2
87 ], bash_cv_type_$1=yes, bash_cv_type_$1=no)])
88 AC_MSG_RESULT($bash_cv_type_$1)
89 ifelse($#, 4, [if test $bash_cv_type_$1 = yes; then
90         AC_DEFINE($4)
91         fi])
92 if test $bash_cv_type_$1 = no; then
93   AC_DEFINE_UNQUOTED($1, $3)
94 fi
95 ])
96
97 dnl
98 dnl BASH_CHECK_DECL(FUNC)
99 dnl
100 dnl Check for a declaration of FUNC in stdlib.h and inttypes.h like
101 dnl AC_CHECK_DECL
102 dnl
103 AC_DEFUN(BASH_CHECK_DECL,
104 [
105 AC_REQUIRE([AC_HEADER_STDC])
106 AC_REQUIRE([BASH_HEADER_INTTYPES])
107 AC_CACHE_CHECK([for declaration of $1], bash_cv_decl_$1,
108 [AC_TRY_LINK(
109 [
110 #if STDC_HEADERS
111 #  include <stdlib.h>
112 #endif
113 #if HAVE_INTTYPES_H
114 #  include <inttypes.h>
115 #endif
116 ],
117 [return !$1;],
118 bash_cv_decl_$1=yes, bash_cv_decl_$1=no)])
119 bash_tr_func=HAVE_DECL_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
120 if test $bash_cv_decl_$1 = yes; then
121   AC_DEFINE_UNQUOTED($bash_tr_func, 1)
122 else
123   AC_DEFINE_UNQUOTED($bash_tr_func, 0)
124 fi
125 ])
126
127 AC_DEFUN(BASH_DECL_PRINTF,
128 [AC_MSG_CHECKING(for declaration of printf in <stdio.h>)
129 AC_CACHE_VAL(bash_cv_printf_declared,
130 [AC_TRY_RUN([
131 #include <stdio.h>
132 #ifdef __STDC__
133 typedef int (*_bashfunc)(const char *, ...);
134 #else
135 typedef int (*_bashfunc)();
136 #endif
137 main()
138 {
139 _bashfunc pf;
140 pf = (_bashfunc) printf;
141 exit(pf == 0);
142 }
143 ], bash_cv_printf_declared=yes, bash_cv_printf_declared=no,
144    [AC_MSG_WARN(cannot check printf declaration if cross compiling -- defaulting to yes)
145     bash_cv_printf_declared=yes]
146 )])
147 AC_MSG_RESULT($bash_cv_printf_declared)
148 if test $bash_cv_printf_declared = yes; then
149 AC_DEFINE(PRINTF_DECLARED)
150 fi
151 ])
152
153 AC_DEFUN(BASH_DECL_SBRK,
154 [AC_MSG_CHECKING(for declaration of sbrk in <unistd.h>)
155 AC_CACHE_VAL(bash_cv_sbrk_declared,
156 [AC_EGREP_HEADER(sbrk, unistd.h,
157  bash_cv_sbrk_declared=yes, bash_cv_sbrk_declared=no)])
158 AC_MSG_RESULT($bash_cv_sbrk_declared)
159 if test $bash_cv_sbrk_declared = yes; then
160 AC_DEFINE(SBRK_DECLARED)
161 fi
162 ])
163
164 dnl
165 dnl Check for sys_siglist[] or _sys_siglist[]
166 dnl
167 AC_DEFUN(BASH_DECL_UNDER_SYS_SIGLIST,
168 [AC_MSG_CHECKING([for _sys_siglist in signal.h or unistd.h])
169 AC_CACHE_VAL(bash_cv_decl_under_sys_siglist,
170 [AC_TRY_COMPILE([
171 #include <sys/types.h>
172 #include <signal.h>
173 #ifdef HAVE_UNISTD_H
174 #include <unistd.h>
175 #endif], [ char *msg = _sys_siglist[2]; ],
176   bash_cv_decl_under_sys_siglist=yes, bash_cv_decl_under_sys_siglist=no,
177   [AC_MSG_WARN(cannot check for _sys_siglist[] if cross compiling -- defaulting to no)])])dnl
178 AC_MSG_RESULT($bash_cv_decl_under_sys_siglist)
179 if test $bash_cv_decl_under_sys_siglist = yes; then
180 AC_DEFINE(UNDER_SYS_SIGLIST_DECLARED)
181 fi
182 ])
183
184 AC_DEFUN(BASH_UNDER_SYS_SIGLIST,
185 [AC_REQUIRE([BASH_DECL_UNDER_SYS_SIGLIST])
186 AC_MSG_CHECKING([for _sys_siglist in system C library])
187 AC_CACHE_VAL(bash_cv_under_sys_siglist,
188 [AC_TRY_RUN([
189 #include <sys/types.h>
190 #include <signal.h>
191 #ifdef HAVE_UNISTD_H
192 #include <unistd.h>
193 #endif
194 #ifndef UNDER_SYS_SIGLIST_DECLARED
195 extern char *_sys_siglist[];
196 #endif
197 main()
198 {
199 char *msg = (char *)_sys_siglist[2];
200 exit(msg == 0);
201 }],
202         bash_cv_under_sys_siglist=yes, bash_cv_under_sys_siglist=no,
203         [AC_MSG_WARN(cannot check for _sys_siglist[] if cross compiling -- defaulting to no)
204          bash_cv_under_sys_siglist=no])])
205 AC_MSG_RESULT($bash_cv_under_sys_siglist)
206 if test $bash_cv_under_sys_siglist = yes; then
207 AC_DEFINE(HAVE_UNDER_SYS_SIGLIST)
208 fi
209 ])
210
211 AC_DEFUN(BASH_SYS_SIGLIST,
212 [AC_REQUIRE([AC_DECL_SYS_SIGLIST])
213 AC_MSG_CHECKING([for sys_siglist in system C library])
214 AC_CACHE_VAL(bash_cv_sys_siglist,
215 [AC_TRY_RUN([
216 #include <sys/types.h>
217 #include <signal.h>
218 #ifdef HAVE_UNISTD_H
219 #include <unistd.h>
220 #endif
221 #if !HAVE_DECL_SYS_SIGLIST
222 extern char *sys_siglist[];
223 #endif
224 main()
225 {
226 char *msg = sys_siglist[2];
227 exit(msg == 0);
228 }],
229         bash_cv_sys_siglist=yes, bash_cv_sys_siglist=no,
230         [AC_MSG_WARN(cannot check for sys_siglist if cross compiling -- defaulting to no)
231          bash_cv_sys_siglist=no])])
232 AC_MSG_RESULT($bash_cv_sys_siglist)
233 if test $bash_cv_sys_siglist = yes; then
234 AC_DEFINE(HAVE_SYS_SIGLIST)
235 fi
236 ])
237
238 dnl Check for the various permutations of sys_siglist and make sure we
239 dnl compile in siglist.o if they're not defined
240 AC_DEFUN(BASH_CHECK_SYS_SIGLIST, [
241 AC_REQUIRE([BASH_SYS_SIGLIST])
242 AC_REQUIRE([BASH_DECL_UNDER_SYS_SIGLIST])
243 AC_REQUIRE([BASH_FUNC_STRSIGNAL])
244 if test "$bash_cv_sys_siglist" = no && test "$bash_cv_under_sys_siglist" = no && test "$bash_cv_have_strsignal" = no; then
245   SIGLIST_O=siglist.o
246 else
247   SIGLIST_O=
248 fi
249 AC_SUBST([SIGLIST_O])
250 ])
251
252 dnl Check for sys_errlist[] and sys_nerr, check for declaration
253 AC_DEFUN(BASH_SYS_ERRLIST,
254 [AC_MSG_CHECKING([for sys_errlist and sys_nerr])
255 AC_CACHE_VAL(bash_cv_sys_errlist,
256 [AC_TRY_LINK([#include <errno.h>],
257 [extern char *sys_errlist[];
258  extern int sys_nerr;
259  char *msg = sys_errlist[sys_nerr - 1];],
260     bash_cv_sys_errlist=yes, bash_cv_sys_errlist=no)])dnl
261 AC_MSG_RESULT($bash_cv_sys_errlist)
262 if test $bash_cv_sys_errlist = yes; then
263 AC_DEFINE(HAVE_SYS_ERRLIST)
264 fi
265 ])
266
267 dnl
268 dnl Check if dup2() does not clear the close on exec flag
269 dnl
270 AC_DEFUN(BASH_FUNC_DUP2_CLOEXEC_CHECK,
271 [AC_MSG_CHECKING(if dup2 fails to clear the close-on-exec flag)
272 AC_CACHE_VAL(bash_cv_dup2_broken,
273 [AC_TRY_RUN([
274 #include <sys/types.h>
275 #include <fcntl.h>
276 main()
277 {
278   int fd1, fd2, fl;
279   fd1 = open("/dev/null", 2);
280   if (fcntl(fd1, 2, 1) < 0)
281     exit(1);
282   fd2 = dup2(fd1, 1);
283   if (fd2 < 0)
284     exit(2);
285   fl = fcntl(fd2, 1, 0);
286   /* fl will be 1 if dup2 did not reset the close-on-exec flag. */
287   exit(fl != 1);
288 }
289 ], bash_cv_dup2_broken=yes, bash_cv_dup2_broken=no,
290     [AC_MSG_WARN(cannot check dup2 if cross compiling -- defaulting to no)
291      bash_cv_dup2_broken=no])
292 ])
293 AC_MSG_RESULT($bash_cv_dup2_broken)
294 if test $bash_cv_dup2_broken = yes; then
295 AC_DEFINE(DUP2_BROKEN)
296 fi
297 ])
298
299 AC_DEFUN(BASH_FUNC_STRSIGNAL,
300 [AC_MSG_CHECKING([for the existence of strsignal])
301 AC_CACHE_VAL(bash_cv_have_strsignal,
302 [AC_TRY_LINK([#include <sys/types.h>
303 #include <signal.h>],
304 [char *s = (char *)strsignal(2);],
305  bash_cv_have_strsignal=yes, bash_cv_have_strsignal=no)])
306 AC_MSG_RESULT($bash_cv_have_strsignal)
307 if test $bash_cv_have_strsignal = yes; then
308 AC_DEFINE(HAVE_STRSIGNAL)
309 fi
310 ])
311
312 dnl Check to see if opendir will open non-directories (not a nice thing)
313 AC_DEFUN(BASH_FUNC_OPENDIR_CHECK,
314 [AC_REQUIRE([AC_HEADER_DIRENT])dnl
315 AC_MSG_CHECKING(if opendir() opens non-directories)
316 AC_CACHE_VAL(bash_cv_opendir_not_robust,
317 [AC_TRY_RUN([
318 #include <stdio.h>
319 #include <sys/types.h>
320 #include <fcntl.h>
321 #ifdef HAVE_UNISTD_H
322 # include <unistd.h>
323 #endif /* HAVE_UNISTD_H */
324 #if defined(HAVE_DIRENT_H)
325 # include <dirent.h>
326 #else
327 # define dirent direct
328 # ifdef HAVE_SYS_NDIR_H
329 #  include <sys/ndir.h>
330 # endif /* SYSNDIR */
331 # ifdef HAVE_SYS_DIR_H
332 #  include <sys/dir.h>
333 # endif /* SYSDIR */
334 # ifdef HAVE_NDIR_H
335 #  include <ndir.h>
336 # endif
337 #endif /* HAVE_DIRENT_H */
338 main()
339 {
340 DIR *dir;
341 int fd, err;
342 err = mkdir("bash-aclocal", 0700);
343 if (err < 0) {
344   perror("mkdir");
345   exit(1);
346 }
347 unlink("bash-aclocal/not_a_directory");
348 fd = open("bash-aclocal/not_a_directory", O_WRONLY|O_CREAT|O_EXCL, 0666);
349 write(fd, "\n", 1);
350 close(fd);
351 dir = opendir("bash-aclocal/not_a_directory");
352 unlink("bash-aclocal/not_a_directory");
353 rmdir("bash-aclocal");
354 exit (dir == 0);
355 }], bash_cv_opendir_not_robust=yes,bash_cv_opendir_not_robust=no,
356     [AC_MSG_WARN(cannot check opendir if cross compiling -- defaulting to no)
357      bash_cv_opendir_not_robust=no]
358 )])
359 AC_MSG_RESULT($bash_cv_opendir_not_robust)
360 if test $bash_cv_opendir_not_robust = yes; then
361 AC_DEFINE(OPENDIR_NOT_ROBUST)
362 fi
363 ])
364
365 dnl
366 AC_DEFUN(BASH_TYPE_SIGHANDLER,
367 [AC_MSG_CHECKING([whether signal handlers are of type void])
368 AC_CACHE_VAL(bash_cv_void_sighandler,
369 [AC_TRY_COMPILE([#include <sys/types.h>
370 #include <signal.h>
371 #ifdef signal
372 #undef signal
373 #endif
374 #ifdef __cplusplus
375 extern "C"
376 #endif
377 void (*signal ()) ();],
378 [int i;], bash_cv_void_sighandler=yes, bash_cv_void_sighandler=no)])dnl
379 AC_MSG_RESULT($bash_cv_void_sighandler)
380 if test $bash_cv_void_sighandler = yes; then
381 AC_DEFINE(VOID_SIGHANDLER)
382 fi
383 ])
384
385 dnl
386 dnl A signed 16-bit integer quantity
387 dnl
388 AC_DEFUN(BASH_TYPE_BITS16_T,
389 [
390 if test "$ac_cv_sizeof_short" = 2; then
391   AC_CHECK_TYPE(bits16_t, short)
392 elif test "$ac_cv_sizeof_char" = 2; then
393   AC_CHECK_TYPE(bits16_t, char)
394 else
395   AC_CHECK_TYPE(bits16_t, short)
396 fi
397 ])
398
399 dnl
400 dnl An unsigned 16-bit integer quantity
401 dnl
402 AC_DEFUN(BASH_TYPE_U_BITS16_T,
403 [
404 if test "$ac_cv_sizeof_short" = 2; then
405   AC_CHECK_TYPE(u_bits16_t, unsigned short)
406 elif test "$ac_cv_sizeof_char" = 2; then
407   AC_CHECK_TYPE(u_bits16_t, unsigned char)
408 else
409   AC_CHECK_TYPE(u_bits16_t, unsigned short)
410 fi
411 ])
412
413 dnl
414 dnl A signed 32-bit integer quantity
415 dnl
416 AC_DEFUN(BASH_TYPE_BITS32_T,
417 [
418 if test "$ac_cv_sizeof_int" = 4; then
419   AC_CHECK_TYPE(bits32_t, int)
420 elif test "$ac_cv_sizeof_long" = 4; then
421   AC_CHECK_TYPE(bits32_t, long)
422 else
423   AC_CHECK_TYPE(bits32_t, int)
424 fi
425 ])
426
427 dnl
428 dnl An unsigned 32-bit integer quantity
429 dnl
430 AC_DEFUN(BASH_TYPE_U_BITS32_T,
431 [
432 if test "$ac_cv_sizeof_int" = 4; then
433   AC_CHECK_TYPE(u_bits32_t, unsigned int)
434 elif test "$ac_cv_sizeof_long" = 4; then
435   AC_CHECK_TYPE(u_bits32_t, unsigned long)
436 else
437   AC_CHECK_TYPE(u_bits32_t, unsigned int)
438 fi
439 ])
440
441 AC_DEFUN(BASH_TYPE_PTRDIFF_T,
442 [
443 if test "$ac_cv_sizeof_int" = "$ac_cv_sizeof_char_p"; then
444   AC_CHECK_TYPE(ptrdiff_t, int)
445 elif test "$ac_cv_sizeof_long" = "$ac_cv_sizeof_char_p"; then
446   AC_CHECK_TYPE(ptrdiff_t, long)
447 elif test "$ac_cv_type_long_long" = yes && test "$ac_cv_sizeof_long_long" = "$ac_cv_sizeof_char_p"; then
448   AC_CHECK_TYPE(ptrdiff_t, [long long])
449 else
450   AC_CHECK_TYPE(ptrdiff_t, int)
451 fi
452 ])
453
454 dnl
455 dnl A signed 64-bit quantity
456 dnl
457 AC_DEFUN(BASH_TYPE_BITS64_T,
458 [
459 if test "$ac_cv_sizeof_char_p" = 8; then
460   AC_CHECK_TYPE(bits64_t, char *)
461 elif test "$ac_cv_sizeof_double" = 8; then
462   AC_CHECK_TYPE(bits64_t, double)
463 elif test -n "$ac_cv_type_long_long" && test "$ac_cv_sizeof_long_long" = 8; then
464   AC_CHECK_TYPE(bits64_t, [long long])
465 elif test "$ac_cv_sizeof_long" = 8; then
466   AC_CHECK_TYPE(bits64_t, long)
467 else
468   AC_CHECK_TYPE(bits64_t, double)
469 fi
470 ])
471
472 AC_DEFUN(BASH_TYPE_LONG_LONG,
473 [
474 AC_CACHE_CHECK([for long long], bash_cv_type_long_long,
475 [AC_TRY_LINK([
476 long long ll = 1; int i = 63;],
477 [
478 long long llm = (long long) -1;
479 return ll << i | ll >> i | llm / ll | llm % ll;
480 ], bash_cv_type_long_long='long long', bash_cv_type_long_long='long')])
481 if test "$bash_cv_type_long_long" = 'long long'; then
482   AC_DEFINE(HAVE_LONG_LONG, 1)
483 fi
484 ])
485
486 AC_DEFUN(BASH_TYPE_UNSIGNED_LONG_LONG,
487 [
488 AC_CACHE_CHECK([for unsigned long long], bash_cv_type_unsigned_long_long,
489 [AC_TRY_LINK([
490 unsigned long long ull = 1; int i = 63;],
491 [
492 unsigned long long ullmax = (unsigned long long) -1;
493 return ull << i | ull >> i | ullmax / ull | ullmax % ull;
494 ], bash_cv_type_unsigned_long_long='unsigned long long',
495    bash_cv_type_unsigned_long_long='unsigned long')])
496 if test "$bash_cv_type_unsigned_long_long" = 'unsigned long long'; then
497   AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1)
498 fi
499 ])
500
501 dnl
502 dnl Type of struct rlimit fields: some systems (OSF/1, NetBSD, RISC/os 5.0)
503 dnl have a rlim_t, others (4.4BSD based systems) use quad_t, others use
504 dnl long and still others use int (HP-UX 9.01, SunOS 4.1.3).  To simplify
505 dnl matters, this just checks for rlim_t, quad_t, or long.
506 dnl
507 AC_DEFUN(BASH_TYPE_RLIMIT,
508 [AC_MSG_CHECKING(for size and type of struct rlimit fields)
509 AC_CACHE_VAL(bash_cv_type_rlimit,
510 [AC_TRY_COMPILE([#include <sys/types.h>
511 #include <sys/resource.h>],
512 [rlim_t xxx;], bash_cv_type_rlimit=rlim_t,[
513 AC_TRY_RUN([
514 #include <sys/types.h>
515 #include <sys/time.h>
516 #include <sys/resource.h>
517 main()
518 {
519 #ifdef HAVE_QUAD_T
520   struct rlimit rl;
521   if (sizeof(rl.rlim_cur) == sizeof(quad_t))
522     exit(0);
523 #endif
524   exit(1);
525 }], bash_cv_type_rlimit=quad_t, bash_cv_type_rlimit=long,
526         [AC_MSG_WARN(cannot check quad_t if cross compiling -- defaulting to long)
527          bash_cv_type_rlimit=long])])
528 ])
529 AC_MSG_RESULT($bash_cv_type_rlimit)
530 if test $bash_cv_type_rlimit = quad_t; then
531 AC_DEFINE(RLIMTYPE, quad_t)
532 elif test $bash_cv_type_rlimit = rlim_t; then
533 AC_DEFINE(RLIMTYPE, rlim_t)
534 fi
535 ])
536
537 AC_DEFUN(BASH_TYPE_SIG_ATOMIC_T,
538 [AC_CACHE_CHECK([for sig_atomic_t in signal.h], ac_cv_have_sig_atomic_t,
539 [AC_TRY_LINK([
540 #include <signal.h>
541 ],[ sig_atomic_t x; ],
542 ac_cv_have_sig_atomic_t=yes, ac_cv_have_sig_atomic_t=no)])
543 if test "$ac_cv_have_sig_atomic_t" = "no"
544 then
545     AC_CHECK_TYPE(sig_atomic_t,int)
546 fi
547 ])
548
549 AC_DEFUN(BASH_FUNC_LSTAT,
550 [dnl Cannot use AC_CHECK_FUNCS(lstat) because Linux defines lstat() as an
551 dnl inline function in <sys/stat.h>.
552 AC_CACHE_CHECK([for lstat], bash_cv_func_lstat,
553 [AC_TRY_LINK([
554 #include <sys/types.h>
555 #include <sys/stat.h>
556 ],[ lstat(".",(struct stat *)0); ],
557 bash_cv_func_lstat=yes, bash_cv_func_lstat=no)])
558 if test $bash_cv_func_lstat = yes; then
559   AC_DEFINE(HAVE_LSTAT)
560 fi
561 ])
562
563 AC_DEFUN(BASH_FUNC_INET_ATON,
564 [
565 AC_CACHE_CHECK([for inet_aton], bash_cv_func_inet_aton,
566 [AC_TRY_LINK([
567 #include <sys/types.h>
568 #include <netinet/in.h>
569 #include <arpa/inet.h>
570 struct in_addr ap;], [ inet_aton("127.0.0.1", &ap); ],
571 bash_cv_func_inet_aton=yes, bash_cv_func_inet_aton=no)])
572 if test $bash_cv_func_inet_aton = yes; then
573   AC_DEFINE(HAVE_INET_ATON)
574 else
575   AC_LIBOBJ(inet_aton)
576 fi
577 ])
578
579 AC_DEFUN(BASH_FUNC_GETENV,
580 [AC_MSG_CHECKING(to see if getenv can be redefined)
581 AC_CACHE_VAL(bash_cv_getenv_redef,
582 [AC_TRY_RUN([
583 #ifdef HAVE_UNISTD_H
584 #  include <unistd.h>
585 #endif
586 #ifndef __STDC__
587 #  ifndef const
588 #    define const
589 #  endif
590 #endif
591 char *
592 getenv (name)
593 #if defined (__linux__) || defined (__bsdi__) || defined (convex)
594      const char *name;
595 #else
596      char const *name;
597 #endif /* !__linux__ && !__bsdi__ && !convex */
598 {
599 return "42";
600 }
601 main()
602 {
603 char *s;
604 /* The next allows this program to run, but does not allow bash to link
605    when it redefines getenv.  I'm not really interested in figuring out
606    why not. */
607 #if defined (NeXT)
608 exit(1);
609 #endif
610 s = getenv("ABCDE");
611 exit(s == 0);   /* force optimizer to leave getenv in */
612 }
613 ], bash_cv_getenv_redef=yes, bash_cv_getenv_redef=no,
614    [AC_MSG_WARN(cannot check getenv redefinition if cross compiling -- defaulting to yes)
615     bash_cv_getenv_redef=yes]
616 )])
617 AC_MSG_RESULT($bash_cv_getenv_redef)
618 if test $bash_cv_getenv_redef = yes; then
619 AC_DEFINE(CAN_REDEFINE_GETENV)
620 fi
621 ])
622
623 # We should check for putenv before calling this
624 AC_DEFUN(BASH_FUNC_STD_PUTENV,
625 [
626 AC_REQUIRE([AC_HEADER_STDC])
627 AC_REQUIRE([AC_C_PROTOTYPES])
628 AC_CACHE_CHECK([for standard-conformant putenv declaration], bash_cv_std_putenv,
629 [AC_TRY_LINK([
630 #if STDC_HEADERS
631 #include <stdlib.h>
632 #include <stddef.h>
633 #endif
634 #ifndef __STDC__
635 #  ifndef const
636 #    define const
637 #  endif
638 #endif
639 #ifdef PROTOTYPES
640 extern int putenv (char *);
641 #else
642 extern int putenv ();
643 #endif
644 ],
645 [return (putenv == 0);],
646 bash_cv_std_putenv=yes, bash_cv_std_putenv=no
647 )])
648 if test $bash_cv_std_putenv = yes; then
649 AC_DEFINE(HAVE_STD_PUTENV)
650 fi
651 ])
652
653 # We should check for unsetenv before calling this
654 AC_DEFUN(BASH_FUNC_STD_UNSETENV,
655 [
656 AC_REQUIRE([AC_HEADER_STDC])
657 AC_REQUIRE([AC_C_PROTOTYPES])
658 AC_CACHE_CHECK([for standard-conformant unsetenv declaration], bash_cv_std_unsetenv,
659 [AC_TRY_LINK([
660 #if STDC_HEADERS
661 #include <stdlib.h>
662 #include <stddef.h>
663 #endif
664 #ifndef __STDC__
665 #  ifndef const
666 #    define const
667 #  endif
668 #endif
669 #ifdef PROTOTYPES
670 extern int unsetenv (const char *);
671 #else
672 extern int unsetenv ();
673 #endif
674 ],
675 [return (unsetenv == 0);],
676 bash_cv_std_unsetenv=yes, bash_cv_std_unsetenv=no
677 )])
678 if test $bash_cv_std_unsetenv = yes; then
679 AC_DEFINE(HAVE_STD_UNSETENV)
680 fi
681 ])
682
683 AC_DEFUN(BASH_FUNC_ULIMIT_MAXFDS,
684 [AC_MSG_CHECKING(whether ulimit can substitute for getdtablesize)
685 AC_CACHE_VAL(bash_cv_ulimit_maxfds,
686 [AC_TRY_RUN([
687 main()
688 {
689 long maxfds = ulimit(4, 0L);
690 exit (maxfds == -1L);
691 }
692 ], bash_cv_ulimit_maxfds=yes, bash_cv_ulimit_maxfds=no,
693    [AC_MSG_WARN(cannot check ulimit if cross compiling -- defaulting to no)
694     bash_cv_ulimit_maxfds=no]
695 )])
696 AC_MSG_RESULT($bash_cv_ulimit_maxfds)
697 if test $bash_cv_ulimit_maxfds = yes; then
698 AC_DEFINE(ULIMIT_MAXFDS)
699 fi
700 ])
701
702 AC_DEFUN(BASH_FUNC_GETCWD,
703 [AC_MSG_CHECKING([if getcwd() will dynamically allocate memory with 0 size])
704 AC_CACHE_VAL(bash_cv_getcwd_malloc,
705 [AC_TRY_RUN([
706 #include <stdio.h>
707 #ifdef HAVE_UNISTD_H
708 #include <unistd.h>
709 #endif
710
711 main()
712 {
713         char    *xpwd;
714         xpwd = getcwd(0, 0);
715         exit (xpwd == 0);
716 }
717 ], bash_cv_getcwd_malloc=yes, bash_cv_getcwd_malloc=no,
718    [AC_MSG_WARN(cannot check whether getcwd allocates memory when cross-compiling -- defaulting to no)
719     bash_cv_getcwd_malloc=no]
720 )])
721 AC_MSG_RESULT($bash_cv_getcwd_malloc)
722 if test $bash_cv_getcwd_malloc = no; then
723 AC_DEFINE(GETCWD_BROKEN)
724 AC_LIBOBJ(getcwd)
725 fi
726 ])
727
728 dnl
729 dnl This needs BASH_CHECK_SOCKLIB, but since that's not called on every
730 dnl system, we can't use AC_PREREQ
731 dnl
732 AC_DEFUN(BASH_FUNC_GETHOSTBYNAME,
733 [if test "X$bash_cv_have_gethostbyname" = "X"; then
734 _bash_needmsg=yes
735 else
736 AC_MSG_CHECKING(for gethostbyname in socket library)
737 _bash_needmsg=
738 fi
739 AC_CACHE_VAL(bash_cv_have_gethostbyname,
740 [AC_TRY_LINK([#include <netdb.h>],
741 [ struct hostent *hp;
742   hp = gethostbyname("localhost");
743 ], bash_cv_have_gethostbyname=yes, bash_cv_have_gethostbyname=no)]
744 )
745 if test "X$_bash_needmsg" = Xyes; then
746     AC_MSG_CHECKING(for gethostbyname in socket library)
747 fi
748 AC_MSG_RESULT($bash_cv_have_gethostbyname)
749 if test "$bash_cv_have_gethostbyname" = yes; then
750 AC_DEFINE(HAVE_GETHOSTBYNAME)
751 fi
752 ])
753
754 AC_DEFUN(BASH_FUNC_FNMATCH_EXTMATCH,
755 [AC_MSG_CHECKING(if fnmatch does extended pattern matching with FNM_EXTMATCH)
756 AC_CACHE_VAL(bash_cv_fnm_extmatch,
757 [AC_TRY_RUN([
758 #include <fnmatch.h>
759
760 main()
761 {
762 #ifdef FNM_EXTMATCH
763   exit (0);
764 #else
765   exit (1);
766 #endif
767 }
768 ], bash_cv_fnm_extmatch=yes, bash_cv_fnm_extmatch=no,
769     [AC_MSG_WARN(cannot check FNM_EXTMATCH if cross compiling -- defaulting to no)
770      bash_cv_fnm_extmatch=no])
771 ])
772 AC_MSG_RESULT($bash_cv_fnm_extmatch)
773 if test $bash_cv_fnm_extmatch = yes; then
774 AC_DEFINE(HAVE_LIBC_FNM_EXTMATCH)
775 fi
776 ])
777
778 AC_DEFUN(BASH_FUNC_POSIX_SETJMP,
779 [AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
780 AC_MSG_CHECKING(for presence of POSIX-style sigsetjmp/siglongjmp)
781 AC_CACHE_VAL(bash_cv_func_sigsetjmp,
782 [AC_TRY_RUN([
783 #ifdef HAVE_UNISTD_H
784 #include <unistd.h>
785 #endif
786 #include <sys/types.h>
787 #include <signal.h>
788 #include <setjmp.h>
789
790 main()
791 {
792 #if !defined (_POSIX_VERSION) || !defined (HAVE_POSIX_SIGNALS)
793 exit (1);
794 #else
795
796 int code;
797 sigset_t set, oset;
798 sigjmp_buf xx;
799
800 /* get the mask */
801 sigemptyset(&set);
802 sigemptyset(&oset);
803 sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &set);
804 sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &oset);
805
806 /* save it */
807 code = sigsetjmp(xx, 1);
808 if (code)
809   exit(0);      /* could get sigmask and compare to oset here. */
810
811 /* change it */
812 sigaddset(&set, SIGINT);
813 sigprocmask(SIG_BLOCK, &set, (sigset_t *)NULL);
814
815 /* and siglongjmp */
816 siglongjmp(xx, 10);
817 exit(1);
818 #endif
819 }], bash_cv_func_sigsetjmp=present, bash_cv_func_sigsetjmp=missing,
820     [AC_MSG_WARN(cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing)
821      bash_cv_func_sigsetjmp=missing]
822 )])
823 AC_MSG_RESULT($bash_cv_func_sigsetjmp)
824 if test $bash_cv_func_sigsetjmp = present; then
825 AC_DEFINE(HAVE_POSIX_SIGSETJMP)
826 fi
827 ])
828
829 AC_DEFUN(BASH_FUNC_STRCOLL,
830 [
831 AC_MSG_CHECKING(whether or not strcoll and strcmp differ)
832 AC_CACHE_VAL(bash_cv_func_strcoll_broken,
833 [AC_TRY_RUN([
834 #include <stdio.h>
835 #if defined (HAVE_LOCALE_H)
836 #include <locale.h>
837 #endif
838
839 main(c, v)
840 int     c;
841 char    *v[];
842 {
843         int     r1, r2;
844         char    *deflocale, *defcoll;
845
846 #ifdef HAVE_SETLOCALE
847         deflocale = setlocale(LC_ALL, "");
848         defcoll = setlocale(LC_COLLATE, "");
849 #endif
850
851 #ifdef HAVE_STRCOLL
852         /* These two values are taken from tests/glob-test. */
853         r1 = strcoll("abd", "aXd");
854 #else
855         r1 = 0;
856 #endif
857         r2 = strcmp("abd", "aXd");
858
859         /* These two should both be greater than 0.  It is permissible for
860            a system to return different values, as long as the sign is the
861            same. */
862
863         /* Exit with 1 (failure) if these two values are both > 0, since
864            this tests whether strcoll(3) is broken with respect to strcmp(3)
865            in the default locale. */
866         exit (r1 > 0 && r2 > 0);
867 }
868 ], bash_cv_func_strcoll_broken=yes, bash_cv_func_strcoll_broken=no,
869    [AC_MSG_WARN(cannot check strcoll if cross compiling -- defaulting to no)
870     bash_cv_func_strcoll_broken=no]
871 )])
872 AC_MSG_RESULT($bash_cv_func_strcoll_broken)
873 if test $bash_cv_func_strcoll_broken = yes; then
874 AC_DEFINE(STRCOLL_BROKEN)
875 fi
876 ])
877
878 AC_DEFUN(BASH_FUNC_PRINTF_A_FORMAT,
879 [AC_MSG_CHECKING([for printf floating point output in hex notation])
880 AC_CACHE_VAL(bash_cv_printf_a_format,
881 [AC_TRY_RUN([
882 #include <stdio.h>
883 #include <string.h>
884
885 int
886 main()
887 {
888         double y = 0.0;
889         char abuf[1024];
890
891         sprintf(abuf, "%A", y);
892         exit(strchr(abuf, 'P') == (char *)0);
893 }
894 ], bash_cv_printf_a_format=yes, bash_cv_printf_a_format=no,
895    [AC_MSG_WARN(cannot check printf if cross compiling -- defaulting to no)
896     bash_cv_printf_a_format=no]
897 )])
898 AC_MSG_RESULT($bash_cv_printf_a_format)
899 if test $bash_cv_printf_a_format = yes; then
900 AC_DEFINE(HAVE_PRINTF_A_FORMAT)
901 fi
902 ])
903
904 AC_DEFUN(BASH_STRUCT_TERMIOS_LDISC,
905 [
906 AC_CHECK_MEMBER(struct termios.c_line, AC_DEFINE(TERMIOS_LDISC), ,[
907 #include <sys/types.h>
908 #include <termios.h>
909 ])
910 ])
911
912 AC_DEFUN(BASH_STRUCT_TERMIO_LDISC,
913 [
914 AC_CHECK_MEMBER(struct termio.c_line, AC_DEFINE(TERMIO_LDISC), ,[
915 #include <sys/types.h>
916 #include <termio.h>
917 ])
918 ])
919
920 dnl
921 dnl Like AC_STRUCT_ST_BLOCKS, but doesn't muck with LIBOBJS
922 dnl
923 dnl sets bash_cv_struct_stat_st_blocks
924 dnl
925 dnl unused for now; we'll see how AC_CHECK_MEMBERS works
926 dnl
927 AC_DEFUN(BASH_STRUCT_ST_BLOCKS,
928 [
929 AC_MSG_CHECKING([for struct stat.st_blocks])
930 AC_CACHE_VAL(bash_cv_struct_stat_st_blocks,
931 [AC_TRY_COMPILE(
932 [
933 #include <sys/types.h>
934 #include <sys/stat.h>
935 ],
936 [
937 main()
938 {
939 static struct stat a;
940 if (a.st_blocks) return 0;
941 return 0;
942 }
943 ], bash_cv_struct_stat_st_blocks=yes, bash_cv_struct_stat_st_blocks=no)
944 ])
945 AC_MSG_RESULT($bash_cv_struct_stat_st_blocks)
946 if test "$bash_cv_struct_stat_st_blocks" = "yes"; then
947 AC_DEFINE(HAVE_STRUCT_STAT_ST_BLOCKS)
948 fi
949 ])
950
951 AC_DEFUN([BASH_CHECK_LIB_TERMCAP],
952 [
953 if test "X$bash_cv_termcap_lib" = "X"; then
954 _bash_needmsg=yes
955 else
956 AC_MSG_CHECKING(which library has the termcap functions)
957 _bash_needmsg=
958 fi
959 AC_CACHE_VAL(bash_cv_termcap_lib,
960 [AC_CHECK_FUNC(tgetent, bash_cv_termcap_lib=libc,
961   [AC_CHECK_LIB(termcap, tgetent, bash_cv_termcap_lib=libtermcap,
962     [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo,
963         [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses,
964             [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
965                 bash_cv_termcap_lib=gnutermcap)])])])])])
966 if test "X$_bash_needmsg" = "Xyes"; then
967 AC_MSG_CHECKING(which library has the termcap functions)
968 fi
969 AC_MSG_RESULT(using $bash_cv_termcap_lib)
970 if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then
971 LDFLAGS="$LDFLAGS -L./lib/termcap"
972 TERMCAP_LIB="./lib/termcap/libtermcap.a"
973 TERMCAP_DEP="./lib/termcap/libtermcap.a"
974 elif test $bash_cv_termcap_lib = libtermcap && test -z "$prefer_curses"; then
975 TERMCAP_LIB=-ltermcap
976 TERMCAP_DEP=
977 elif test $bash_cv_termcap_lib = libtinfo; then
978 TERMCAP_LIB=-ltinfo
979 TERMCAP_DEP=
980 elif test $bash_cv_termcap_lib = libncurses; then
981 TERMCAP_LIB=-lncurses
982 TERMCAP_DEP=
983 elif test $bash_cv_termcap_lib = libc; then
984 TERMCAP_LIB=
985 TERMCAP_DEP=
986 else
987 TERMCAP_LIB=-lcurses
988 TERMCAP_DEP=
989 fi
990 ])
991
992 dnl
993 dnl Check for the presence of getpeername in libsocket.
994 dnl If libsocket is present, check for libnsl and add it to LIBS if
995 dnl it's there, since most systems with libsocket require linking
996 dnl with libnsl as well.  This should only be called if getpeername
997 dnl was not found in libc.
998 dnl
999 dnl NOTE: IF WE FIND GETPEERNAME, WE ASSUME THAT WE HAVE BIND/CONNECT
1000 dnl       AS WELL
1001 dnl
1002 AC_DEFUN(BASH_CHECK_LIB_SOCKET,
1003 [
1004 if test "X$bash_cv_have_socklib" = "X"; then
1005 _bash_needmsg=
1006 else
1007 AC_MSG_CHECKING(for socket library)
1008 _bash_needmsg=yes
1009 fi
1010 AC_CACHE_VAL(bash_cv_have_socklib,
1011 [AC_CHECK_LIB(socket, getpeername,
1012         bash_cv_have_socklib=yes, bash_cv_have_socklib=no, -lnsl)])
1013 if test "X$_bash_needmsg" = Xyes; then
1014   AC_MSG_RESULT($bash_cv_have_socklib)
1015   _bash_needmsg=
1016 fi
1017 if test $bash_cv_have_socklib = yes; then
1018   # check for libnsl, add it to LIBS if present
1019   if test "X$bash_cv_have_libnsl" = "X"; then
1020     _bash_needmsg=
1021   else
1022     AC_MSG_CHECKING(for libnsl)
1023     _bash_needmsg=yes
1024   fi
1025   AC_CACHE_VAL(bash_cv_have_libnsl,
1026            [AC_CHECK_LIB(nsl, t_open,
1027                  bash_cv_have_libnsl=yes, bash_cv_have_libnsl=no)])
1028   if test "X$_bash_needmsg" = Xyes; then
1029     AC_MSG_RESULT($bash_cv_have_libnsl)
1030     _bash_needmsg=
1031   fi
1032   if test $bash_cv_have_libnsl = yes; then
1033     LIBS="-lsocket -lnsl $LIBS"
1034   else
1035     LIBS="-lsocket $LIBS"
1036   fi
1037   AC_DEFINE(HAVE_LIBSOCKET)
1038   AC_DEFINE(HAVE_GETPEERNAME)
1039 fi
1040 ])
1041
1042 AC_DEFUN(BASH_STRUCT_DIRENT_D_INO,
1043 [AC_REQUIRE([AC_HEADER_DIRENT])
1044 AC_MSG_CHECKING(for struct dirent.d_ino)
1045 AC_CACHE_VAL(bash_cv_dirent_has_dino,
1046 [AC_TRY_COMPILE([
1047 #include <stdio.h>
1048 #include <sys/types.h>
1049 #ifdef HAVE_UNISTD_H
1050 # include <unistd.h>
1051 #endif /* HAVE_UNISTD_H */
1052 #if defined(HAVE_DIRENT_H)
1053 # include <dirent.h>
1054 #else
1055 # define dirent direct
1056 # ifdef HAVE_SYS_NDIR_H
1057 #  include <sys/ndir.h>
1058 # endif /* SYSNDIR */
1059 # ifdef HAVE_SYS_DIR_H
1060 #  include <sys/dir.h>
1061 # endif /* SYSDIR */
1062 # ifdef HAVE_NDIR_H
1063 #  include <ndir.h>
1064 # endif
1065 #endif /* HAVE_DIRENT_H */
1066 ],[
1067 struct dirent d; int z; z = d.d_ino;
1068 ], bash_cv_dirent_has_dino=yes, bash_cv_dirent_has_dino=no)])
1069 AC_MSG_RESULT($bash_cv_dirent_has_dino)
1070 if test $bash_cv_dirent_has_dino = yes; then
1071 AC_DEFINE(HAVE_STRUCT_DIRENT_D_INO)
1072 fi
1073 ])
1074
1075 AC_DEFUN(BASH_STRUCT_DIRENT_D_FILENO,
1076 [AC_REQUIRE([AC_HEADER_DIRENT])
1077 AC_MSG_CHECKING(for struct dirent.d_fileno)
1078 AC_CACHE_VAL(bash_cv_dirent_has_d_fileno,
1079 [AC_TRY_COMPILE([
1080 #include <stdio.h>
1081 #include <sys/types.h>
1082 #ifdef HAVE_UNISTD_H
1083 # include <unistd.h>
1084 #endif /* HAVE_UNISTD_H */
1085 #if defined(HAVE_DIRENT_H)
1086 # include <dirent.h>
1087 #else
1088 # define dirent direct
1089 # ifdef HAVE_SYS_NDIR_H
1090 #  include <sys/ndir.h>
1091 # endif /* SYSNDIR */
1092 # ifdef HAVE_SYS_DIR_H
1093 #  include <sys/dir.h>
1094 # endif /* SYSDIR */
1095 # ifdef HAVE_NDIR_H
1096 #  include <ndir.h>
1097 # endif
1098 #endif /* HAVE_DIRENT_H */
1099 ],[
1100 struct dirent d; int z; z = d.d_fileno;
1101 ], bash_cv_dirent_has_d_fileno=yes, bash_cv_dirent_has_d_fileno=no)])
1102 AC_MSG_RESULT($bash_cv_dirent_has_d_fileno)
1103 if test $bash_cv_dirent_has_d_fileno = yes; then
1104 AC_DEFINE(HAVE_STRUCT_DIRENT_D_FILENO)
1105 fi
1106 ])
1107
1108 AC_DEFUN(BASH_STRUCT_DIRENT_D_NAMLEN,
1109 [AC_REQUIRE([AC_HEADER_DIRENT])
1110 AC_MSG_CHECKING(for struct dirent.d_namlen)
1111 AC_CACHE_VAL(bash_cv_dirent_has_d_namlen,
1112 [AC_TRY_COMPILE([
1113 #include <stdio.h>
1114 #include <sys/types.h>
1115 #ifdef HAVE_UNISTD_H
1116 # include <unistd.h>
1117 #endif /* HAVE_UNISTD_H */
1118 #if defined(HAVE_DIRENT_H)
1119 # include <dirent.h>
1120 #else
1121 # define dirent direct
1122 # ifdef HAVE_SYS_NDIR_H
1123 #  include <sys/ndir.h>
1124 # endif /* SYSNDIR */
1125 # ifdef HAVE_SYS_DIR_H
1126 #  include <sys/dir.h>
1127 # endif /* SYSDIR */
1128 # ifdef HAVE_NDIR_H
1129 #  include <ndir.h>
1130 # endif
1131 #endif /* HAVE_DIRENT_H */
1132 ],[
1133 struct dirent d; int z; z = d.d_namlen;
1134 ], bash_cv_dirent_has_d_namlen=yes, bash_cv_dirent_has_d_namlen=no)])
1135 AC_MSG_RESULT($bash_cv_dirent_has_d_namlen)
1136 if test $bash_cv_dirent_has_d_namlen = yes; then
1137 AC_DEFINE(HAVE_STRUCT_DIRENT_D_NAMLEN)
1138 fi
1139 ])
1140
1141 AC_DEFUN(BASH_STRUCT_TIMEVAL,
1142 [AC_MSG_CHECKING(for struct timeval in sys/time.h and time.h)
1143 AC_CACHE_VAL(bash_cv_struct_timeval,
1144 [
1145 AC_EGREP_HEADER(struct timeval, sys/time.h,
1146                 bash_cv_struct_timeval=yes,
1147                 AC_EGREP_HEADER(struct timeval, time.h,
1148                         bash_cv_struct_timeval=yes,
1149                         bash_cv_struct_timeval=no))
1150 ])
1151 AC_MSG_RESULT($bash_cv_struct_timeval)
1152 if test $bash_cv_struct_timeval = yes; then
1153   AC_DEFINE(HAVE_TIMEVAL)
1154 fi
1155 ])
1156
1157 AC_DEFUN(BASH_STRUCT_TIMEZONE,
1158 [AC_MSG_CHECKING(for struct timezone in sys/time.h and time.h)
1159 AC_CACHE_VAL(bash_cv_struct_timezone,
1160 [
1161 AC_EGREP_HEADER(struct timezone, sys/time.h,
1162                 bash_cv_struct_timezone=yes,
1163                 AC_EGREP_HEADER(struct timezone, time.h,
1164                         bash_cv_struct_timezone=yes,
1165                         bash_cv_struct_timezone=no))
1166 ])
1167 AC_MSG_RESULT($bash_cv_struct_timezone)
1168 if test $bash_cv_struct_timezone = yes; then
1169   AC_DEFINE(HAVE_STRUCT_TIMEZONE)
1170 fi
1171 ])
1172
1173 AC_DEFUN(BASH_STRUCT_WINSIZE,
1174 [AC_MSG_CHECKING(for struct winsize in sys/ioctl.h and termios.h)
1175 AC_CACHE_VAL(bash_cv_struct_winsize_header,
1176 [AC_TRY_COMPILE([#include <sys/types.h>
1177 #include <sys/ioctl.h>], [struct winsize x;],
1178   bash_cv_struct_winsize_header=ioctl_h,
1179   [AC_TRY_COMPILE([#include <sys/types.h>
1180 #include <termios.h>], [struct winsize x;],
1181   bash_cv_struct_winsize_header=termios_h, bash_cv_struct_winsize_header=other)
1182 ])])
1183 if test $bash_cv_struct_winsize_header = ioctl_h; then
1184   AC_MSG_RESULT(sys/ioctl.h)
1185   AC_DEFINE(STRUCT_WINSIZE_IN_SYS_IOCTL)
1186 elif test $bash_cv_struct_winsize_header = termios_h; then
1187   AC_MSG_RESULT(termios.h)
1188   AC_DEFINE(STRUCT_WINSIZE_IN_TERMIOS)
1189 else
1190   AC_MSG_RESULT(not found)
1191 fi
1192 ])
1193
1194 dnl Check type of signal routines (posix, 4.2bsd, 4.1bsd or v7)
1195 AC_DEFUN(BASH_SYS_SIGNAL_VINTAGE,
1196 [AC_REQUIRE([AC_TYPE_SIGNAL])
1197 AC_MSG_CHECKING(for type of signal functions)
1198 AC_CACHE_VAL(bash_cv_signal_vintage,
1199 [
1200   AC_TRY_LINK([#include <signal.h>],[
1201     sigset_t ss;
1202     struct sigaction sa;
1203     sigemptyset(&ss); sigsuspend(&ss);
1204     sigaction(SIGINT, &sa, (struct sigaction *) 0);
1205     sigprocmask(SIG_BLOCK, &ss, (sigset_t *) 0);
1206   ], bash_cv_signal_vintage=posix,
1207   [
1208     AC_TRY_LINK([#include <signal.h>], [
1209         int mask = sigmask(SIGINT);
1210         sigsetmask(mask); sigblock(mask); sigpause(mask);
1211     ], bash_cv_signal_vintage=4.2bsd,
1212     [
1213       AC_TRY_LINK([
1214         #include <signal.h>
1215         RETSIGTYPE foo() { }], [
1216                 int mask = sigmask(SIGINT);
1217                 sigset(SIGINT, foo); sigrelse(SIGINT);
1218                 sighold(SIGINT); sigpause(SIGINT);
1219         ], bash_cv_signal_vintage=svr3, bash_cv_signal_vintage=v7
1220     )]
1221   )]
1222 )
1223 ])
1224 AC_MSG_RESULT($bash_cv_signal_vintage)
1225 if test "$bash_cv_signal_vintage" = posix; then
1226 AC_DEFINE(HAVE_POSIX_SIGNALS)
1227 elif test "$bash_cv_signal_vintage" = "4.2bsd"; then
1228 AC_DEFINE(HAVE_BSD_SIGNALS)
1229 elif test "$bash_cv_signal_vintage" = svr3; then
1230 AC_DEFINE(HAVE_USG_SIGHOLD)
1231 fi
1232 ])
1233
1234 dnl Check if the pgrp of setpgrp() can't be the pid of a zombie process.
1235 AC_DEFUN(BASH_SYS_PGRP_SYNC,
1236 [AC_REQUIRE([AC_FUNC_GETPGRP])
1237 AC_MSG_CHECKING(whether pgrps need synchronization)
1238 AC_CACHE_VAL(bash_cv_pgrp_pipe,
1239 [AC_TRY_RUN([
1240 #ifdef HAVE_UNISTD_H
1241 #  include <unistd.h>
1242 #endif
1243 main()
1244 {
1245 # ifdef GETPGRP_VOID
1246 #  define getpgID()     getpgrp()
1247 # else
1248 #  define getpgID()     getpgrp(0)
1249 #  define setpgid(x,y)  setpgrp(x,y)
1250 # endif
1251         int pid1, pid2, fds[2];
1252         int status;
1253         char ok;
1254
1255         switch (pid1 = fork()) {
1256           case -1:
1257             exit(1);
1258           case 0:
1259             setpgid(0, getpid());
1260             exit(0);
1261         }
1262         setpgid(pid1, pid1);
1263
1264         sleep(2);       /* let first child die */
1265
1266         if (pipe(fds) < 0)
1267           exit(2);
1268
1269         switch (pid2 = fork()) {
1270           case -1:
1271             exit(3);
1272           case 0:
1273             setpgid(0, pid1);
1274             ok = getpgID() == pid1;
1275             write(fds[1], &ok, 1);
1276             exit(0);
1277         }
1278         setpgid(pid2, pid1);
1279
1280         close(fds[1]);
1281         if (read(fds[0], &ok, 1) != 1)
1282           exit(4);
1283         wait(&status);
1284         wait(&status);
1285         exit(ok ? 0 : 5);
1286 }
1287 ], bash_cv_pgrp_pipe=no,bash_cv_pgrp_pipe=yes,
1288    [AC_MSG_WARN(cannot check pgrp synchronization if cross compiling -- defaulting to no)
1289     bash_cv_pgrp_pipe=no])
1290 ])
1291 AC_MSG_RESULT($bash_cv_pgrp_pipe)
1292 if test $bash_cv_pgrp_pipe = yes; then
1293 AC_DEFINE(PGRP_PIPE)
1294 fi
1295 ])
1296
1297 AC_DEFUN(BASH_SYS_REINSTALL_SIGHANDLERS,
1298 [AC_REQUIRE([AC_TYPE_SIGNAL])
1299 AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
1300 AC_MSG_CHECKING([if signal handlers must be reinstalled when invoked])
1301 AC_CACHE_VAL(bash_cv_must_reinstall_sighandlers,
1302 [AC_TRY_RUN([
1303 #include <signal.h>
1304 #ifdef HAVE_UNISTD_H
1305 #include <unistd.h>
1306 #endif
1307
1308 typedef RETSIGTYPE sigfunc();
1309
1310 int nsigint;
1311
1312 #ifdef HAVE_POSIX_SIGNALS
1313 sigfunc *
1314 set_signal_handler(sig, handler)
1315      int sig;
1316      sigfunc *handler;
1317 {
1318   struct sigaction act, oact;
1319   act.sa_handler = handler;
1320   act.sa_flags = 0;
1321   sigemptyset (&act.sa_mask);
1322   sigemptyset (&oact.sa_mask);
1323   sigaction (sig, &act, &oact);
1324   return (oact.sa_handler);
1325 }
1326 #else
1327 #define set_signal_handler(s, h) signal(s, h)
1328 #endif
1329
1330 RETSIGTYPE
1331 sigint(s)
1332 int s;
1333 {
1334   nsigint++;
1335 }
1336
1337 main()
1338 {
1339         nsigint = 0;
1340         set_signal_handler(SIGINT, sigint);
1341         kill((int)getpid(), SIGINT);
1342         kill((int)getpid(), SIGINT);
1343         exit(nsigint != 2);
1344 }
1345 ], bash_cv_must_reinstall_sighandlers=no, bash_cv_must_reinstall_sighandlers=yes,
1346    [AC_MSG_WARN(cannot check signal handling if cross compiling -- defaulting to no)
1347     bash_cv_must_reinstall_sighandlers=no]
1348 )])
1349 AC_MSG_RESULT($bash_cv_must_reinstall_sighandlers)
1350 if test $bash_cv_must_reinstall_sighandlers = yes; then
1351 AC_DEFINE(MUST_REINSTALL_SIGHANDLERS)
1352 fi
1353 ])
1354
1355 dnl check that some necessary job control definitions are present
1356 AC_DEFUN(BASH_SYS_JOB_CONTROL_MISSING,
1357 [AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
1358 AC_MSG_CHECKING(for presence of necessary job control definitions)
1359 AC_CACHE_VAL(bash_cv_job_control_missing,
1360 [AC_TRY_RUN([
1361 #include <sys/types.h>
1362 #ifdef HAVE_SYS_WAIT_H
1363 #include <sys/wait.h>
1364 #endif
1365 #ifdef HAVE_UNISTD_H
1366 #include <unistd.h>
1367 #endif
1368 #include <signal.h>
1369
1370 /* Add more tests in here as appropriate. */
1371 main()
1372 {
1373 /* signal type */
1374 #if !defined (HAVE_POSIX_SIGNALS) && !defined (HAVE_BSD_SIGNALS)
1375 exit(1);
1376 #endif
1377
1378 /* signals and tty control. */
1379 #if !defined (SIGTSTP) || !defined (SIGSTOP) || !defined (SIGCONT)
1380 exit (1);
1381 #endif
1382
1383 /* process control */
1384 #if !defined (WNOHANG) || !defined (WUNTRACED) 
1385 exit(1);
1386 #endif
1387
1388 /* Posix systems have tcgetpgrp and waitpid. */
1389 #if defined (_POSIX_VERSION) && !defined (HAVE_TCGETPGRP)
1390 exit(1);
1391 #endif
1392
1393 #if defined (_POSIX_VERSION) && !defined (HAVE_WAITPID)
1394 exit(1);
1395 #endif
1396
1397 /* Other systems have TIOCSPGRP/TIOCGPRGP and wait3. */
1398 #if !defined (_POSIX_VERSION) && !defined (HAVE_WAIT3)
1399 exit(1);
1400 #endif
1401
1402 exit(0);
1403 }], bash_cv_job_control_missing=present, bash_cv_job_control_missing=missing,
1404     [AC_MSG_WARN(cannot check job control if cross-compiling -- defaulting to missing)
1405      bash_cv_job_control_missing=missing]
1406 )])
1407 AC_MSG_RESULT($bash_cv_job_control_missing)
1408 if test $bash_cv_job_control_missing = missing; then
1409 AC_DEFINE(JOB_CONTROL_MISSING)
1410 fi
1411 ])
1412
1413 dnl check whether named pipes are present
1414 dnl this requires a previous check for mkfifo, but that is awkward to specify
1415 AC_DEFUN(BASH_SYS_NAMED_PIPES,
1416 [AC_MSG_CHECKING(for presence of named pipes)
1417 AC_CACHE_VAL(bash_cv_sys_named_pipes,
1418 [AC_TRY_RUN([
1419 #include <sys/types.h>
1420 #include <sys/stat.h>
1421 #ifdef HAVE_UNISTD_H
1422 #include <unistd.h>
1423 #endif
1424
1425 /* Add more tests in here as appropriate. */
1426 main()
1427 {
1428 int fd, err;
1429
1430 #if defined (HAVE_MKFIFO)
1431 exit (0);
1432 #endif
1433
1434 #if !defined (S_IFIFO) && (defined (_POSIX_VERSION) && !defined (S_ISFIFO))
1435 exit (1);
1436 #endif
1437
1438 #if defined (NeXT)
1439 exit (1);
1440 #endif
1441 err = mkdir("bash-aclocal", 0700);
1442 if (err < 0) {
1443   perror ("mkdir");
1444   exit(1);
1445 }
1446 fd = mknod ("bash-aclocal/sh-np-autoconf", 0666 | S_IFIFO, 0);
1447 if (fd == -1) {
1448   rmdir ("bash-aclocal");
1449   exit (1);
1450 }
1451 close(fd);
1452 unlink ("bash-aclocal/sh-np-autoconf");
1453 rmdir ("bash-aclocal");
1454 exit(0);
1455 }], bash_cv_sys_named_pipes=present, bash_cv_sys_named_pipes=missing,
1456     [AC_MSG_WARN(cannot check for named pipes if cross-compiling -- defaulting to missing)
1457      bash_cv_sys_named_pipes=missing]
1458 )])
1459 AC_MSG_RESULT($bash_cv_sys_named_pipes)
1460 if test $bash_cv_sys_named_pipes = missing; then
1461 AC_DEFINE(NAMED_PIPES_MISSING)
1462 fi
1463 ])
1464
1465 AC_DEFUN(BASH_SYS_DEFAULT_MAIL_DIR,
1466 [AC_MSG_CHECKING(for default mail directory)
1467 AC_CACHE_VAL(bash_cv_mail_dir,
1468 [if test -d /var/mail; then
1469    bash_cv_mail_dir=/var/mail
1470  elif test -d /var/spool/mail; then
1471    bash_cv_mail_dir=/var/spool/mail
1472  elif test -d /usr/mail; then
1473    bash_cv_mail_dir=/usr/mail
1474  elif test -d /usr/spool/mail; then
1475    bash_cv_mail_dir=/usr/spool/mail
1476  else
1477    bash_cv_mail_dir=unknown
1478  fi
1479 ])
1480 AC_MSG_RESULT($bash_cv_mail_dir)
1481 AC_DEFINE_UNQUOTED(DEFAULT_MAIL_DIRECTORY, "$bash_cv_mail_dir")
1482 ])
1483
1484 AC_DEFUN(BASH_HAVE_TIOCGWINSZ,
1485 [AC_MSG_CHECKING(for TIOCGWINSZ in sys/ioctl.h)
1486 AC_CACHE_VAL(bash_cv_tiocgwinsz_in_ioctl,
1487 [AC_TRY_COMPILE([#include <sys/types.h>
1488 #include <sys/ioctl.h>], [int x = TIOCGWINSZ;],
1489   bash_cv_tiocgwinsz_in_ioctl=yes,bash_cv_tiocgwinsz_in_ioctl=no)])
1490 AC_MSG_RESULT($bash_cv_tiocgwinsz_in_ioctl)
1491 if test $bash_cv_tiocgwinsz_in_ioctl = yes; then   
1492 AC_DEFINE(GWINSZ_IN_SYS_IOCTL)
1493 fi
1494 ])
1495
1496 AC_DEFUN(BASH_HAVE_TIOCSTAT,
1497 [AC_MSG_CHECKING(for TIOCSTAT in sys/ioctl.h)
1498 AC_CACHE_VAL(bash_cv_tiocstat_in_ioctl,
1499 [AC_TRY_COMPILE([#include <sys/types.h>
1500 #include <sys/ioctl.h>], [int x = TIOCSTAT;],
1501   bash_cv_tiocstat_in_ioctl=yes,bash_cv_tiocstat_in_ioctl=no)])
1502 AC_MSG_RESULT($bash_cv_tiocstat_in_ioctl)
1503 if test $bash_cv_tiocstat_in_ioctl = yes; then   
1504 AC_DEFINE(TIOCSTAT_IN_SYS_IOCTL)
1505 fi
1506 ])
1507
1508 AC_DEFUN(BASH_HAVE_FIONREAD,
1509 [AC_MSG_CHECKING(for FIONREAD in sys/ioctl.h)
1510 AC_CACHE_VAL(bash_cv_fionread_in_ioctl,
1511 [AC_TRY_COMPILE([#include <sys/types.h>
1512 #include <sys/ioctl.h>], [int x = FIONREAD;],
1513   bash_cv_fionread_in_ioctl=yes,bash_cv_fionread_in_ioctl=no)])
1514 AC_MSG_RESULT($bash_cv_fionread_in_ioctl)
1515 if test $bash_cv_fionread_in_ioctl = yes; then   
1516 AC_DEFINE(FIONREAD_IN_SYS_IOCTL)
1517 fi
1518 ])
1519
1520 dnl
1521 dnl See if speed_t is declared in <sys/types.h>.  Some versions of linux
1522 dnl require a definition of speed_t each time <termcap.h> is included,
1523 dnl but you can only get speed_t if you include <termios.h> (on some
1524 dnl versions) or <sys/types.h> (on others).
1525 dnl
1526 AC_DEFUN(BASH_CHECK_SPEED_T,
1527 [AC_MSG_CHECKING(for speed_t in sys/types.h)
1528 AC_CACHE_VAL(bash_cv_speed_t_in_sys_types,
1529 [AC_TRY_COMPILE([#include <sys/types.h>], [speed_t x;],
1530   bash_cv_speed_t_in_sys_types=yes,bash_cv_speed_t_in_sys_types=no)])
1531 AC_MSG_RESULT($bash_cv_speed_t_in_sys_types)
1532 if test $bash_cv_speed_t_in_sys_types = yes; then   
1533 AC_DEFINE(SPEED_T_IN_SYS_TYPES)
1534 fi
1535 ])
1536
1537 AC_DEFUN(BASH_CHECK_GETPW_FUNCS,
1538 [AC_MSG_CHECKING(whether getpw functions are declared in pwd.h)
1539 AC_CACHE_VAL(bash_cv_getpw_declared,
1540 [AC_EGREP_CPP(getpwuid,
1541 [
1542 #include <sys/types.h>
1543 #ifdef HAVE_UNISTD_H
1544 #  include <unistd.h>
1545 #endif
1546 #include <pwd.h>
1547 ],
1548 bash_cv_getpw_declared=yes,bash_cv_getpw_declared=no)])
1549 AC_MSG_RESULT($bash_cv_getpw_declared)
1550 if test $bash_cv_getpw_declared = yes; then
1551 AC_DEFINE(HAVE_GETPW_DECLS)
1552 fi
1553 ])
1554
1555 AC_DEFUN(BASH_CHECK_DEV_FD,
1556 [AC_MSG_CHECKING(whether /dev/fd is available)
1557 AC_CACHE_VAL(bash_cv_dev_fd,
1558 [bash_cv_dev_fd=""
1559 if test -d /dev/fd  && (exec test -r /dev/fd/0 < /dev/null) ; then
1560 # check for systems like FreeBSD 5 that only provide /dev/fd/[012]
1561    if (exec test -r /dev/fd/3 3</dev/null) ; then
1562      bash_cv_dev_fd=standard
1563    else
1564      bash_cv_dev_fd=absent
1565    fi
1566 fi
1567 if test -z "$bash_cv_dev_fd" ; then 
1568   if test -d /proc/self/fd && (exec test -r /proc/self/fd/0 < /dev/null) ; then
1569     bash_cv_dev_fd=whacky
1570   else
1571     bash_cv_dev_fd=absent
1572   fi
1573 fi
1574 ])
1575 AC_MSG_RESULT($bash_cv_dev_fd)
1576 if test $bash_cv_dev_fd = "standard"; then
1577   AC_DEFINE(HAVE_DEV_FD)
1578   AC_DEFINE(DEV_FD_PREFIX, "/dev/fd/")
1579 elif test $bash_cv_dev_fd = "whacky"; then
1580   AC_DEFINE(HAVE_DEV_FD)
1581   AC_DEFINE(DEV_FD_PREFIX, "/proc/self/fd/")
1582 fi
1583 ])
1584
1585 AC_DEFUN(BASH_CHECK_DEV_STDIN,
1586 [AC_MSG_CHECKING(whether /dev/stdin stdout stderr are available)
1587 AC_CACHE_VAL(bash_cv_dev_stdin,
1588 [if test -d /dev/fd && (exec test -r /dev/stdin < /dev/null) ; then
1589    bash_cv_dev_stdin=present
1590  elif test -d /proc/self/fd && (exec test -r /dev/stdin < /dev/null) ; then
1591    bash_cv_dev_stdin=present
1592  else
1593    bash_cv_dev_stdin=absent
1594  fi
1595 ])
1596 AC_MSG_RESULT($bash_cv_dev_stdin)
1597 if test $bash_cv_dev_stdin = "present"; then
1598   AC_DEFINE(HAVE_DEV_STDIN)
1599 fi
1600 ])
1601
1602 dnl
1603 dnl Check if HPUX needs _KERNEL defined for RLIMIT_* definitions
1604 dnl
1605 AC_DEFUN(BASH_CHECK_KERNEL_RLIMIT,
1606 [AC_MSG_CHECKING([whether $host_os needs _KERNEL for RLIMIT defines])
1607 AC_CACHE_VAL(bash_cv_kernel_rlimit,
1608 [AC_TRY_COMPILE([
1609 #include <sys/types.h>
1610 #include <sys/resource.h>
1611 ],
1612 [
1613   int f;
1614   f = RLIMIT_DATA;
1615 ], bash_cv_kernel_rlimit=no,
1616 [AC_TRY_COMPILE([
1617 #include <sys/types.h>
1618 #define _KERNEL
1619 #include <sys/resource.h>
1620 #undef _KERNEL
1621 ],
1622 [
1623         int f;
1624         f = RLIMIT_DATA;
1625 ], bash_cv_kernel_rlimit=yes, bash_cv_kernel_rlimit=no)]
1626 )])
1627 AC_MSG_RESULT($bash_cv_kernel_rlimit)
1628 if test $bash_cv_kernel_rlimit = yes; then
1629 AC_DEFINE(RLIMIT_NEEDS_KERNEL)
1630 fi
1631 ])
1632
1633 dnl
1634 dnl Check for 64-bit off_t -- used for malloc alignment
1635 dnl
1636 dnl C does not allow duplicate case labels, so the compile will fail if
1637 dnl sizeof(off_t) is > 4.
1638 dnl
1639 AC_DEFUN(BASH_CHECK_OFF_T_64,
1640 [AC_CACHE_CHECK(for 64-bit off_t, bash_cv_off_t_64,
1641 AC_TRY_COMPILE([
1642 #ifdef HAVE_UNISTD_H
1643 #include <unistd.h>
1644 #endif
1645 #include <sys/types.h>
1646 ],[
1647 switch (0) case 0: case (sizeof (off_t) <= 4):;
1648 ], bash_cv_off_t_64=no, bash_cv_off_t_64=yes))
1649 if test $bash_cv_off_t_64 = yes; then
1650         AC_DEFINE(HAVE_OFF_T_64)
1651 fi])
1652
1653 AC_DEFUN(BASH_CHECK_RTSIGS,
1654 [AC_MSG_CHECKING(for unusable real-time signals due to large values)
1655 AC_CACHE_VAL(bash_cv_unusable_rtsigs,
1656 [AC_TRY_RUN([
1657 #include <sys/types.h>
1658 #include <signal.h>
1659
1660 #ifndef NSIG
1661 #  define NSIG 64
1662 #endif
1663
1664 main ()
1665 {
1666   int n_sigs = 2 * NSIG;
1667 #ifdef SIGRTMIN
1668   int rtmin = SIGRTMIN;
1669 #else
1670   int rtmin = 0;
1671 #endif
1672
1673   exit(rtmin < n_sigs);
1674 }], bash_cv_unusable_rtsigs=yes, bash_cv_unusable_rtsigs=no,
1675     [AC_MSG_WARN(cannot check real-time signals if cross compiling -- defaulting to yes)
1676      bash_cv_unusable_rtsigs=yes]
1677 )])
1678 AC_MSG_RESULT($bash_cv_unusable_rtsigs)
1679 if test $bash_cv_unusable_rtsigs = yes; then
1680 AC_DEFINE(UNUSABLE_RT_SIGNALS)
1681 fi
1682 ])
1683
1684 dnl
1685 dnl check for availability of multibyte characters and functions
1686 dnl
1687 dnl geez, I wish I didn't have to check for all of this stuff separately
1688 dnl
1689 AC_DEFUN(BASH_CHECK_MULTIBYTE,
1690 [
1691 AC_CHECK_HEADERS(wctype.h)
1692 AC_CHECK_HEADERS(wchar.h)
1693 AC_CHECK_HEADERS(langinfo.h)
1694
1695 AC_CHECK_FUNC(mbrlen, AC_DEFINE(HAVE_MBRLEN))
1696 AC_CHECK_FUNC(mbscasecmp, AC_DEFINE(HAVE_MBSCMP))
1697 AC_CHECK_FUNC(mbscmp, AC_DEFINE(HAVE_MBSCMP))
1698 AC_CHECK_FUNC(mbsnrtowcs, AC_DEFINE(HAVE_MBSNRTOWCS))
1699 AC_CHECK_FUNC(mbsrtowcs, AC_DEFINE(HAVE_MBSRTOWCS))
1700
1701 AC_REPLACE_FUNCS(mbschr)
1702
1703 AC_CHECK_FUNC(wcrtomb, AC_DEFINE(HAVE_WCRTOMB))
1704 AC_CHECK_FUNC(wcscoll, AC_DEFINE(HAVE_WCSCOLL))
1705 AC_CHECK_FUNC(wcsdup, AC_DEFINE(HAVE_WCSDUP))
1706 AC_CHECK_FUNC(wcwidth, AC_DEFINE(HAVE_WCWIDTH))
1707 AC_CHECK_FUNC(wctype, AC_DEFINE(HAVE_WCTYPE))
1708
1709 AC_REPLACE_FUNCS(wcswidth)
1710
1711 dnl checks for both mbrtowc and mbstate_t
1712 AC_FUNC_MBRTOWC
1713 if test $ac_cv_func_mbrtowc = yes; then
1714         AC_DEFINE(HAVE_MBSTATE_T)
1715 fi
1716
1717 AC_CHECK_FUNCS(iswlower iswupper towlower towupper iswctype)
1718
1719 AC_CACHE_CHECK([for nl_langinfo and CODESET], bash_cv_langinfo_codeset,
1720 [AC_TRY_LINK(
1721 [#include <langinfo.h>],
1722 [char* cs = nl_langinfo(CODESET);],
1723 bash_cv_langinfo_codeset=yes, bash_cv_langinfo_codeset=no)])
1724 if test $bash_cv_langinfo_codeset = yes; then
1725   AC_DEFINE(HAVE_LANGINFO_CODESET)
1726 fi
1727
1728 dnl check for wchar_t in <wchar.h>
1729 AC_CACHE_CHECK([for wchar_t in wchar.h], bash_cv_type_wchar_t,
1730 [AC_TRY_COMPILE(
1731 [#include <wchar.h>
1732 ],
1733 [
1734         wchar_t foo;
1735         foo = 0;
1736 ], bash_cv_type_wchar_t=yes, bash_cv_type_wchar_t=no)])
1737 if test $bash_cv_type_wchar_t = yes; then
1738         AC_DEFINE(HAVE_WCHAR_T, 1, [systems should define this type here])
1739 fi
1740
1741 dnl check for wctype_t in <wctype.h>
1742 AC_CACHE_CHECK([for wctype_t in wctype.h], bash_cv_type_wctype_t,
1743 [AC_TRY_COMPILE(
1744 [#include <wctype.h>],
1745 [
1746         wctype_t foo;
1747         foo = 0;
1748 ], bash_cv_type_wctype_t=yes, bash_cv_type_wctype_t=no)])
1749 if test $bash_cv_type_wctype_t = yes; then
1750         AC_DEFINE(HAVE_WCTYPE_T, 1, [systems should define this type here])
1751 fi
1752
1753 dnl check for wint_t in <wctype.h>
1754 AC_CACHE_CHECK([for wint_t in wctype.h], bash_cv_type_wint_t,
1755 [AC_TRY_COMPILE(
1756 [#include <wctype.h>],
1757 [
1758         wint_t foo;
1759         foo = 0;
1760 ], bash_cv_type_wint_t=yes, bash_cv_type_wint_t=no)])
1761 if test $bash_cv_type_wint_t = yes; then
1762         AC_DEFINE(HAVE_WINT_T, 1, [systems should define this type here])
1763 fi
1764
1765 dnl check for broken wcwidth
1766 AC_CACHE_CHECK([for wcwidth broken with unicode combining characters],
1767 bash_cv_wcwidth_broken,
1768 [AC_TRY_RUN([
1769 #include <unistd.h>
1770 #include <stdlib.h>
1771 #include <stdio.h>
1772
1773 #include <locale.h>
1774 #include <wchar.h>
1775
1776 main(c, v)
1777 int     c;
1778 char    **v;
1779 {
1780         int     w;
1781
1782         setlocale(LC_ALL, "en_US.UTF-8");
1783         w = wcwidth (0x0301);
1784         exit (w == 0);  /* exit 0 if wcwidth broken */
1785 }
1786 ],
1787 bash_cv_wcwidth_broken=yes, bash_cv_wcwdith_broken=no, bash_cv_wcwidth_broken=no)])
1788 if test "$bash_cv_wcwidth_broken" = yes; then
1789         AC_DEFINE(WCWIDTH_BROKEN, 1, [wcwidth is usually not broken])
1790 fi
1791
1792 if test "$am_cv_func_iconv" = yes; then
1793         OLDLIBS="$LIBS"
1794         LIBS="$LIBS $LIBICONV"
1795         AC_CHECK_FUNCS(locale_charset)
1796         LIBS="$OLDLIBS"
1797 fi
1798
1799 ])
1800
1801 dnl need: prefix exec_prefix libdir includedir CC TERMCAP_LIB
1802 dnl require:
1803 dnl     AC_PROG_CC
1804 dnl     BASH_CHECK_LIB_TERMCAP
1805
1806 AC_DEFUN([RL_LIB_READLINE_VERSION],
1807 [
1808 AC_REQUIRE([BASH_CHECK_LIB_TERMCAP])
1809
1810 AC_MSG_CHECKING([version of installed readline library])
1811
1812 # What a pain in the ass this is.
1813
1814 # save cpp and ld options
1815 _save_CFLAGS="$CFLAGS"
1816 _save_LDFLAGS="$LDFLAGS"
1817 _save_LIBS="$LIBS"
1818
1819 # Don't set ac_cv_rl_prefix if the caller has already assigned a value.  This
1820 # allows the caller to do something like $_rl_prefix=$withval if the user
1821 # specifies --with-installed-readline=PREFIX as an argument to configure
1822
1823 if test -z "$ac_cv_rl_prefix"; then
1824 test "x$prefix" = xNONE && ac_cv_rl_prefix=$ac_default_prefix || ac_cv_rl_prefix=${prefix}
1825 fi
1826
1827 eval ac_cv_rl_includedir=${ac_cv_rl_prefix}/include
1828 eval ac_cv_rl_libdir=${ac_cv_rl_prefix}/lib
1829
1830 LIBS="$LIBS -lreadline ${TERMCAP_LIB}"
1831 CFLAGS="$CFLAGS -I${ac_cv_rl_includedir}"
1832 LDFLAGS="$LDFLAGS -L${ac_cv_rl_libdir}"
1833
1834 AC_CACHE_VAL(ac_cv_rl_version,
1835 [AC_TRY_RUN([
1836 #include <stdio.h>
1837 #include <readline/readline.h>
1838
1839 extern int rl_gnu_readline_p;
1840
1841 main()
1842 {
1843         FILE *fp;
1844         fp = fopen("conftest.rlv", "w");
1845         if (fp == 0)
1846                 exit(1);
1847         if (rl_gnu_readline_p != 1)
1848                 fprintf(fp, "0.0\n");
1849         else
1850                 fprintf(fp, "%s\n", rl_library_version ? rl_library_version : "0.0");
1851         fclose(fp);
1852         exit(0);
1853 }
1854 ],
1855 ac_cv_rl_version=`cat conftest.rlv`,
1856 ac_cv_rl_version='0.0',
1857 ac_cv_rl_version='4.2')])
1858
1859 CFLAGS="$_save_CFLAGS"
1860 LDFLAGS="$_save_LDFLAGS"
1861 LIBS="$_save_LIBS"
1862
1863 RL_MAJOR=0
1864 RL_MINOR=0
1865
1866 # (
1867 case "$ac_cv_rl_version" in
1868 2*|3*|4*|5*|6*|7*|8*|9*)
1869         RL_MAJOR=`echo $ac_cv_rl_version | sed 's:\..*$::'`
1870         RL_MINOR=`echo $ac_cv_rl_version | sed -e 's:^.*\.::' -e 's:[[a-zA-Z]]*$::'`
1871         ;;
1872 esac
1873
1874 # (((
1875 case $RL_MAJOR in
1876 [[0-9][0-9]])   _RL_MAJOR=$RL_MAJOR ;;
1877 [[0-9]])        _RL_MAJOR=0$RL_MAJOR ;;
1878 *)              _RL_MAJOR=00 ;;
1879 esac
1880
1881 # (((
1882 case $RL_MINOR in
1883 [[0-9][0-9]])   _RL_MINOR=$RL_MINOR ;;
1884 [[0-9]])        _RL_MINOR=0$RL_MINOR ;;
1885 *)              _RL_MINOR=00 ;;
1886 esac
1887
1888 RL_VERSION="0x${_RL_MAJOR}${_RL_MINOR}"
1889
1890 # Readline versions greater than 4.2 have these defines in readline.h
1891
1892 if test $ac_cv_rl_version = '0.0' ; then
1893         AC_MSG_WARN([Could not test version of installed readline library.])
1894 elif test $RL_MAJOR -gt 4 || { test $RL_MAJOR = 4 && test $RL_MINOR -gt 2 ; } ; then
1895         # set these for use by the caller
1896         RL_PREFIX=$ac_cv_rl_prefix
1897         RL_LIBDIR=$ac_cv_rl_libdir
1898         RL_INCLUDEDIR=$ac_cv_rl_includedir
1899         AC_MSG_RESULT($ac_cv_rl_version)
1900 else
1901
1902 AC_DEFINE_UNQUOTED(RL_READLINE_VERSION, $RL_VERSION, [encoded version of the installed readline library])
1903 AC_DEFINE_UNQUOTED(RL_VERSION_MAJOR, $RL_MAJOR, [major version of installed readline library])
1904 AC_DEFINE_UNQUOTED(RL_VERSION_MINOR, $RL_MINOR, [minor version of installed readline library])
1905
1906 AC_SUBST(RL_VERSION)
1907 AC_SUBST(RL_MAJOR)
1908 AC_SUBST(RL_MINOR)
1909
1910 # set these for use by the caller
1911 RL_PREFIX=$ac_cv_rl_prefix
1912 RL_LIBDIR=$ac_cv_rl_libdir
1913 RL_INCLUDEDIR=$ac_cv_rl_includedir
1914
1915 AC_MSG_RESULT($ac_cv_rl_version)
1916
1917 fi
1918 ])
1919
1920 AC_DEFUN(BASH_FUNC_CTYPE_NONASCII,
1921 [
1922 AC_MSG_CHECKING(whether the ctype macros accept non-ascii characters)
1923 AC_CACHE_VAL(bash_cv_func_ctype_nonascii,
1924 [AC_TRY_RUN([
1925 #ifdef HAVE_LOCALE_H
1926 #include <locale.h>
1927 #endif
1928 #include <stdio.h>
1929 #include <ctype.h>
1930
1931 main(c, v)
1932 int     c;
1933 char    *v[];
1934 {
1935         char    *deflocale;
1936         unsigned char x;
1937         int     r1, r2;
1938
1939 #ifdef HAVE_SETLOCALE
1940         /* We take a shot here.  If that locale is not known, try the
1941            system default.  We try this one because '\342' (226) is
1942            known to be a printable character in that locale. */
1943         deflocale = setlocale(LC_ALL, "en_US.ISO8859-1");
1944         if (deflocale == 0)
1945                 deflocale = setlocale(LC_ALL, "");
1946 #endif
1947
1948         x = '\342';
1949         r1 = isprint(x);
1950         x -= 128;
1951         r2 = isprint(x);
1952         exit (r1 == 0 || r2 == 0);
1953 }
1954 ], bash_cv_func_ctype_nonascii=yes, bash_cv_func_ctype_nonascii=no,
1955    [AC_MSG_WARN(cannot check ctype macros if cross compiling -- defaulting to no)
1956     bash_cv_func_ctype_nonascii=no]
1957 )])
1958 AC_MSG_RESULT($bash_cv_func_ctype_nonascii)
1959 if test $bash_cv_func_ctype_nonascii = yes; then
1960 AC_DEFINE(CTYPE_NON_ASCII)
1961 fi
1962 ])
1963
1964 AC_DEFUN(BASH_CHECK_WCONTINUED,
1965 [
1966 AC_MSG_CHECKING(whether WCONTINUED flag to waitpid is unavailable or available but broken)
1967 AC_CACHE_VAL(bash_cv_wcontinued_broken,
1968 [AC_TRY_RUN([
1969 #include <sys/types.h>
1970 #include <sys/wait.h>
1971 #include <unistd.h>
1972 #include <errno.h>
1973
1974 #ifndef errno
1975 extern int errno;
1976 #endif
1977 main()
1978 {
1979         int     x;
1980
1981         x = waitpid(-1, (int *)0, WNOHANG|WCONTINUED);
1982         if (x == -1 && errno == EINVAL)
1983                 exit (1);
1984         else
1985                 exit (0);
1986 }
1987 ], bash_cv_wcontinued_broken=no,bash_cv_wcontinued_broken=yes,
1988    [AC_MSG_WARN(cannot check WCONTINUED if cross compiling -- defaulting to no)
1989     bash_cv_wcontinued_broken=no]
1990 )])
1991 AC_MSG_RESULT($bash_cv_wcontinued_broken)
1992 if test $bash_cv_wcontinued_broken = yes; then
1993 AC_DEFINE(WCONTINUED_BROKEN)
1994 fi
1995 ])
1996
1997 dnl
1998 dnl tests added for bashdb
1999 dnl
2000
2001
2002 AC_DEFUN([AM_PATH_LISPDIR],
2003  [AC_ARG_WITH(lispdir, AC_HELP_STRING([--with-lispdir], [override the default lisp directory]),
2004   [ lispdir="$withval" 
2005     AC_MSG_CHECKING([where .elc files should go])
2006     AC_MSG_RESULT([$lispdir])],
2007   [
2008   # If set to t, that means we are running in a shell under Emacs.
2009   # If you have an Emacs named "t", then use the full path.
2010   test x"$EMACS" = xt && EMACS=
2011   AC_CHECK_PROGS(EMACS, emacs xemacs, no)
2012   if test $EMACS != "no"; then
2013     if test x${lispdir+set} != xset; then
2014       AC_CACHE_CHECK([where .elc files should go], [am_cv_lispdir], [dnl
2015         am_cv_lispdir=`$EMACS -batch -q -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' | sed -n -e 's,/$,,' -e '/.*\/lib\/\(x\?emacs\/site-lisp\)$/{s,,${libdir}/\1,;p;q;}' -e '/.*\/share\/\(x\?emacs\/site-lisp\)$/{s,,${datadir}/\1,;p;q;}'`
2016         if test -z "$am_cv_lispdir"; then
2017           am_cv_lispdir='${datadir}/emacs/site-lisp'
2018         fi
2019       ])
2020       lispdir="$am_cv_lispdir"
2021     fi
2022   fi
2023  ])
2024  AC_SUBST(lispdir)
2025 ])
2026
2027 dnl
2028 dnl tests added for gettext
2029 dnl
2030 # codeset.m4 serial AM1 (gettext-0.10.40)
2031 dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
2032 dnl This file is free software, distributed under the terms of the GNU
2033 dnl General Public License.  As a special exception to the GNU General
2034 dnl Public License, this file may be distributed as part of a program
2035 dnl that contains a configuration script generated by Autoconf, under
2036 dnl the same distribution terms as the rest of that program.
2037
2038 dnl From Bruno Haible.
2039
2040 AC_DEFUN([AM_LANGINFO_CODESET],
2041 [
2042   AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
2043     [AC_TRY_LINK([#include <langinfo.h>],
2044       [char* cs = nl_langinfo(CODESET);],
2045       am_cv_langinfo_codeset=yes,
2046       am_cv_langinfo_codeset=no)
2047     ])
2048   if test $am_cv_langinfo_codeset = yes; then
2049     AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
2050       [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
2051   fi
2052 ])
2053 # gettext.m4 serial 20 (gettext-0.12)
2054 dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
2055 dnl This file is free software, distributed under the terms of the GNU
2056 dnl General Public License.  As a special exception to the GNU General
2057 dnl Public License, this file may be distributed as part of a program
2058 dnl that contains a configuration script generated by Autoconf, under
2059 dnl the same distribution terms as the rest of that program.
2060 dnl
2061 dnl This file can can be used in projects which are not available under
2062 dnl the GNU General Public License or the GNU Library General Public
2063 dnl License but which still want to provide support for the GNU gettext
2064 dnl functionality.
2065 dnl Please note that the actual code of the GNU gettext library is covered
2066 dnl by the GNU Library General Public License, and the rest of the GNU
2067 dnl gettext package package is covered by the GNU General Public License.
2068 dnl They are *not* in the public domain.
2069
2070 dnl Authors:
2071 dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
2072 dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
2073
2074 dnl Macro to add for using GNU gettext.
2075
2076 dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
2077 dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
2078 dnl    default (if it is not specified or empty) is 'no-libtool'.
2079 dnl    INTLSYMBOL should be 'external' for packages with no intl directory,
2080 dnl    and 'no-libtool' or 'use-libtool' for packages with an intl directory.
2081 dnl    If INTLSYMBOL is 'use-libtool', then a libtool library
2082 dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
2083 dnl    depending on --{enable,disable}-{shared,static} and on the presence of
2084 dnl    AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
2085 dnl    $(top_builddir)/intl/libintl.a will be created.
2086 dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
2087 dnl    implementations (in libc or libintl) without the ngettext() function
2088 dnl    will be ignored.  If NEEDSYMBOL is specified and is
2089 dnl    'need-formatstring-macros', then GNU gettext implementations that don't
2090 dnl    support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
2091 dnl INTLDIR is used to find the intl libraries.  If empty,
2092 dnl    the value `$(top_builddir)/intl/' is used.
2093 dnl
2094 dnl The result of the configuration is one of three cases:
2095 dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
2096 dnl    and used.
2097 dnl    Catalog format: GNU --> install in $(datadir)
2098 dnl    Catalog extension: .mo after installation, .gmo in source tree
2099 dnl 2) GNU gettext has been found in the system's C library.
2100 dnl    Catalog format: GNU --> install in $(datadir)
2101 dnl    Catalog extension: .mo after installation, .gmo in source tree
2102 dnl 3) No internationalization, always use English msgid.
2103 dnl    Catalog format: none
2104 dnl    Catalog extension: none
2105 dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
2106 dnl The use of .gmo is historical (it was needed to avoid overwriting the
2107 dnl GNU format catalogs when building on a platform with an X/Open gettext),
2108 dnl but we keep it in order not to force irrelevant filename changes on the
2109 dnl maintainers.
2110 dnl
2111 AC_DEFUN([AM_GNU_GETTEXT],
2112 [
2113   dnl Argument checking.
2114   ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
2115     [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
2116 ])])])])])
2117   ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
2118     [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
2119 ])])])])
2120   define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
2121   define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
2122
2123   AC_REQUIRE([AM_PO_SUBDIRS])dnl
2124   ifelse(gt_included_intl, yes, [
2125     AC_REQUIRE([AM_INTL_SUBDIR])dnl
2126   ])
2127
2128   dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
2129   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
2130   AC_REQUIRE([AC_LIB_RPATH])
2131
2132   dnl Sometimes libintl requires libiconv, so first search for libiconv.
2133   dnl Ideally we would do this search only after the
2134   dnl      if test "$USE_NLS" = "yes"; then
2135   dnl        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
2136   dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
2137   dnl the configure script would need to contain the same shell code
2138   dnl again, outside any 'if'. There are two solutions:
2139   dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
2140   dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
2141   dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
2142   dnl documented, we avoid it.
2143   ifelse(gt_included_intl, yes, , [
2144     AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
2145   ])
2146
2147   dnl Set USE_NLS.
2148   AM_NLS
2149
2150   ifelse(gt_included_intl, yes, [
2151     BUILD_INCLUDED_LIBINTL=no
2152     USE_INCLUDED_LIBINTL=no
2153   ])
2154   LIBINTL=
2155   LTLIBINTL=
2156   POSUB=
2157
2158   dnl If we use NLS figure out what method
2159   if test "$USE_NLS" = "yes"; then
2160     gt_use_preinstalled_gnugettext=no
2161     ifelse(gt_included_intl, yes, [
2162       AC_MSG_CHECKING([whether included gettext is requested])
2163       AC_ARG_WITH(included-gettext,
2164         [  --with-included-gettext use the GNU gettext library included here],
2165         nls_cv_force_use_gnu_gettext=$withval,
2166         nls_cv_force_use_gnu_gettext=no)
2167       AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
2168
2169       nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
2170       if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
2171     ])
2172         dnl User does not insist on using GNU NLS library.  Figure out what
2173         dnl to use.  If GNU gettext is available we use this.  Else we have
2174         dnl to fall back to GNU NLS library.
2175
2176         dnl Add a version number to the cache macros.
2177         define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
2178         define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
2179         define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
2180
2181         AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
2182          [AC_TRY_LINK([#include <libintl.h>
2183 ]ifelse([$2], [need-formatstring-macros],
2184 [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
2185 #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
2186 #endif
2187 changequote(,)dnl
2188 typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
2189 changequote([,])dnl
2190 ], [])[extern int _nl_msg_cat_cntr;
2191 extern int *_nl_domain_bindings;],
2192             [bindtextdomain ("", "");
2193 return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
2194             gt_cv_func_gnugettext_libc=yes,
2195             gt_cv_func_gnugettext_libc=no)])
2196
2197         if test "$gt_cv_func_gnugettext_libc" != "yes"; then
2198           dnl Sometimes libintl requires libiconv, so first search for libiconv.
2199           ifelse(gt_included_intl, yes, , [
2200             AM_ICONV_LINK
2201           ])
2202           dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
2203           dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
2204           dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
2205           dnl even if libiconv doesn't exist.
2206           AC_LIB_LINKFLAGS_BODY([intl])
2207           AC_CACHE_CHECK([for GNU gettext in libintl],
2208             gt_cv_func_gnugettext_libintl,
2209            [gt_save_CPPFLAGS="$CPPFLAGS"
2210             CPPFLAGS="$CPPFLAGS $INCINTL"
2211             gt_save_LIBS="$LIBS"
2212             LIBS="$LIBS $LIBINTL"
2213             dnl Now see whether libintl exists and does not depend on libiconv.
2214             AC_TRY_LINK([#include <libintl.h>
2215 ]ifelse([$2], [need-formatstring-macros],
2216 [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
2217 #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
2218 #endif
2219 changequote(,)dnl
2220 typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
2221 changequote([,])dnl
2222 ], [])[extern int _nl_msg_cat_cntr;
2223 extern
2224 #ifdef __cplusplus
2225 "C"
2226 #endif
2227 const char *_nl_expand_alias ();],
2228               [bindtextdomain ("", "");
2229 return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
2230               gt_cv_func_gnugettext_libintl=yes,
2231               gt_cv_func_gnugettext_libintl=no)
2232             dnl Now see whether libintl exists and depends on libiconv.
2233             if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
2234               LIBS="$LIBS $LIBICONV"
2235               AC_TRY_LINK([#include <libintl.h>
2236 ]ifelse([$2], [need-formatstring-macros],
2237 [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
2238 #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
2239 #endif
2240 changequote(,)dnl
2241 typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
2242 changequote([,])dnl
2243 ], [])[extern int _nl_msg_cat_cntr;
2244 extern
2245 #ifdef __cplusplus
2246 "C"
2247 #endif
2248 const char *_nl_expand_alias ();],
2249                 [bindtextdomain ("", "");
2250 return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
2251                [LIBINTL="$LIBINTL $LIBICONV"
2252                 LTLIBINTL="$LTLIBINTL $LTLIBICONV"
2253                 gt_cv_func_gnugettext_libintl=yes
2254                ])
2255             fi
2256             CPPFLAGS="$gt_save_CPPFLAGS"
2257             LIBS="$gt_save_LIBS"])
2258         fi
2259
2260         dnl If an already present or preinstalled GNU gettext() is found,
2261         dnl use it.  But if this macro is used in GNU gettext, and GNU
2262         dnl gettext is already preinstalled in libintl, we update this
2263         dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
2264         if test "$gt_cv_func_gnugettext_libc" = "yes" \
2265            || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
2266                 && test "$PACKAGE" != gettext-runtime \
2267                 && test "$PACKAGE" != gettext-tools; }; then
2268           gt_use_preinstalled_gnugettext=yes
2269         else
2270           dnl Reset the values set by searching for libintl.
2271           LIBINTL=
2272           LTLIBINTL=
2273           INCINTL=
2274         fi
2275
2276     ifelse(gt_included_intl, yes, [
2277         if test "$gt_use_preinstalled_gnugettext" != "yes"; then
2278           dnl GNU gettext is not found in the C library.
2279           dnl Fall back on included GNU gettext library.
2280           nls_cv_use_gnu_gettext=yes
2281         fi
2282       fi
2283
2284       if test "$nls_cv_use_gnu_gettext" = "yes"; then
2285         dnl Mark actions used to generate GNU NLS library.
2286         BUILD_INCLUDED_LIBINTL=yes
2287         USE_INCLUDED_LIBINTL=yes
2288         LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
2289         LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
2290         LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
2291       fi
2292
2293       if test "$gt_use_preinstalled_gnugettext" = "yes" \
2294          || test "$nls_cv_use_gnu_gettext" = "yes"; then
2295         dnl Mark actions to use GNU gettext tools.
2296         CATOBJEXT=.gmo
2297       fi
2298     ])
2299
2300     if test "$gt_use_preinstalled_gnugettext" = "yes" \
2301        || test "$nls_cv_use_gnu_gettext" = "yes"; then
2302       AC_DEFINE(ENABLE_NLS, 1,
2303         [Define to 1 if translation of program messages to the user's native language
2304    is requested.])
2305     else
2306       USE_NLS=no
2307     fi
2308   fi
2309
2310   AC_MSG_CHECKING([whether to use NLS])
2311   AC_MSG_RESULT([$USE_NLS])
2312   if test "$USE_NLS" = "yes"; then
2313     AC_MSG_CHECKING([where the gettext function comes from])
2314     if test "$gt_use_preinstalled_gnugettext" = "yes"; then
2315       if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
2316         gt_source="external libintl"
2317       else
2318         gt_source="libc"
2319       fi
2320     else
2321       gt_source="included intl directory"
2322     fi
2323     AC_MSG_RESULT([$gt_source])
2324   fi
2325
2326   if test "$USE_NLS" = "yes"; then
2327
2328     if test "$gt_use_preinstalled_gnugettext" = "yes"; then
2329       if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
2330         AC_MSG_CHECKING([how to link with libintl])
2331         AC_MSG_RESULT([$LIBINTL])
2332         AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
2333       fi
2334
2335       dnl For backward compatibility. Some packages may be using this.
2336       AC_DEFINE(HAVE_GETTEXT, 1,
2337        [Define if the GNU gettext() function is already present or preinstalled.])
2338       AC_DEFINE(HAVE_DCGETTEXT, 1,
2339        [Define if the GNU dcgettext() function is already present or preinstalled.])
2340     fi
2341
2342     dnl We need to process the po/ directory.
2343     POSUB=po
2344   fi
2345
2346   ifelse(gt_included_intl, yes, [
2347     dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
2348     dnl to 'yes' because some of the testsuite requires it.
2349     if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
2350       BUILD_INCLUDED_LIBINTL=yes
2351     fi
2352
2353     dnl Make all variables we use known to autoconf.
2354     AC_SUBST(BUILD_INCLUDED_LIBINTL)
2355     AC_SUBST(USE_INCLUDED_LIBINTL)
2356     AC_SUBST(CATOBJEXT)
2357
2358     dnl For backward compatibility. Some configure.ins may be using this.
2359     nls_cv_header_intl=
2360     nls_cv_header_libgt=
2361
2362     dnl For backward compatibility. Some Makefiles may be using this.
2363     DATADIRNAME=share
2364     AC_SUBST(DATADIRNAME)
2365
2366     dnl For backward compatibility. Some Makefiles may be using this.
2367     INSTOBJEXT=.mo
2368     AC_SUBST(INSTOBJEXT)
2369
2370     dnl For backward compatibility. Some Makefiles may be using this.
2371     GENCAT=gencat
2372     AC_SUBST(GENCAT)
2373
2374     dnl For backward compatibility. Some Makefiles may be using this.
2375     if test "$USE_INCLUDED_LIBINTL" = yes; then
2376       INTLOBJS="\$(GETTOBJS)"
2377     fi
2378     AC_SUBST(INTLOBJS)
2379
2380     dnl Enable libtool support if the surrounding package wishes it.
2381     INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
2382     AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
2383   ])
2384
2385   dnl For backward compatibility. Some Makefiles may be using this.
2386   INTLLIBS="$LIBINTL"
2387   AC_SUBST(INTLLIBS)
2388
2389   dnl Make all documented variables known to autoconf.
2390   AC_SUBST(LIBINTL)
2391   AC_SUBST(LTLIBINTL)
2392   AC_SUBST(POSUB)
2393 ])
2394
2395
2396 dnl Checks for all prerequisites of the intl subdirectory,
2397 dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
2398 dnl            USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
2399 AC_DEFUN([AM_INTL_SUBDIR],
2400 [
2401   AC_REQUIRE([AC_PROG_INSTALL])dnl
2402   AC_REQUIRE([AM_MKINSTALLDIRS])dnl
2403   AC_REQUIRE([AC_PROG_CC])dnl
2404   AC_REQUIRE([AC_CANONICAL_HOST])dnl
2405   AC_REQUIRE([AC_PROG_RANLIB])dnl
2406   AC_REQUIRE([AC_ISC_POSIX])dnl
2407   AC_REQUIRE([AC_HEADER_STDC])dnl
2408   AC_REQUIRE([AC_C_CONST])dnl
2409   AC_REQUIRE([AC_C_INLINE])dnl
2410   AC_REQUIRE([AC_TYPE_OFF_T])dnl
2411   AC_REQUIRE([AC_TYPE_SIZE_T])dnl
2412   AC_REQUIRE([AC_FUNC_ALLOCA])dnl
2413   AC_REQUIRE([AC_FUNC_MMAP])dnl
2414   AC_REQUIRE([jm_GLIBC21])dnl
2415   AC_REQUIRE([gt_INTDIV0])dnl
2416   AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
2417   AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
2418   AC_REQUIRE([gt_INTTYPES_PRI])dnl
2419
2420   AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
2421 stdlib.h string.h unistd.h sys/param.h])
2422   AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \
2423 geteuid getgid getuid mempcpy munmap putenv setenv setlocale localeconv stpcpy \
2424 strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \
2425 __fsetlocking])
2426
2427   AM_ICONV
2428   AM_LANGINFO_CODESET
2429   if test $ac_cv_header_locale_h = yes; then
2430     AM_LC_MESSAGES
2431   fi
2432
2433   dnl intl/plural.c is generated from intl/plural.y. It requires bison,
2434   dnl because plural.y uses bison specific features. It requires at least
2435   dnl bison-1.26 because earlier versions generate a plural.c that doesn't
2436   dnl compile.
2437   dnl bison is only needed for the maintainer (who touches plural.y). But in
2438   dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
2439   dnl the rule in general Makefile. Now, some people carelessly touch the
2440   dnl files or have a broken "make" program, hence the plural.c rule will
2441   dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
2442   dnl present or too old.
2443   AC_CHECK_PROGS([INTLBISON], [bison])
2444   if test -z "$INTLBISON"; then
2445     ac_verc_fail=yes
2446   else
2447     dnl Found it, now check the version.
2448     AC_MSG_CHECKING([version of bison])
2449 changequote(<<,>>)dnl
2450     ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
2451     case $ac_prog_version in
2452       '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2453       1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
2454 changequote([,])dnl
2455          ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
2456       *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
2457     esac
2458     AC_MSG_RESULT([$ac_prog_version])
2459   fi
2460   if test $ac_verc_fail = yes; then
2461     INTLBISON=:
2462   fi
2463 ])
2464
2465
2466 dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
2467 AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
2468 # glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40)
2469 dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
2470 dnl This file is free software, distributed under the terms of the GNU
2471 dnl General Public License.  As a special exception to the GNU General
2472 dnl Public License, this file may be distributed as part of a program
2473 dnl that contains a configuration script generated by Autoconf, under
2474 dnl the same distribution terms as the rest of that program.
2475
2476 # Test for the GNU C Library, version 2.1 or newer.
2477 # From Bruno Haible.
2478
2479 AC_DEFUN([jm_GLIBC21],
2480   [
2481     AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
2482       ac_cv_gnu_library_2_1,
2483       [AC_EGREP_CPP([Lucky GNU user],
2484         [
2485 #include <features.h>
2486 #ifdef __GNU_LIBRARY__
2487  #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
2488   Lucky GNU user
2489  #endif
2490 #endif
2491         ],
2492         ac_cv_gnu_library_2_1=yes,
2493         ac_cv_gnu_library_2_1=no)
2494       ]
2495     )
2496     AC_SUBST(GLIBC21)
2497     GLIBC21="$ac_cv_gnu_library_2_1"
2498   ]
2499 )
2500 # iconv.m4 serial AM4 (gettext-0.11.3)
2501 dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
2502 dnl This file is free software, distributed under the terms of the GNU
2503 dnl General Public License.  As a special exception to the GNU General
2504 dnl Public License, this file may be distributed as part of a program
2505 dnl that contains a configuration script generated by Autoconf, under
2506 dnl the same distribution terms as the rest of that program.
2507
2508 dnl From Bruno Haible.
2509
2510 AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
2511 [
2512   dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
2513   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
2514   AC_REQUIRE([AC_LIB_RPATH])
2515
2516   dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
2517   dnl accordingly.
2518   AC_LIB_LINKFLAGS_BODY([iconv])
2519 ])
2520
2521 AC_DEFUN([AM_ICONV_LINK],
2522 [
2523   dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
2524   dnl those with the standalone portable GNU libiconv installed).
2525
2526   dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
2527   dnl accordingly.
2528   AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
2529
2530   dnl Add $INCICONV to CPPFLAGS before performing the following checks,
2531   dnl because if the user has installed libiconv and not disabled its use
2532   dnl via --without-libiconv-prefix, he wants to use it. The first
2533   dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
2534   am_save_CPPFLAGS="$CPPFLAGS"
2535   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
2536
2537   AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
2538     am_cv_func_iconv="no, consider installing GNU libiconv"
2539     am_cv_lib_iconv=no
2540     AC_TRY_LINK([#include <stdlib.h>
2541 #include <iconv.h>],
2542       [iconv_t cd = iconv_open("","");
2543        iconv(cd,NULL,NULL,NULL,NULL);
2544        iconv_close(cd);],
2545       am_cv_func_iconv=yes)
2546     if test "$am_cv_func_iconv" != yes; then
2547       am_save_LIBS="$LIBS"
2548       LIBS="$LIBS $LIBICONV"
2549       AC_TRY_LINK([#include <stdlib.h>
2550 #include <iconv.h>],
2551         [iconv_t cd = iconv_open("","");
2552          iconv(cd,NULL,NULL,NULL,NULL);
2553          iconv_close(cd);],
2554         am_cv_lib_iconv=yes
2555         am_cv_func_iconv=yes)
2556       LIBS="$am_save_LIBS"
2557     fi
2558   ])
2559   if test "$am_cv_func_iconv" = yes; then
2560     AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
2561   fi
2562   if test "$am_cv_lib_iconv" = yes; then
2563     AC_MSG_CHECKING([how to link with libiconv])
2564     AC_MSG_RESULT([$LIBICONV])
2565   else
2566     dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
2567     dnl either.
2568     CPPFLAGS="$am_save_CPPFLAGS"
2569     LIBICONV=
2570     LTLIBICONV=
2571   fi
2572   AC_SUBST(LIBICONV)
2573   AC_SUBST(LTLIBICONV)
2574 ])
2575
2576 AC_DEFUN([AM_ICONV],
2577 [
2578   AM_ICONV_LINK
2579   if test "$am_cv_func_iconv" = yes; then
2580     AC_MSG_CHECKING([for iconv declaration])
2581     AC_CACHE_VAL(am_cv_proto_iconv, [
2582       AC_TRY_COMPILE([
2583 #include <stdlib.h>
2584 #include <iconv.h>
2585 extern
2586 #ifdef __cplusplus
2587 "C"
2588 #endif
2589 #if defined(__STDC__) || defined(__cplusplus)
2590 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
2591 #else
2592 size_t iconv();
2593 #endif
2594 ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
2595       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);"])
2596     am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
2597     AC_MSG_RESULT([$]{ac_t:-
2598          }[$]am_cv_proto_iconv)
2599     AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
2600       [Define as const if the declaration of iconv() needs const.])
2601   fi
2602 ])
2603 # intdiv0.m4 serial 1 (gettext-0.11.3)
2604 dnl Copyright (C) 2002 Free Software Foundation, Inc.
2605 dnl This file is free software, distributed under the terms of the GNU
2606 dnl General Public License.  As a special exception to the GNU General
2607 dnl Public License, this file may be distributed as part of a program
2608 dnl that contains a configuration script generated by Autoconf, under
2609 dnl the same distribution terms as the rest of that program.
2610
2611 dnl From Bruno Haible.
2612
2613 AC_DEFUN([gt_INTDIV0],
2614 [
2615   AC_REQUIRE([AC_PROG_CC])dnl
2616   AC_REQUIRE([AC_CANONICAL_HOST])dnl
2617
2618   AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
2619     gt_cv_int_divbyzero_sigfpe,
2620     [
2621       AC_TRY_RUN([
2622 #include <stdlib.h>
2623 #include <signal.h>
2624
2625 static void
2626 #ifdef __cplusplus
2627 sigfpe_handler (int sig)
2628 #else
2629 sigfpe_handler (sig) int sig;
2630 #endif
2631 {
2632   /* Exit with code 0 if SIGFPE, with code 1 if any other signal.  */
2633   exit (sig != SIGFPE);
2634 }
2635
2636 int x = 1;
2637 int y = 0;
2638 int z;
2639 int nan;
2640
2641 int main ()
2642 {
2643   signal (SIGFPE, sigfpe_handler);
2644 /* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP.  */
2645 #if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
2646   signal (SIGTRAP, sigfpe_handler);
2647 #endif
2648 /* Linux/SPARC yields signal SIGILL.  */
2649 #if defined (__sparc__) && defined (__linux__)
2650   signal (SIGILL, sigfpe_handler);
2651 #endif
2652
2653   z = x / y;
2654   nan = y / y;
2655   exit (1);
2656 }
2657 ], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no,
2658         [
2659           # Guess based on the CPU.
2660           case "$host_cpu" in
2661             alpha* | i[34567]86 | m68k | s390*)
2662               gt_cv_int_divbyzero_sigfpe="guessing yes";;
2663             *)
2664               gt_cv_int_divbyzero_sigfpe="guessing no";;
2665           esac
2666         ])
2667     ])
2668   case "$gt_cv_int_divbyzero_sigfpe" in
2669     *yes) value=1;;
2670     *) value=0;;
2671   esac
2672   AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value,
2673     [Define if integer division by zero raises signal SIGFPE.])
2674 ])
2675 # inttypes.m4 serial 1 (gettext-0.11.4)
2676 dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
2677 dnl This file is free software, distributed under the terms of the GNU
2678 dnl General Public License.  As a special exception to the GNU General
2679 dnl Public License, this file may be distributed as part of a program
2680 dnl that contains a configuration script generated by Autoconf, under
2681 dnl the same distribution terms as the rest of that program.
2682
2683 dnl From Paul Eggert.
2684
2685 # Define HAVE_INTTYPES_H if <inttypes.h> exists and doesn't clash with
2686 # <sys/types.h>.
2687
2688 AC_DEFUN([gt_HEADER_INTTYPES_H],
2689 [
2690   AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h,
2691   [
2692     AC_TRY_COMPILE(
2693       [#include <sys/types.h>
2694 #include <inttypes.h>],
2695       [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no)
2696   ])
2697   if test $gt_cv_header_inttypes_h = yes; then
2698     AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
2699       [Define if <inttypes.h> exists and doesn't clash with <sys/types.h>.])
2700   fi
2701 ])
2702 # inttypes_h.m4 serial 5 (gettext-0.12)
2703 dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
2704 dnl This file is free software, distributed under the terms of the GNU
2705 dnl General Public License.  As a special exception to the GNU General
2706 dnl Public License, this file may be distributed as part of a program
2707 dnl that contains a configuration script generated by Autoconf, under
2708 dnl the same distribution terms as the rest of that program.
2709
2710 dnl From Paul Eggert.
2711
2712 # Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
2713 # doesn't clash with <sys/types.h>, and declares uintmax_t.
2714
2715 AC_DEFUN([jm_AC_HEADER_INTTYPES_H],
2716 [
2717   AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
2718   [AC_TRY_COMPILE(
2719     [#include <sys/types.h>
2720 #include <inttypes.h>],
2721     [uintmax_t i = (uintmax_t) -1;],
2722     jm_ac_cv_header_inttypes_h=yes,
2723     jm_ac_cv_header_inttypes_h=no)])
2724   if test $jm_ac_cv_header_inttypes_h = yes; then
2725     AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1,
2726       [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
2727        and declares uintmax_t. ])
2728   fi
2729 ])
2730 # inttypes-pri.m4 serial 1 (gettext-0.11.4)
2731 dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
2732 dnl This file is free software, distributed under the terms of the GNU
2733 dnl General Public License.  As a special exception to the GNU General
2734 dnl Public License, this file may be distributed as part of a program
2735 dnl that contains a configuration script generated by Autoconf, under
2736 dnl the same distribution terms as the rest of that program.
2737
2738 dnl From Bruno Haible.
2739
2740 # Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
2741 # macros to non-string values.  This is the case on AIX 4.3.3.
2742
2743 AC_DEFUN([gt_INTTYPES_PRI],
2744 [
2745   AC_REQUIRE([gt_HEADER_INTTYPES_H])
2746   if test $gt_cv_header_inttypes_h = yes; then
2747     AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
2748       gt_cv_inttypes_pri_broken,
2749       [
2750         AC_TRY_COMPILE([#include <inttypes.h>
2751 #ifdef PRId32
2752 char *p = PRId32;
2753 #endif
2754 ], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes)
2755       ])
2756   fi
2757   if test "$gt_cv_inttypes_pri_broken" = yes; then
2758     AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1,
2759       [Define if <inttypes.h> exists and defines unusable PRI* macros.])
2760   fi
2761 ])
2762 # isc-posix.m4 serial 2 (gettext-0.11.2)
2763 dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
2764 dnl This file is free software, distributed under the terms of the GNU
2765 dnl General Public License.  As a special exception to the GNU General
2766 dnl Public License, this file may be distributed as part of a program
2767 dnl that contains a configuration script generated by Autoconf, under
2768 dnl the same distribution terms as the rest of that program.
2769
2770 # This file is not needed with autoconf-2.53 and newer.  Remove it in 2005.
2771
2772 # This test replaces the one in autoconf.
2773 # Currently this macro should have the same name as the autoconf macro
2774 # because gettext's gettext.m4 (distributed in the automake package)
2775 # still uses it.  Otherwise, the use in gettext.m4 makes autoheader
2776 # give these diagnostics:
2777 #   configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
2778 #   configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
2779
2780 undefine([AC_ISC_POSIX])
2781
2782 AC_DEFUN([AC_ISC_POSIX],
2783   [
2784     dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
2785     AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
2786   ]
2787 )
2788 # lcmessage.m4 serial 3 (gettext-0.11.3)
2789 dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
2790 dnl This file is free software, distributed under the terms of the GNU
2791 dnl General Public License.  As a special exception to the GNU General
2792 dnl Public License, this file may be distributed as part of a program
2793 dnl that contains a configuration script generated by Autoconf, under
2794 dnl the same distribution terms as the rest of that program.
2795 dnl
2796 dnl This file can can be used in projects which are not available under
2797 dnl the GNU General Public License or the GNU Library General Public
2798 dnl License but which still want to provide support for the GNU gettext
2799 dnl functionality.
2800 dnl Please note that the actual code of the GNU gettext library is covered
2801 dnl by the GNU Library General Public License, and the rest of the GNU
2802 dnl gettext package package is covered by the GNU General Public License.
2803 dnl They are *not* in the public domain.
2804
2805 dnl Authors:
2806 dnl   Ulrich Drepper <drepper@cygnus.com>, 1995.
2807
2808 # Check whether LC_MESSAGES is available in <locale.h>.
2809
2810 AC_DEFUN([AM_LC_MESSAGES],
2811 [
2812   AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
2813     [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
2814        am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
2815   if test $am_cv_val_LC_MESSAGES = yes; then
2816     AC_DEFINE(HAVE_LC_MESSAGES, 1,
2817       [Define if your <locale.h> file defines LC_MESSAGES.])
2818   fi
2819 ])
2820 # lib-ld.m4 serial 2 (gettext-0.12)
2821 dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
2822 dnl This file is free software, distributed under the terms of the GNU
2823 dnl General Public License.  As a special exception to the GNU General
2824 dnl Public License, this file may be distributed as part of a program
2825 dnl that contains a configuration script generated by Autoconf, under
2826 dnl the same distribution terms as the rest of that program.
2827
2828 dnl Subroutines of libtool.m4,
2829 dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
2830 dnl with libtool.m4.
2831
2832 dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
2833 AC_DEFUN([AC_LIB_PROG_LD_GNU],
2834 [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
2835 [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
2836 if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
2837   acl_cv_prog_gnu_ld=yes
2838 else
2839   acl_cv_prog_gnu_ld=no
2840 fi])
2841 with_gnu_ld=$acl_cv_prog_gnu_ld
2842 ])
2843
2844 dnl From libtool-1.4. Sets the variable LD.
2845 AC_DEFUN([AC_LIB_PROG_LD],
2846 [AC_ARG_WITH(gnu-ld,
2847 [  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
2848 test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
2849 AC_REQUIRE([AC_PROG_CC])dnl
2850 AC_REQUIRE([AC_CANONICAL_HOST])dnl
2851 # Prepare PATH_SEPARATOR.
2852 # The user is always right.
2853 if test "${PATH_SEPARATOR+set}" != set; then
2854   echo "#! /bin/sh" >conf$$.sh
2855   echo  "exit 0"   >>conf$$.sh
2856   chmod +x conf$$.sh
2857   if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
2858     PATH_SEPARATOR=';'
2859   else
2860     PATH_SEPARATOR=:
2861   fi
2862   rm -f conf$$.sh
2863 fi
2864 ac_prog=ld
2865 if test "$GCC" = yes; then
2866   # Check if gcc -print-prog-name=ld gives a path.
2867   AC_MSG_CHECKING([for ld used by GCC])
2868   case $host in
2869   *-*-mingw*)
2870     # gcc leaves a trailing carriage return which upsets mingw
2871     ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
2872   *)
2873     ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
2874   esac
2875   case $ac_prog in
2876     # Accept absolute paths.
2877     [[\\/]* | [A-Za-z]:[\\/]*)]
2878       [re_direlt='/[^/][^/]*/\.\./']
2879       # Canonicalize the path of ld
2880       ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
2881       while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
2882         ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
2883       done
2884       test -z "$LD" && LD="$ac_prog"
2885       ;;
2886   "")
2887     # If it fails, then pretend we aren't using GCC.
2888     ac_prog=ld
2889     ;;
2890   *)
2891     # If it is relative, then search for the first ld in PATH.
2892     with_gnu_ld=unknown
2893     ;;
2894   esac
2895 elif test "$with_gnu_ld" = yes; then
2896   AC_MSG_CHECKING([for GNU ld])
2897 else
2898   AC_MSG_CHECKING([for non-GNU ld])
2899 fi
2900 AC_CACHE_VAL(acl_cv_path_LD,
2901 [if test -z "$LD"; then
2902   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
2903   for ac_dir in $PATH; do
2904     test -z "$ac_dir" && ac_dir=.
2905     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
2906       acl_cv_path_LD="$ac_dir/$ac_prog"
2907       # Check to see if the program is GNU ld.  I'd rather use --version,
2908       # but apparently some GNU ld's only accept -v.
2909       # Break only if it was the GNU/non-GNU ld that we prefer.
2910       if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
2911         test "$with_gnu_ld" != no && break
2912       else
2913         test "$with_gnu_ld" != yes && break
2914       fi
2915     fi
2916   done
2917   IFS="$ac_save_ifs"
2918 else
2919   acl_cv_path_LD="$LD" # Let the user override the test with a path.
2920 fi])
2921 LD="$acl_cv_path_LD"
2922 if test -n "$LD"; then
2923   AC_MSG_RESULT($LD)
2924 else
2925   AC_MSG_RESULT(no)
2926 fi
2927 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
2928 AC_LIB_PROG_LD_GNU
2929 ])
2930 # lib-link.m4 serial 4 (gettext-0.12)
2931 dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
2932 dnl This file is free software, distributed under the terms of the GNU
2933 dnl General Public License.  As a special exception to the GNU General
2934 dnl Public License, this file may be distributed as part of a program
2935 dnl that contains a configuration script generated by Autoconf, under
2936 dnl the same distribution terms as the rest of that program.
2937
2938 dnl From Bruno Haible.
2939
2940 dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
2941 dnl the libraries corresponding to explicit and implicit dependencies.
2942 dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
2943 dnl augments the CPPFLAGS variable.
2944 AC_DEFUN([AC_LIB_LINKFLAGS],
2945 [
2946   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
2947   AC_REQUIRE([AC_LIB_RPATH])
2948   define([Name],[translit([$1],[./-], [___])])
2949   define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
2950                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
2951   AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
2952     AC_LIB_LINKFLAGS_BODY([$1], [$2])
2953     ac_cv_lib[]Name[]_libs="$LIB[]NAME"
2954     ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
2955     ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
2956   ])
2957   LIB[]NAME="$ac_cv_lib[]Name[]_libs"
2958   LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
2959   INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
2960   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
2961   AC_SUBST([LIB]NAME)
2962   AC_SUBST([LTLIB]NAME)
2963   dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
2964   dnl results of this search when this library appears as a dependency.
2965   HAVE_LIB[]NAME=yes
2966   undefine([Name])
2967   undefine([NAME])
2968 ])
2969
2970 dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
2971 dnl searches for libname and the libraries corresponding to explicit and
2972 dnl implicit dependencies, together with the specified include files and
2973 dnl the ability to compile and link the specified testcode. If found, it
2974 dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
2975 dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
2976 dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
2977 dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
2978 AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
2979 [
2980   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
2981   AC_REQUIRE([AC_LIB_RPATH])
2982   define([Name],[translit([$1],[./-], [___])])
2983   define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
2984                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
2985
2986   dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
2987   dnl accordingly.
2988   AC_LIB_LINKFLAGS_BODY([$1], [$2])
2989
2990   dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
2991   dnl because if the user has installed lib[]Name and not disabled its use
2992   dnl via --without-lib[]Name-prefix, he wants to use it.
2993   ac_save_CPPFLAGS="$CPPFLAGS"
2994   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
2995
2996   AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
2997     ac_save_LIBS="$LIBS"
2998     LIBS="$LIBS $LIB[]NAME"
2999     AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
3000     LIBS="$ac_save_LIBS"
3001   ])
3002   if test "$ac_cv_lib[]Name" = yes; then
3003     HAVE_LIB[]NAME=yes
3004     AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
3005     AC_MSG_CHECKING([how to link with lib[]$1])
3006     AC_MSG_RESULT([$LIB[]NAME])
3007   else
3008     HAVE_LIB[]NAME=no
3009     dnl If $LIB[]NAME didn't lead to a usable library, we don't need
3010     dnl $INC[]NAME either.
3011     CPPFLAGS="$ac_save_CPPFLAGS"
3012     LIB[]NAME=
3013     LTLIB[]NAME=
3014   fi
3015   AC_SUBST([HAVE_LIB]NAME)
3016   AC_SUBST([LIB]NAME)
3017   AC_SUBST([LTLIB]NAME)
3018   undefine([Name])
3019   undefine([NAME])
3020 ])
3021
3022 dnl Determine the platform dependent parameters needed to use rpath:
3023 dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
3024 dnl hardcode_direct, hardcode_minus_L.
3025 AC_DEFUN([AC_LIB_RPATH],
3026 [
3027   AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
3028   AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
3029   AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
3030   AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
3031   AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
3032     CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
3033     ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
3034     . ./conftest.sh
3035     rm -f ./conftest.sh
3036     acl_cv_rpath=done
3037   ])
3038   wl="$acl_cv_wl"
3039   libext="$acl_cv_libext"
3040   shlibext="$acl_cv_shlibext"
3041   hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
3042   hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
3043   hardcode_direct="$acl_cv_hardcode_direct"
3044   hardcode_minus_L="$acl_cv_hardcode_minus_L"
3045   dnl Determine whether the user wants rpath handling at all.
3046   AC_ARG_ENABLE(rpath,
3047     [  --disable-rpath         do not hardcode runtime library paths],
3048     :, enable_rpath=yes)
3049 ])
3050
3051 dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
3052 dnl the libraries corresponding to explicit and implicit dependencies.
3053 dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
3054 AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
3055 [
3056   define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
3057                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
3058   dnl By default, look in $includedir and $libdir.
3059   use_additional=yes
3060   AC_LIB_WITH_FINAL_PREFIX([
3061     eval additional_includedir=\"$includedir\"
3062     eval additional_libdir=\"$libdir\"
3063   ])
3064   AC_LIB_ARG_WITH([lib$1-prefix],
3065 [  --with-lib$1-prefix[=DIR]  search for lib$1 in DIR/include and DIR/lib
3066   --without-lib$1-prefix     don't search for lib$1 in includedir and libdir],
3067 [
3068     if test "X$withval" = "Xno"; then
3069       use_additional=no
3070     else
3071       if test "X$withval" = "X"; then
3072         AC_LIB_WITH_FINAL_PREFIX([
3073           eval additional_includedir=\"$includedir\"
3074           eval additional_libdir=\"$libdir\"
3075         ])
3076       else
3077         additional_includedir="$withval/include"
3078         additional_libdir="$withval/lib"
3079       fi
3080     fi
3081 ])
3082   dnl Search the library and its dependencies in $additional_libdir and
3083   dnl $LDFLAGS. Using breadth-first-seach.
3084   LIB[]NAME=
3085   LTLIB[]NAME=
3086   INC[]NAME=
3087   rpathdirs=
3088   ltrpathdirs=
3089   names_already_handled=
3090   names_next_round='$1 $2'
3091   while test -n "$names_next_round"; do
3092     names_this_round="$names_next_round"
3093     names_next_round=
3094     for name in $names_this_round; do
3095       already_handled=
3096       for n in $names_already_handled; do
3097         if test "$n" = "$name"; then
3098           already_handled=yes
3099           break
3100         fi
3101       done
3102       if test -z "$already_handled"; then
3103         names_already_handled="$names_already_handled $name"
3104         dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
3105         dnl or AC_LIB_HAVE_LINKFLAGS call.
3106         uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
3107         eval value=\"\$HAVE_LIB$uppername\"
3108         if test -n "$value"; then
3109           if test "$value" = yes; then
3110             eval value=\"\$LIB$uppername\"
3111             test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
3112             eval value=\"\$LTLIB$uppername\"
3113             test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
3114           else
3115             dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
3116             dnl that this library doesn't exist. So just drop it.
3117             :
3118           fi
3119         else
3120           dnl Search the library lib$name in $additional_libdir and $LDFLAGS
3121           dnl and the already constructed $LIBNAME/$LTLIBNAME.
3122           found_dir=
3123           found_la=
3124           found_so=
3125           found_a=
3126           if test $use_additional = yes; then
3127             if test "X$prefer_shared" = "Xyes" && test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
3128               found_dir="$additional_libdir"
3129               found_so="$additional_libdir/lib$name.$shlibext"
3130               if test -f "$additional_libdir/lib$name.la"; then
3131                 found_la="$additional_libdir/lib$name.la"
3132               fi
3133             else
3134               if test -f "$additional_libdir/lib$name.$libext"; then
3135                 found_dir="$additional_libdir"
3136                 found_a="$additional_libdir/lib$name.$libext"
3137                 if test -f "$additional_libdir/lib$name.la"; then
3138                   found_la="$additional_libdir/lib$name.la"
3139                 fi
3140               fi
3141             fi
3142           fi
3143           if test "X$found_dir" = "X"; then
3144             for x in $LDFLAGS $LTLIB[]NAME; do
3145               AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
3146               case "$x" in
3147                 -L*)
3148                   dir=`echo "X$x" | sed -e 's/^X-L//'`
3149                   if test "X$prefer_shared" = "Xyes" && test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
3150                     found_dir="$dir"
3151                     found_so="$dir/lib$name.$shlibext"
3152                     if test -f "$dir/lib$name.la"; then
3153                       found_la="$dir/lib$name.la"
3154                     fi
3155                   else
3156                     if test -f "$dir/lib$name.$libext"; then
3157                       found_dir="$dir"
3158                       found_a="$dir/lib$name.$libext"
3159                       if test -f "$dir/lib$name.la"; then
3160                         found_la="$dir/lib$name.la"
3161                       fi
3162                     fi
3163                   fi
3164                   ;;
3165               esac
3166               if test "X$found_dir" != "X"; then
3167                 break
3168               fi
3169             done
3170           fi
3171           if test "X$found_dir" != "X"; then
3172             dnl Found the library.
3173             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
3174             if test "X$found_so" != "X"; then
3175               dnl Linking with a shared library. We attempt to hardcode its
3176               dnl directory into the executable's runpath, unless it's the
3177               dnl standard /usr/lib.
3178               if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
3179                 dnl No hardcoding is needed.
3180                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
3181               else
3182                 dnl Use an explicit option to hardcode DIR into the resulting
3183                 dnl binary.
3184                 dnl Potentially add DIR to ltrpathdirs.
3185                 dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
3186                 haveit=
3187                 for x in $ltrpathdirs; do
3188                   if test "X$x" = "X$found_dir"; then
3189                     haveit=yes
3190                     break
3191                   fi
3192                 done
3193                 if test -z "$haveit"; then
3194                   ltrpathdirs="$ltrpathdirs $found_dir"
3195                 fi
3196                 dnl The hardcoding into $LIBNAME is system dependent.
3197                 if test "$hardcode_direct" = yes; then
3198                   dnl Using DIR/libNAME.so during linking hardcodes DIR into the
3199                   dnl resulting binary.
3200                   LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
3201                 else
3202                   if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
3203                     dnl Use an explicit option to hardcode DIR into the resulting
3204                     dnl binary.
3205                     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
3206                     dnl Potentially add DIR to rpathdirs.
3207                     dnl The rpathdirs will be appended to $LIBNAME at the end.
3208                     haveit=
3209                     for x in $rpathdirs; do
3210                       if test "X$x" = "X$found_dir"; then
3211                         haveit=yes
3212                         break
3213                       fi
3214                     done
3215                     if test -z "$haveit"; then
3216                       rpathdirs="$rpathdirs $found_dir"
3217                     fi
3218                   else
3219                     dnl Rely on "-L$found_dir".
3220                     dnl But don't add it if it's already contained in the LDFLAGS
3221                     dnl or the already constructed $LIBNAME
3222                     haveit=
3223                     for x in $LDFLAGS $LIB[]NAME; do
3224                       AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
3225                       if test "X$x" = "X-L$found_dir"; then
3226                         haveit=yes
3227                         break
3228                       fi
3229                     done
3230                     if test -z "$haveit"; then
3231                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
3232                     fi
3233                     if test "$hardcode_minus_L" != no; then
3234                       dnl FIXME: Not sure whether we should use
3235                       dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
3236                       dnl here.
3237                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
3238                     else
3239                       dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
3240                       dnl here, because this doesn't fit in flags passed to the
3241                       dnl compiler. So give up. No hardcoding. This affects only
3242                       dnl very old systems.
3243                       dnl FIXME: Not sure whether we should use
3244                       dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
3245                       dnl here.
3246                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
3247                     fi
3248                   fi
3249                 fi
3250               fi
3251             else
3252               if test "X$found_a" != "X"; then
3253                 dnl Linking with a static library.
3254                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
3255               else
3256                 dnl We shouldn't come here, but anyway it's good to have a
3257                 dnl fallback.
3258                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
3259               fi
3260             fi
3261             dnl Assume the include files are nearby.
3262             additional_includedir=
3263             case "$found_dir" in
3264               */lib | */lib/)
3265                 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
3266                 additional_includedir="$basedir/include"
3267                 ;;
3268             esac
3269             if test "X$additional_includedir" != "X"; then
3270               dnl Potentially add $additional_includedir to $INCNAME.
3271               dnl But don't add it
3272               dnl   1. if it's the standard /usr/include,
3273               dnl   2. if it's /usr/local/include and we are using GCC on Linux,
3274               dnl   3. if it's already present in $CPPFLAGS or the already
3275               dnl      constructed $INCNAME,
3276               dnl   4. if it doesn't exist as a directory.
3277               if test "X$additional_includedir" != "X/usr/include"; then
3278                 haveit=
3279                 if test "X$additional_includedir" = "X/usr/local/include"; then
3280                   if test -n "$GCC"; then
3281                     case $host_os in
3282                       linux*) haveit=yes;;
3283                     esac
3284                   fi
3285                 fi
3286                 if test -z "$haveit"; then
3287                   for x in $CPPFLAGS $INC[]NAME; do
3288                     AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
3289                     if test "X$x" = "X-I$additional_includedir"; then
3290                       haveit=yes
3291                       break
3292                     fi
3293                   done
3294                   if test -z "$haveit"; then
3295                     if test -d "$additional_includedir"; then
3296                       dnl Really add $additional_includedir to $INCNAME.
3297                       INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
3298                     fi
3299                   fi
3300                 fi
3301               fi
3302             fi
3303             dnl Look for dependencies.
3304             if test -n "$found_la"; then
3305               dnl Read the .la file. It defines the variables
3306               dnl dlname, library_names, old_library, dependency_libs, current,
3307               dnl age, revision, installed, dlopen, dlpreopen, libdir.
3308               save_libdir="$libdir"
3309               case "$found_la" in
3310                 */* | *\\*) . "$found_la" ;;
3311                 *) . "./$found_la" ;;
3312               esac
3313               libdir="$save_libdir"
3314               dnl We use only dependency_libs.
3315               for dep in $dependency_libs; do
3316                 case "$dep" in
3317                   -L*)
3318                     additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
3319                     dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
3320                     dnl But don't add it
3321                     dnl   1. if it's the standard /usr/lib,
3322                     dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
3323                     dnl   3. if it's already present in $LDFLAGS or the already
3324                     dnl      constructed $LIBNAME,
3325                     dnl   4. if it doesn't exist as a directory.
3326                     if test "X$additional_libdir" != "X/usr/lib"; then
3327                       haveit=
3328                       if test "X$additional_libdir" = "X/usr/local/lib"; then
3329                         if test -n "$GCC"; then
3330                           case $host_os in
3331                             linux*) haveit=yes;;
3332                           esac
3333                         fi
3334                       fi
3335                       if test -z "$haveit"; then
3336                         haveit=
3337                         for x in $LDFLAGS $LIB[]NAME; do
3338                           AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
3339                           if test "X$x" = "X-L$additional_libdir"; then
3340                             haveit=yes
3341                             break
3342                           fi
3343                         done
3344                         if test -z "$haveit"; then
3345                           if test -d "$additional_libdir"; then
3346                             dnl Really add $additional_libdir to $LIBNAME.
3347                             LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
3348                           fi
3349                         fi
3350                         haveit=
3351                         for x in $LDFLAGS $LTLIB[]NAME; do
3352                           AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
3353                           if test "X$x" = "X-L$additional_libdir"; then
3354                             haveit=yes
3355                             break
3356                           fi
3357                         done
3358                         if test -z "$haveit"; then
3359                           if test -d "$additional_libdir"; then
3360                             dnl Really add $additional_libdir to $LTLIBNAME.
3361                             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
3362                           fi
3363                         fi
3364                       fi
3365                     fi
3366                     ;;
3367                   -R*)
3368                     dir=`echo "X$dep" | sed -e 's/^X-R//'`
3369                     if test "$enable_rpath" != no; then
3370                       dnl Potentially add DIR to rpathdirs.
3371                       dnl The rpathdirs will be appended to $LIBNAME at the end.
3372                       haveit=
3373                       for x in $rpathdirs; do
3374                         if test "X$x" = "X$dir"; then
3375                           haveit=yes
3376                           break
3377                         fi
3378                       done
3379                       if test -z "$haveit"; then
3380                         rpathdirs="$rpathdirs $dir"
3381                       fi
3382                       dnl Potentially add DIR to ltrpathdirs.
3383                       dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
3384                       haveit=
3385                       for x in $ltrpathdirs; do
3386                         if test "X$x" = "X$dir"; then
3387                           haveit=yes
3388                           break
3389                         fi
3390                       done
3391                       if test -z "$haveit"; then
3392                         ltrpathdirs="$ltrpathdirs $dir"
3393                       fi
3394                     fi
3395                     ;;
3396                   -l*)
3397                     dnl Handle this in the next round.
3398                     names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
3399                     ;;
3400                   *.la)
3401                     dnl Handle this in the next round. Throw away the .la's
3402                     dnl directory; it is already contained in a preceding -L
3403                     dnl option.
3404                     names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
3405                     ;;
3406                   *)
3407                     dnl Most likely an immediate library name.
3408                     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
3409                     LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
3410                     ;;
3411                 esac
3412               done
3413             fi
3414           else
3415             dnl Didn't find the library; assume it is in the system directories
3416             dnl known to the linker and runtime loader. (All the system
3417             dnl directories known to the linker should also be known to the
3418             dnl runtime loader, otherwise the system is severely misconfigured.)
3419             LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
3420             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
3421           fi
3422         fi
3423       fi
3424     done
3425   done
3426   if test "X$rpathdirs" != "X"; then
3427     if test -n "$hardcode_libdir_separator"; then
3428       dnl Weird platform: only the last -rpath option counts, the user must
3429       dnl pass all path elements in one option. We can arrange that for a
3430       dnl single library, but not when more than one $LIBNAMEs are used.
3431       alldirs=
3432       for found_dir in $rpathdirs; do
3433         alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
3434       done
3435       dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
3436       acl_save_libdir="$libdir"
3437       libdir="$alldirs"
3438       eval flag=\"$hardcode_libdir_flag_spec\"
3439       libdir="$acl_save_libdir"
3440       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
3441     else
3442       dnl The -rpath options are cumulative.
3443       for found_dir in $rpathdirs; do
3444         acl_save_libdir="$libdir"
3445         libdir="$found_dir"
3446         eval flag=\"$hardcode_libdir_flag_spec\"
3447         libdir="$acl_save_libdir"
3448         LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
3449       done
3450     fi
3451   fi
3452   if test "X$ltrpathdirs" != "X"; then
3453     dnl When using libtool, the option that works for both libraries and
3454     dnl executables is -R. The -R options are cumulative.
3455     for found_dir in $ltrpathdirs; do
3456       LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
3457     done
3458   fi
3459 ])
3460
3461 dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
3462 dnl unless already present in VAR.
3463 dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
3464 dnl contains two or three consecutive elements that belong together.
3465 AC_DEFUN([AC_LIB_APPENDTOVAR],
3466 [
3467   for element in [$2]; do
3468     haveit=
3469     for x in $[$1]; do
3470       AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
3471       if test "X$x" = "X$element"; then
3472         haveit=yes
3473         break
3474       fi
3475     done
3476     if test -z "$haveit"; then
3477       [$1]="${[$1]}${[$1]:+ }$element"
3478     fi
3479   done
3480 ])
3481 # lib-prefix.m4 serial 2 (gettext-0.12)
3482 dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
3483 dnl This file is free software, distributed under the terms of the GNU
3484 dnl General Public License.  As a special exception to the GNU General
3485 dnl Public License, this file may be distributed as part of a program
3486 dnl that contains a configuration script generated by Autoconf, under
3487 dnl the same distribution terms as the rest of that program.
3488
3489 dnl From Bruno Haible.
3490
3491 dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
3492 dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
3493 dnl require excessive bracketing.
3494 ifdef([AC_HELP_STRING],
3495 [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
3496 [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
3497
3498 dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
3499 dnl to access previously installed libraries. The basic assumption is that
3500 dnl a user will want packages to use other packages he previously installed
3501 dnl with the same --prefix option.
3502 dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
3503 dnl libraries, but is otherwise very convenient.
3504 AC_DEFUN([AC_LIB_PREFIX],
3505 [
3506   AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
3507   AC_REQUIRE([AC_PROG_CC])
3508   AC_REQUIRE([AC_CANONICAL_HOST])
3509   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
3510   dnl By default, look in $includedir and $libdir.
3511   use_additional=yes
3512   AC_LIB_WITH_FINAL_PREFIX([
3513     eval additional_includedir=\"$includedir\"
3514     eval additional_libdir=\"$libdir\"
3515   ])
3516   AC_LIB_ARG_WITH([lib-prefix],
3517 [  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
3518   --without-lib-prefix    don't search for libraries in includedir and libdir],
3519 [
3520     if test "X$withval" = "Xno"; then
3521       use_additional=no
3522     else
3523       if test "X$withval" = "X"; then
3524         AC_LIB_WITH_FINAL_PREFIX([
3525           eval additional_includedir=\"$includedir\"
3526           eval additional_libdir=\"$libdir\"
3527         ])
3528       else
3529         additional_includedir="$withval/include"
3530         additional_libdir="$withval/lib"
3531       fi
3532     fi
3533 ])
3534   if test $use_additional = yes; then
3535     dnl Potentially add $additional_includedir to $CPPFLAGS.
3536     dnl But don't add it
3537     dnl   1. if it's the standard /usr/include,
3538     dnl   2. if it's already present in $CPPFLAGS,
3539     dnl   3. if it's /usr/local/include and we are using GCC on Linux,
3540     dnl   4. if it doesn't exist as a directory.
3541     if test "X$additional_includedir" != "X/usr/include"; then
3542       haveit=
3543       for x in $CPPFLAGS; do
3544         AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
3545         if test "X$x" = "X-I$additional_includedir"; then
3546           haveit=yes
3547           break
3548         fi
3549       done
3550       if test -z "$haveit"; then
3551         if test "X$additional_includedir" = "X/usr/local/include"; then
3552           if test -n "$GCC"; then
3553             case $host_os in
3554               linux*) haveit=yes;;
3555             esac
3556           fi
3557         fi
3558         if test -z "$haveit"; then
3559           if test -d "$additional_includedir"; then
3560             dnl Really add $additional_includedir to $CPPFLAGS.
3561             CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
3562           fi
3563         fi
3564       fi
3565     fi
3566     dnl Potentially add $additional_libdir to $LDFLAGS.
3567     dnl But don't add it
3568     dnl   1. if it's the standard /usr/lib,
3569     dnl   2. if it's already present in $LDFLAGS,
3570     dnl   3. if it's /usr/local/lib and we are using GCC on Linux,
3571     dnl   4. if it doesn't exist as a directory.
3572     if test "X$additional_libdir" != "X/usr/lib"; then
3573       haveit=
3574       for x in $LDFLAGS; do
3575         AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
3576         if test "X$x" = "X-L$additional_libdir"; then
3577           haveit=yes
3578           break
3579         fi
3580       done
3581       if test -z "$haveit"; then
3582         if test "X$additional_libdir" = "X/usr/local/lib"; then
3583           if test -n "$GCC"; then
3584             case $host_os in
3585               linux*) haveit=yes;;
3586             esac
3587           fi
3588         fi
3589         if test -z "$haveit"; then
3590           if test -d "$additional_libdir"; then
3591             dnl Really add $additional_libdir to $LDFLAGS.
3592             LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
3593           fi
3594         fi
3595       fi
3596     fi
3597   fi
3598 ])
3599
3600 dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
3601 dnl acl_final_exec_prefix, containing the values to which $prefix and
3602 dnl $exec_prefix will expand at the end of the configure script.
3603 AC_DEFUN([AC_LIB_PREPARE_PREFIX],
3604 [
3605   dnl Unfortunately, prefix and exec_prefix get only finally determined
3606   dnl at the end of configure.
3607   if test "X$prefix" = "XNONE"; then
3608     acl_final_prefix="$ac_default_prefix"
3609   else
3610     acl_final_prefix="$prefix"
3611   fi
3612   if test "X$exec_prefix" = "XNONE"; then
3613     acl_final_exec_prefix='${prefix}'
3614   else
3615     acl_final_exec_prefix="$exec_prefix"
3616   fi
3617   acl_save_prefix="$prefix"
3618   prefix="$acl_final_prefix"
3619   eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
3620   prefix="$acl_save_prefix"
3621 ])
3622
3623 dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
3624 dnl variables prefix and exec_prefix bound to the values they will have
3625 dnl at the end of the configure script.
3626 AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
3627 [
3628   acl_save_prefix="$prefix"
3629   prefix="$acl_final_prefix"
3630   acl_save_exec_prefix="$exec_prefix"
3631   exec_prefix="$acl_final_exec_prefix"
3632   $1
3633   exec_prefix="$acl_save_exec_prefix"
3634   prefix="$acl_save_prefix"
3635 ])
3636 # nls.m4 serial 1 (gettext-0.12)
3637 dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
3638 dnl This file is free software, distributed under the terms of the GNU
3639 dnl General Public License.  As a special exception to the GNU General
3640 dnl Public License, this file may be distributed as part of a program
3641 dnl that contains a configuration script generated by Autoconf, under
3642 dnl the same distribution terms as the rest of that program.
3643 dnl
3644 dnl This file can can be used in projects which are not available under
3645 dnl the GNU General Public License or the GNU Library General Public
3646 dnl License but which still want to provide support for the GNU gettext
3647 dnl functionality.
3648 dnl Please note that the actual code of the GNU gettext library is covered
3649 dnl by the GNU Library General Public License, and the rest of the GNU
3650 dnl gettext package package is covered by the GNU General Public License.
3651 dnl They are *not* in the public domain.
3652
3653 dnl Authors:
3654 dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
3655 dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
3656
3657 AC_DEFUN([AM_NLS],
3658 [
3659   AC_MSG_CHECKING([whether NLS is requested])
3660   dnl Default is enabled NLS
3661   AC_ARG_ENABLE(nls,
3662     [  --disable-nls           do not use Native Language Support],
3663     USE_NLS=$enableval, USE_NLS=yes)
3664   AC_MSG_RESULT($USE_NLS)
3665   AC_SUBST(USE_NLS)
3666 ])
3667
3668 AC_DEFUN([AM_MKINSTALLDIRS],
3669 [
3670   dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
3671   dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
3672   dnl Try to locate it.
3673   MKINSTALLDIRS=
3674   if test -n "$ac_aux_dir"; then
3675     case "$ac_aux_dir" in
3676       /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
3677       *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
3678     esac
3679   fi
3680   if test -z "$MKINSTALLDIRS"; then
3681     MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
3682   fi
3683   AC_SUBST(MKINSTALLDIRS)
3684 ])
3685 # po.m4 serial 1 (gettext-0.12)
3686 dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
3687 dnl This file is free software, distributed under the terms of the GNU
3688 dnl General Public License.  As a special exception to the GNU General
3689 dnl Public License, this file may be distributed as part of a program
3690 dnl that contains a configuration script generated by Autoconf, under
3691 dnl the same distribution terms as the rest of that program.
3692 dnl
3693 dnl This file can can be used in projects which are not available under
3694 dnl the GNU General Public License or the GNU Library General Public
3695 dnl License but which still want to provide support for the GNU gettext
3696 dnl functionality.
3697 dnl Please note that the actual code of the GNU gettext library is covered
3698 dnl by the GNU Library General Public License, and the rest of the GNU
3699 dnl gettext package package is covered by the GNU General Public License.
3700 dnl They are *not* in the public domain.
3701
3702 dnl Authors:
3703 dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
3704 dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
3705
3706 dnl Checks for all prerequisites of the po subdirectory.
3707 AC_DEFUN([AM_PO_SUBDIRS],
3708 [
3709   AC_REQUIRE([AC_PROG_MAKE_SET])dnl
3710   AC_REQUIRE([AC_PROG_INSTALL])dnl
3711   AC_REQUIRE([AM_MKINSTALLDIRS])dnl
3712   AC_REQUIRE([AM_NLS])dnl
3713
3714   dnl Perform the following tests also if --disable-nls has been given,
3715   dnl because they are needed for "make dist" to work.
3716
3717   dnl Search for GNU msgfmt in the PATH.
3718   dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
3719   dnl The second test excludes FreeBSD msgfmt.
3720   AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
3721     [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
3722      (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
3723     :)
3724   AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
3725
3726   dnl Search for GNU xgettext 0.12 or newer in the PATH.
3727   dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
3728   dnl The second test excludes FreeBSD xgettext.
3729   AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
3730     [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
3731      (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)],
3732     :)
3733   dnl Remove leftover from FreeBSD xgettext call.
3734   rm -f messages.po
3735
3736   dnl Search for GNU msgmerge 0.11 or newer in the PATH.
3737   AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
3738     [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :)
3739
3740   dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
3741   dnl Test whether we really found GNU msgfmt.
3742   if test "$GMSGFMT" != ":"; then
3743     dnl If it is no GNU msgfmt we define it as : so that the
3744     dnl Makefiles still can work.
3745     if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
3746        (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
3747       : ;
3748     else
3749       GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
3750       AC_MSG_RESULT(
3751         [found $GMSGFMT program is not GNU msgfmt; ignore it])
3752       GMSGFMT=":"
3753     fi
3754   fi
3755
3756   dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
3757   dnl Test whether we really found GNU xgettext.
3758   if test "$XGETTEXT" != ":"; then
3759     dnl If it is no GNU xgettext we define it as : so that the
3760     dnl Makefiles still can work.
3761     if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
3762        (if $XGETTEXT --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
3763       : ;
3764     else
3765       AC_MSG_RESULT(
3766         [found xgettext program is not GNU xgettext; ignore it])
3767       XGETTEXT=":"
3768     fi
3769     dnl Remove leftover from FreeBSD xgettext call.
3770     rm -f messages.po
3771   fi
3772
3773   AC_OUTPUT_COMMANDS([
3774     for ac_file in $CONFIG_FILES; do
3775       # Support "outfile[:infile[:infile...]]"
3776       case "$ac_file" in
3777         *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
3778       esac
3779       # PO directories have a Makefile.in generated from Makefile.in.in.
3780       case "$ac_file" in */Makefile.in)
3781         # Adjust a relative srcdir.
3782         ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
3783         ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
3784         ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
3785         # In autoconf-2.13 it is called $ac_given_srcdir.
3786         # In autoconf-2.50 it is called $srcdir.
3787         test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
3788         case "$ac_given_srcdir" in
3789           .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
3790           /*) top_srcdir="$ac_given_srcdir" ;;
3791           *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
3792         esac
3793         if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
3794           rm -f "$ac_dir/POTFILES"
3795           test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
3796           cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[   ]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
3797           POMAKEFILEDEPS="POTFILES.in"
3798           # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend
3799           # on $ac_dir but don't depend on user-specified configuration
3800           # parameters.
3801           if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
3802             # The LINGUAS file contains the set of available languages.
3803             if test -n "$OBSOLETE_ALL_LINGUAS"; then
3804               test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
3805             fi
3806             ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
3807             # Hide the ALL_LINGUAS assigment from automake.
3808             eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
3809             POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
3810           else
3811             # The set of available languages was given in configure.in.
3812             eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
3813           fi
3814           case "$ac_given_srcdir" in
3815             .) srcdirpre= ;;
3816             *) srcdirpre='$(srcdir)/' ;;
3817           esac
3818           POFILES=
3819           GMOFILES=
3820           UPDATEPOFILES=
3821           DUMMYPOFILES=
3822           for lang in $ALL_LINGUAS; do
3823             POFILES="$POFILES $srcdirpre$lang.po"
3824             GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
3825             UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
3826             DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
3827           done
3828           # CATALOGS depends on both $ac_dir and the user's LINGUAS
3829           # environment variable.
3830           INST_LINGUAS=
3831           if test -n "$ALL_LINGUAS"; then
3832             for presentlang in $ALL_LINGUAS; do
3833               useit=no
3834               if test "%UNSET%" != "$LINGUAS"; then
3835                 desiredlanguages="$LINGUAS"
3836               else
3837                 desiredlanguages="$ALL_LINGUAS"
3838               fi
3839               for desiredlang in $desiredlanguages; do
3840                 # Use the presentlang catalog if desiredlang is
3841                 #   a. equal to presentlang, or
3842                 #   b. a variant of presentlang (because in this case,
3843                 #      presentlang can be used as a fallback for messages
3844                 #      which are not translated in the desiredlang catalog).
3845                 case "$desiredlang" in
3846                   "$presentlang"*) useit=yes;;
3847                 esac
3848               done
3849               if test $useit = yes; then
3850                 INST_LINGUAS="$INST_LINGUAS $presentlang"
3851               fi
3852             done
3853           fi
3854           CATALOGS=
3855           if test -n "$INST_LINGUAS"; then
3856             for lang in $INST_LINGUAS; do
3857               CATALOGS="$CATALOGS $lang.gmo"
3858             done
3859           fi
3860           test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
3861           sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
3862           for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
3863             if test -f "$f"; then
3864               case "$f" in
3865                 *.orig | *.bak | *~) ;;
3866                 *) cat "$f" >> "$ac_dir/Makefile" ;;
3867               esac
3868             fi
3869           done
3870         fi
3871         ;;
3872       esac
3873     done],
3874    [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
3875     # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it
3876     # from automake.
3877     eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
3878     # Capture the value of LINGUAS because we need it to compute CATALOGS.
3879     LINGUAS="${LINGUAS-%UNSET%}"
3880    ])
3881 ])
3882 # progtest.m4 serial 3 (gettext-0.12)
3883 dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
3884 dnl This file is free software, distributed under the terms of the GNU
3885 dnl General Public License.  As a special exception to the GNU General
3886 dnl Public License, this file may be distributed as part of a program
3887 dnl that contains a configuration script generated by Autoconf, under
3888 dnl the same distribution terms as the rest of that program.
3889 dnl
3890 dnl This file can can be used in projects which are not available under
3891 dnl the GNU General Public License or the GNU Library General Public
3892 dnl License but which still want to provide support for the GNU gettext
3893 dnl functionality.
3894 dnl Please note that the actual code of the GNU gettext library is covered
3895 dnl by the GNU Library General Public License, and the rest of the GNU
3896 dnl gettext package package is covered by the GNU General Public License.
3897 dnl They are *not* in the public domain.
3898
3899 dnl Authors:
3900 dnl   Ulrich Drepper <drepper@cygnus.com>, 1996.
3901
3902 # Search path for a program which passes the given test.
3903
3904 dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
3905 dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
3906 AC_DEFUN([AM_PATH_PROG_WITH_TEST],
3907 [
3908 # Prepare PATH_SEPARATOR.
3909 # The user is always right.
3910 if test "${PATH_SEPARATOR+set}" != set; then
3911   echo "#! /bin/sh" >conf$$.sh
3912   echo  "exit 0"   >>conf$$.sh
3913   chmod +x conf$$.sh
3914   if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
3915     PATH_SEPARATOR=';'
3916   else
3917     PATH_SEPARATOR=:
3918   fi
3919   rm -f conf$$.sh
3920 fi
3921
3922 # Find out how to test for executable files. Don't use a zero-byte file,
3923 # as systems may use methods other than mode bits to determine executability.
3924 cat >conf$$.file <<_ASEOF
3925 #! /bin/sh
3926 exit 0
3927 _ASEOF
3928 chmod +x conf$$.file
3929 if test -x conf$$.file >/dev/null 2>&1; then
3930   ac_executable_p="test -x"
3931 else
3932   ac_executable_p="test -f"
3933 fi
3934 rm -f conf$$.file
3935
3936 # Extract the first word of "$2", so it can be a program name with args.
3937 set dummy $2; ac_word=[$]2
3938 AC_MSG_CHECKING([for $ac_word])
3939 AC_CACHE_VAL(ac_cv_path_$1,
3940 [case "[$]$1" in
3941   [[\\/]]* | ?:[[\\/]]*)
3942     ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
3943     ;;
3944   *)
3945     ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
3946     for ac_dir in ifelse([$5], , $PATH, [$5]); do
3947       IFS="$ac_save_IFS"
3948       test -z "$ac_dir" && ac_dir=.
3949       for ac_exec_ext in '' $ac_executable_extensions; do
3950         if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
3951           if [$3]; then
3952             ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
3953             break 2
3954           fi
3955         fi
3956       done
3957     done
3958     IFS="$ac_save_IFS"
3959 dnl If no 4th arg is given, leave the cache variable unset,
3960 dnl so AC_PATH_PROGS will keep looking.
3961 ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
3962 ])dnl
3963     ;;
3964 esac])dnl
3965 $1="$ac_cv_path_$1"
3966 if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
3967   AC_MSG_RESULT([$]$1)
3968 else
3969   AC_MSG_RESULT(no)
3970 fi
3971 AC_SUBST($1)dnl
3972 ])
3973 # stdint_h.m4 serial 3 (gettext-0.12)
3974 dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
3975 dnl This file is free software, distributed under the terms of the GNU
3976 dnl General Public License.  As a special exception to the GNU General
3977 dnl Public License, this file may be distributed as part of a program
3978 dnl that contains a configuration script generated by Autoconf, under
3979 dnl the same distribution terms as the rest of that program.
3980
3981 dnl From Paul Eggert.
3982
3983 # Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
3984 # doesn't clash with <sys/types.h>, and declares uintmax_t.
3985
3986 AC_DEFUN([jm_AC_HEADER_STDINT_H],
3987 [
3988   AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h,
3989   [AC_TRY_COMPILE(
3990     [#include <sys/types.h>
3991 #include <stdint.h>],
3992     [uintmax_t i = (uintmax_t) -1;],
3993     jm_ac_cv_header_stdint_h=yes,
3994     jm_ac_cv_header_stdint_h=no)])
3995   if test $jm_ac_cv_header_stdint_h = yes; then
3996     AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1,
3997       [Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
3998        and declares uintmax_t. ])
3999   fi
4000 ])
4001 # uintmax_t.m4 serial 7 (gettext-0.12)
4002 dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
4003 dnl This file is free software, distributed under the terms of the GNU
4004 dnl General Public License.  As a special exception to the GNU General
4005 dnl Public License, this file may be distributed as part of a program
4006 dnl that contains a configuration script generated by Autoconf, under
4007 dnl the same distribution terms as the rest of that program.
4008
4009 dnl From Paul Eggert.
4010
4011 AC_PREREQ(2.13)
4012
4013 # Define uintmax_t to 'unsigned long' or 'unsigned long long'
4014 # if it is not already defined in <stdint.h> or <inttypes.h>.
4015
4016 AC_DEFUN([jm_AC_TYPE_UINTMAX_T],
4017 [
4018   AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
4019   AC_REQUIRE([jm_AC_HEADER_STDINT_H])
4020   if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then
4021     AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
4022     test $ac_cv_type_unsigned_long_long = yes \
4023       && ac_type='unsigned long long' \
4024       || ac_type='unsigned long'
4025     AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
4026       [Define to unsigned long or unsigned long long
4027        if <stdint.h> and <inttypes.h> don't define.])
4028   else
4029     AC_DEFINE(HAVE_UINTMAX_T, 1,
4030       [Define if you have the 'uintmax_t' type in <stdint.h> or <inttypes.h>.])
4031   fi
4032 ])
4033 # ulonglong.m4 serial 2 (fileutils-4.0.32, gettext-0.10.40)
4034 dnl Copyright (C) 1999-2002 Free Software Foundation, Inc.
4035 dnl This file is free software, distributed under the terms of the GNU
4036 dnl General Public License.  As a special exception to the GNU General
4037 dnl Public License, this file may be distributed as part of a program
4038 dnl that contains a configuration script generated by Autoconf, under
4039 dnl the same distribution terms as the rest of that program.
4040
4041 dnl From Paul Eggert.
4042
4043 AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG],
4044 [
4045   AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long,
4046   [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;],
4047     [unsigned long long ullmax = (unsigned long long) -1;
4048      return ull << i | ull >> i | ullmax / ull | ullmax % ull;],
4049     ac_cv_type_unsigned_long_long=yes,
4050     ac_cv_type_unsigned_long_long=no)])
4051   if test $ac_cv_type_unsigned_long_long = yes; then
4052     AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
4053       [Define if you have the unsigned long long type.])
4054   fi
4055 ])
4056
4057 dnl From gnulib
4058 AC_DEFUN([BASH_FUNC_FPURGE],
4059 [
4060   AC_CHECK_FUNCS_ONCE([fpurge])
4061   AC_CHECK_FUNCS_ONCE([__fpurge])
4062   AC_CHECK_DECLS([fpurge], , , [#include <stdio.h>])
4063 ])
4064
4065 AC_DEFUN([BASH_FUNC_SNPRINTF],
4066 [
4067   AC_CHECK_FUNCS_ONCE([snprintf])
4068   if test X$ac_cv_func_snprintf = Xyes; then
4069     AC_CACHE_CHECK([for standard-conformant snprintf], [bash_cv_func_snprintf],
4070       [AC_TRY_RUN([
4071 #include <stdio.h>
4072
4073 main()
4074 {
4075   int n;
4076   n = snprintf (0, 0, "%s", "0123456");
4077   exit(n != 7);
4078 }
4079 ], bash_cv_func_snprintf=yes, bash_cv_func_snprintf=no,
4080    [AC_MSG_WARN([cannot check standard snprintf if cross-compiling])
4081     bash_cv_func_snprintf=yes]
4082 )])
4083     if test $bash_cv_func_snprintf = no; then
4084       ac_cv_func_snprintf=no
4085     fi
4086   fi
4087   if test $ac_cv_func_snprintf = no; then
4088     AC_DEFINE(HAVE_SNPRINTF, 0,
4089       [Define if you have a standard-conformant snprintf function.])
4090   fi
4091 ])
4092
4093 AC_DEFUN([BASH_FUNC_VSNPRINTF],
4094 [
4095   AC_CHECK_FUNCS_ONCE([vsnprintf])
4096   if test X$ac_cv_func_vsnprintf = Xyes; then
4097     AC_CACHE_CHECK([for standard-conformant vsnprintf], [bash_cv_func_vsnprintf],
4098       [AC_TRY_RUN([
4099 #if HAVE_STDARG_H
4100 #include <stdarg.h>
4101 #else
4102 #include <varargs.h>
4103 #endif
4104 #include <stdio.h>
4105 #include <stdlib.h>
4106
4107 static int
4108 #if HAVE_STDARG_H
4109 foo(const char *fmt, ...)
4110 #else
4111 foo(format, va_alist)
4112      const char *format;
4113      va_dcl
4114 #endif
4115 {
4116   va_list args;
4117   int n;
4118
4119 #if HAVE_STDARG_H
4120   va_start(args, fmt);
4121 #else
4122   va_start(args);
4123 #endif
4124   n = vsnprintf(0, 0, fmt, args);
4125   va_end (args);
4126   return n;
4127 }
4128
4129 main()
4130 {
4131   int n;
4132   n = foo("%s", "0123456");
4133   exit(n != 7);
4134 }
4135 ], bash_cv_func_vsnprintf=yes, bash_cv_func_vsnprintf=no,
4136    [AC_MSG_WARN([cannot check standard vsnprintf if cross-compiling])
4137     bash_cv_func_vsnprintf=yes]
4138 )])
4139     if test $bash_cv_func_vsnprintf = no; then
4140       ac_cv_func_vsnprintf=no
4141     fi
4142   fi
4143   if test $ac_cv_func_vsnprintf = no; then
4144     AC_DEFINE(HAVE_VSNPRINTF, 0,
4145       [Define if you have a standard-conformant vsnprintf function.])
4146   fi
4147 ])
4148
4149 AC_DEFUN(BASH_STRUCT_WEXITSTATUS_OFFSET,
4150 [AC_MSG_CHECKING(for offset of exit status in return status from wait)
4151 AC_CACHE_VAL(bash_cv_wexitstatus_offset,
4152 [AC_TRY_RUN([
4153 #include <stdlib.h>
4154 #include <unistd.h>
4155
4156 #include <sys/wait.h>
4157
4158 main(c, v)
4159      int c;
4160      char **v;
4161 {
4162   pid_t pid, p;
4163   int s, i, n;
4164
4165   s = 0;
4166   pid = fork();
4167   if (pid == 0)
4168     exit (42);
4169
4170   /* wait for the process */
4171   p = wait(&s);
4172   if (p != pid)
4173     exit (255);
4174
4175   /* crack s */
4176   for (i = 0; i < (sizeof(s) - 8); i++)
4177     {
4178       n = (s >> i) & 0xff;
4179       if (n == 42)
4180         exit (i);
4181     }
4182
4183   exit (254);
4184 }
4185 ], bash_cv_wexitstatus_offset=0, bash_cv_wexitstatus_offset=$?,
4186    [AC_MSG_WARN(cannot check WEXITSTATUS offset if cross compiling -- defaulting to 0)
4187     bash_cv_wexitstatus_offset=0]
4188 )])
4189 if test "$bash_cv_wexitstatus_offset" -gt 32 ; then
4190   AC_MSG_WARN(bad exit status from test program -- defaulting to 0)
4191   bash_cv_wexitstatus_offset=0
4192 fi
4193 AC_MSG_RESULT($bash_cv_wexitstatus_offset)
4194 AC_DEFINE_UNQUOTED([WEXITSTATUS_OFFSET], [$bash_cv_wexitstatus_offset], [Offset of exit status in wait status word])
4195 ])