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