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