Added gitignore entries needed to ignore derived objects generated from full build...
[bash.git] / aclocal.m4
blob716a0436113afdd6823a3cc0cf063b49672d76a4
1 dnl
2 dnl Bash specific tests
3 dnl
4 dnl Some derived from PDKSH 5.1.3 autoconf tests
5 dnl
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()
16 long long foo = 0;
17 exit(sizeof(long long) < sizeof(long));
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.])
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()
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));
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.])
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,
61  AC_CHECK_HEADERS(inttypes.h)
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,
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
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)
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
103 AC_DEFUN(BASH_CHECK_DECL,
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(
110 #if STDC_HEADERS
111 #  include <stdlib.h>
112 #endif
113 #if HAVE_INTTYPES_H
114 #  include <inttypes.h>
115 #endif
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)
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()
139 _bashfunc pf;
140 pf = (_bashfunc) printf;
141 exit(pf == 0);
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]
147 AC_MSG_RESULT($bash_cv_printf_declared)
148 if test $bash_cv_printf_declared = yes; then
149 AC_DEFINE(PRINTF_DECLARED)
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)
165 dnl Check for sys_siglist[] or _sys_siglist[]
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)
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()
199 char *msg = (char *)_sys_siglist[2];
200 exit(msg == 0);
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)
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()
226 char *msg = sys_siglist[2];
227 exit(msg == 0);
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)
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=
249 AC_SUBST([SIGLIST_O])
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)
268 dnl Check if dup2() does not clear the close on exec flag
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()
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);
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])
293 AC_MSG_RESULT($bash_cv_dup2_broken)
294 if test $bash_cv_dup2_broken = yes; then
295 AC_DEFINE(DUP2_BROKEN)
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)
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()
340 DIR *dir;
341 int fd, err;
342 err = mkdir("bash-aclocal", 0700);
343 if (err < 0) {
344   perror("mkdir");
345   exit(1);
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]
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)
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)
386 dnl A signed 16-bit integer quantity
388 AC_DEFUN(BASH_TYPE_BITS16_T,
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)
400 dnl An unsigned 16-bit integer quantity
402 AC_DEFUN(BASH_TYPE_U_BITS16_T,
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)
414 dnl A signed 32-bit integer quantity
416 AC_DEFUN(BASH_TYPE_BITS32_T,
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)
428 dnl An unsigned 32-bit integer quantity
430 AC_DEFUN(BASH_TYPE_U_BITS32_T,
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)
441 AC_DEFUN(BASH_TYPE_PTRDIFF_T,
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)
455 dnl A signed 64-bit quantity
457 AC_DEFUN(BASH_TYPE_BITS64_T,
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)
472 AC_DEFUN(BASH_TYPE_LONG_LONG,
474 AC_CACHE_CHECK([for long long], bash_cv_type_long_long,
475 [AC_TRY_LINK([
476 long long ll = 1; int i = 63;],
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)
486 AC_DEFUN(BASH_TYPE_UNSIGNED_LONG_LONG,
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;],
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)
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.
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()
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])])
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)
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)
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)
563 AC_DEFUN(BASH_FUNC_INET_ATON,
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)
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 */
599 return "42";
601 main()
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 */
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]
617 AC_MSG_RESULT($bash_cv_getenv_redef)
618 if test $bash_cv_getenv_redef = yes; then
619 AC_DEFINE(CAN_REDEFINE_GETENV)
623 # We should check for putenv before calling this
624 AC_DEFUN(BASH_FUNC_STD_PUTENV,
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
645 [return (putenv == 0);],
646 bash_cv_std_putenv=yes, bash_cv_std_putenv=no
648 if test $bash_cv_std_putenv = yes; then
649 AC_DEFINE(HAVE_STD_PUTENV)
653 # We should check for unsetenv before calling this
654 AC_DEFUN(BASH_FUNC_STD_UNSETENV,
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
675 [return (unsetenv == 0);],
676 bash_cv_std_unsetenv=yes, bash_cv_std_unsetenv=no
678 if test $bash_cv_std_unsetenv = yes; then
679 AC_DEFINE(HAVE_STD_UNSETENV)
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()
689 long maxfds = ulimit(4, 0L);
690 exit (maxfds == -1L);
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]
696 AC_MSG_RESULT($bash_cv_ulimit_maxfds)
697 if test $bash_cv_ulimit_maxfds = yes; then
698 AC_DEFINE(ULIMIT_MAXFDS)
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
711 main()
713         char    *xpwd;
714         xpwd = getcwd(0, 0);
715         exit (xpwd == 0);
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]
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)
729 dnl This needs BASH_CHECK_SOCKLIB, but since that's not called on every
730 dnl system, we can't use AC_PREREQ
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=
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)]
745 if test "X$_bash_needmsg" = Xyes; then
746     AC_MSG_CHECKING(for gethostbyname in socket library)
748 AC_MSG_RESULT($bash_cv_have_gethostbyname)
749 if test "$bash_cv_have_gethostbyname" = yes; then
750 AC_DEFINE(HAVE_GETHOSTBYNAME)
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>
760 main()
762 #ifdef FNM_EXTMATCH
763   exit (0);
764 #else
765   exit (1);
766 #endif
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])
772 AC_MSG_RESULT($bash_cv_fnm_extmatch)
773 if test $bash_cv_fnm_extmatch = yes; then
774 AC_DEFINE(HAVE_LIBC_FNM_EXTMATCH)
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>
790 main()
792 #if !defined (_POSIX_VERSION) || !defined (HAVE_POSIX_SIGNALS)
793 exit (1);
794 #else
796 int code;
797 sigset_t set, oset;
798 sigjmp_buf xx;
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);
806 /* save it */
807 code = sigsetjmp(xx, 1);
808 if (code)
809   exit(0);      /* could get sigmask and compare to oset here. */
811 /* change it */
812 sigaddset(&set, SIGINT);
813 sigprocmask(SIG_BLOCK, &set, (sigset_t *)NULL);
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]
823 AC_MSG_RESULT($bash_cv_func_sigsetjmp)
824 if test $bash_cv_func_sigsetjmp = present; then
825 AC_DEFINE(HAVE_POSIX_SIGSETJMP)
829 AC_DEFUN(BASH_FUNC_STRCOLL,
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
839 main(c, v)
840 int     c;
841 char    *v[];
843         int     r1, r2;
844         char    *deflocale, *defcoll;
846 #ifdef HAVE_SETLOCALE
847         deflocale = setlocale(LC_ALL, "");
848         defcoll = setlocale(LC_COLLATE, "");
849 #endif
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");
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. */
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);
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]
872 AC_MSG_RESULT($bash_cv_func_strcoll_broken)
873 if test $bash_cv_func_strcoll_broken = yes; then
874 AC_DEFINE(STRCOLL_BROKEN)
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>
886 main()
888         double y = 0.0;
889         char abuf[1024];
891         sprintf(abuf, "%A", y);
892         exit(strchr(abuf, 'P') == (char *)0);
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]
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)
904 AC_DEFUN(BASH_STRUCT_TERMIOS_LDISC,
906 AC_CHECK_MEMBER(struct termios.c_line, AC_DEFINE(TERMIOS_LDISC), ,[
907 #include <sys/types.h>
908 #include <termios.h>
912 AC_DEFUN(BASH_STRUCT_TERMIO_LDISC,
914 AC_CHECK_MEMBER(struct termio.c_line, AC_DEFINE(TERMIO_LDISC), ,[
915 #include <sys/types.h>
916 #include <termio.h>
921 dnl Like AC_STRUCT_ST_BLOCKS, but doesn't muck with LIBOBJS
923 dnl sets bash_cv_struct_stat_st_blocks
925 dnl unused for now; we'll see how AC_CHECK_MEMBERS works
927 AC_DEFUN(BASH_STRUCT_ST_BLOCKS,
929 AC_MSG_CHECKING([for struct stat.st_blocks])
930 AC_CACHE_VAL(bash_cv_struct_stat_st_blocks,
931 [AC_TRY_COMPILE(
933 #include <sys/types.h>
934 #include <sys/stat.h>
937 main()
939 static struct stat a;
940 if (a.st_blocks) return 0;
941 return 0;
943 ], bash_cv_struct_stat_st_blocks=yes, bash_cv_struct_stat_st_blocks=no)
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)
951 AC_DEFUN([BASH_CHECK_LIB_TERMCAP],
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=
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)
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=
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.
999 dnl NOTE: IF WE FIND GETPEERNAME, WE ASSUME THAT WE HAVE BIND/CONNECT
1000 dnl       AS WELL
1002 AC_DEFUN(BASH_CHECK_LIB_SOCKET,
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
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=
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)
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 */
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)
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 */
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)
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 */
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)
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,
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))
1151 AC_MSG_RESULT($bash_cv_struct_timeval)
1152 if test $bash_cv_struct_timeval = yes; then
1153   AC_DEFINE(HAVE_TIMEVAL)
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,
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))
1167 AC_MSG_RESULT($bash_cv_struct_timezone)
1168 if test $bash_cv_struct_timezone = yes; then
1169   AC_DEFINE(HAVE_STRUCT_TIMEZONE)
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)
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,
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   )]
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)
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()
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;
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);
1264         sleep(2);       /* let first child die */
1266         if (pipe(fds) < 0)
1267           exit(2);
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);
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);
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])
1291 AC_MSG_RESULT($bash_cv_pgrp_pipe)
1292 if test $bash_cv_pgrp_pipe = yes; then
1293 AC_DEFINE(PGRP_PIPE)
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
1308 typedef RETSIGTYPE sigfunc();
1310 int nsigint;
1312 #ifdef HAVE_POSIX_SIGNALS
1313 sigfunc *
1314 set_signal_handler(sig, handler)
1315      int sig;
1316      sigfunc *handler;
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);
1326 #else
1327 #define set_signal_handler(s, h) signal(s, h)
1328 #endif
1330 RETSIGTYPE
1331 sigint(s)
1332 int s;
1334   nsigint++;
1337 main()
1339         nsigint = 0;
1340         set_signal_handler(SIGINT, sigint);
1341         kill((int)getpid(), SIGINT);
1342         kill((int)getpid(), SIGINT);
1343         exit(nsigint != 2);
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]
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)
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>
1370 /* Add more tests in here as appropriate. */
1371 main()
1373 /* signal type */
1374 #if !defined (HAVE_POSIX_SIGNALS) && !defined (HAVE_BSD_SIGNALS)
1375 exit(1);
1376 #endif
1378 /* signals and tty control. */
1379 #if !defined (SIGTSTP) || !defined (SIGSTOP) || !defined (SIGCONT)
1380 exit (1);
1381 #endif
1383 /* process control */
1384 #if !defined (WNOHANG) || !defined (WUNTRACED) 
1385 exit(1);
1386 #endif
1388 /* Posix systems have tcgetpgrp and waitpid. */
1389 #if defined (_POSIX_VERSION) && !defined (HAVE_TCGETPGRP)
1390 exit(1);
1391 #endif
1393 #if defined (_POSIX_VERSION) && !defined (HAVE_WAITPID)
1394 exit(1);
1395 #endif
1397 /* Other systems have TIOCSPGRP/TIOCGPRGP and wait3. */
1398 #if !defined (_POSIX_VERSION) && !defined (HAVE_WAIT3)
1399 exit(1);
1400 #endif
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]
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)
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
1425 /* Add more tests in here as appropriate. */
1426 main()
1428 int fd, err;
1430 #if defined (HAVE_MKFIFO)
1431 exit (0);
1432 #endif
1434 #if !defined (S_IFIFO) && (defined (_POSIX_VERSION) && !defined (S_ISFIFO))
1435 exit (1);
1436 #endif
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);
1446 fd = mknod ("bash-aclocal/sh-np-autoconf", 0666 | S_IFIFO, 0);
1447 if (fd == -1) {
1448   rmdir ("bash-aclocal");
1449   exit (1);
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]
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)
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
1480 AC_MSG_RESULT($bash_cv_mail_dir)
1481 AC_DEFINE_UNQUOTED(DEFAULT_MAIL_DIRECTORY, "$bash_cv_mail_dir")
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)
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)
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)
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).
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)
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,
1542 #include <sys/types.h>
1543 #ifdef HAVE_UNISTD_H
1544 #  include <unistd.h>
1545 #endif
1546 #include <pwd.h>
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)
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
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
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/")
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
1596 AC_MSG_RESULT($bash_cv_dev_stdin)
1597 if test $bash_cv_dev_stdin = "present"; then
1598   AC_DEFINE(HAVE_DEV_STDIN)
1603 dnl Check if HPUX needs _KERNEL defined for RLIMIT_* definitions
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>
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
1623         int f;
1624         f = RLIMIT_DATA;
1625 ], bash_cv_kernel_rlimit=yes, bash_cv_kernel_rlimit=no)]
1627 AC_MSG_RESULT($bash_cv_kernel_rlimit)
1628 if test $bash_cv_kernel_rlimit = yes; then
1629 AC_DEFINE(RLIMIT_NEEDS_KERNEL)
1634 dnl Check for 64-bit off_t -- used for malloc alignment
1636 dnl C does not allow duplicate case labels, so the compile will fail if
1637 dnl sizeof(off_t) is > 4.
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>
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])
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>
1660 #ifndef NSIG
1661 #  define NSIG 64
1662 #endif
1664 main ()
1666   int n_sigs = 2 * NSIG;
1667 #ifdef SIGRTMIN
1668   int rtmin = SIGRTMIN;
1669 #else
1670   int rtmin = 0;
1671 #endif
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]
1678 AC_MSG_RESULT($bash_cv_unusable_rtsigs)
1679 if test $bash_cv_unusable_rtsigs = yes; then
1680 AC_DEFINE(UNUSABLE_RT_SIGNALS)
1685 dnl check for availability of multibyte characters and functions
1687 dnl geez, I wish I didn't have to check for all of this stuff separately
1689 AC_DEFUN(BASH_CHECK_MULTIBYTE,
1691 AC_CHECK_HEADERS(wctype.h)
1692 AC_CHECK_HEADERS(wchar.h)
1693 AC_CHECK_HEADERS(langinfo.h)
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))
1702 AC_REPLACE_FUNCS(mbschr)
1704 AC_CHECK_FUNC(wcrtomb, AC_DEFINE(HAVE_WCRTOMB))
1705 AC_CHECK_FUNC(wcscoll, AC_DEFINE(HAVE_WCSCOLL))
1706 AC_CHECK_FUNC(wcsdup, AC_DEFINE(HAVE_WCSDUP))
1707 AC_CHECK_FUNC(wcwidth, AC_DEFINE(HAVE_WCWIDTH))
1708 AC_CHECK_FUNC(wctype, AC_DEFINE(HAVE_WCTYPE))
1710 AC_REPLACE_FUNCS(wcswidth)
1712 dnl checks for both mbrtowc and mbstate_t
1713 AC_FUNC_MBRTOWC
1714 if test $ac_cv_func_mbrtowc = yes; then
1715         AC_DEFINE(HAVE_MBSTATE_T)
1718 AC_CHECK_FUNCS(iswlower iswupper towlower towupper iswctype)
1720 AC_CACHE_CHECK([for nl_langinfo and CODESET], bash_cv_langinfo_codeset,
1721 [AC_TRY_LINK(
1722 [#include <langinfo.h>],
1723 [char* cs = nl_langinfo(CODESET);],
1724 bash_cv_langinfo_codeset=yes, bash_cv_langinfo_codeset=no)])
1725 if test $bash_cv_langinfo_codeset = yes; then
1726   AC_DEFINE(HAVE_LANGINFO_CODESET)
1729 dnl check for wchar_t in <wchar.h>
1730 AC_CACHE_CHECK([for wchar_t in wchar.h], bash_cv_type_wchar_t,
1731 [AC_TRY_COMPILE(
1732 [#include <wchar.h>
1735         wchar_t foo;
1736         foo = 0;
1737 ], bash_cv_type_wchar_t=yes, bash_cv_type_wchar_t=no)])
1738 if test $bash_cv_type_wchar_t = yes; then
1739         AC_DEFINE(HAVE_WCHAR_T, 1, [systems should define this type here])
1742 dnl check for wctype_t in <wctype.h>
1743 AC_CACHE_CHECK([for wctype_t in wctype.h], bash_cv_type_wctype_t,
1744 [AC_TRY_COMPILE(
1745 [#include <wctype.h>],
1747         wctype_t foo;
1748         foo = 0;
1749 ], bash_cv_type_wctype_t=yes, bash_cv_type_wctype_t=no)])
1750 if test $bash_cv_type_wctype_t = yes; then
1751         AC_DEFINE(HAVE_WCTYPE_T, 1, [systems should define this type here])
1754 dnl check for wint_t in <wctype.h>
1755 AC_CACHE_CHECK([for wint_t in wctype.h], bash_cv_type_wint_t,
1756 [AC_TRY_COMPILE(
1757 [#include <wctype.h>],
1759         wint_t foo;
1760         foo = 0;
1761 ], bash_cv_type_wint_t=yes, bash_cv_type_wint_t=no)])
1762 if test $bash_cv_type_wint_t = yes; then
1763         AC_DEFINE(HAVE_WINT_T, 1, [systems should define this type here])
1766 if test "$am_cv_func_iconv" = yes; then
1767         OLDLIBS="$LIBS"
1768         LIBS="$LIBS $LIBICONV"
1769         AC_CHECK_FUNCS(locale_charset)
1770         LIBS="$OLDLIBS"
1775 dnl need: prefix exec_prefix libdir includedir CC TERMCAP_LIB
1776 dnl require:
1777 dnl     AC_PROG_CC
1778 dnl     BASH_CHECK_LIB_TERMCAP
1780 AC_DEFUN([RL_LIB_READLINE_VERSION],
1782 AC_REQUIRE([BASH_CHECK_LIB_TERMCAP])
1784 AC_MSG_CHECKING([version of installed readline library])
1786 # What a pain in the ass this is.
1788 # save cpp and ld options
1789 _save_CFLAGS="$CFLAGS"
1790 _save_LDFLAGS="$LDFLAGS"
1791 _save_LIBS="$LIBS"
1793 # Don't set ac_cv_rl_prefix if the caller has already assigned a value.  This
1794 # allows the caller to do something like $_rl_prefix=$withval if the user
1795 # specifies --with-installed-readline=PREFIX as an argument to configure
1797 if test -z "$ac_cv_rl_prefix"; then
1798 test "x$prefix" = xNONE && ac_cv_rl_prefix=$ac_default_prefix || ac_cv_rl_prefix=${prefix}
1801 eval ac_cv_rl_includedir=${ac_cv_rl_prefix}/include
1802 eval ac_cv_rl_libdir=${ac_cv_rl_prefix}/lib
1804 LIBS="$LIBS -lreadline ${TERMCAP_LIB}"
1805 CFLAGS="$CFLAGS -I${ac_cv_rl_includedir}"
1806 LDFLAGS="$LDFLAGS -L${ac_cv_rl_libdir}"
1808 AC_CACHE_VAL(ac_cv_rl_version,
1809 [AC_TRY_RUN([
1810 #include <stdio.h>
1811 #include <readline/readline.h>
1813 extern int rl_gnu_readline_p;
1815 main()
1817         FILE *fp;
1818         fp = fopen("conftest.rlv", "w");
1819         if (fp == 0)
1820                 exit(1);
1821         if (rl_gnu_readline_p != 1)
1822                 fprintf(fp, "0.0\n");
1823         else
1824                 fprintf(fp, "%s\n", rl_library_version ? rl_library_version : "0.0");
1825         fclose(fp);
1826         exit(0);
1829 ac_cv_rl_version=`cat conftest.rlv`,
1830 ac_cv_rl_version='0.0',
1831 ac_cv_rl_version='4.2')])
1833 CFLAGS="$_save_CFLAGS"
1834 LDFLAGS="$_save_LDFLAGS"
1835 LIBS="$_save_LIBS"
1837 RL_MAJOR=0
1838 RL_MINOR=0
1840 # (
1841 case "$ac_cv_rl_version" in
1842 2*|3*|4*|5*|6*|7*|8*|9*)
1843         RL_MAJOR=`echo $ac_cv_rl_version | sed 's:\..*$::'`
1844         RL_MINOR=`echo $ac_cv_rl_version | sed -e 's:^.*\.::' -e 's:[[a-zA-Z]]*$::'`
1845         ;;
1846 esac
1848 # (((
1849 case $RL_MAJOR in
1850 [[0-9][0-9]])   _RL_MAJOR=$RL_MAJOR ;;
1851 [[0-9]])        _RL_MAJOR=0$RL_MAJOR ;;
1852 *)              _RL_MAJOR=00 ;;
1853 esac
1855 # (((
1856 case $RL_MINOR in
1857 [[0-9][0-9]])   _RL_MINOR=$RL_MINOR ;;
1858 [[0-9]])        _RL_MINOR=0$RL_MINOR ;;
1859 *)              _RL_MINOR=00 ;;
1860 esac
1862 RL_VERSION="0x${_RL_MAJOR}${_RL_MINOR}"
1864 # Readline versions greater than 4.2 have these defines in readline.h
1866 if test $ac_cv_rl_version = '0.0' ; then
1867         AC_MSG_WARN([Could not test version of installed readline library.])
1868 elif test $RL_MAJOR -gt 4 || { test $RL_MAJOR = 4 && test $RL_MINOR -gt 2 ; } ; then
1869         # set these for use by the caller
1870         RL_PREFIX=$ac_cv_rl_prefix
1871         RL_LIBDIR=$ac_cv_rl_libdir
1872         RL_INCLUDEDIR=$ac_cv_rl_includedir
1873         AC_MSG_RESULT($ac_cv_rl_version)
1874 else
1876 AC_DEFINE_UNQUOTED(RL_READLINE_VERSION, $RL_VERSION, [encoded version of the installed readline library])
1877 AC_DEFINE_UNQUOTED(RL_VERSION_MAJOR, $RL_MAJOR, [major version of installed readline library])
1878 AC_DEFINE_UNQUOTED(RL_VERSION_MINOR, $RL_MINOR, [minor version of installed readline library])
1880 AC_SUBST(RL_VERSION)
1881 AC_SUBST(RL_MAJOR)
1882 AC_SUBST(RL_MINOR)
1884 # set these for use by the caller
1885 RL_PREFIX=$ac_cv_rl_prefix
1886 RL_LIBDIR=$ac_cv_rl_libdir
1887 RL_INCLUDEDIR=$ac_cv_rl_includedir
1889 AC_MSG_RESULT($ac_cv_rl_version)
1894 AC_DEFUN(BASH_FUNC_CTYPE_NONASCII,
1896 AC_MSG_CHECKING(whether the ctype macros accept non-ascii characters)
1897 AC_CACHE_VAL(bash_cv_func_ctype_nonascii,
1898 [AC_TRY_RUN([
1899 #ifdef HAVE_LOCALE_H
1900 #include <locale.h>
1901 #endif
1902 #include <stdio.h>
1903 #include <ctype.h>
1905 main(c, v)
1906 int     c;
1907 char    *v[];
1909         char    *deflocale;
1910         unsigned char x;
1911         int     r1, r2;
1913 #ifdef HAVE_SETLOCALE
1914         /* We take a shot here.  If that locale is not known, try the
1915            system default.  We try this one because '\342' (226) is
1916            known to be a printable character in that locale. */
1917         deflocale = setlocale(LC_ALL, "en_US.ISO8859-1");
1918         if (deflocale == 0)
1919                 deflocale = setlocale(LC_ALL, "");
1920 #endif
1922         x = '\342';
1923         r1 = isprint(x);
1924         x -= 128;
1925         r2 = isprint(x);
1926         exit (r1 == 0 || r2 == 0);
1928 ], bash_cv_func_ctype_nonascii=yes, bash_cv_func_ctype_nonascii=no,
1929    [AC_MSG_WARN(cannot check ctype macros if cross compiling -- defaulting to no)
1930     bash_cv_func_ctype_nonascii=no]
1932 AC_MSG_RESULT($bash_cv_func_ctype_nonascii)
1933 if test $bash_cv_func_ctype_nonascii = yes; then
1934 AC_DEFINE(CTYPE_NON_ASCII)
1938 AC_DEFUN(BASH_CHECK_WCONTINUED,
1940 AC_MSG_CHECKING(whether WCONTINUED flag to waitpid is unavailable or available but broken)
1941 AC_CACHE_VAL(bash_cv_wcontinued_broken,
1942 [AC_TRY_RUN([
1943 #include <sys/types.h>
1944 #include <sys/wait.h>
1945 #include <unistd.h>
1946 #include <errno.h>
1948 #ifndef errno
1949 extern int errno;
1950 #endif
1951 main()
1953         int     x;
1955         x = waitpid(-1, (int *)0, WNOHANG|WCONTINUED);
1956         if (x == -1 && errno == EINVAL)
1957                 exit (1);
1958         else
1959                 exit (0);
1961 ], bash_cv_wcontinued_broken=no,bash_cv_wcontinued_broken=yes,
1962    [AC_MSG_WARN(cannot check WCONTINUED if cross compiling -- defaulting to no)
1963     bash_cv_wcontinued_broken=no]
1965 AC_MSG_RESULT($bash_cv_wcontinued_broken)
1966 if test $bash_cv_wcontinued_broken = yes; then
1967 AC_DEFINE(WCONTINUED_BROKEN)
1972 dnl tests added for bashdb
1976 AC_DEFUN([AM_PATH_LISPDIR],
1977  [AC_ARG_WITH(lispdir, AC_HELP_STRING([--with-lispdir], [override the default lisp directory]),
1978   [ lispdir="$withval" 
1979     AC_MSG_CHECKING([where .elc files should go])
1980     AC_MSG_RESULT([$lispdir])],
1981   [
1982   # If set to t, that means we are running in a shell under Emacs.
1983   # If you have an Emacs named "t", then use the full path.
1984   test x"$EMACS" = xt && EMACS=
1985   AC_CHECK_PROGS(EMACS, emacs xemacs, no)
1986   if test $EMACS != "no"; then
1987     if test x${lispdir+set} != xset; then
1988       AC_CACHE_CHECK([where .elc files should go], [am_cv_lispdir], [dnl
1989         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;}'`
1990         if test -z "$am_cv_lispdir"; then
1991           am_cv_lispdir='${datadir}/emacs/site-lisp'
1992         fi
1993       ])
1994       lispdir="$am_cv_lispdir"
1995     fi
1996   fi
1997  ])
1998  AC_SUBST(lispdir)
2002 dnl tests added for gettext
2004 # codeset.m4 serial AM1 (gettext-0.10.40)
2005 dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
2006 dnl This file is free software, distributed under the terms of the GNU
2007 dnl General Public License.  As a special exception to the GNU General
2008 dnl Public License, this file may be distributed as part of a program
2009 dnl that contains a configuration script generated by Autoconf, under
2010 dnl the same distribution terms as the rest of that program.
2012 dnl From Bruno Haible.
2014 AC_DEFUN([AM_LANGINFO_CODESET],
2016   AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
2017     [AC_TRY_LINK([#include <langinfo.h>],
2018       [char* cs = nl_langinfo(CODESET);],
2019       am_cv_langinfo_codeset=yes,
2020       am_cv_langinfo_codeset=no)
2021     ])
2022   if test $am_cv_langinfo_codeset = yes; then
2023     AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
2024       [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
2025   fi
2027 # gettext.m4 serial 20 (gettext-0.12)
2028 dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
2029 dnl This file is free software, distributed under the terms of the GNU
2030 dnl General Public License.  As a special exception to the GNU General
2031 dnl Public License, this file may be distributed as part of a program
2032 dnl that contains a configuration script generated by Autoconf, under
2033 dnl the same distribution terms as the rest of that program.
2035 dnl This file can can be used in projects which are not available under
2036 dnl the GNU General Public License or the GNU Library General Public
2037 dnl License but which still want to provide support for the GNU gettext
2038 dnl functionality.
2039 dnl Please note that the actual code of the GNU gettext library is covered
2040 dnl by the GNU Library General Public License, and the rest of the GNU
2041 dnl gettext package package is covered by the GNU General Public License.
2042 dnl They are *not* in the public domain.
2044 dnl Authors:
2045 dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
2046 dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
2048 dnl Macro to add for using GNU gettext.
2050 dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
2051 dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
2052 dnl    default (if it is not specified or empty) is 'no-libtool'.
2053 dnl    INTLSYMBOL should be 'external' for packages with no intl directory,
2054 dnl    and 'no-libtool' or 'use-libtool' for packages with an intl directory.
2055 dnl    If INTLSYMBOL is 'use-libtool', then a libtool library
2056 dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
2057 dnl    depending on --{enable,disable}-{shared,static} and on the presence of
2058 dnl    AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
2059 dnl    $(top_builddir)/intl/libintl.a will be created.
2060 dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
2061 dnl    implementations (in libc or libintl) without the ngettext() function
2062 dnl    will be ignored.  If NEEDSYMBOL is specified and is
2063 dnl    'need-formatstring-macros', then GNU gettext implementations that don't
2064 dnl    support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
2065 dnl INTLDIR is used to find the intl libraries.  If empty,
2066 dnl    the value `$(top_builddir)/intl/' is used.
2068 dnl The result of the configuration is one of three cases:
2069 dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
2070 dnl    and used.
2071 dnl    Catalog format: GNU --> install in $(datadir)
2072 dnl    Catalog extension: .mo after installation, .gmo in source tree
2073 dnl 2) GNU gettext has been found in the system's C library.
2074 dnl    Catalog format: GNU --> install in $(datadir)
2075 dnl    Catalog extension: .mo after installation, .gmo in source tree
2076 dnl 3) No internationalization, always use English msgid.
2077 dnl    Catalog format: none
2078 dnl    Catalog extension: none
2079 dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
2080 dnl The use of .gmo is historical (it was needed to avoid overwriting the
2081 dnl GNU format catalogs when building on a platform with an X/Open gettext),
2082 dnl but we keep it in order not to force irrelevant filename changes on the
2083 dnl maintainers.
2085 AC_DEFUN([AM_GNU_GETTEXT],
2087   dnl Argument checking.
2088   ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
2089     [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
2090 ])])])])])
2091   ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
2092     [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
2093 ])])])])
2094   define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
2095   define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
2097   AC_REQUIRE([AM_PO_SUBDIRS])dnl
2098   ifelse(gt_included_intl, yes, [
2099     AC_REQUIRE([AM_INTL_SUBDIR])dnl
2100   ])
2102   dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
2103   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
2104   AC_REQUIRE([AC_LIB_RPATH])
2106   dnl Sometimes libintl requires libiconv, so first search for libiconv.
2107   dnl Ideally we would do this search only after the
2108   dnl      if test "$USE_NLS" = "yes"; then
2109   dnl        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
2110   dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
2111   dnl the configure script would need to contain the same shell code
2112   dnl again, outside any 'if'. There are two solutions:
2113   dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
2114   dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
2115   dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
2116   dnl documented, we avoid it.
2117   ifelse(gt_included_intl, yes, , [
2118     AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
2119   ])
2121   dnl Set USE_NLS.
2122   AM_NLS
2124   ifelse(gt_included_intl, yes, [
2125     BUILD_INCLUDED_LIBINTL=no
2126     USE_INCLUDED_LIBINTL=no
2127   ])
2128   LIBINTL=
2129   LTLIBINTL=
2130   POSUB=
2132   dnl If we use NLS figure out what method
2133   if test "$USE_NLS" = "yes"; then
2134     gt_use_preinstalled_gnugettext=no
2135     ifelse(gt_included_intl, yes, [
2136       AC_MSG_CHECKING([whether included gettext is requested])
2137       AC_ARG_WITH(included-gettext,
2138         [  --with-included-gettext use the GNU gettext library included here],
2139         nls_cv_force_use_gnu_gettext=$withval,
2140         nls_cv_force_use_gnu_gettext=no)
2141       AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
2143       nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
2144       if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
2145     ])
2146         dnl User does not insist on using GNU NLS library.  Figure out what
2147         dnl to use.  If GNU gettext is available we use this.  Else we have
2148         dnl to fall back to GNU NLS library.
2150         dnl Add a version number to the cache macros.
2151         define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
2152         define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
2153         define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
2155         AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
2156          [AC_TRY_LINK([#include <libintl.h>
2157 ]ifelse([$2], [need-formatstring-macros],
2158 [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
2159 #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
2160 #endif
2161 changequote(,)dnl
2162 typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
2163 changequote([,])dnl
2164 ], [])[extern int _nl_msg_cat_cntr;
2165 extern int *_nl_domain_bindings;],
2166             [bindtextdomain ("", "");
2167 return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
2168             gt_cv_func_gnugettext_libc=yes,
2169             gt_cv_func_gnugettext_libc=no)])
2171         if test "$gt_cv_func_gnugettext_libc" != "yes"; then
2172           dnl Sometimes libintl requires libiconv, so first search for libiconv.
2173           ifelse(gt_included_intl, yes, , [
2174             AM_ICONV_LINK
2175           ])
2176           dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
2177           dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
2178           dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
2179           dnl even if libiconv doesn't exist.
2180           AC_LIB_LINKFLAGS_BODY([intl])
2181           AC_CACHE_CHECK([for GNU gettext in libintl],
2182             gt_cv_func_gnugettext_libintl,
2183            [gt_save_CPPFLAGS="$CPPFLAGS"
2184             CPPFLAGS="$CPPFLAGS $INCINTL"
2185             gt_save_LIBS="$LIBS"
2186             LIBS="$LIBS $LIBINTL"
2187             dnl Now see whether libintl exists and does not depend on libiconv.
2188             AC_TRY_LINK([#include <libintl.h>
2189 ]ifelse([$2], [need-formatstring-macros],
2190 [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
2191 #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
2192 #endif
2193 changequote(,)dnl
2194 typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
2195 changequote([,])dnl
2196 ], [])[extern int _nl_msg_cat_cntr;
2197 extern
2198 #ifdef __cplusplus
2200 #endif
2201 const char *_nl_expand_alias ();],
2202               [bindtextdomain ("", "");
2203 return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
2204               gt_cv_func_gnugettext_libintl=yes,
2205               gt_cv_func_gnugettext_libintl=no)
2206             dnl Now see whether libintl exists and depends on libiconv.
2207             if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
2208               LIBS="$LIBS $LIBICONV"
2209               AC_TRY_LINK([#include <libintl.h>
2210 ]ifelse([$2], [need-formatstring-macros],
2211 [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
2212 #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
2213 #endif
2214 changequote(,)dnl
2215 typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
2216 changequote([,])dnl
2217 ], [])[extern int _nl_msg_cat_cntr;
2218 extern
2219 #ifdef __cplusplus
2221 #endif
2222 const char *_nl_expand_alias ();],
2223                 [bindtextdomain ("", "");
2224 return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
2225                [LIBINTL="$LIBINTL $LIBICONV"
2226                 LTLIBINTL="$LTLIBINTL $LTLIBICONV"
2227                 gt_cv_func_gnugettext_libintl=yes
2228                ])
2229             fi
2230             CPPFLAGS="$gt_save_CPPFLAGS"
2231             LIBS="$gt_save_LIBS"])
2232         fi
2234         dnl If an already present or preinstalled GNU gettext() is found,
2235         dnl use it.  But if this macro is used in GNU gettext, and GNU
2236         dnl gettext is already preinstalled in libintl, we update this
2237         dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
2238         if test "$gt_cv_func_gnugettext_libc" = "yes" \
2239            || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
2240                 && test "$PACKAGE" != gettext-runtime \
2241                 && test "$PACKAGE" != gettext-tools; }; then
2242           gt_use_preinstalled_gnugettext=yes
2243         else
2244           dnl Reset the values set by searching for libintl.
2245           LIBINTL=
2246           LTLIBINTL=
2247           INCINTL=
2248         fi
2250     ifelse(gt_included_intl, yes, [
2251         if test "$gt_use_preinstalled_gnugettext" != "yes"; then
2252           dnl GNU gettext is not found in the C library.
2253           dnl Fall back on included GNU gettext library.
2254           nls_cv_use_gnu_gettext=yes
2255         fi
2256       fi
2258       if test "$nls_cv_use_gnu_gettext" = "yes"; then
2259         dnl Mark actions used to generate GNU NLS library.
2260         BUILD_INCLUDED_LIBINTL=yes
2261         USE_INCLUDED_LIBINTL=yes
2262         LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
2263         LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
2264         LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
2265       fi
2267       if test "$gt_use_preinstalled_gnugettext" = "yes" \
2268          || test "$nls_cv_use_gnu_gettext" = "yes"; then
2269         dnl Mark actions to use GNU gettext tools.
2270         CATOBJEXT=.gmo
2271       fi
2272     ])
2274     if test "$gt_use_preinstalled_gnugettext" = "yes" \
2275        || test "$nls_cv_use_gnu_gettext" = "yes"; then
2276       AC_DEFINE(ENABLE_NLS, 1,
2277         [Define to 1 if translation of program messages to the user's native language
2278    is requested.])
2279     else
2280       USE_NLS=no
2281     fi
2282   fi
2284   AC_MSG_CHECKING([whether to use NLS])
2285   AC_MSG_RESULT([$USE_NLS])
2286   if test "$USE_NLS" = "yes"; then
2287     AC_MSG_CHECKING([where the gettext function comes from])
2288     if test "$gt_use_preinstalled_gnugettext" = "yes"; then
2289       if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
2290         gt_source="external libintl"
2291       else
2292         gt_source="libc"
2293       fi
2294     else
2295       gt_source="included intl directory"
2296     fi
2297     AC_MSG_RESULT([$gt_source])
2298   fi
2300   if test "$USE_NLS" = "yes"; then
2302     if test "$gt_use_preinstalled_gnugettext" = "yes"; then
2303       if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
2304         AC_MSG_CHECKING([how to link with libintl])
2305         AC_MSG_RESULT([$LIBINTL])
2306         AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
2307       fi
2309       dnl For backward compatibility. Some packages may be using this.
2310       AC_DEFINE(HAVE_GETTEXT, 1,
2311        [Define if the GNU gettext() function is already present or preinstalled.])
2312       AC_DEFINE(HAVE_DCGETTEXT, 1,
2313        [Define if the GNU dcgettext() function is already present or preinstalled.])
2314     fi
2316     dnl We need to process the po/ directory.
2317     POSUB=po
2318   fi
2320   ifelse(gt_included_intl, yes, [
2321     dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
2322     dnl to 'yes' because some of the testsuite requires it.
2323     if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
2324       BUILD_INCLUDED_LIBINTL=yes
2325     fi
2327     dnl Make all variables we use known to autoconf.
2328     AC_SUBST(BUILD_INCLUDED_LIBINTL)
2329     AC_SUBST(USE_INCLUDED_LIBINTL)
2330     AC_SUBST(CATOBJEXT)
2332     dnl For backward compatibility. Some configure.ins may be using this.
2333     nls_cv_header_intl=
2334     nls_cv_header_libgt=
2336     dnl For backward compatibility. Some Makefiles may be using this.
2337     DATADIRNAME=share
2338     AC_SUBST(DATADIRNAME)
2340     dnl For backward compatibility. Some Makefiles may be using this.
2341     INSTOBJEXT=.mo
2342     AC_SUBST(INSTOBJEXT)
2344     dnl For backward compatibility. Some Makefiles may be using this.
2345     GENCAT=gencat
2346     AC_SUBST(GENCAT)
2348     dnl For backward compatibility. Some Makefiles may be using this.
2349     if test "$USE_INCLUDED_LIBINTL" = yes; then
2350       INTLOBJS="\$(GETTOBJS)"
2351     fi
2352     AC_SUBST(INTLOBJS)
2354     dnl Enable libtool support if the surrounding package wishes it.
2355     INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
2356     AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
2357   ])
2359   dnl For backward compatibility. Some Makefiles may be using this.
2360   INTLLIBS="$LIBINTL"
2361   AC_SUBST(INTLLIBS)
2363   dnl Make all documented variables known to autoconf.
2364   AC_SUBST(LIBINTL)
2365   AC_SUBST(LTLIBINTL)
2366   AC_SUBST(POSUB)
2370 dnl Checks for all prerequisites of the intl subdirectory,
2371 dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
2372 dnl            USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
2373 AC_DEFUN([AM_INTL_SUBDIR],
2375   AC_REQUIRE([AC_PROG_INSTALL])dnl
2376   AC_REQUIRE([AM_MKINSTALLDIRS])dnl
2377   AC_REQUIRE([AC_PROG_CC])dnl
2378   AC_REQUIRE([AC_CANONICAL_HOST])dnl
2379   AC_REQUIRE([AC_PROG_RANLIB])dnl
2380   AC_REQUIRE([AC_ISC_POSIX])dnl
2381   AC_REQUIRE([AC_HEADER_STDC])dnl
2382   AC_REQUIRE([AC_C_CONST])dnl
2383   AC_REQUIRE([AC_C_INLINE])dnl
2384   AC_REQUIRE([AC_TYPE_OFF_T])dnl
2385   AC_REQUIRE([AC_TYPE_SIZE_T])dnl
2386   AC_REQUIRE([AC_FUNC_ALLOCA])dnl
2387   AC_REQUIRE([AC_FUNC_MMAP])dnl
2388   AC_REQUIRE([jm_GLIBC21])dnl
2389   AC_REQUIRE([gt_INTDIV0])dnl
2390   AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
2391   AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
2392   AC_REQUIRE([gt_INTTYPES_PRI])dnl
2394   AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
2395 stdlib.h string.h unistd.h sys/param.h])
2396   AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \
2397 geteuid getgid getuid mempcpy munmap putenv setenv setlocale localeconv stpcpy \
2398 strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \
2399 __fsetlocking])
2401   AM_ICONV
2402   AM_LANGINFO_CODESET
2403   if test $ac_cv_header_locale_h = yes; then
2404     AM_LC_MESSAGES
2405   fi
2407   dnl intl/plural.c is generated from intl/plural.y. It requires bison,
2408   dnl because plural.y uses bison specific features. It requires at least
2409   dnl bison-1.26 because earlier versions generate a plural.c that doesn't
2410   dnl compile.
2411   dnl bison is only needed for the maintainer (who touches plural.y). But in
2412   dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
2413   dnl the rule in general Makefile. Now, some people carelessly touch the
2414   dnl files or have a broken "make" program, hence the plural.c rule will
2415   dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
2416   dnl present or too old.
2417   AC_CHECK_PROGS([INTLBISON], [bison])
2418   if test -z "$INTLBISON"; then
2419     ac_verc_fail=yes
2420   else
2421     dnl Found it, now check the version.
2422     AC_MSG_CHECKING([version of bison])
2423 changequote(<<,>>)dnl
2424     ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
2425     case $ac_prog_version in
2426       '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2427       1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
2428 changequote([,])dnl
2429          ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
2430       *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
2431     esac
2432     AC_MSG_RESULT([$ac_prog_version])
2433   fi
2434   if test $ac_verc_fail = yes; then
2435     INTLBISON=:
2436   fi
2440 dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
2441 AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
2442 # glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40)
2443 dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
2444 dnl This file is free software, distributed under the terms of the GNU
2445 dnl General Public License.  As a special exception to the GNU General
2446 dnl Public License, this file may be distributed as part of a program
2447 dnl that contains a configuration script generated by Autoconf, under
2448 dnl the same distribution terms as the rest of that program.
2450 # Test for the GNU C Library, version 2.1 or newer.
2451 # From Bruno Haible.
2453 AC_DEFUN([jm_GLIBC21],
2454   [
2455     AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
2456       ac_cv_gnu_library_2_1,
2457       [AC_EGREP_CPP([Lucky GNU user],
2458         [
2459 #include <features.h>
2460 #ifdef __GNU_LIBRARY__
2461  #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
2462   Lucky GNU user
2463  #endif
2464 #endif
2465         ],
2466         ac_cv_gnu_library_2_1=yes,
2467         ac_cv_gnu_library_2_1=no)
2468       ]
2469     )
2470     AC_SUBST(GLIBC21)
2471     GLIBC21="$ac_cv_gnu_library_2_1"
2472   ]
2474 # iconv.m4 serial AM4 (gettext-0.11.3)
2475 dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
2476 dnl This file is free software, distributed under the terms of the GNU
2477 dnl General Public License.  As a special exception to the GNU General
2478 dnl Public License, this file may be distributed as part of a program
2479 dnl that contains a configuration script generated by Autoconf, under
2480 dnl the same distribution terms as the rest of that program.
2482 dnl From Bruno Haible.
2484 AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
2486   dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
2487   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
2488   AC_REQUIRE([AC_LIB_RPATH])
2490   dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
2491   dnl accordingly.
2492   AC_LIB_LINKFLAGS_BODY([iconv])
2495 AC_DEFUN([AM_ICONV_LINK],
2497   dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
2498   dnl those with the standalone portable GNU libiconv installed).
2500   dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
2501   dnl accordingly.
2502   AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
2504   dnl Add $INCICONV to CPPFLAGS before performing the following checks,
2505   dnl because if the user has installed libiconv and not disabled its use
2506   dnl via --without-libiconv-prefix, he wants to use it. The first
2507   dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
2508   am_save_CPPFLAGS="$CPPFLAGS"
2509   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
2511   AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
2512     am_cv_func_iconv="no, consider installing GNU libiconv"
2513     am_cv_lib_iconv=no
2514     AC_TRY_LINK([#include <stdlib.h>
2515 #include <iconv.h>],
2516       [iconv_t cd = iconv_open("","");
2517        iconv(cd,NULL,NULL,NULL,NULL);
2518        iconv_close(cd);],
2519       am_cv_func_iconv=yes)
2520     if test "$am_cv_func_iconv" != yes; then
2521       am_save_LIBS="$LIBS"
2522       LIBS="$LIBS $LIBICONV"
2523       AC_TRY_LINK([#include <stdlib.h>
2524 #include <iconv.h>],
2525         [iconv_t cd = iconv_open("","");
2526          iconv(cd,NULL,NULL,NULL,NULL);
2527          iconv_close(cd);],
2528         am_cv_lib_iconv=yes
2529         am_cv_func_iconv=yes)
2530       LIBS="$am_save_LIBS"
2531     fi
2532   ])
2533   if test "$am_cv_func_iconv" = yes; then
2534     AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
2535   fi
2536   if test "$am_cv_lib_iconv" = yes; then
2537     AC_MSG_CHECKING([how to link with libiconv])
2538     AC_MSG_RESULT([$LIBICONV])
2539   else
2540     dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
2541     dnl either.
2542     CPPFLAGS="$am_save_CPPFLAGS"
2543     LIBICONV=
2544     LTLIBICONV=
2545   fi
2546   AC_SUBST(LIBICONV)
2547   AC_SUBST(LTLIBICONV)
2550 AC_DEFUN([AM_ICONV],
2552   AM_ICONV_LINK
2553   if test "$am_cv_func_iconv" = yes; then
2554     AC_MSG_CHECKING([for iconv declaration])
2555     AC_CACHE_VAL(am_cv_proto_iconv, [
2556       AC_TRY_COMPILE([
2557 #include <stdlib.h>
2558 #include <iconv.h>
2559 extern
2560 #ifdef __cplusplus
2562 #endif
2563 #if defined(__STDC__) || defined(__cplusplus)
2564 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
2565 #else
2566 size_t iconv();
2567 #endif
2568 ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
2569       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);"])
2570     am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
2571     AC_MSG_RESULT([$]{ac_t:-
2572          }[$]am_cv_proto_iconv)
2573     AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
2574       [Define as const if the declaration of iconv() needs const.])
2575   fi
2577 # intdiv0.m4 serial 1 (gettext-0.11.3)
2578 dnl Copyright (C) 2002 Free Software Foundation, Inc.
2579 dnl This file is free software, distributed under the terms of the GNU
2580 dnl General Public License.  As a special exception to the GNU General
2581 dnl Public License, this file may be distributed as part of a program
2582 dnl that contains a configuration script generated by Autoconf, under
2583 dnl the same distribution terms as the rest of that program.
2585 dnl From Bruno Haible.
2587 AC_DEFUN([gt_INTDIV0],
2589   AC_REQUIRE([AC_PROG_CC])dnl
2590   AC_REQUIRE([AC_CANONICAL_HOST])dnl
2592   AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
2593     gt_cv_int_divbyzero_sigfpe,
2594     [
2595       AC_TRY_RUN([
2596 #include <stdlib.h>
2597 #include <signal.h>
2599 static void
2600 #ifdef __cplusplus
2601 sigfpe_handler (int sig)
2602 #else
2603 sigfpe_handler (sig) int sig;
2604 #endif
2606   /* Exit with code 0 if SIGFPE, with code 1 if any other signal.  */
2607   exit (sig != SIGFPE);
2610 int x = 1;
2611 int y = 0;
2612 int z;
2613 int nan;
2615 int main ()
2617   signal (SIGFPE, sigfpe_handler);
2618 /* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP.  */
2619 #if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
2620   signal (SIGTRAP, sigfpe_handler);
2621 #endif
2622 /* Linux/SPARC yields signal SIGILL.  */
2623 #if defined (__sparc__) && defined (__linux__)
2624   signal (SIGILL, sigfpe_handler);
2625 #endif
2627   z = x / y;
2628   nan = y / y;
2629   exit (1);
2631 ], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no,
2632         [
2633           # Guess based on the CPU.
2634           case "$host_cpu" in
2635             alpha* | i[34567]86 | m68k | s390*)
2636               gt_cv_int_divbyzero_sigfpe="guessing yes";;
2637             *)
2638               gt_cv_int_divbyzero_sigfpe="guessing no";;
2639           esac
2640         ])
2641     ])
2642   case "$gt_cv_int_divbyzero_sigfpe" in
2643     *yes) value=1;;
2644     *) value=0;;
2645   esac
2646   AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value,
2647     [Define if integer division by zero raises signal SIGFPE.])
2649 # inttypes.m4 serial 1 (gettext-0.11.4)
2650 dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
2651 dnl This file is free software, distributed under the terms of the GNU
2652 dnl General Public License.  As a special exception to the GNU General
2653 dnl Public License, this file may be distributed as part of a program
2654 dnl that contains a configuration script generated by Autoconf, under
2655 dnl the same distribution terms as the rest of that program.
2657 dnl From Paul Eggert.
2659 # Define HAVE_INTTYPES_H if <inttypes.h> exists and doesn't clash with
2660 # <sys/types.h>.
2662 AC_DEFUN([gt_HEADER_INTTYPES_H],
2664   AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h,
2665   [
2666     AC_TRY_COMPILE(
2667       [#include <sys/types.h>
2668 #include <inttypes.h>],
2669       [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no)
2670   ])
2671   if test $gt_cv_header_inttypes_h = yes; then
2672     AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
2673       [Define if <inttypes.h> exists and doesn't clash with <sys/types.h>.])
2674   fi
2676 # inttypes_h.m4 serial 5 (gettext-0.12)
2677 dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
2678 dnl This file is free software, distributed under the terms of the GNU
2679 dnl General Public License.  As a special exception to the GNU General
2680 dnl Public License, this file may be distributed as part of a program
2681 dnl that contains a configuration script generated by Autoconf, under
2682 dnl the same distribution terms as the rest of that program.
2684 dnl From Paul Eggert.
2686 # Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
2687 # doesn't clash with <sys/types.h>, and declares uintmax_t.
2689 AC_DEFUN([jm_AC_HEADER_INTTYPES_H],
2691   AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
2692   [AC_TRY_COMPILE(
2693     [#include <sys/types.h>
2694 #include <inttypes.h>],
2695     [uintmax_t i = (uintmax_t) -1;],
2696     jm_ac_cv_header_inttypes_h=yes,
2697     jm_ac_cv_header_inttypes_h=no)])
2698   if test $jm_ac_cv_header_inttypes_h = yes; then
2699     AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1,
2700       [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
2701        and declares uintmax_t. ])
2702   fi
2704 # inttypes-pri.m4 serial 1 (gettext-0.11.4)
2705 dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
2706 dnl This file is free software, distributed under the terms of the GNU
2707 dnl General Public License.  As a special exception to the GNU General
2708 dnl Public License, this file may be distributed as part of a program
2709 dnl that contains a configuration script generated by Autoconf, under
2710 dnl the same distribution terms as the rest of that program.
2712 dnl From Bruno Haible.
2714 # Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
2715 # macros to non-string values.  This is the case on AIX 4.3.3.
2717 AC_DEFUN([gt_INTTYPES_PRI],
2719   AC_REQUIRE([gt_HEADER_INTTYPES_H])
2720   if test $gt_cv_header_inttypes_h = yes; then
2721     AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
2722       gt_cv_inttypes_pri_broken,
2723       [
2724         AC_TRY_COMPILE([#include <inttypes.h>
2725 #ifdef PRId32
2726 char *p = PRId32;
2727 #endif
2728 ], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes)
2729       ])
2730   fi
2731   if test "$gt_cv_inttypes_pri_broken" = yes; then
2732     AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1,
2733       [Define if <inttypes.h> exists and defines unusable PRI* macros.])
2734   fi
2736 # isc-posix.m4 serial 2 (gettext-0.11.2)
2737 dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
2738 dnl This file is free software, distributed under the terms of the GNU
2739 dnl General Public License.  As a special exception to the GNU General
2740 dnl Public License, this file may be distributed as part of a program
2741 dnl that contains a configuration script generated by Autoconf, under
2742 dnl the same distribution terms as the rest of that program.
2744 # This file is not needed with autoconf-2.53 and newer.  Remove it in 2005.
2746 # This test replaces the one in autoconf.
2747 # Currently this macro should have the same name as the autoconf macro
2748 # because gettext's gettext.m4 (distributed in the automake package)
2749 # still uses it.  Otherwise, the use in gettext.m4 makes autoheader
2750 # give these diagnostics:
2751 #   configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
2752 #   configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
2754 undefine([AC_ISC_POSIX])
2756 AC_DEFUN([AC_ISC_POSIX],
2757   [
2758     dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
2759     AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
2760   ]
2762 # lcmessage.m4 serial 3 (gettext-0.11.3)
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.
2770 dnl This file can can be used in projects which are not available under
2771 dnl the GNU General Public License or the GNU Library General Public
2772 dnl License but which still want to provide support for the GNU gettext
2773 dnl functionality.
2774 dnl Please note that the actual code of the GNU gettext library is covered
2775 dnl by the GNU Library General Public License, and the rest of the GNU
2776 dnl gettext package package is covered by the GNU General Public License.
2777 dnl They are *not* in the public domain.
2779 dnl Authors:
2780 dnl   Ulrich Drepper <drepper@cygnus.com>, 1995.
2782 # Check whether LC_MESSAGES is available in <locale.h>.
2784 AC_DEFUN([AM_LC_MESSAGES],
2786   AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
2787     [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
2788        am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
2789   if test $am_cv_val_LC_MESSAGES = yes; then
2790     AC_DEFINE(HAVE_LC_MESSAGES, 1,
2791       [Define if your <locale.h> file defines LC_MESSAGES.])
2792   fi
2794 # lib-ld.m4 serial 2 (gettext-0.12)
2795 dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
2796 dnl This file is free software, distributed under the terms of the GNU
2797 dnl General Public License.  As a special exception to the GNU General
2798 dnl Public License, this file may be distributed as part of a program
2799 dnl that contains a configuration script generated by Autoconf, under
2800 dnl the same distribution terms as the rest of that program.
2802 dnl Subroutines of libtool.m4,
2803 dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
2804 dnl with libtool.m4.
2806 dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
2807 AC_DEFUN([AC_LIB_PROG_LD_GNU],
2808 [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
2809 [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
2810 if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
2811   acl_cv_prog_gnu_ld=yes
2812 else
2813   acl_cv_prog_gnu_ld=no
2814 fi])
2815 with_gnu_ld=$acl_cv_prog_gnu_ld
2818 dnl From libtool-1.4. Sets the variable LD.
2819 AC_DEFUN([AC_LIB_PROG_LD],
2820 [AC_ARG_WITH(gnu-ld,
2821 [  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
2822 test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
2823 AC_REQUIRE([AC_PROG_CC])dnl
2824 AC_REQUIRE([AC_CANONICAL_HOST])dnl
2825 # Prepare PATH_SEPARATOR.
2826 # The user is always right.
2827 if test "${PATH_SEPARATOR+set}" != set; then
2828   echo "#! /bin/sh" >conf$$.sh
2829   echo  "exit 0"   >>conf$$.sh
2830   chmod +x conf$$.sh
2831   if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
2832     PATH_SEPARATOR=';'
2833   else
2834     PATH_SEPARATOR=:
2835   fi
2836   rm -f conf$$.sh
2838 ac_prog=ld
2839 if test "$GCC" = yes; then
2840   # Check if gcc -print-prog-name=ld gives a path.
2841   AC_MSG_CHECKING([for ld used by GCC])
2842   case $host in
2843   *-*-mingw*)
2844     # gcc leaves a trailing carriage return which upsets mingw
2845     ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
2846   *)
2847     ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
2848   esac
2849   case $ac_prog in
2850     # Accept absolute paths.
2851     [[\\/]* | [A-Za-z]:[\\/]*)]
2852       [re_direlt='/[^/][^/]*/\.\./']
2853       # Canonicalize the path of ld
2854       ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
2855       while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
2856         ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
2857       done
2858       test -z "$LD" && LD="$ac_prog"
2859       ;;
2860   "")
2861     # If it fails, then pretend we aren't using GCC.
2862     ac_prog=ld
2863     ;;
2864   *)
2865     # If it is relative, then search for the first ld in PATH.
2866     with_gnu_ld=unknown
2867     ;;
2868   esac
2869 elif test "$with_gnu_ld" = yes; then
2870   AC_MSG_CHECKING([for GNU ld])
2871 else
2872   AC_MSG_CHECKING([for non-GNU ld])
2874 AC_CACHE_VAL(acl_cv_path_LD,
2875 [if test -z "$LD"; then
2876   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
2877   for ac_dir in $PATH; do
2878     test -z "$ac_dir" && ac_dir=.
2879     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
2880       acl_cv_path_LD="$ac_dir/$ac_prog"
2881       # Check to see if the program is GNU ld.  I'd rather use --version,
2882       # but apparently some GNU ld's only accept -v.
2883       # Break only if it was the GNU/non-GNU ld that we prefer.
2884       if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
2885         test "$with_gnu_ld" != no && break
2886       else
2887         test "$with_gnu_ld" != yes && break
2888       fi
2889     fi
2890   done
2891   IFS="$ac_save_ifs"
2892 else
2893   acl_cv_path_LD="$LD" # Let the user override the test with a path.
2894 fi])
2895 LD="$acl_cv_path_LD"
2896 if test -n "$LD"; then
2897   AC_MSG_RESULT($LD)
2898 else
2899   AC_MSG_RESULT(no)
2901 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
2902 AC_LIB_PROG_LD_GNU
2904 # lib-link.m4 serial 4 (gettext-0.12)
2905 dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
2906 dnl This file is free software, distributed under the terms of the GNU
2907 dnl General Public License.  As a special exception to the GNU General
2908 dnl Public License, this file may be distributed as part of a program
2909 dnl that contains a configuration script generated by Autoconf, under
2910 dnl the same distribution terms as the rest of that program.
2912 dnl From Bruno Haible.
2914 dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
2915 dnl the libraries corresponding to explicit and implicit dependencies.
2916 dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
2917 dnl augments the CPPFLAGS variable.
2918 AC_DEFUN([AC_LIB_LINKFLAGS],
2920   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
2921   AC_REQUIRE([AC_LIB_RPATH])
2922   define([Name],[translit([$1],[./-], [___])])
2923   define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
2924                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
2925   AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
2926     AC_LIB_LINKFLAGS_BODY([$1], [$2])
2927     ac_cv_lib[]Name[]_libs="$LIB[]NAME"
2928     ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
2929     ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
2930   ])
2931   LIB[]NAME="$ac_cv_lib[]Name[]_libs"
2932   LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
2933   INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
2934   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
2935   AC_SUBST([LIB]NAME)
2936   AC_SUBST([LTLIB]NAME)
2937   dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
2938   dnl results of this search when this library appears as a dependency.
2939   HAVE_LIB[]NAME=yes
2940   undefine([Name])
2941   undefine([NAME])
2944 dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
2945 dnl searches for libname and the libraries corresponding to explicit and
2946 dnl implicit dependencies, together with the specified include files and
2947 dnl the ability to compile and link the specified testcode. If found, it
2948 dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
2949 dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
2950 dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
2951 dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
2952 AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
2954   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
2955   AC_REQUIRE([AC_LIB_RPATH])
2956   define([Name],[translit([$1],[./-], [___])])
2957   define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
2958                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
2960   dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
2961   dnl accordingly.
2962   AC_LIB_LINKFLAGS_BODY([$1], [$2])
2964   dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
2965   dnl because if the user has installed lib[]Name and not disabled its use
2966   dnl via --without-lib[]Name-prefix, he wants to use it.
2967   ac_save_CPPFLAGS="$CPPFLAGS"
2968   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
2970   AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
2971     ac_save_LIBS="$LIBS"
2972     LIBS="$LIBS $LIB[]NAME"
2973     AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
2974     LIBS="$ac_save_LIBS"
2975   ])
2976   if test "$ac_cv_lib[]Name" = yes; then
2977     HAVE_LIB[]NAME=yes
2978     AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
2979     AC_MSG_CHECKING([how to link with lib[]$1])
2980     AC_MSG_RESULT([$LIB[]NAME])
2981   else
2982     HAVE_LIB[]NAME=no
2983     dnl If $LIB[]NAME didn't lead to a usable library, we don't need
2984     dnl $INC[]NAME either.
2985     CPPFLAGS="$ac_save_CPPFLAGS"
2986     LIB[]NAME=
2987     LTLIB[]NAME=
2988   fi
2989   AC_SUBST([HAVE_LIB]NAME)
2990   AC_SUBST([LIB]NAME)
2991   AC_SUBST([LTLIB]NAME)
2992   undefine([Name])
2993   undefine([NAME])
2996 dnl Determine the platform dependent parameters needed to use rpath:
2997 dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
2998 dnl hardcode_direct, hardcode_minus_L.
2999 AC_DEFUN([AC_LIB_RPATH],
3001   AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
3002   AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
3003   AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
3004   AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
3005   AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
3006     CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
3007     ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
3008     . ./conftest.sh
3009     rm -f ./conftest.sh
3010     acl_cv_rpath=done
3011   ])
3012   wl="$acl_cv_wl"
3013   libext="$acl_cv_libext"
3014   shlibext="$acl_cv_shlibext"
3015   hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
3016   hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
3017   hardcode_direct="$acl_cv_hardcode_direct"
3018   hardcode_minus_L="$acl_cv_hardcode_minus_L"
3019   dnl Determine whether the user wants rpath handling at all.
3020   AC_ARG_ENABLE(rpath,
3021     [  --disable-rpath         do not hardcode runtime library paths],
3022     :, enable_rpath=yes)
3025 dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
3026 dnl the libraries corresponding to explicit and implicit dependencies.
3027 dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
3028 AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
3030   define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
3031                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
3032   dnl By default, look in $includedir and $libdir.
3033   use_additional=yes
3034   AC_LIB_WITH_FINAL_PREFIX([
3035     eval additional_includedir=\"$includedir\"
3036     eval additional_libdir=\"$libdir\"
3037   ])
3038   AC_LIB_ARG_WITH([lib$1-prefix],
3039 [  --with-lib$1-prefix[=DIR]  search for lib$1 in DIR/include and DIR/lib
3040   --without-lib$1-prefix     don't search for lib$1 in includedir and libdir],
3042     if test "X$withval" = "Xno"; then
3043       use_additional=no
3044     else
3045       if test "X$withval" = "X"; then
3046         AC_LIB_WITH_FINAL_PREFIX([
3047           eval additional_includedir=\"$includedir\"
3048           eval additional_libdir=\"$libdir\"
3049         ])
3050       else
3051         additional_includedir="$withval/include"
3052         additional_libdir="$withval/lib"
3053       fi
3054     fi
3056   dnl Search the library and its dependencies in $additional_libdir and
3057   dnl $LDFLAGS. Using breadth-first-seach.
3058   LIB[]NAME=
3059   LTLIB[]NAME=
3060   INC[]NAME=
3061   rpathdirs=
3062   ltrpathdirs=
3063   names_already_handled=
3064   names_next_round='$1 $2'
3065   while test -n "$names_next_round"; do
3066     names_this_round="$names_next_round"
3067     names_next_round=
3068     for name in $names_this_round; do
3069       already_handled=
3070       for n in $names_already_handled; do
3071         if test "$n" = "$name"; then
3072           already_handled=yes
3073           break
3074         fi
3075       done
3076       if test -z "$already_handled"; then
3077         names_already_handled="$names_already_handled $name"
3078         dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
3079         dnl or AC_LIB_HAVE_LINKFLAGS call.
3080         uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
3081         eval value=\"\$HAVE_LIB$uppername\"
3082         if test -n "$value"; then
3083           if test "$value" = yes; then
3084             eval value=\"\$LIB$uppername\"
3085             test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
3086             eval value=\"\$LTLIB$uppername\"
3087             test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
3088           else
3089             dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
3090             dnl that this library doesn't exist. So just drop it.
3091             :
3092           fi
3093         else
3094           dnl Search the library lib$name in $additional_libdir and $LDFLAGS
3095           dnl and the already constructed $LIBNAME/$LTLIBNAME.
3096           found_dir=
3097           found_la=
3098           found_so=
3099           found_a=
3100           if test $use_additional = yes; then
3101             if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
3102               found_dir="$additional_libdir"
3103               found_so="$additional_libdir/lib$name.$shlibext"
3104               if test -f "$additional_libdir/lib$name.la"; then
3105                 found_la="$additional_libdir/lib$name.la"
3106               fi
3107             else
3108               if test -f "$additional_libdir/lib$name.$libext"; then
3109                 found_dir="$additional_libdir"
3110                 found_a="$additional_libdir/lib$name.$libext"
3111                 if test -f "$additional_libdir/lib$name.la"; then
3112                   found_la="$additional_libdir/lib$name.la"
3113                 fi
3114               fi
3115             fi
3116           fi
3117           if test "X$found_dir" = "X"; then
3118             for x in $LDFLAGS $LTLIB[]NAME; do
3119               AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
3120               case "$x" in
3121                 -L*)
3122                   dir=`echo "X$x" | sed -e 's/^X-L//'`
3123                   if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
3124                     found_dir="$dir"
3125                     found_so="$dir/lib$name.$shlibext"
3126                     if test -f "$dir/lib$name.la"; then
3127                       found_la="$dir/lib$name.la"
3128                     fi
3129                   else
3130                     if test -f "$dir/lib$name.$libext"; then
3131                       found_dir="$dir"
3132                       found_a="$dir/lib$name.$libext"
3133                       if test -f "$dir/lib$name.la"; then
3134                         found_la="$dir/lib$name.la"
3135                       fi
3136                     fi
3137                   fi
3138                   ;;
3139               esac
3140               if test "X$found_dir" != "X"; then
3141                 break
3142               fi
3143             done
3144           fi
3145           if test "X$found_dir" != "X"; then
3146             dnl Found the library.
3147             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
3148             if test "X$found_so" != "X"; then
3149               dnl Linking with a shared library. We attempt to hardcode its
3150               dnl directory into the executable's runpath, unless it's the
3151               dnl standard /usr/lib.
3152               if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
3153                 dnl No hardcoding is needed.
3154                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
3155               else
3156                 dnl Use an explicit option to hardcode DIR into the resulting
3157                 dnl binary.
3158                 dnl Potentially add DIR to ltrpathdirs.
3159                 dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
3160                 haveit=
3161                 for x in $ltrpathdirs; do
3162                   if test "X$x" = "X$found_dir"; then
3163                     haveit=yes
3164                     break
3165                   fi
3166                 done
3167                 if test -z "$haveit"; then
3168                   ltrpathdirs="$ltrpathdirs $found_dir"
3169                 fi
3170                 dnl The hardcoding into $LIBNAME is system dependent.
3171                 if test "$hardcode_direct" = yes; then
3172                   dnl Using DIR/libNAME.so during linking hardcodes DIR into the
3173                   dnl resulting binary.
3174                   LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
3175                 else
3176                   if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
3177                     dnl Use an explicit option to hardcode DIR into the resulting
3178                     dnl binary.
3179                     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
3180                     dnl Potentially add DIR to rpathdirs.
3181                     dnl The rpathdirs will be appended to $LIBNAME at the end.
3182                     haveit=
3183                     for x in $rpathdirs; do
3184                       if test "X$x" = "X$found_dir"; then
3185                         haveit=yes
3186                         break
3187                       fi
3188                     done
3189                     if test -z "$haveit"; then
3190                       rpathdirs="$rpathdirs $found_dir"
3191                     fi
3192                   else
3193                     dnl Rely on "-L$found_dir".
3194                     dnl But don't add it if it's already contained in the LDFLAGS
3195                     dnl or the already constructed $LIBNAME
3196                     haveit=
3197                     for x in $LDFLAGS $LIB[]NAME; do
3198                       AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
3199                       if test "X$x" = "X-L$found_dir"; then
3200                         haveit=yes
3201                         break
3202                       fi
3203                     done
3204                     if test -z "$haveit"; then
3205                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
3206                     fi
3207                     if test "$hardcode_minus_L" != no; then
3208                       dnl FIXME: Not sure whether we should use
3209                       dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
3210                       dnl here.
3211                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
3212                     else
3213                       dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
3214                       dnl here, because this doesn't fit in flags passed to the
3215                       dnl compiler. So give up. No hardcoding. This affects only
3216                       dnl very old systems.
3217                       dnl FIXME: Not sure whether we should use
3218                       dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
3219                       dnl here.
3220                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
3221                     fi
3222                   fi
3223                 fi
3224               fi
3225             else
3226               if test "X$found_a" != "X"; then
3227                 dnl Linking with a static library.
3228                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
3229               else
3230                 dnl We shouldn't come here, but anyway it's good to have a
3231                 dnl fallback.
3232                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
3233               fi
3234             fi
3235             dnl Assume the include files are nearby.
3236             additional_includedir=
3237             case "$found_dir" in
3238               */lib | */lib/)
3239                 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
3240                 additional_includedir="$basedir/include"
3241                 ;;
3242             esac
3243             if test "X$additional_includedir" != "X"; then
3244               dnl Potentially add $additional_includedir to $INCNAME.
3245               dnl But don't add it
3246               dnl   1. if it's the standard /usr/include,
3247               dnl   2. if it's /usr/local/include and we are using GCC on Linux,
3248               dnl   3. if it's already present in $CPPFLAGS or the already
3249               dnl      constructed $INCNAME,
3250               dnl   4. if it doesn't exist as a directory.
3251               if test "X$additional_includedir" != "X/usr/include"; then
3252                 haveit=
3253                 if test "X$additional_includedir" = "X/usr/local/include"; then
3254                   if test -n "$GCC"; then
3255                     case $host_os in
3256                       linux*) haveit=yes;;
3257                     esac
3258                   fi
3259                 fi
3260                 if test -z "$haveit"; then
3261                   for x in $CPPFLAGS $INC[]NAME; do
3262                     AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
3263                     if test "X$x" = "X-I$additional_includedir"; then
3264                       haveit=yes
3265                       break
3266                     fi
3267                   done
3268                   if test -z "$haveit"; then
3269                     if test -d "$additional_includedir"; then
3270                       dnl Really add $additional_includedir to $INCNAME.
3271                       INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
3272                     fi
3273                   fi
3274                 fi
3275               fi
3276             fi
3277             dnl Look for dependencies.
3278             if test -n "$found_la"; then
3279               dnl Read the .la file. It defines the variables
3280               dnl dlname, library_names, old_library, dependency_libs, current,
3281               dnl age, revision, installed, dlopen, dlpreopen, libdir.
3282               save_libdir="$libdir"
3283               case "$found_la" in
3284                 */* | *\\*) . "$found_la" ;;
3285                 *) . "./$found_la" ;;
3286               esac
3287               libdir="$save_libdir"
3288               dnl We use only dependency_libs.
3289               for dep in $dependency_libs; do
3290                 case "$dep" in
3291                   -L*)
3292                     additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
3293                     dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
3294                     dnl But don't add it
3295                     dnl   1. if it's the standard /usr/lib,
3296                     dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
3297                     dnl   3. if it's already present in $LDFLAGS or the already
3298                     dnl      constructed $LIBNAME,
3299                     dnl   4. if it doesn't exist as a directory.
3300                     if test "X$additional_libdir" != "X/usr/lib"; then
3301                       haveit=
3302                       if test "X$additional_libdir" = "X/usr/local/lib"; then
3303                         if test -n "$GCC"; then
3304                           case $host_os in
3305                             linux*) haveit=yes;;
3306                           esac
3307                         fi
3308                       fi
3309                       if test -z "$haveit"; then
3310                         haveit=
3311                         for x in $LDFLAGS $LIB[]NAME; do
3312                           AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
3313                           if test "X$x" = "X-L$additional_libdir"; then
3314                             haveit=yes
3315                             break
3316                           fi
3317                         done
3318                         if test -z "$haveit"; then
3319                           if test -d "$additional_libdir"; then
3320                             dnl Really add $additional_libdir to $LIBNAME.
3321                             LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
3322                           fi
3323                         fi
3324                         haveit=
3325                         for x in $LDFLAGS $LTLIB[]NAME; do
3326                           AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
3327                           if test "X$x" = "X-L$additional_libdir"; then
3328                             haveit=yes
3329                             break
3330                           fi
3331                         done
3332                         if test -z "$haveit"; then
3333                           if test -d "$additional_libdir"; then
3334                             dnl Really add $additional_libdir to $LTLIBNAME.
3335                             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
3336                           fi
3337                         fi
3338                       fi
3339                     fi
3340                     ;;
3341                   -R*)
3342                     dir=`echo "X$dep" | sed -e 's/^X-R//'`
3343                     if test "$enable_rpath" != no; then
3344                       dnl Potentially add DIR to rpathdirs.
3345                       dnl The rpathdirs will be appended to $LIBNAME at the end.
3346                       haveit=
3347                       for x in $rpathdirs; do
3348                         if test "X$x" = "X$dir"; then
3349                           haveit=yes
3350                           break
3351                         fi
3352                       done
3353                       if test -z "$haveit"; then
3354                         rpathdirs="$rpathdirs $dir"
3355                       fi
3356                       dnl Potentially add DIR to ltrpathdirs.
3357                       dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
3358                       haveit=
3359                       for x in $ltrpathdirs; do
3360                         if test "X$x" = "X$dir"; then
3361                           haveit=yes
3362                           break
3363                         fi
3364                       done
3365                       if test -z "$haveit"; then
3366                         ltrpathdirs="$ltrpathdirs $dir"
3367                       fi
3368                     fi
3369                     ;;
3370                   -l*)
3371                     dnl Handle this in the next round.
3372                     names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
3373                     ;;
3374                   *.la)
3375                     dnl Handle this in the next round. Throw away the .la's
3376                     dnl directory; it is already contained in a preceding -L
3377                     dnl option.
3378                     names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
3379                     ;;
3380                   *)
3381                     dnl Most likely an immediate library name.
3382                     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
3383                     LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
3384                     ;;
3385                 esac
3386               done
3387             fi
3388           else
3389             dnl Didn't find the library; assume it is in the system directories
3390             dnl known to the linker and runtime loader. (All the system
3391             dnl directories known to the linker should also be known to the
3392             dnl runtime loader, otherwise the system is severely misconfigured.)
3393             LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
3394             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
3395           fi
3396         fi
3397       fi
3398     done
3399   done
3400   if test "X$rpathdirs" != "X"; then
3401     if test -n "$hardcode_libdir_separator"; then
3402       dnl Weird platform: only the last -rpath option counts, the user must
3403       dnl pass all path elements in one option. We can arrange that for a
3404       dnl single library, but not when more than one $LIBNAMEs are used.
3405       alldirs=
3406       for found_dir in $rpathdirs; do
3407         alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
3408       done
3409       dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
3410       acl_save_libdir="$libdir"
3411       libdir="$alldirs"
3412       eval flag=\"$hardcode_libdir_flag_spec\"
3413       libdir="$acl_save_libdir"
3414       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
3415     else
3416       dnl The -rpath options are cumulative.
3417       for found_dir in $rpathdirs; do
3418         acl_save_libdir="$libdir"
3419         libdir="$found_dir"
3420         eval flag=\"$hardcode_libdir_flag_spec\"
3421         libdir="$acl_save_libdir"
3422         LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
3423       done
3424     fi
3425   fi
3426   if test "X$ltrpathdirs" != "X"; then
3427     dnl When using libtool, the option that works for both libraries and
3428     dnl executables is -R. The -R options are cumulative.
3429     for found_dir in $ltrpathdirs; do
3430       LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
3431     done
3432   fi
3435 dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
3436 dnl unless already present in VAR.
3437 dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
3438 dnl contains two or three consecutive elements that belong together.
3439 AC_DEFUN([AC_LIB_APPENDTOVAR],
3441   for element in [$2]; do
3442     haveit=
3443     for x in $[$1]; do
3444       AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
3445       if test "X$x" = "X$element"; then
3446         haveit=yes
3447         break
3448       fi
3449     done
3450     if test -z "$haveit"; then
3451       [$1]="${[$1]}${[$1]:+ }$element"
3452     fi
3453   done
3455 # lib-prefix.m4 serial 2 (gettext-0.12)
3456 dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
3457 dnl This file is free software, distributed under the terms of the GNU
3458 dnl General Public License.  As a special exception to the GNU General
3459 dnl Public License, this file may be distributed as part of a program
3460 dnl that contains a configuration script generated by Autoconf, under
3461 dnl the same distribution terms as the rest of that program.
3463 dnl From Bruno Haible.
3465 dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
3466 dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
3467 dnl require excessive bracketing.
3468 ifdef([AC_HELP_STRING],
3469 [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
3470 [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
3472 dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
3473 dnl to access previously installed libraries. The basic assumption is that
3474 dnl a user will want packages to use other packages he previously installed
3475 dnl with the same --prefix option.
3476 dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
3477 dnl libraries, but is otherwise very convenient.
3478 AC_DEFUN([AC_LIB_PREFIX],
3480   AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
3481   AC_REQUIRE([AC_PROG_CC])
3482   AC_REQUIRE([AC_CANONICAL_HOST])
3483   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
3484   dnl By default, look in $includedir and $libdir.
3485   use_additional=yes
3486   AC_LIB_WITH_FINAL_PREFIX([
3487     eval additional_includedir=\"$includedir\"
3488     eval additional_libdir=\"$libdir\"
3489   ])
3490   AC_LIB_ARG_WITH([lib-prefix],
3491 [  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
3492   --without-lib-prefix    don't search for libraries in includedir and libdir],
3494     if test "X$withval" = "Xno"; then
3495       use_additional=no
3496     else
3497       if test "X$withval" = "X"; then
3498         AC_LIB_WITH_FINAL_PREFIX([
3499           eval additional_includedir=\"$includedir\"
3500           eval additional_libdir=\"$libdir\"
3501         ])
3502       else
3503         additional_includedir="$withval/include"
3504         additional_libdir="$withval/lib"
3505       fi
3506     fi
3508   if test $use_additional = yes; then
3509     dnl Potentially add $additional_includedir to $CPPFLAGS.
3510     dnl But don't add it
3511     dnl   1. if it's the standard /usr/include,
3512     dnl   2. if it's already present in $CPPFLAGS,
3513     dnl   3. if it's /usr/local/include and we are using GCC on Linux,
3514     dnl   4. if it doesn't exist as a directory.
3515     if test "X$additional_includedir" != "X/usr/include"; then
3516       haveit=
3517       for x in $CPPFLAGS; do
3518         AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
3519         if test "X$x" = "X-I$additional_includedir"; then
3520           haveit=yes
3521           break
3522         fi
3523       done
3524       if test -z "$haveit"; then
3525         if test "X$additional_includedir" = "X/usr/local/include"; then
3526           if test -n "$GCC"; then
3527             case $host_os in
3528               linux*) haveit=yes;;
3529             esac
3530           fi
3531         fi
3532         if test -z "$haveit"; then
3533           if test -d "$additional_includedir"; then
3534             dnl Really add $additional_includedir to $CPPFLAGS.
3535             CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
3536           fi
3537         fi
3538       fi
3539     fi
3540     dnl Potentially add $additional_libdir to $LDFLAGS.
3541     dnl But don't add it
3542     dnl   1. if it's the standard /usr/lib,
3543     dnl   2. if it's already present in $LDFLAGS,
3544     dnl   3. if it's /usr/local/lib and we are using GCC on Linux,
3545     dnl   4. if it doesn't exist as a directory.
3546     if test "X$additional_libdir" != "X/usr/lib"; then
3547       haveit=
3548       for x in $LDFLAGS; do
3549         AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
3550         if test "X$x" = "X-L$additional_libdir"; then
3551           haveit=yes
3552           break
3553         fi
3554       done
3555       if test -z "$haveit"; then
3556         if test "X$additional_libdir" = "X/usr/local/lib"; then
3557           if test -n "$GCC"; then
3558             case $host_os in
3559               linux*) haveit=yes;;
3560             esac
3561           fi
3562         fi
3563         if test -z "$haveit"; then
3564           if test -d "$additional_libdir"; then
3565             dnl Really add $additional_libdir to $LDFLAGS.
3566             LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
3567           fi
3568         fi
3569       fi
3570     fi
3571   fi
3574 dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
3575 dnl acl_final_exec_prefix, containing the values to which $prefix and
3576 dnl $exec_prefix will expand at the end of the configure script.
3577 AC_DEFUN([AC_LIB_PREPARE_PREFIX],
3579   dnl Unfortunately, prefix and exec_prefix get only finally determined
3580   dnl at the end of configure.
3581   if test "X$prefix" = "XNONE"; then
3582     acl_final_prefix="$ac_default_prefix"
3583   else
3584     acl_final_prefix="$prefix"
3585   fi
3586   if test "X$exec_prefix" = "XNONE"; then
3587     acl_final_exec_prefix='${prefix}'
3588   else
3589     acl_final_exec_prefix="$exec_prefix"
3590   fi
3591   acl_save_prefix="$prefix"
3592   prefix="$acl_final_prefix"
3593   eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
3594   prefix="$acl_save_prefix"
3597 dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
3598 dnl variables prefix and exec_prefix bound to the values they will have
3599 dnl at the end of the configure script.
3600 AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
3602   acl_save_prefix="$prefix"
3603   prefix="$acl_final_prefix"
3604   acl_save_exec_prefix="$exec_prefix"
3605   exec_prefix="$acl_final_exec_prefix"
3606   $1
3607   exec_prefix="$acl_save_exec_prefix"
3608   prefix="$acl_save_prefix"
3610 # nls.m4 serial 1 (gettext-0.12)
3611 dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
3612 dnl This file is free software, distributed under the terms of the GNU
3613 dnl General Public License.  As a special exception to the GNU General
3614 dnl Public License, this file may be distributed as part of a program
3615 dnl that contains a configuration script generated by Autoconf, under
3616 dnl the same distribution terms as the rest of that program.
3618 dnl This file can can be used in projects which are not available under
3619 dnl the GNU General Public License or the GNU Library General Public
3620 dnl License but which still want to provide support for the GNU gettext
3621 dnl functionality.
3622 dnl Please note that the actual code of the GNU gettext library is covered
3623 dnl by the GNU Library General Public License, and the rest of the GNU
3624 dnl gettext package package is covered by the GNU General Public License.
3625 dnl They are *not* in the public domain.
3627 dnl Authors:
3628 dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
3629 dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
3631 AC_DEFUN([AM_NLS],
3633   AC_MSG_CHECKING([whether NLS is requested])
3634   dnl Default is enabled NLS
3635   AC_ARG_ENABLE(nls,
3636     [  --disable-nls           do not use Native Language Support],
3637     USE_NLS=$enableval, USE_NLS=yes)
3638   AC_MSG_RESULT($USE_NLS)
3639   AC_SUBST(USE_NLS)
3642 AC_DEFUN([AM_MKINSTALLDIRS],
3644   dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
3645   dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
3646   dnl Try to locate it.
3647   MKINSTALLDIRS=
3648   if test -n "$ac_aux_dir"; then
3649     case "$ac_aux_dir" in
3650       /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
3651       *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
3652     esac
3653   fi
3654   if test -z "$MKINSTALLDIRS"; then
3655     MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
3656   fi
3657   AC_SUBST(MKINSTALLDIRS)
3659 # po.m4 serial 1 (gettext-0.12)
3660 dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
3661 dnl This file is free software, distributed under the terms of the GNU
3662 dnl General Public License.  As a special exception to the GNU General
3663 dnl Public License, this file may be distributed as part of a program
3664 dnl that contains a configuration script generated by Autoconf, under
3665 dnl the same distribution terms as the rest of that program.
3667 dnl This file can can be used in projects which are not available under
3668 dnl the GNU General Public License or the GNU Library General Public
3669 dnl License but which still want to provide support for the GNU gettext
3670 dnl functionality.
3671 dnl Please note that the actual code of the GNU gettext library is covered
3672 dnl by the GNU Library General Public License, and the rest of the GNU
3673 dnl gettext package package is covered by the GNU General Public License.
3674 dnl They are *not* in the public domain.
3676 dnl Authors:
3677 dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
3678 dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
3680 dnl Checks for all prerequisites of the po subdirectory.
3681 AC_DEFUN([AM_PO_SUBDIRS],
3683   AC_REQUIRE([AC_PROG_MAKE_SET])dnl
3684   AC_REQUIRE([AC_PROG_INSTALL])dnl
3685   AC_REQUIRE([AM_MKINSTALLDIRS])dnl
3686   AC_REQUIRE([AM_NLS])dnl
3688   dnl Perform the following tests also if --disable-nls has been given,
3689   dnl because they are needed for "make dist" to work.
3691   dnl Search for GNU msgfmt in the PATH.
3692   dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
3693   dnl The second test excludes FreeBSD msgfmt.
3694   AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
3695     [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
3696      (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
3697     :)
3698   AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
3700   dnl Search for GNU xgettext 0.12 or newer in the PATH.
3701   dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
3702   dnl The second test excludes FreeBSD xgettext.
3703   AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
3704     [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
3705      (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)],
3706     :)
3707   dnl Remove leftover from FreeBSD xgettext call.
3708   rm -f messages.po
3710   dnl Search for GNU msgmerge 0.11 or newer in the PATH.
3711   AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
3712     [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :)
3714   dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
3715   dnl Test whether we really found GNU msgfmt.
3716   if test "$GMSGFMT" != ":"; then
3717     dnl If it is no GNU msgfmt we define it as : so that the
3718     dnl Makefiles still can work.
3719     if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
3720        (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
3721       : ;
3722     else
3723       GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
3724       AC_MSG_RESULT(
3725         [found $GMSGFMT program is not GNU msgfmt; ignore it])
3726       GMSGFMT=":"
3727     fi
3728   fi
3730   dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
3731   dnl Test whether we really found GNU xgettext.
3732   if test "$XGETTEXT" != ":"; then
3733     dnl If it is no GNU xgettext we define it as : so that the
3734     dnl Makefiles still can work.
3735     if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
3736        (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
3737       : ;
3738     else
3739       AC_MSG_RESULT(
3740         [found xgettext program is not GNU xgettext; ignore it])
3741       XGETTEXT=":"
3742     fi
3743     dnl Remove leftover from FreeBSD xgettext call.
3744     rm -f messages.po
3745   fi
3747   AC_OUTPUT_COMMANDS([
3748     for ac_file in $CONFIG_FILES; do
3749       # Support "outfile[:infile[:infile...]]"
3750       case "$ac_file" in
3751         *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
3752       esac
3753       # PO directories have a Makefile.in generated from Makefile.in.in.
3754       case "$ac_file" in */Makefile.in)
3755         # Adjust a relative srcdir.
3756         ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
3757         ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
3758         ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
3759         # In autoconf-2.13 it is called $ac_given_srcdir.
3760         # In autoconf-2.50 it is called $srcdir.
3761         test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
3762         case "$ac_given_srcdir" in
3763           .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
3764           /*) top_srcdir="$ac_given_srcdir" ;;
3765           *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
3766         esac
3767         if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
3768           rm -f "$ac_dir/POTFILES"
3769           test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
3770           cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[   ]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
3771           POMAKEFILEDEPS="POTFILES.in"
3772           # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend
3773           # on $ac_dir but don't depend on user-specified configuration
3774           # parameters.
3775           if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
3776             # The LINGUAS file contains the set of available languages.
3777             if test -n "$OBSOLETE_ALL_LINGUAS"; then
3778               test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
3779             fi
3780             ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
3781             # Hide the ALL_LINGUAS assigment from automake.
3782             eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
3783             POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
3784           else
3785             # The set of available languages was given in configure.in.
3786             eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
3787           fi
3788           case "$ac_given_srcdir" in
3789             .) srcdirpre= ;;
3790             *) srcdirpre='$(srcdir)/' ;;
3791           esac
3792           POFILES=
3793           GMOFILES=
3794           UPDATEPOFILES=
3795           DUMMYPOFILES=
3796           for lang in $ALL_LINGUAS; do
3797             POFILES="$POFILES $srcdirpre$lang.po"
3798             GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
3799             UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
3800             DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
3801           done
3802           # CATALOGS depends on both $ac_dir and the user's LINGUAS
3803           # environment variable.
3804           INST_LINGUAS=
3805           if test -n "$ALL_LINGUAS"; then
3806             for presentlang in $ALL_LINGUAS; do
3807               useit=no
3808               if test "%UNSET%" != "$LINGUAS"; then
3809                 desiredlanguages="$LINGUAS"
3810               else
3811                 desiredlanguages="$ALL_LINGUAS"
3812               fi
3813               for desiredlang in $desiredlanguages; do
3814                 # Use the presentlang catalog if desiredlang is
3815                 #   a. equal to presentlang, or
3816                 #   b. a variant of presentlang (because in this case,
3817                 #      presentlang can be used as a fallback for messages
3818                 #      which are not translated in the desiredlang catalog).
3819                 case "$desiredlang" in
3820                   "$presentlang"*) useit=yes;;
3821                 esac
3822               done
3823               if test $useit = yes; then
3824                 INST_LINGUAS="$INST_LINGUAS $presentlang"
3825               fi
3826             done
3827           fi
3828           CATALOGS=
3829           if test -n "$INST_LINGUAS"; then
3830             for lang in $INST_LINGUAS; do
3831               CATALOGS="$CATALOGS $lang.gmo"
3832             done
3833           fi
3834           test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
3835           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"
3836           for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
3837             if test -f "$f"; then
3838               case "$f" in
3839                 *.orig | *.bak | *~) ;;
3840                 *) cat "$f" >> "$ac_dir/Makefile" ;;
3841               esac
3842             fi
3843           done
3844         fi
3845         ;;
3846       esac
3847     done],
3848    [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
3849     # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it
3850     # from automake.
3851     eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
3852     # Capture the value of LINGUAS because we need it to compute CATALOGS.
3853     LINGUAS="${LINGUAS-%UNSET%}"
3854    ])
3856 # progtest.m4 serial 3 (gettext-0.12)
3857 dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
3858 dnl This file is free software, distributed under the terms of the GNU
3859 dnl General Public License.  As a special exception to the GNU General
3860 dnl Public License, this file may be distributed as part of a program
3861 dnl that contains a configuration script generated by Autoconf, under
3862 dnl the same distribution terms as the rest of that program.
3864 dnl This file can can be used in projects which are not available under
3865 dnl the GNU General Public License or the GNU Library General Public
3866 dnl License but which still want to provide support for the GNU gettext
3867 dnl functionality.
3868 dnl Please note that the actual code of the GNU gettext library is covered
3869 dnl by the GNU Library General Public License, and the rest of the GNU
3870 dnl gettext package package is covered by the GNU General Public License.
3871 dnl They are *not* in the public domain.
3873 dnl Authors:
3874 dnl   Ulrich Drepper <drepper@cygnus.com>, 1996.
3876 # Search path for a program which passes the given test.
3878 dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
3879 dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
3880 AC_DEFUN([AM_PATH_PROG_WITH_TEST],
3882 # Prepare PATH_SEPARATOR.
3883 # The user is always right.
3884 if test "${PATH_SEPARATOR+set}" != set; then
3885   echo "#! /bin/sh" >conf$$.sh
3886   echo  "exit 0"   >>conf$$.sh
3887   chmod +x conf$$.sh
3888   if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
3889     PATH_SEPARATOR=';'
3890   else
3891     PATH_SEPARATOR=:
3892   fi
3893   rm -f conf$$.sh
3896 # Find out how to test for executable files. Don't use a zero-byte file,
3897 # as systems may use methods other than mode bits to determine executability.
3898 cat >conf$$.file <<_ASEOF
3899 #! /bin/sh
3900 exit 0
3901 _ASEOF
3902 chmod +x conf$$.file
3903 if test -x conf$$.file >/dev/null 2>&1; then
3904   ac_executable_p="test -x"
3905 else
3906   ac_executable_p="test -f"
3908 rm -f conf$$.file
3910 # Extract the first word of "$2", so it can be a program name with args.
3911 set dummy $2; ac_word=[$]2
3912 AC_MSG_CHECKING([for $ac_word])
3913 AC_CACHE_VAL(ac_cv_path_$1,
3914 [case "[$]$1" in
3915   [[\\/]]* | ?:[[\\/]]*)
3916     ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
3917     ;;
3918   *)
3919     ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
3920     for ac_dir in ifelse([$5], , $PATH, [$5]); do
3921       IFS="$ac_save_IFS"
3922       test -z "$ac_dir" && ac_dir=.
3923       for ac_exec_ext in '' $ac_executable_extensions; do
3924         if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
3925           if [$3]; then
3926             ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
3927             break 2
3928           fi
3929         fi
3930       done
3931     done
3932     IFS="$ac_save_IFS"
3933 dnl If no 4th arg is given, leave the cache variable unset,
3934 dnl so AC_PATH_PROGS will keep looking.
3935 ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
3936 ])dnl
3937     ;;
3938 esac])dnl
3939 $1="$ac_cv_path_$1"
3940 if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
3941   AC_MSG_RESULT([$]$1)
3942 else
3943   AC_MSG_RESULT(no)
3945 AC_SUBST($1)dnl
3947 # stdint_h.m4 serial 3 (gettext-0.12)
3948 dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
3949 dnl This file is free software, distributed under the terms of the GNU
3950 dnl General Public License.  As a special exception to the GNU General
3951 dnl Public License, this file may be distributed as part of a program
3952 dnl that contains a configuration script generated by Autoconf, under
3953 dnl the same distribution terms as the rest of that program.
3955 dnl From Paul Eggert.
3957 # Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
3958 # doesn't clash with <sys/types.h>, and declares uintmax_t.
3960 AC_DEFUN([jm_AC_HEADER_STDINT_H],
3962   AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h,
3963   [AC_TRY_COMPILE(
3964     [#include <sys/types.h>
3965 #include <stdint.h>],
3966     [uintmax_t i = (uintmax_t) -1;],
3967     jm_ac_cv_header_stdint_h=yes,
3968     jm_ac_cv_header_stdint_h=no)])
3969   if test $jm_ac_cv_header_stdint_h = yes; then
3970     AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1,
3971       [Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
3972        and declares uintmax_t. ])
3973   fi
3975 # uintmax_t.m4 serial 7 (gettext-0.12)
3976 dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
3977 dnl This file is free software, distributed under the terms of the GNU
3978 dnl General Public License.  As a special exception to the GNU General
3979 dnl Public License, this file may be distributed as part of a program
3980 dnl that contains a configuration script generated by Autoconf, under
3981 dnl the same distribution terms as the rest of that program.
3983 dnl From Paul Eggert.
3985 AC_PREREQ(2.13)
3987 # Define uintmax_t to 'unsigned long' or 'unsigned long long'
3988 # if it is not already defined in <stdint.h> or <inttypes.h>.
3990 AC_DEFUN([jm_AC_TYPE_UINTMAX_T],
3992   AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
3993   AC_REQUIRE([jm_AC_HEADER_STDINT_H])
3994   if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then
3995     AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
3996     test $ac_cv_type_unsigned_long_long = yes \
3997       && ac_type='unsigned long long' \
3998       || ac_type='unsigned long'
3999     AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
4000       [Define to unsigned long or unsigned long long
4001        if <stdint.h> and <inttypes.h> don't define.])
4002   else
4003     AC_DEFINE(HAVE_UINTMAX_T, 1,
4004       [Define if you have the 'uintmax_t' type in <stdint.h> or <inttypes.h>.])
4005   fi
4007 # ulonglong.m4 serial 2 (fileutils-4.0.32, gettext-0.10.40)
4008 dnl Copyright (C) 1999-2002 Free Software Foundation, Inc.
4009 dnl This file is free software, distributed under the terms of the GNU
4010 dnl General Public License.  As a special exception to the GNU General
4011 dnl Public License, this file may be distributed as part of a program
4012 dnl that contains a configuration script generated by Autoconf, under
4013 dnl the same distribution terms as the rest of that program.
4015 dnl From Paul Eggert.
4017 AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG],
4019   AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long,
4020   [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;],
4021     [unsigned long long ullmax = (unsigned long long) -1;
4022      return ull << i | ull >> i | ullmax / ull | ullmax % ull;],
4023     ac_cv_type_unsigned_long_long=yes,
4024     ac_cv_type_unsigned_long_long=no)])
4025   if test $ac_cv_type_unsigned_long_long = yes; then
4026     AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
4027       [Define if you have the unsigned long long type.])
4028   fi
4031 dnl From gnulib
4032 AC_DEFUN([BASH_FUNC_FPURGE],
4034   AC_CHECK_FUNCS_ONCE([fpurge])
4035   AC_CHECK_FUNCS_ONCE([__fpurge])
4036   AC_CHECK_DECLS([fpurge], , , [#include <stdio.h>])
4039 AC_DEFUN([BASH_FUNC_SNPRINTF],
4041   AC_CHECK_FUNCS_ONCE([snprintf])
4042   if test X$ac_cv_func_snprintf = Xyes; then
4043     AC_CACHE_CHECK([for standard-conformant snprintf], [bash_cv_func_snprintf],
4044       [AC_TRY_RUN([
4045 #include <stdio.h>
4047 main()
4049   int n;
4050   n = snprintf (0, 0, "%s", "0123456");
4051   exit(n != 7);
4053 ], bash_cv_func_snprintf=yes, bash_cv_func_snprintf=no,
4054    [AC_MSG_WARN([cannot check standard snprintf if cross-compiling])
4055     bash_cv_func_snprintf=yes]
4057     if test $bash_cv_func_snprintf = no; then
4058       ac_cv_func_snprintf=no
4059     fi
4060   fi
4061   if test $ac_cv_func_snprintf = no; then
4062     AC_DEFINE(HAVE_SNPRINTF, 0,
4063       [Define if you have a standard-conformant snprintf function.])
4064   fi
4067 AC_DEFUN([BASH_FUNC_VSNPRINTF],
4069   AC_CHECK_FUNCS_ONCE([vsnprintf])
4070   if test X$ac_cv_func_vsnprintf = Xyes; then
4071     AC_CACHE_CHECK([for standard-conformant vsnprintf], [bash_cv_func_vsnprintf],
4072       [AC_TRY_RUN([
4073 #if HAVE_STDARG_H
4074 #include <stdarg.h>
4075 #else
4076 #include <varargs.h>
4077 #endif
4078 #include <stdio.h>
4079 #include <stdlib.h>
4081 static int
4082 #if HAVE_STDARG_H
4083 foo(const char *fmt, ...)
4084 #else
4085 foo(format, va_alist)
4086      const char *format;
4087      va_dcl
4088 #endif
4090   va_list args;
4091   int n;
4093 #if HAVE_STDARG_H
4094   va_start(args, fmt);
4095 #else
4096   va_start(args);
4097 #endif
4098   n = vsnprintf(0, 0, fmt, args);
4099   va_end (args);
4100   return n;
4103 main()
4105   int n;
4106   n = foo("%s", "0123456");
4107   exit(n != 7);
4109 ], bash_cv_func_vsnprintf=yes, bash_cv_func_vsnprintf=no,
4110    [AC_MSG_WARN([cannot check standard vsnprintf if cross-compiling])
4111     bash_cv_func_vsnprintf=yes]
4113     if test $bash_cv_func_vsnprintf = no; then
4114       ac_cv_func_vsnprintf=no
4115     fi
4116   fi
4117   if test $ac_cv_func_vsnprintf = no; then
4118     AC_DEFINE(HAVE_VSNPRINTF, 0,
4119       [Define if you have a standard-conformant vsnprintf function.])
4120   fi
4123 AC_DEFUN(BASH_STRUCT_WEXITSTATUS_OFFSET,
4124 [AC_MSG_CHECKING(for offset of exit status in return status from wait)
4125 AC_CACHE_VAL(bash_cv_wexitstatus_offset,
4126 [AC_RUN_IFELSE([
4127 #include <stdlib.h>
4128 #include <unistd.h>
4130 #include <sys/wait.h>
4132 main(c, v)
4133      int c;
4134      char **v;
4136   pid_t pid, p;
4137   int s, i, n;
4139   s = 0;
4140   pid = fork();
4141   if (pid == 0)
4142     exit (42);
4144   /* wait for the process */
4145   p = wait(&s);
4146   if (p != pid)
4147     exit (255);
4149   /* crack s */
4150   for (i = 0; i < (sizeof(s) - 8); i++)
4151     {
4152       n = (s >> i) & 0xff;
4153       if (n == 42)
4154         exit (i);
4155     }
4157   exit (254);
4159 ], bash_cv_wexitstatus_offset=0, bash_cv_wexitstatus_offset=$?,
4160    [AC_MSG_WARN(cannot check WEXITSTATUS offset if cross compiling -- defaulting to 0)
4161     bash_cv_wexitstatus_offset=0]
4163 if test "$bash_cv_wexitstatus_offset" -gt 32 ; then
4164   AC_MSG_WARN(bad exit status from test program -- defaulting to 0)
4165   bash_cv_wexitstatus_offset=0
4167 AC_MSG_RESULT($bash_cv_wexitstatus_offset)
4168 AC_DEFINE_UNQUOTED([WEXITSTATUS_OFFSET], [$bash_cv_wexitstatus_offset], [Offset of exit status in wait status word])