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